X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fplugins%2Fscayt%2Fdialogs%2Foptions.js;h=f60eee90528f0b78dc86b90dd7c121615a5ac881;hb=fb481ba0a7d298e3e7b9034fcb9f2afdc6e8e796;hp=120adbc4d51fd42b7810724ed8e53d2d349af488;hpb=ea7e3453c7b0f023b050aca6d9f83ab372860d91;p=ckeditor.git diff --git a/_source/plugins/scayt/dialogs/options.js b/_source/plugins/scayt/dialogs/options.js index 120adbc..f60eee9 100644 --- a/_source/plugins/scayt/dialogs/options.js +++ b/_source/plugins/scayt/dialogs/options.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2009, 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 */ @@ -8,115 +8,153 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) var firstLoad = true, captions, doc = CKEDITOR.document, - tags = [], + editorName = editor.name, + tags = CKEDITOR.plugins.scayt.getUiTabs( editor ), i, contents = [], - userDicActive = false; - var dic_buttons = [ - // [0] contains buttons for creating - "dic_create,dic_restore", - // [1] contains buton for manipulation - "dic_rename,dic_delete" - ]; + userDicActive = 0, + dic_buttons = [ + // [0] contains buttons for creating + "dic_create_" + editorName + ",dic_restore_" + editorName, + // [1] contains buton for manipulation + "dic_rename_" + editorName + ",dic_delete_" + editorName + ], + optionsIds = [ 'mixedCase', 'mixedWithDigits', 'allCaps', 'ignoreDomainNames' ]; + + // common operations + + function getBOMAllOptions() + { + if (typeof document.forms["optionsbar_" + editorName] != "undefined") + return document.forms["optionsbar_" + editorName]["options"]; + return []; + } + function getBOMAllLangs() + { + if (typeof document.forms["languagesbar_" + editorName] != "undefined") + return document.forms["languagesbar_" + editorName]["scayt_lang"]; + return []; + } + + function setCheckedValue( radioObj, newValue ) + { + if ( !radioObj ) + return; + var radioLength = radioObj.length; + if ( radioLength == undefined ) + { + radioObj.checked = radioObj.value == newValue.toString(); + return; + } + for ( var i = 0; i < radioLength; i++ ) + { + radioObj[i].checked = false; + if ( radioObj[i].value == newValue.toString() ) + radioObj[i].checked = true; + } + } + + var lang = editor.lang.scayt; var tags_contents = [ { id : 'options', - label : editor.lang.scayt.optionsTab, + label : lang.optionsTab, elements : [ { type : 'html', id : 'options', - html : '
' } ] }, { id : 'langs', - label : editor.lang.scayt.languagesTab, + label : lang.languagesTab, elements : [ { type : 'html', id : 'langs', - html : '' + captions[ 'about_throwt_image' ] + '
'+ - '' + captions[ 'version' ] + dialog.data.scayt.version.toString() + '
' + - '' + captions[ 'about_throwt_copy' ] + '
'; + var about = '' + + '' + captions[ 'version' ] + window.scayt.getAboutInfo().version.toString() + '
' + + '' + captions[ 'about_throwt_copy' ] + '
'; - doc.getById( 'scayt_about' ).setHtml( about ); + doc.getById( 'scayt_about_' + editorName ).setHtml( about ); // Create languages tab. var createOption = function( option, list ) @@ -272,107 +290,99 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) }; }; - var langList = []; - for ( i in lang_list.rtl ) - langList[ langList.length ] = createOption( i, lang_list.ltr ); + if ( tags[1] ==1 ) + { + for ( i in lang_list.rtl ) + langList[ langList.length ] = createOption( i, lang_list.ltr ); - for ( i in lang_list.ltr ) - langList[ langList.length ] = createOption( i, lang_list.ltr ); + for ( i in lang_list.ltr ) + langList[ langList.length ] = createOption( i, lang_list.ltr ); - langList.sort( function( lang1, lang2 ) - { - return ( lang2.lang > lang1.lang ) ? -1 : 1 ; - }); + langList.sort( function( lang1, lang2 ) + { + return ( lang2.lang > lang1.lang ) ? -1 : 1 ; + }); - var fieldL = doc.getById( 'scayt_lcol' ), - fieldR = doc.getById( 'scayt_rcol' ); - for ( i=0; i < langList.length; i++ ) - { - var field = ( i < langList.length / 2 ) ? fieldL : fieldR; - field.append( langList[ i ].radio ); + var fieldL = doc.getById( 'scayt_lcol_' + editorName ), + fieldR = doc.getById( 'scayt_rcol_' + editorName ); + for ( i=0; i < langList.length; i++ ) + { + var field = ( i < langList.length / 2 ) ? fieldL : fieldR; + field.append( langList[ i ].radio ); + } } // user dictionary handlers var dic = {}; dic.dic_create = function( el, dic_name , dic_buttons ) - { - // comma separated button's ids include repeats if exists - var all_buttons = dic_buttons[0] + ',' + dic_buttons[1]; + { + // comma separated button's ids include repeats if exists + var all_buttons = dic_buttons[0] + ',' + dic_buttons[1]; - var err_massage = captions["err_dic_create"]; - var suc_massage = captions["succ_dic_create"]; - //console.info("--plugin "); + var err_massage = captions["err_dic_create"]; + var suc_massage = captions["succ_dic_create"]; - window.scayt.createUserDictionary(dic_name, - function(arg) - { - //console.info( "dic_create callback called with args" , arg ); - hide_dic_buttons ( all_buttons ); - display_dic_buttons ( dic_buttons[1] ); - suc_massage = suc_massage.replace("%s" , arg.dname ); - dic_success_message (suc_massage); - }, - function(arg) - { - //console.info( "dic_create errorback called with args" , arg ) - err_massage = err_massage.replace("%s" ,arg.dname ); - dic_error_message ( err_massage + "( "+ (arg.message || "") +")"); - }); + window.scayt.createUserDictionary( dic_name, + function( arg ) + { + hide_dic_buttons ( all_buttons ); + display_dic_buttons ( dic_buttons[1] ); + suc_massage = suc_massage.replace("%s" , arg.dname ); + dic_success_message (suc_massage); + }, + function( arg ) + { + err_massage = err_massage.replace("%s" ,arg.dname ); + dic_error_message ( err_massage + "( "+ (arg.message || "") +")"); + }); - }; + }; dic.dic_rename = function( el, dic_name ) - { - // - // try to rename dictionary - // @TODO: rename dict - //console.info ( captions["err_dic_rename"] ) - var err_massage = captions["err_dic_rename"] || ""; - var suc_massage = captions["succ_dic_rename"] || ""; - window.scayt.renameUserDictionary(dic_name, - function(arg) - { - //console.info( "dic_rename callback called with args" , arg ); - suc_massage = suc_massage.replace("%s" , arg.dname ); - set_dic_name( dic_name ); - dic_success_message ( suc_massage ); - }, - function(arg) - { - //console.info( "dic_rename errorback called with args" , arg ) - err_massage = err_massage.replace("%s" , arg.dname ); - set_dic_name( dic_name ); - dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" ); - }); - }; + { + // + // try to rename dictionary + var err_massage = captions["err_dic_rename"] || ""; + var suc_massage = captions["succ_dic_rename"] || ""; + window.scayt.renameUserDictionary( dic_name, + function( arg ) + { + suc_massage = suc_massage.replace("%s" , arg.dname ); + set_dic_name( dic_name ); + dic_success_message ( suc_massage ); + }, + function( arg ) + { + err_massage = err_massage.replace("%s" , arg.dname ); + set_dic_name( dic_name ); + dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" ); + }); + }; - dic.dic_delete = function ( el, dic_name , dic_buttons ) - { - var all_buttons = dic_buttons[0] + ',' + dic_buttons[1]; - var err_massage = captions["err_dic_delete"]; - var suc_massage = captions["succ_dic_delete"]; + dic.dic_delete = function( el, dic_name , dic_buttons ) + { + var all_buttons = dic_buttons[0] + ',' + dic_buttons[1]; + var err_massage = captions["err_dic_delete"]; + var suc_massage = captions["succ_dic_delete"]; - // try to delete dictionary - // @TODO: delete dict - window.scayt.deleteUserDictionary( - function(arg) - { - //console.info( "dic_delete callback " , dic_name ,arg ); - suc_massage = suc_massage.replace("%s" , arg.dname ); - hide_dic_buttons ( all_buttons ); - display_dic_buttons ( dic_buttons[0] ); - set_dic_name( "" ); // empty input field - dic_success_message( suc_massage ); - }, - function(arg) - { - //console.info( " dic_delete errorback called with args" , arg ) - err_massage = err_massage.replace("%s" , arg.dname ); - dic_error_message(err_massage); - }); - }; + // try to delete dictionary + window.scayt.deleteUserDictionary( + function( arg ) + { + suc_massage = suc_massage.replace("%s" , arg.dname ); + hide_dic_buttons ( all_buttons ); + display_dic_buttons ( dic_buttons[0] ); + set_dic_name( "" ); // empty input field + dic_success_message( suc_massage ); + }, + function( arg ) + { + err_massage = err_massage.replace("%s" , arg.dname ); + dic_error_message(err_massage); + }); + }; - dic.dic_restore = dialog.dic_restore || function ( el, dic_name , dic_buttons ) + dic.dic_restore = dialog.dic_restore || function( el, dic_name , dic_buttons ) { // try to restore existing dictionary var all_buttons = dic_buttons[0] + ',' + dic_buttons[1]; @@ -380,29 +390,48 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) var suc_massage = captions["succ_dic_restore"]; window.scayt.restoreUserDictionary(dic_name, - function(arg) - { - //console.info( "dic_restore callback called with args" , arg ); - suc_massage = suc_massage.replace("%s" , arg.dname ); - hide_dic_buttons ( all_buttons ); - display_dic_buttons(dic_buttons[1]); - dic_success_message( suc_massage ); - }, - function(arg) - { - //console.info( " dic_restore errorback called with args" , arg ) - err_massage = err_massage.replace("%s" , arg.dname ); - dic_error_message( err_massage ); - }); + function( arg ) + { + suc_massage = suc_massage.replace("%s" , arg.dname ); + hide_dic_buttons ( all_buttons ); + display_dic_buttons(dic_buttons[1]); + dic_success_message( suc_massage ); + }, + function( arg ) + { + err_massage = err_massage.replace("%s" , arg.dname ); + dic_error_message( err_massage ); + }); }; + function onDicButtonClick( ev ) + { + var dic_name = doc.getById('dic_name_' + editorName).getValue(); + if ( !dic_name ) + { + dic_error_message(" Dictionary name should not be empty. "); + return false; + } + try{ + var el = ev.data.getTarget().getParent(); + var id = /(dic_\w+)_[\w\d]+/.exec(el.getId())[1]; + dic[ id ].apply( null, [ el, dic_name, dic_buttons ] ); + } + catch(err) + { + dic_error_message(" Dictionary error. "); + } + + return true; + } + // ** bind event listeners var arr_buttons = ( dic_buttons[0] + ',' + dic_buttons[1] ).split( ',' ), l; for ( i = 0, l = arr_buttons.length ; i < l ; i += 1 ) { - var dic_button = doc.getById(arr_buttons[i]); + var dic_button = doc.getById(arr_buttons[i]); if ( dic_button ) dic_button.on( 'click', onDicButtonClick, this ); } @@ -411,84 +440,98 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) var reload = function() { var dialog = this; + // for enabled options tab + if ( tags[0] == 1 ){ + var opto = getBOMAllOptions(); - // Animate options. - for ( var i in dialog.options ) - { - var checkbox = doc.getById( i ); - if ( checkbox ) + // Animate options. + for ( var k=0,l = opto.length; k