mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-03-02 21:56:23 +00:00
Monotone-Parent: dbd490c81ea6cac4c12b2e17661e2fef43219e68 Monotone-Revision: 0801dc9f1e4fdc49ea44fc0450fb025c2639ed26 Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-06-25T19:18:02 Monotone-Branch: ca.inverse.sogo
9 lines
6.1 KiB
JavaScript
9 lines
6.1 KiB
JavaScript
/*
|
|
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
|
For licensing, see LICENSE.html or http://ckeditor.com/license
|
|
*/
|
|
|
|
(function(){var a='scaytcheck',b='scayt_enabled',c='scayt_disabled',d='',e=function(){var i=this;dojo.requireLocalization('scayt','caption','','ROOT');var j=function(){var m=CKEDITOR.config.scaytParams||{};m.srcNodeRef=i.document.getWindow().$.frameElement;m.assocApp='CKEDITOR.'+CKEDITOR.version+'@'+CKEDITOR.revision;var n=new scayt(m),o=f.instances[i.name];if(o){n.sLang=o.sLang;n.option(o.option());n.paused=o.paused;}f.instances[i.name]=n;try{n.setDisabled(n.paused===false);}catch(p){}i.fire('showScaytState');};i.on('contentDom',j);i.on('contentDomUnload',function(){var m=CKEDITOR.document.getElementsByTag('script'),n=/^dojoIoScript(\d+)$/i,o=/^https?:\/\/svc\.spellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;for(var p=0;p<m.count();p++){var q=m.getItem(p),r=q.getId(),s=q.getAttribute('src');if(r&&s&&r.match(n)&&s.match(o))q.remove();}});i.on('beforeCommandExec',function(m){if(m.data.name=='source'&&i.mode=='wysiwyg'){var n=f.getScayt(i);if(n){n.paused=!n.disabled;n.setDisabled(true);}}});i.on('afterSetData',function(){if(f.isScaytEnabled(i))f.getScayt(i).refresh();});i.on('scaytDialog',function(m){m.data.djConfig=djConfig;m.data.scayt_control=f.getScayt(i);m.data.tab=d;m.data.scayt=scayt;});var k=i.dataProcessor,l=k&&k.htmlFilter;if(l)l.addRules({elements:{span:function(m){if(m.attributes.scayt_word&&m.attributes.scaytid){delete m.name;return m;}}}});if(i.document)j();};CKEDITOR.plugins.scayt={engineLoaded:false,instances:{},getScayt:function(i){var j=this.instances[i.name];return j;},isScaytReady:function(i){return this.engineLoaded===true&&'undefined'!==typeof scayt&&this.getScayt(i);},isScaytEnabled:function(i){var j=this.getScayt(i);return j?j.disabled===false:false;},loadEngine:function(i){if(this.engineLoaded===true)return e.apply(i);else if(this.engineLoaded==-1)return CKEDITOR.on('scaytReady',function(){e.apply(i);});CKEDITOR.on('scaytReady',e,i);CKEDITOR.on('scaytReady',function(){this.engineLoaded=true;},this,null,0);this.engineLoaded=-1;var j=function(o){var p=o.match(/(.*)[\/\\]([^\/\\]+\.\w+)$/);return{path:p[1],file:p[2]};},k=document.location.protocol,l='svc.spellchecker.net/spellcheck/lf/scayt/scayt.js',m=i.config.scaytParams.srcScayt||k+'//'+l,n=j(m).path+'/';djScaytConfig={baseUrl:n,addOnLoad:[function(){CKEDITOR.fireOnce('scaytReady');}],isDebug:false};CKEDITOR.document.getHead().append(CKEDITOR.document.createElement('script',{attributes:{type:'text/javascript',src:m}}));return null;}};var f=CKEDITOR.plugins.scayt,g=function(i,j,k,l,m,n,o){i.addCommand(l,m);
|
|
i.addMenuItem(l,{label:k,command:l,group:n,order:o});},h={preserveState:true,exec:function(i){if(f.isScaytReady(i)){var j=f.isScaytEnabled(i);this.setState(j?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_ON);var k=f.getScayt(i);k.setDisabled(j);}else if(!i.config.scayt_autoStartup&&f.engineLoaded>=0){this.setState(CKEDITOR.TRISTATE_DISABLED);i.on('showScaytState',function(){this.removeListener();this.setState(f.isScaytEnabled(i)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF);},this);f.loadEngine(i);}}};CKEDITOR.plugins.add('scayt',{requires:['menubutton'],beforeInit:function(i){i.config.menu_groups='scayt_suggest,scayt_moresuggest,scayt_control,'+i.config.menu_groups;},init:function(i){var j={},k={},l=i.addCommand(a,h);CKEDITOR.dialog.add(a,CKEDITOR.getUrl(this.path+'dialogs/options.js'));var m='scaytButton';i.addMenuGroup(m);i.addMenuItems({scaytToggle:{label:i.lang.scayt.enable,command:a,group:m},scaytOptions:{label:i.lang.scayt.options,group:m,onClick:function(){d='options';i.openDialog(a);}},scaytLangs:{label:i.lang.scayt.langs,group:m,onClick:function(){d='langs';i.openDialog(a);}},scaytAbout:{label:i.lang.scayt.about,group:m,onClick:function(){d='about';i.openDialog(a);}}});if(!CKEDITOR.env.ie)i.ui.add('Scayt',CKEDITOR.UI_MENUBUTTON,{label:i.lang.scayt.title,title:i.lang.scayt.title,className:'cke_button_scayt',onRender:function(){l.on('state',function(){this.setState(l.state);},this);},onMenu:function(){var o=f.isScaytEnabled(i);i.getMenuItem('scaytToggle').label=i.lang.scayt[o?'disable':'enable'];return{scaytToggle:CKEDITOR.TRISTATE_OFF,scaytOptions:o?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytLangs:o?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytAbout:o?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED};}});if(i.contextMenu&&i.addMenuItems)i.contextMenu.addListener(function(o,p){var q=f.getScayt(i);if(!f.isScaytEnabled(i)||!o||!o.$)return null;var r=q.getWord(o.$);if(!r)return null;var s=q.getLang(),t={},u=scayt.getSuggestion(r,s);if(!u||!u.length)return null;for(i in j){delete i._.menuItems[i];delete i._.commands[i];}for(i in k){delete i._.menuItems[i];delete i._.commands[i];}j={};k={};var v=false;for(var w=0,x=u.length;w<x;w+=1){var y='scayt_suggestion_'+u[w].replace(' ','_'),z=(function(D,E){return{exec:function(F){q.replace(D,E);}};})(o.$,u[w]);if(w<i.config.scayt_maxSuggestions){g(i,'button_'+y,u[w],y,z,'scayt_suggest',w+1);t[y]=CKEDITOR.TRISTATE_OFF;k[y]=CKEDITOR.TRISTATE_OFF;}else{g(i,'button_'+y,u[w],y,z,'scayt_moresuggest',w+1);j[y]=CKEDITOR.TRISTATE_OFF;
|
|
v=true;}}if(v)i.addMenuItem('scayt_moresuggest',{label:i.lang.scayt.moreSuggestions,group:'scayt_moresuggest',order:10,getItems:function(){return j;}});var A={exec:function(){q.ignore(o.$);}},B={exec:function(){q.ignoreAll(o.$);}},C={exec:function(){scayt.addWordToUserDictionary(o.$);}};g(i,'ignore',i.lang.scayt.ignore,'scayt_ignore',A,'scayt_control',1);g(i,'ignore_all',i.lang.scayt.ignoreAll,'scayt_ignore_all',B,'scayt_control',2);g(i,'add_word',i.lang.scayt.addWord,'scayt_add_word',C,'scayt_control',3);k.scayt_moresuggest=CKEDITOR.TRISTATE_OFF;k.scayt_ignore=CKEDITOR.TRISTATE_OFF;k.scayt_ignore_all=CKEDITOR.TRISTATE_OFF;k.scayt_add_word=CKEDITOR.TRISTATE_OFF;return k;});if(i.config.scayt_autoStartup){var n=function(){i.removeListener('showScaytState',n);l.setState(f.isScaytEnabled(i)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF);};i.on('showScaytState',n);f.loadEngine(i);}}});})();CKEDITOR.config.scaytParams=CKEDITOR.config.scaytParams||{};CKEDITOR.config.scayt_maxSuggestions=5;CKEDITOR.config.scayt_autoStartup=false;
|