1- /* angular-summernote v0.7.0 | (c) 2014, 2015 JeongHoon Byun | MIT license */
1+ /* angular-summernote v0.7.1 | (c) 2016 JeongHoon Byun | MIT license */
22/* global angular */
33angular . module ( 'summernote' , [ ] )
44
@@ -8,7 +8,10 @@ angular.module('summernote', [])
88 var currentElement ,
99 summernoteConfig = $scope . summernoteConfig || { } ;
1010
11- if ( angular . isDefined ( $attrs . height ) ) { summernoteConfig . height = $attrs . height ; }
11+ if ( angular . isDefined ( $attrs . height ) ) { summernoteConfig . height = + $attrs . height ; }
12+ if ( angular . isDefined ( $attrs . minHeight ) ) { summernoteConfig . minHeight = + $attrs . minHeight ; }
13+ if ( angular . isDefined ( $attrs . maxHeight ) ) { summernoteConfig . maxHeight = + $attrs . maxHeight ; }
14+ if ( angular . isDefined ( $attrs . placeholder ) ) { summernoteConfig . placeholder = $attrs . placeholder ; }
1215 if ( angular . isDefined ( $attrs . focus ) ) { summernoteConfig . focus = true ; }
1316 if ( angular . isDefined ( $attrs . airmode ) ) { summernoteConfig . airMode = true ; }
1417 if ( angular . isDefined ( $attrs . lang ) ) {
@@ -30,6 +33,17 @@ angular.module('summernote', [])
3033 $scope . imageUpload ( { files :files , editable : $scope . editable } ) ;
3134 } ;
3235 }
36+ if ( angular . isDefined ( $attrs . onMediaDelete ) ) {
37+ callbacks . onMediaDelete = function ( target ) {
38+ // make new object that has information of target to avoid error:isecdom
39+ var removedMedia = { attrs : { } } ;
40+ removedMedia . tagName = target [ 0 ] . tagName ;
41+ angular . forEach ( target [ 0 ] . attributes , function ( attr ) {
42+ removedMedia . attrs [ attr . name ] = attr . value ;
43+ } ) ;
44+ $scope . mediaDelete ( { target : removedMedia } ) ;
45+ }
46+ }
3347
3448 this . activate = function ( scope , element , ngModel ) {
3549 var updateNgModel = function ( ) {
@@ -43,8 +57,10 @@ angular.module('summernote', [])
4357 } ;
4458
4559 callbacks . onChange = function ( contents ) {
46- if ( element . summernote ( 'isEmpty' ) ) { contents = '' ; }
47- updateNgModel ( ) ;
60+ $timeout ( function ( ) {
61+ if ( element . summernote ( 'isEmpty' ) ) { contents = '' ; }
62+ updateNgModel ( ) ;
63+ } , 0 ) ;
4864 $scope . change ( { contents :contents , editable : $scope . editable } ) ;
4965 } ;
5066 callbacks . onBlur = function ( evt ) {
@@ -79,7 +95,11 @@ angular.module('summernote', [])
7995
8096 if ( ngModel ) {
8197 ngModel . $render = function ( ) {
82- element . summernote ( 'code' , ngModel . $viewValue || '' ) ;
98+ if ( ngModel . $viewValue ) {
99+ element . summernote ( 'code' , ngModel . $viewValue ) ;
100+ } else {
101+ element . summernote ( 'empty' ) ;
102+ }
83103 } ;
84104 }
85105
@@ -127,7 +147,8 @@ angular.module('summernote', [])
127147 keyup : '&onKeyup' ,
128148 keydown : '&onKeydown' ,
129149 change : '&onChange' ,
130- imageUpload : '&onImageUpload'
150+ imageUpload : '&onImageUpload' ,
151+ mediaDelete : '&onMediaDelete'
131152 } ,
132153 template : '<div class="summernote"></div>' ,
133154 link : function ( scope , element , attrs , ctrls , transclude ) {
0 commit comments