JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5.3
[ckeditor.git] / _source / plugins / scayt / plugin.js
index 5a03d5b..967767f 100644 (file)
@@ -95,15 +95,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
 \r
                        plugin.instances[ editor.name ] = scayt_control;\r
 \r
-                       //window.scayt.uiTags\r
-                       var menuGroup = 'scaytButton';\r
-                       var uiTabs = window.scayt.uiTags;\r
-                       var fTabs  = [];\r
-\r
-                       for ( var i = 0, l=4; i < l; i++ )\r
-                           fTabs.push( uiTabs[i] && plugin.uiTabs[i] );\r
-\r
-                       plugin.uiTabs = fTabs;\r
                        try {\r
                                scayt_control.setDisabled( plugin.isPaused( editor ) === false );\r
                        } catch (e) {}\r
@@ -356,6 +347,26 @@ CKEDITOR.plugins.scayt =
                        var scayt_instance = this.getScayt( editor );\r
                        return ( scayt_instance ) ? scayt_instance.disabled === false : false;\r
                },\r
+               getUiTabs : function( editor )\r
+               {\r
+                       var uiTabs = [];\r
+\r
+                       // read UI tabs value from config\r
+                       var configUiTabs = editor.config.scayt_uiTabs || "1,1,1";\r
+\r
+                       // convert string to array\r
+                       configUiTabs = configUiTabs.split( ',' );\r
+\r
+                       // "About us" should be always shown for standard config\r
+                       configUiTabs[3] = "1";\r
+\r
+                       for ( var i = 0; i < 4; i++ ) {\r
+                               uiTabs[i] = (typeof window.scayt != "undefined" && typeof window.scayt.uiTags != "undefined")\r
+                                                               ? (parseInt(configUiTabs[i],10) && window.scayt.uiTags[i])\r
+                                                               : parseInt(configUiTabs[i],10);\r
+                       }\r
+                       return uiTabs;\r
+               },\r
                loadEngine : function( editor )\r
                {\r
                        // SCAYT doesn't work with Firefox2, Opera and AIR.\r
@@ -504,6 +515,22 @@ CKEDITOR.plugins.scayt =
 \r
                init : function( editor )\r
                {\r
+                       // Delete span[data-scaytid] when text pasting in editor (#6921)\r
+                       var dataFilter = editor.dataProcessor && editor.dataProcessor.dataFilter;\r
+                       var dataFilterRules =\r
+                       {\r
+                                       elements :\r
+                                       {\r
+                                                       span : function( element )\r
+                                                       {\r
+                                                                       var attrs = element.attributes;\r
+                                                                       if ( attrs && attrs[ 'data-scaytid' ] )\r
+                                                                                       delete element.name;\r
+                                                       }\r
+                                       }\r
+                       };\r
+                       dataFilter && dataFilter.addRules( dataFilterRules );\r
+\r
                        var moreSuggestions = {},\r
                                mainSuggestions = {};\r
 \r
@@ -512,27 +539,18 @@ CKEDITOR.plugins.scayt =
 \r
                        // Add Options dialog.\r
                        CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/options.js' ) );\r
-                       // read ui tags\r
-                       var confuiTabs = editor.config.scayt_uiTabs || '1,1,1';\r
-                       var uiTabs =[];\r
-                       // string to array convert\r
-                       confuiTabs = confuiTabs.split( ',' );\r
-                       // check array length ! always must be 3 filled with 1 or 0\r
-                       for ( var i=0, l=3; i < l; i++ )\r
-                       {\r
-                               var flag = parseInt( confuiTabs[i] || '1', 10 );\r
-                               uiTabs.push( flag );\r
-                       }\r
+\r
+                       var uiTabs = plugin.getUiTabs( editor );\r
 \r
                        var menuGroup = 'scaytButton';\r
                        editor.addMenuGroup( menuGroup );\r
                        // combine menu items to render\r
-                       var uiMuneItems = {};\r
+                       var uiMenuItems = {};\r
 \r
                        var lang = editor.lang.scayt;\r
 \r
                        // always added\r
-                       uiMuneItems.scaytToggle =\r
+                       uiMenuItems.scaytToggle =\r
                                {\r
                                        label : lang.enable,\r
                                        command : commandName,\r
@@ -540,7 +558,7 @@ CKEDITOR.plugins.scayt =
                                };\r
 \r
                        if ( uiTabs[0] == 1 )\r
-                               uiMuneItems.scaytOptions =\r
+                               uiMenuItems.scaytOptions =\r
                                {\r
                                        label : lang.options,\r
                                        group : menuGroup,\r
@@ -552,7 +570,7 @@ CKEDITOR.plugins.scayt =
                                };\r
 \r
                        if ( uiTabs[1] == 1 )\r
-                               uiMuneItems.scaytLangs =\r
+                               uiMenuItems.scaytLangs =\r
                                {\r
                                        label : lang.langs,\r
                                        group : menuGroup,\r
@@ -563,7 +581,7 @@ CKEDITOR.plugins.scayt =
                                        }\r
                                };\r
                        if ( uiTabs[2] == 1 )\r
-                               uiMuneItems.scaytDict =\r
+                               uiMenuItems.scaytDict =\r
                                {\r
                                        label : lang.dictionariesTab,\r
                                        group : menuGroup,\r
@@ -574,7 +592,7 @@ CKEDITOR.plugins.scayt =
                                        }\r
                                };\r
                        // always added\r
-                       uiMuneItems.scaytAbout =\r
+                       uiMenuItems.scaytAbout =\r
                                {\r
                                        label : editor.lang.scayt.about,\r
                                        group : menuGroup,\r
@@ -585,10 +603,7 @@ CKEDITOR.plugins.scayt =
                                        }\r
                                };\r
 \r
-                       uiTabs[3] = 1; // about us tab is always on\r
-                       plugin.uiTabs = uiTabs;\r
-\r
-                       editor.addMenuItems( uiMuneItems );\r
+                       editor.addMenuItems( uiMenuItems );\r
 \r
                                editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON,\r
                                        {\r
@@ -610,12 +625,14 @@ CKEDITOR.plugins.scayt =
 \r
                                                        editor.getMenuItem( 'scaytToggle' ).label = lang[ isEnabled ? 'disable' : 'enable' ];\r
 \r
+                                                       var uiTabs = plugin.getUiTabs( editor );\r
+\r
                                                        return {\r
                                                                scaytToggle  : CKEDITOR.TRISTATE_OFF,\r
-                                                               scaytOptions : isEnabled && plugin.uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,\r
-                                                               scaytLangs   : isEnabled && plugin.uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,\r
-                                                               scaytDict    : isEnabled && plugin.uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,\r
-                                                               scaytAbout   : isEnabled && plugin.uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED\r
+                                                               scaytOptions : isEnabled && uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,\r
+                                                               scaytLangs   : isEnabled && uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,\r
+                                                               scaytDict    : isEnabled && uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,\r
+                                                               scaytAbout   : isEnabled && uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED\r
                                                        };\r
                                                }\r
                                        });\r