From ddeefd5bf3db4c9f750838c1cb37f7607a42c4a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Fri, 5 Oct 2018 10:42:32 +0200 Subject: [PATCH] Move contenteditable directive to separate file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- js/app/Run.js | 25 ----------------- js/directive/contenteditable.js | 48 +++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 25 deletions(-) create mode 100644 js/directive/contenteditable.js diff --git a/js/app/Run.js b/js/app/Run.js index e16a7fe35..c5cd45606 100644 --- a/js/app/Run.js +++ b/js/app/Run.js @@ -21,31 +21,6 @@ */ import app from './App.js'; -app.directive("contenteditable", function() { - return { - require: "ngModel", - link: function(scope, element, attrs, ngModel) { - - //read the text typed in the div (syncing model with the view) - function read() { - ngModel.$setViewValue(element.html()); - } - - //render the data now in your model into your view - //$render is invoked when the modelvalue differs from the viewvalue - //see documentation: https://docs.angularjs.org/api/ng/type/ngModel.NgModelController# - ngModel.$render = function() { - element.html(ngModel.$viewValue || ""); - }; - - //do this whenever someone starts typing - element.bind("blur keyup change", function() { - scope.$apply(read); - }); - } - }; -}); - /* global Snap */ app.run(function ($document, $rootScope, $transitions, BoardService) { 'use strict'; diff --git a/js/directive/contenteditable.js b/js/directive/contenteditable.js new file mode 100644 index 000000000..7d8b24058 --- /dev/null +++ b/js/directive/contenteditable.js @@ -0,0 +1,48 @@ +/* + * @copyright Copyright (c) 2018 Julius Härtl + * + * @author Julius Härtl + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +import app from '../app/App'; + +app.directive("contenteditable", function() { + return { + require: "ngModel", + link: function(scope, element, attrs, ngModel) { + + //read the text typed in the div (syncing model with the view) + function read() { + ngModel.$setViewValue(element.html()); + } + + //render the data now in your model into your view + //$render is invoked when the modelvalue differs from the viewvalue + //see documentation: https://docs.angularjs.org/api/ng/type/ngModel.NgModelController# + ngModel.$render = function() { + element.html(ngModel.$viewValue || ""); + }; + + //do this whenever someone starts typing + element.bind("blur keyup change", function() { + scope.$apply(read); + }); + } + }; +});