Ticket #9278: 9278.patch
File 9278.patch, 4.8 KB (added by , 12 years ago) |
---|
-
_source/plugins/liststyle/dialogs/liststyle.js
25 25 '1' : 'decimal', 26 26 'disc' : 'disc', 27 27 'circle': 'circle', 28 'square' : 'square' 28 'square' : 'square', 29 'none' : 'none' 29 30 }; 30 31 31 32 function listStyle( editor, startupPage ) … … 55 56 [ lang.notset, '' ], 56 57 [ lang.circle, 'circle' ], 57 58 [ lang.disc, 'disc' ], 58 [ lang.square, 'square' ] 59 [ lang.square, 'square' ], 60 [ lang.none, 'none' ] 59 61 ], 60 62 setup : function( element ) 61 63 { … … 104 106 [ lang.upperRoman, 'upper-roman' ], 105 107 [ lang.lowerAlpha, 'lower-alpha' ], 106 108 [ lang.upperAlpha, 'upper-alpha' ], 107 [ lang.decimal, 'decimal' ] 109 [ lang.decimal, 'decimal' ], 110 [ lang.none, 'none' ] 108 111 ]; 109 112 110 113 if ( !CKEDITOR.env.ie || CKEDITOR.env.version > 7 ) … … 140 143 validate : CKEDITOR.dialog.validate.integer( lang.validateStartNumber ), 141 144 setup : function( element ) 142 145 { 143 // List item start number dominates. 144 var value = element.getFirst( listItem ).getAttribute( 'value' ) || element.getAttribute( 'start' ) || 1; 145 value && this.setValue( value ); 146 var styleType = element.getStyle( 'list-style-type' ) 147 || mapListStyle[ element.getAttribute( 'type' ) ] 148 || element.getAttribute( 'type' ) || ''; 149 150 if( styleType !== 'none') 151 { 152 // List item start number dominates. 153 var value = element.getFirst( listItem ).getAttribute( 'value' ) || element.getAttribute( 'start' ) || 1; 154 value && this.setValue( value ); 155 } 146 156 }, 147 157 commit : function( element ) 148 158 { 149 var firstItem = element.getFirst( listItem ); 150 var oldStart = firstItem.getAttribute( 'value' ) || element.getAttribute( 'start' ) || 1; 159 if(this.getDialog().getContentElement( 'info', 'type' ).getValue() === 'none') 160 { 161 if( element.getAttribute( 'start' ) ) 162 element.removeAttribute( 'start' ); 163 } else 164 { 165 var firstItem = element.getFirst( listItem ); 166 var oldStart = firstItem.getAttribute( 'value' ) || element.getAttribute( 'start' ) || 1; 151 167 152 // Force start number on list root.153 element.getFirst( listItem ).removeAttribute( 'value' );154 var val = parseInt( this.getValue(), 10 );155 if ( isNaN( val ) )156 element.removeAttribute( 'start' );157 else158 element.setAttribute( 'start', val );168 // Force start number on list root. 169 element.getFirst( listItem ).removeAttribute( 'value' ); 170 var val = parseInt( this.getValue(), 10 ); 171 if ( isNaN( val ) ) 172 element.removeAttribute( 'start' ); 173 else 174 element.setAttribute( 'start', val ); 159 175 160 // Update consequent list item numbering. 161 var nextItem = firstItem, conseq = oldStart, startNumber = isNaN( val ) ? 1 : val; 162 while ( ( nextItem = nextItem.getNext( listItem ) ) && conseq++ ) 163 { 164 if ( nextItem.getAttribute( 'value' ) == conseq ) 165 nextItem.setAttribute( 'value', startNumber + conseq - oldStart ); 166 } 176 // Update consequent list item numbering. 177 var nextItem = firstItem, conseq = oldStart, startNumber = isNaN( val ) ? 1 : val; 178 while ( ( nextItem = nextItem.getNext( listItem ) ) && conseq++ ) 179 { 180 if ( nextItem.getAttribute( 'value' ) == conseq ) 181 nextItem.setAttribute( 'value', startNumber + conseq - oldStart ); 182 } 183 } 167 184 } 168 185 }, 169 186 { … … 181 198 182 199 this.setValue( value ); 183 200 }, 201 onClick : function( value ) 202 { 203 var start = this.getDialog().getContentElement('info', 'start'); 204 if(this.getValue() === 'none') 205 { 206 if(start.isEnabled()); 207 start.disable(); 208 } else 209 { 210 if(!start.isEnabled()) 211 { 212 start.enable(); 213 if(!start.getValue()) 214 start.setValue(1); 215 } 216 } 217 }, 184 218 commit : function( element ) 185 219 { 186 220 var value = this.getValue();