123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- /**
- * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.html or http://ckeditor.com/license
- */
- CKEDITOR.dialog.add( 'checkspell', function( editor ) {
- var number = CKEDITOR.tools.getNextNumber(),
- iframeId = 'cke_frame_' + number,
- textareaId = 'cke_data_' + number,
- errorBoxId = 'cke_error_' + number,
- interval,
- protocol = document.location.protocol || 'http:',
- errorMsg = editor.lang.wsc.notAvailable;
- var pasteArea =
- '<textarea' +
- ' style="display: none"' +
- ' id="' + textareaId + '"' +
- ' rows="10"' +
- ' cols="40">' +
- ' </textarea><div' +
- ' id="' + errorBoxId + '"' +
- ' style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;">' +
- '</div><iframe' +
- ' src=""' +
- ' style="width:100%;background-color:#f1f1e3;"' +
- ' frameborder="0"' +
- ' name="' + iframeId + '"' +
- ' id="' + iframeId + '"' +
- ' allowtransparency="1">' +
- '</iframe>';
- var wscCoreUrl = editor.config.wsc_customLoaderScript || ( protocol + '//loader.webspellchecker.net/sproxy_fck/sproxy.php' + '?plugin=fck2'
- + '&customerid=' + editor.config.wsc_customerId
- + '&cmd=script&doc=wsc&schema=22'
- );
- if ( editor.config.wsc_customLoaderScript ) {
- errorMsg += '<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">' +
- editor.lang.wsc.errorLoading.replace( /%s/g, editor.config.wsc_customLoaderScript ) + '</p>';
- }
- function burnSpelling( dialog, errorMsg ) {
- var i = 0;
- return function() {
- if ( typeof( window.doSpell ) == 'function' ) {
- //Call from window.setInteval expected at once.
- if ( typeof( interval ) != 'undefined' )
- window.clearInterval( interval );
- initAndSpell( dialog );
- } else if ( i++ == 180 ) // Timeout: 180 * 250ms = 45s.
- window._cancelOnError( errorMsg );
- };
- }
- window._cancelOnError = function( m ) {
- if ( typeof( window.WSC_Error ) == 'undefined' ) {
- CKEDITOR.document.getById( iframeId ).setStyle( 'display', 'none' );
- var errorBox = CKEDITOR.document.getById( errorBoxId );
- errorBox.setStyle( 'display', 'block' );
- errorBox.setHtml( m || editor.lang.wsc.notAvailable );
- }
- };
- function initAndSpell( dialog ) {
- var LangComparer = new window._SP_FCK_LangCompare(),
- // Language abbr standarts comparer.
- pluginPath = CKEDITOR.getUrl( editor.plugins.wsc.path + 'dialogs/' ),
- // Service paths corecting/preparing.
- framesetPath = pluginPath + 'tmpFrameset.html';
- // global var is used in FCK specific core
- // change on equal var used in fckplugin.js
- window.gFCKPluginName = 'wsc';
- LangComparer.setDefaulLangCode( editor.config.defaultLanguage );
- window.doSpell({
- ctrl: textareaId,
- lang: editor.config.wsc_lang || LangComparer.getSPLangCode( editor.langCode ),
- intLang: editor.config.wsc_uiLang || LangComparer.getSPLangCode( editor.langCode ),
- winType: iframeId, // If not defined app will run on winpopup.
- // Callback binding section.
- onCancel: function() {
- dialog.hide();
- },
- onFinish: function( dT ) {
- editor.focus();
- dialog.getParentEditor().setData( dT.value );
- dialog.hide();
- },
- // Some manipulations with client static pages.
- staticFrame: framesetPath,
- framesetPath: framesetPath,
- iframePath: pluginPath + 'ciframe.html',
- // Styles defining.
- schemaURI: pluginPath + 'wsc.css',
- userDictionaryName: editor.config.wsc_userDictionaryName,
- customDictionaryName: editor.config.wsc_customDictionaryIds && editor.config.wsc_customDictionaryIds.split( "," ),
- domainName: editor.config.wsc_domainName
- });
- // Hide user message console (if application was loaded more then after timeout).
- CKEDITOR.document.getById( errorBoxId ).setStyle( 'display', 'none' );
- CKEDITOR.document.getById( iframeId ).setStyle( 'display', 'block' );
- }
- return {
- title: editor.config.wsc_dialogTitle || editor.lang.wsc.title,
- minWidth: 485,
- minHeight: 380,
- buttons: [ CKEDITOR.dialog.cancelButton ],
- onShow: function() {
- var contentArea = this.getContentElement( 'general', 'content' ).getElement();
- contentArea.setHtml( pasteArea );
- contentArea.getChild( 2 ).setStyle( 'height', this._.contentSize.height + 'px' );
- if ( typeof( window.doSpell ) != 'function' ) {
- // Load script.
- CKEDITOR.document.getHead().append( CKEDITOR.document.createElement( 'script', {
- attributes: {
- type: 'text/javascript',
- src: wscCoreUrl
- }
- }));
- }
- var sData = editor.getData(); // Get the data to be checked.
- CKEDITOR.document.getById( textareaId ).setValue( sData );
- interval = window.setInterval( burnSpelling( this, errorMsg ), 250 );
- },
- onHide: function() {
- window.ooo = undefined;
- window.int_framsetLoaded = undefined;
- window.framesetLoaded = undefined;
- window.is_window_opened = false;
- },
- contents: [
- {
- id: 'general',
- label: editor.config.wsc_dialogTitle || editor.lang.wsc.title,
- padding: 0,
- elements: [
- {
- type: 'html',
- id: 'content',
- html: ''
- }
- ]
- }
- ]
- };
- });
- // Expand the spell-check frame when dialog resized. (#6829)
- CKEDITOR.dialog.on( 'resize', function( evt ) {
- var data = evt.data,
- dialog = data.dialog;
- if ( dialog._.name == 'checkspell' ) {
- var content = dialog.getContentElement( 'general', 'content' ).getElement(),
- iframe = content && content.getChild( 2 );
- iframe && iframe.setSize( 'height', data.height );
- iframe && iframe.setSize( 'width', data.width );
- }
- });
|