X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=_source%2Fplugins%2Fscayt%2Fplugin.js;h=336fb3ab7ed85bfe1af818992db70581290cff33;hb=2f22c0c38f17e75be5541089076885442aaa2377;hp=0f3f3391d76907d8e7f700d0137e12c3bdc2a33d;hpb=9afde8772159bd3436f1f5b7862960307710ae5a;p=ckeditor.git
diff --git a/_source/plugins/scayt/plugin.js b/_source/plugins/scayt/plugin.js
index 0f3f339..336fb3a 100644
--- a/_source/plugins/scayt/plugin.js
+++ b/_source/plugins/scayt/plugin.js
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
@@ -95,15 +95,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
plugin.instances[ editor.name ] = scayt_control;
- //window.scayt.uiTags
- var menuGroup = 'scaytButton';
- var uiTabs = window.scayt.uiTags;
- var fTabs = [];
-
- for ( var i = 0, l=4; i < l; i++ )
- fTabs.push( uiTabs[i] && plugin.uiTabs[i] );
-
- plugin.uiTabs = fTabs;
try {
scayt_control.setDisabled( plugin.isPaused( editor ) === false );
} catch (e) {}
@@ -117,7 +108,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Remove scripts.
var scripts = CKEDITOR.document.getElementsByTag( 'script' ),
scaytIdRegex = /^dojoIoScript(\d+)$/i,
- scaytSrcRegex = /^https?:\/\/svc\.spellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;
+ scaytSrcRegex = /^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;
for ( var i=0; i < scripts.count(); i++ )
{
@@ -356,6 +347,26 @@ CKEDITOR.plugins.scayt =
var scayt_instance = this.getScayt( editor );
return ( scayt_instance ) ? scayt_instance.disabled === false : false;
},
+ getUiTabs : function( editor )
+ {
+ var uiTabs = [];
+
+ // read UI tabs value from config
+ var configUiTabs = editor.config.scayt_uiTabs || "1,1,1";
+
+ // convert string to array
+ configUiTabs = configUiTabs.split( ',' );
+
+ // "About us" should be always shown for standard config
+ configUiTabs[3] = "1";
+
+ for ( var i = 0; i < 4; i++ ) {
+ uiTabs[i] = (typeof window.scayt != "undefined" && typeof window.scayt.uiTags != "undefined")
+ ? (parseInt(configUiTabs[i],10) && window.scayt.uiTags[i])
+ : parseInt(configUiTabs[i],10);
+ }
+ return uiTabs;
+ },
loadEngine : function( editor )
{
// SCAYT doesn't work with Firefox2, Opera and AIR.
@@ -383,7 +394,7 @@ CKEDITOR.plugins.scayt =
var protocol = document.location.protocol;
// Default to 'http' for unknown.
protocol = protocol.search( /https?:/) != -1? protocol : 'http:';
- var baseUrl = 'svc.spellchecker.net/scayt26/loader__base.js';
+ var baseUrl = 'svc.webspellchecker.net/scayt26/loader__base.js';
var scaytUrl = editor.config.scayt_srcUrl || ( protocol + '//' + baseUrl );
var scaytConfigBaseUrl = plugin.parseUrl( scaytUrl ).path + '/';
@@ -504,6 +515,22 @@ CKEDITOR.plugins.scayt =
init : function( editor )
{
+ // Delete span[data-scaytid] when text pasting in editor (#6921)
+ var dataFilter = editor.dataProcessor && editor.dataProcessor.dataFilter;
+ var dataFilterRules =
+ {
+ elements :
+ {
+ span : function( element )
+ {
+ var attrs = element.attributes;
+ if ( attrs && attrs[ 'data-scaytid' ] )
+ delete element.name;
+ }
+ }
+ };
+ dataFilter && dataFilter.addRules( dataFilterRules );
+
var moreSuggestions = {},
mainSuggestions = {};
@@ -512,27 +539,18 @@ CKEDITOR.plugins.scayt =
// Add Options dialog.
CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/options.js' ) );
- // read ui tags
- var confuiTabs = editor.config.scayt_uiTabs || '1,1,1';
- var uiTabs =[];
- // string to array convert
- confuiTabs = confuiTabs.split( ',' );
- // check array length ! always must be 3 filled with 1 or 0
- for ( var i=0, l=3; i < l; i++ )
- {
- var flag = parseInt( confuiTabs[i] || '1', 10 );
- uiTabs.push( flag );
- }
+
+ var uiTabs = plugin.getUiTabs( editor );
var menuGroup = 'scaytButton';
editor.addMenuGroup( menuGroup );
// combine menu items to render
- var uiMuneItems = {};
+ var uiMenuItems = {};
var lang = editor.lang.scayt;
// always added
- uiMuneItems.scaytToggle =
+ uiMenuItems.scaytToggle =
{
label : lang.enable,
command : commandName,
@@ -540,7 +558,7 @@ CKEDITOR.plugins.scayt =
};
if ( uiTabs[0] == 1 )
- uiMuneItems.scaytOptions =
+ uiMenuItems.scaytOptions =
{
label : lang.options,
group : menuGroup,
@@ -552,7 +570,7 @@ CKEDITOR.plugins.scayt =
};
if ( uiTabs[1] == 1 )
- uiMuneItems.scaytLangs =
+ uiMenuItems.scaytLangs =
{
label : lang.langs,
group : menuGroup,
@@ -563,7 +581,7 @@ CKEDITOR.plugins.scayt =
}
};
if ( uiTabs[2] == 1 )
- uiMuneItems.scaytDict =
+ uiMenuItems.scaytDict =
{
label : lang.dictionariesTab,
group : menuGroup,
@@ -574,7 +592,7 @@ CKEDITOR.plugins.scayt =
}
};
// always added
- uiMuneItems.scaytAbout =
+ uiMenuItems.scaytAbout =
{
label : editor.lang.scayt.about,
group : menuGroup,
@@ -585,10 +603,7 @@ CKEDITOR.plugins.scayt =
}
};
- uiTabs[3] = 1; // about us tab is always on
- plugin.uiTabs = uiTabs;
-
- editor.addMenuItems( uiMuneItems );
+ editor.addMenuItems( uiMenuItems );
editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON,
{
@@ -610,12 +625,14 @@ CKEDITOR.plugins.scayt =
editor.getMenuItem( 'scaytToggle' ).label = lang[ isEnabled ? 'disable' : 'enable' ];
+ var uiTabs = plugin.getUiTabs( editor );
+
return {
scaytToggle : CKEDITOR.TRISTATE_OFF,
- scaytOptions : isEnabled && plugin.uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- scaytLangs : isEnabled && plugin.uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- scaytDict : isEnabled && plugin.uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- scaytAbout : isEnabled && plugin.uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
+ scaytOptions : isEnabled && uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ scaytLangs : isEnabled && uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ scaytDict : isEnabled && uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ scaytAbout : isEnabled && uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
};
}
});
@@ -626,7 +643,7 @@ CKEDITOR.plugins.scayt =
editor.contextMenu.addListener( function( element, selection )
{
if ( !plugin.isScaytEnabled( editor )
- || selection.getCommonAncestor().isReadOnly() )
+ || selection.getRanges()[ 0 ].checkReadOnly() )
return null;
var scayt_control = plugin.getScayt( editor ),
@@ -646,15 +663,15 @@ CKEDITOR.plugins.scayt =
if ( !items_suggestion || !items_suggestion.length )
return null;
// Remove unused commands and menuitems
- for ( i in moreSuggestions )
+ for ( var m in moreSuggestions )
{
- delete editor._.menuItems[ i ];
- delete editor._.commands[ i ];
+ delete editor._.menuItems[ m ];
+ delete editor._.commands[ m ];
}
- for ( i in mainSuggestions )
+ for ( m in mainSuggestions )
{
- delete editor._.menuItems[ i ];
- delete editor._.commands[ i ];
+ delete editor._.menuItems[ m ];
+ delete editor._.commands[ m ];
}
moreSuggestions = {}; // Reset items.
mainSuggestions = {};
@@ -804,27 +821,28 @@ CKEDITOR.plugins.scayt =
})();
/**
- * If enabled (true), turns on SCAYT automatically after loading the editor.
+ * If enabled (set to true
), turns on SCAYT automatically
+ * after loading the editor.
* @name CKEDITOR.config.scayt_autoStartup
* @type Boolean
- * @default false
+ * @default false
* @example
* config.scayt_autoStartup = true;
*/
/**
* Defines the number of SCAYT suggestions to show in the main context menu.
- * The possible values are:
+ * Possible values are:
*
0
(zero) – All suggestions are displayed in the main context menu.5
* @example
* // Display only three suggestions in the main context menu.
* config.scayt_maxSuggestions = 3;
@@ -834,11 +852,11 @@ CKEDITOR.plugins.scayt =
*/
/**
- * Sets the customer ID for SCAYT. Required for migration from free version
- * with banner to paid version.
+ * Sets the customer ID for SCAYT. Required for migration from free,
+ * ad-supported version to paid, ad-free version.
* @name CKEDITOR.config.scayt_customerid
* @type String
- * @default ''
+ * @default ''
* @example
* // Load SCAYT using my customer ID.
* config.scayt_customerid = 'your-encrypted-customer-id';
@@ -846,10 +864,10 @@ CKEDITOR.plugins.scayt =
/**
* Enables/disables the "More Suggestions" sub-menu in the context menu.
- * The possible values are "on" or "off".
+ * Possible values are on
and off
.
* @name CKEDITOR.config.scayt_moreSuggestions
* @type String
- * @default 'on'
+ * @default 'on'
* @example
* // Disables the "More Suggestions" sub-menu.
* config.scayt_moreSuggestions = 'off';
@@ -857,91 +875,99 @@ CKEDITOR.plugins.scayt =
/**
* Customizes the display of SCAYT context menu commands ("Add Word", "Ignore"
- * and "Ignore All"). It must be a string with one or more of the following
- * words separated by a pipe ("|"):
+ * and "Ignore All"). This must be a string with one or more of the following
+ * words separated by a pipe character ("|"):
* off
– disables all options.all
– enables all options.ignore
– enables the "Ignore" option.ignoreall
– enables the "Ignore All" option.add
– enables the "Add Word" option.'all'
* @example
* // Show only "Add Word" and "Ignore All" in the context menu.
* config.scayt_contextCommands = 'add|ignoreall';
*/
/**
- * Sets the default spellchecking language for SCAYT.
+ * Sets the default spell checking language for SCAYT. Possible values are:
+ * en_US
, en_GB
, pt_BR
, da_DK
,
+ * nl_NL
, en_CA
, fi_FI
, fr_FR
,
+ * fr_CA
, de_DE
, el_GR
, it_IT
,
+ * nb_NO
, pt_PT
, es_ES
, sv_SE
.
* @name CKEDITOR.config.scayt_sLang
* @type String
- * @default 'en_US'
+ * @default 'en_US'
* @example
* // Sets SCAYT to German.
* config.scayt_sLang = 'de_DE';
*/
/**
- * Sets the visibility of the SCAYT tabs in the settings dialog and toolbar
- * button. The value must contain a "1" (enabled) or "0" (disabled) number for
- * each of the following entries, in this precise order, separated by a
- * comma (","): "Options", "Languages" and "Dictionary".
+ * Sets the visibility of particular tabs in the SCAYT dialog window and toolbar
+ * button. This setting must contain a 1
(enabled) or 0
+ * (disabled) value for each of the following entries, in this precise order,
+ * separated by a comma (","): "Options", "Languages", and "Dictionary".
* @name CKEDITOR.config.scayt_uiTabs
* @type String
- * @default '1,1,1'
+ * @default '1,1,1'
* @example
- * // Hide the "Languages" tab.
+ * // Hides the "Languages" tab.
* config.scayt_uiTabs = '1,0,1';
*/
/**
- * Set the URL to SCAYT core. Required to switch to licensed version of SCAYT application.
- * Further details at http://wiki.spellchecker.net/doku.php?id=3rd:wysiwyg:fckeditor:wscckf3l .
+ * Sets the URL to SCAYT core. Required to switch to the licensed version of SCAYT application.
+ * Further details available at
+ *
+ * http://wiki.webspellchecker.net/doku.php?id=migration:hosredfreetolicensedck.
* @name CKEDITOR.config.scayt_srcUrl
* @type String
- * @default ''
+ * @default ''
* @example
* config.scayt_srcUrl = "http://my-host/spellcheck/lf/scayt/scayt.js";
*/
/**
- * Links SCAYT to custom dictionaries. It's a string containing dictionary ids
- * separared by commas (","). Available only for licensed version.
- * Further details at http://wiki.spellchecker.net/doku.php?id=custom_dictionary_support .
+ * Links SCAYT to custom dictionaries. This is a string containing dictionary IDs
+ * separared by commas (","). Available only for the licensed version.
+ * Further details at
+ *
+ * http://wiki.webspellchecker.net/doku.php?id=installationandconfiguration:customdictionaries:licensed.
* @name CKEDITOR.config.scayt_customDictionaryIds
* @type String
- * @default ''
+ * @default ''
* @example
* config.scayt_customDictionaryIds = '3021,3456,3478"';
*/
/**
- * Makes it possible to activate a custom dictionary on SCAYT. The user
- * dictionary name must be used. Available only for licensed version.
+ * Makes it possible to activate a custom dictionary in SCAYT. The user
+ * dictionary name must be used. Available only for the licensed version.
* @name CKEDITOR.config.scayt_userDictionaryName
* @type String
- * @default ''
+ * @default ''
* @example
* config.scayt_userDictionaryName = 'MyDictionary';
*/
/**
- * Define order of placing of SCAYT context menu items by groups.
- * It must be a string with one or more of the following
- * words separated by a pipe ("|"):
+ * Defines the order SCAYT context menu items by groups.
+ * This must be a string with one or more of the following
+ * words separated by a pipe character ("|"):
* suggest
– main suggestion word list,moresuggest
– more suggestions word list,control
– SCAYT commands, such as "Ignore" and "Add Word".'suggest|moresuggest|control'
* @example
* config.scayt_contextMenuItemsOrder = 'moresuggest|control|suggest';
*/