angular-summernote
Advanced tools
Comparing version
{ | ||
"name": "angular-summernote", | ||
"description": "AngularJS directive to Summernote", | ||
"version": "0.4.1", | ||
"version": "0.5.0", | ||
"main": [ | ||
@@ -37,10 +37,12 @@ "./dist/angular-summernote.js" | ||
"summernote": "~0.6.4", | ||
"angular": "~1.3.0" | ||
"angular": "~1.4.0" | ||
}, | ||
"devDependencies": { | ||
"angular-1.2": "https://raw.githubusercontent.com/angular/bower-angular/v1.2.26/angular.min.js", | ||
"angular-1.3": "https://raw.githubusercontent.com/angular/bower-angular/v1.3.17/angular.min.js", | ||
"chai": "~2.3.0", | ||
"angular-mocks": "~1.3.0", | ||
"angular-mocks-1.2": "https://raw.githubusercontent.com/angular/bower-angular-mocks/v1.2.26/angular-mocks.js" | ||
"angular-mocks": "~1.4.0", | ||
"angular-mocks-1.2": "https://raw.githubusercontent.com/angular/bower-angular-mocks/v1.2.26/angular-mocks.js", | ||
"angular-mocks-1.3": "https://raw.githubusercontent.com/angular/bower-angular-mocks/v1.3.17/angular-mocks.js" | ||
} | ||
} |
@@ -1,2 +0,5 @@ | ||
# 0.4.1 (2015-08-17) | ||
# 0.5.0 (2015-08-19) | ||
* Support [AngularJS 1.4.x](http://angularjs.blogspot.kr/2015/05/angular-140-jaracimrman-existence.html) | ||
# 0.4.2 (2015-08-19) | ||
* bug fixes | ||
@@ -3,0 +6,0 @@ * fix "Maximum call stack size exceeded" error in airmode |
/* | ||
angular-summernote v0.4.1 | ||
Copyright 2014 Jeonghoon Byun | ||
angular-summernote v0.5.0 | ||
Copyright 2015 Jeonghoon Byun | ||
License: MIT | ||
*/ | ||
angular.module("summernote",[]).controller("SummernoteController",["$scope","$attrs","$timeout",function($scope,$attrs,$timeout){"use strict";var currentElement,summernoteConfig=$scope.summernoteConfig||{};if(angular.isDefined($attrs.height)&&(summernoteConfig.height=$attrs.height),angular.isDefined($attrs.focus)&&(summernoteConfig.focus=!0),angular.isDefined($attrs.airmode)&&(summernoteConfig.airMode=!0),angular.isDefined($attrs.lang)){if(!angular.isDefined($.summernote.lang[$attrs.lang]))throw new Error('"'+$attrs.lang+'" lang file must be exist.');summernoteConfig.lang=$attrs.lang}summernoteConfig.onInit=$scope.init,summernoteConfig.onEnter=function(evt){$scope.enter({evt:evt})},summernoteConfig.onFocus=function(evt){$scope.focus({evt:evt})},summernoteConfig.onPaste=function(evt){$scope.paste({evt:evt})},summernoteConfig.onKeyup=function(evt){$scope.keyup({evt:evt})},summernoteConfig.onKeydown=function(evt){$scope.keydown({evt:evt})},angular.isDefined($attrs.onImageUpload)&&(summernoteConfig.onImageUpload=function(files){$scope.imageUpload({files:files,editable:$scope.editable})}),this.activate=function(scope,element,ngModel){var updateNgModel=function(){var newValue=element.code();element.summernote("isEmpty")&&(newValue=""),ngModel&&ngModel.$viewValue!==newValue&&$timeout(function(){ngModel.$setViewValue(newValue)},0)};summernoteConfig.onChange=function(contents){element.summernote("isEmpty")&&(contents=""),updateNgModel(),$scope.change({contents:contents,editable:$scope.editable})},summernoteConfig.onBlur=function(evt){!summernoteConfig.airMode&&element.blur(),$scope.blur({evt:evt})},angular.isDefined($attrs.onToolbarClick)&&element.on("summernote.toolbar.click",function(evt){$scope.toolbarClick({evt:evt})}),element.summernote(summernoteConfig);var unwatchNgModel,editor$=element.next(".note-editor");editor$.find(".note-toolbar").click(function(){updateNgModel(),editor$.hasClass("codeview")?(editor$.on("keyup",updateNgModel),ngModel&&(unwatchNgModel=scope.$watch(function(){return ngModel.$modelValue},function(newValue){editor$.find(".note-codable").val(newValue)}))):(editor$.off("keyup",updateNgModel),angular.isFunction(unwatchNgModel)&&unwatchNgModel())}),ngModel&&(ngModel.$render=function(){element.code(ngModel.$viewValue||"")}),angular.isDefined($attrs.editable)&&($scope.editable=editor$.find(".note-editable")),angular.isDefined($attrs.editor)&&($scope.editor=element),currentElement=element,element.on("$destroy",function(){element.destroy(),$scope.summernoteDestroyed=!0})},$scope.$on("$destroy",function(){$scope.summernoteDestroyed||currentElement.destroy()})}]).directive("summernote",[function(){"use strict";return{restrict:"EA",transclude:!0,replace:!0,require:["summernote","^?ngModel"],controller:"SummernoteController",scope:{summernoteConfig:"=config",editable:"=",editor:"=",init:"&onInit",enter:"&onEnter",focus:"&onFocus",blur:"&onBlur",paste:"&onPaste",keyup:"&onKeyup",keydown:"&onKeydown",change:"&onChange",toolbarClick:"&onToolbarClick",imageUpload:"&onImageUpload"},template:'<div class="summernote"></div>',link:function(scope,element,attrs,ctrls){var summernoteController=ctrls[0],ngModel=ctrls[1];summernoteController.activate(scope,element,ngModel)}}}]); |
@@ -37,2 +37,5 @@ /*jshint node:true */ | ||
}, | ||
'summernote-angular-13': { | ||
configFile: './test/karma-angular-1-3-x.conf.js' | ||
}, | ||
travis: { | ||
@@ -59,3 +62,3 @@ singleRun: true, | ||
' angular-summernote v<%=pkg.version%>\n' + | ||
' Copyright 2014 Jeonghoon Byun\n' + | ||
' Copyright 2015 Jeonghoon Byun\n' + | ||
' License: MIT\n' + | ||
@@ -62,0 +65,0 @@ ' */\n' |
{ | ||
"name": "angular-summernote", | ||
"description": "AngularJS directive to Summernote", | ||
"version": "0.4.1", | ||
"version": "0.5.0", | ||
"author": { | ||
@@ -27,9 +27,9 @@ "name": "\"Outsider\" Jeonghoon Byun", | ||
"grunt-contrib-jshint": "~0.11.0", | ||
"grunt-contrib-connect": "~0.9.0", | ||
"grunt-contrib-connect": "~0.11.0", | ||
"grunt-contrib-watch": "~0.6.1", | ||
"grunt-contrib-compress": "^0.13.0", | ||
"load-grunt-tasks": "^3.0.0", | ||
"mocha": "~2.1.0", | ||
"mocha": "~2.2.0", | ||
"karma-script-launcher": "~0.1.0", | ||
"karma-chrome-launcher": "~0.1.2", | ||
"karma-chrome-launcher": "~0.2.0", | ||
"karma-firefox-launcher": "~0.1.3", | ||
@@ -39,12 +39,12 @@ "karma-html2js-preprocessor": "~0.1.0", | ||
"karma-requirejs": "~0.2.1", | ||
"karma-coffee-preprocessor": "~0.2.1", | ||
"karma-phantomjs-launcher": "~0.1.1", | ||
"karma": "~0.12.23", | ||
"karma-mocha": "~0.1.1", | ||
"grunt-karma": "~0.10.0", | ||
"grunt-contrib-uglify": "~0.7.0", | ||
"karma-coffee-preprocessor": "~0.3.0", | ||
"karma-phantomjs-launcher": "~0.2.0", | ||
"karma": "~0.13.9", | ||
"karma-mocha": "~0.2.0", | ||
"grunt-karma": "~0.12.0", | ||
"grunt-contrib-uglify": "~0.9.0", | ||
"grunt-karma-coveralls": "^2.5.1", | ||
"karma-coverage": "^0.2.6" | ||
"karma-coverage": "^0.5.0" | ||
}, | ||
"dependencies": {} | ||
} |
@@ -28,3 +28,3 @@ # angular-summernote - [AngularJS](http://angularjs.org/) directive to [Summernote](http://summernote.org/) | ||
See at [JSFiddle](http://jsfiddle.net/outsider/n8dt4/198/embedded/result%2Chtml%2Cjs%2Ccss/) | ||
See at [JSFiddle](http://jsfiddle.net/outsider/n8dt4/216/embedded/result%2Chtml%2Cjs%2Ccss/) | ||
or run example in projects(need to run `bower install` before run) | ||
@@ -31,0 +31,0 @@ |
@@ -8,3 +8,3 @@ // Karma configuration | ||
'use strict'; | ||
sharedConfig(config, {testName: 'angular-summernote: angular-1.3.x'}); | ||
sharedConfig(config, {testName: 'angular-summernote: angular-1.4.x'}); | ||
@@ -11,0 +11,0 @@ config.set({ |
131319
1.02%33
3.13%1202
2.65%