JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.6.1
[ckeditor.git] / _source / plugins / dialogadvtab / plugin.js
index 434911c..8b5cb32 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -43,8 +43,6 @@ function commitAdvParams()
        }\r
 }\r
 \r
-var isUpdating;\r
-\r
 CKEDITOR.plugins.add( 'dialogadvtab',\r
 {\r
        /**\r
@@ -62,8 +60,8 @@ CKEDITOR.plugins.add( 'dialogadvtab',
                var result =\r
                {\r
                        id : 'advanced',\r
-                       label : lang.advanced,\r
-                       title : lang.advanced,\r
+                       label : lang.advancedTab,\r
+                       title : lang.advancedTab,\r
                        elements :\r
                                [\r
                                        {\r
@@ -100,7 +98,7 @@ CKEDITOR.plugins.add( 'dialogadvtab',
                                                type : 'select',\r
                                                label : lang.langDir,\r
                                                'default' : '',\r
-                                               style : 'width:110px',\r
+                                               style : 'width:100%',\r
                                                items :\r
                                                [\r
                                                        [ lang.notSet, '' ],\r
@@ -124,7 +122,7 @@ CKEDITOR.plugins.add( 'dialogadvtab',
                {\r
                        contents = [];\r
 \r
-                       if ( tabConfig.id )\r
+                       if ( tabConfig.styles )\r
                        {\r
                                contents.push(\r
                                        {\r
@@ -134,42 +132,25 @@ CKEDITOR.plugins.add( 'dialogadvtab',
                                                label : lang.styles,\r
                                                'default' : '',\r
 \r
+                                               validate : CKEDITOR.dialog.validate.inlineStyle( lang.invalidInlineStyle ),\r
                                                onChange : function(){},\r
 \r
                                                getStyle : function( name, defaultValue )\r
                                                {\r
-                                                       var match = this.getValue().match( new RegExp( name + '\\s*:\s*([^;]*)', 'i') );\r
+                                                       var match = this.getValue().match( new RegExp( '(?:^|;)\\s*' + name + '\\s*:\\s*([^;]*)', 'i' ) );\r
                                                        return match ? match[ 1 ] : defaultValue;\r
                                                },\r
 \r
                                                updateStyle : function( name, value )\r
                                                {\r
-                                                       if ( isUpdating )\r
-                                                               return;\r
-\r
-                                                       // Flag to avoid recursion.\r
-                                                       isUpdating = 1;\r
-\r
                                                        var styles = this.getValue();\r
 \r
-                                                       // Remove the current value.\r
-                                                       if ( styles )\r
-                                                       {\r
-                                                               styles = styles\r
-                                                                       .replace( new RegExp( '\\s*' + name + '\s*:[^;]*(?:$|;\s*)', 'i' ), '' )\r
-                                                                       .replace( /^[;\s]+/, '' )\r
-                                                                       .replace( /\s+$/, '' );\r
-                                                       }\r
-\r
-                                                       if ( value )\r
-                                                       {\r
-                                                               styles && !(/;\s*$/).test( styles ) && ( styles += '; ' );\r
-                                                               styles += name + ': ' + value;\r
-                                                       }\r
-\r
-                                                       this.setValue( styles );\r
+                                                       var tmp = editor.document.createElement( 'span' );\r
+                                                       tmp.setAttribute( 'style', styles );\r
+                                                       tmp.setStyle( name, value );\r
+                                                       styles = CKEDITOR.tools.normalizeCssText( tmp.getAttribute( 'style' ) );\r
 \r
-                                                       isUpdating = 0;\r
+                                                       this.setValue( styles, 1 );\r
                                                },\r
 \r
                                                setup : setupAdvParams,\r