X-Git-Url: https://jasonwoof.com/gitweb/?p=ckeditor.git;a=blobdiff_plain;f=_source%2Fplugins%2Fscayt%2Fdialogs%2Foptions.js;h=feb3f0e91fb069a3f7d10837a35ee39a629579b4;hp=120adbc4d51fd42b7810724ed8e53d2d349af488;hb=941b0a9ba4e673e292510d80a5a86806994b8ea6;hpb=7cd80714081a8ffdf4a1a8d2c72f120ed5ef3d6d diff --git a/_source/plugins/scayt/dialogs/options.js b/_source/plugins/scayt/dialogs/options.js index 120adbc..feb3f0e 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-2010, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ @@ -11,13 +11,40 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) tags = [], 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 = false, + dic_buttons = [ + // [0] contains buttons for creating + "dic_create,dic_restore", + // [1] contains buton for manipulation + "dic_rename,dic_delete" + ], + optionsIds= [ 'mixedCase','mixedWithDigits','allCaps','ignoreDomainNames' ]; + + // common operations + + function getBOMAllOptions () { + return document.forms.optionsbar["options"]; + } + function getBOMAllLangs () { + return document.forms.languagesbar["scayt_lang"]; + } + + 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 tags_contents = [ { id : 'options', @@ -26,25 +53,25 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) { type : 'html', id : 'options', - html : '
' + + html : '
' + '
' + '
' + - ' ' + + ' ' + ' ' + '
' + '
' + - ' ' + + ' ' + ' ' + '
' + '
' + - ' ' + + ' ' + ' ' + '
' + '
' + - ' ' + + ' ' + ' ' + '
' + - '
' + '
' } ] }, @@ -55,11 +82,11 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) { type : 'html', id : 'langs', - html : '
' + + html : '
' + '
' + - '
' + - '
' + - '
' + '
' + + '
' + + '
' } ] }, @@ -70,8 +97,8 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) { type : 'html', style: '', - id : 'dic', - html : '
' + + id : 'dictionaries', + html : '
' + '
' + '
' + ' Dictionary name
'+ @@ -90,7 +117,7 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) ' ' + '
' + '
' + - '
' + '
' } ] }, @@ -101,16 +128,17 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) { type : 'html', id : 'about', - style : 'margin: 10px 40px;', + style : 'margin: 5px 5px;', html : '
' } ] } ]; + var dialogDefiniton = { title : editor.lang.scayt.title, - minWidth : 340, - minHeight : 200, + minWidth : 360, + minHeight : 220, onShow : function() { var dialog = this; @@ -128,15 +156,15 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) var stop = 0; if ( firstLoad ) { - dialog.data.scayt.getCaption( 'en', function( caps ) - { - if ( stop++ > 0 ) // Once only - return; - captions = caps; - init_with_captions.apply( dialog ); - reload.apply( dialog ); - firstLoad = false; - }); + dialog.data.scayt.getCaption( editor.langCode || 'en', function( caps ) + { + if ( stop++ > 0 ) // Once only + return; + captions = caps; + init_with_captions.apply( dialog ); + reload.apply( dialog ); + firstLoad = false; + }); } else reload.apply( dialog ); @@ -145,65 +173,43 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) }, onOk : function() { - var scayt_control = this.data.scayt_control, - o = scayt_control.option(), - c = 0; - - // Set up options if any was set. - for ( var i in this.options ) - { - if (o[i] != this.options[ i ] && c === 0 ) - { - scayt_control.option( this.options ); - c++; - } - } - + var scayt_control = this.data.scayt_control; + scayt_control.option( this.options ); // Setup languge if it was changed. var csLang = this.chosed_lang; - if ( csLang && this.data.sLang != csLang ) - { - scayt_control.setLang( csLang ); - c++; - } - if ( c > 0 ) - scayt_control.refresh(); + scayt_control.setLang( csLang ); + scayt_control.refresh(); + }, + onCancel: function() + { + var o = getBOMAllOptions(); + for (i in o) + o[i].checked = false; + + setCheckedValue(getBOMAllLangs(),""); }, contents : contents - }; + }; var scayt_control = CKEDITOR.plugins.scayt.getScayt( editor ); - if ( scayt_control ) - { - tags = scayt_control.uiTags; - } - for ( i in tags ) { + tags = CKEDITOR.plugins.scayt.uiTabs; + + for ( i in tags ) + { if ( tags[ i ] == 1 ) contents[ contents.length ] = tags_contents[ i ]; } if ( tags[2] == 1 ) userDicActive = true; - function onDicButtonClick() - { - var dic_name = doc.getById('dic_name').getValue(); - if ( !dic_name ) - { - dic_error_message(" Dictionary name should not be empty. "); - return false; - } - //apply handler - window.dic[ this.getId() ].apply( null, [ this, dic_name, dic_buttons ] ); - return true; - } var init_with_captions = function() { var dialog = this, lang_list = dialog.data.scayt.getLangList(), buttons = [ 'dic_create','dic_delete','dic_rename','dic_restore' ], - labels = [ 'mixedCase','mixedWithDigits','allCaps','ignoreDomainNames' ], + labels = optionsIds, i; // Add buttons titles @@ -219,18 +225,21 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) // Fill options and dictionary labels. - for ( i in labels ) + if (tags[0] == 1) { - var label = 'label_' + labels[ i ], - labelElement = doc.getById( label ); - - if ( 'undefined' != typeof labelElement - && 'undefined' != typeof captions[ label ] - && 'undefined' != typeof dialog.options[labels[ i ]] ) + for ( i in labels ) { - labelElement.setHtml( captions[ label ] ); - var labelParent = labelElement.getParent(); - labelParent.$.style.display = "block"; + var label = 'label_' + labels[ i ], + labelElement = doc.getById( label ); + + if ( 'undefined' != typeof labelElement + && 'undefined' != typeof captions[ label ] + && 'undefined' != typeof dialog.options[labels[ i ]] ) + { + labelElement.setHtml( captions[ label ] ); + var labelParent = labelElement.getParent(); + labelParent.$.style.display = "block"; + } } } @@ -273,104 +282,97 @@ 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' ), + 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 ); + } } // 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"]; + { + 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 ) { @@ -381,28 +383,45 @@ CKEDITOR.dialog.add( 'scaytcheck', function( editor ) 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 ); - }, + { + 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 ); - }); + { + err_massage = err_massage.replace("%s" , arg.dname ); + dic_error_message( err_massage ); + }); }; + function onDicButtonClick( ev ) + { + var dic_name = doc.getById('dic_name').getValue(); + if ( !dic_name ) + { + dic_error_message(" Dictionary name should not be empty. "); + return false; + } + try{ + var el = id = ev.data.getTarget().getParent(); + var id = el.getId(); + 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 +430,104 @@ 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' + m + '' ); - } - function dic_success_message ( m ) - { - doc.getById('dic_message').setHtml('' + m + '') ; - } + { + doc.getById('dic_message').setHtml('' + m + '' ); + } + function dic_success_message ( m ) + { + doc.getById('dic_message').setHtml('' + m + '') ; + } function display_dic_buttons ( sIds ) - { - - sIds = String( sIds ); - var aIds = sIds.split(','); - for ( var i=0, l = aIds.length; i < l ; i+=1) - { - doc.getById( aIds[i] ).$.style.display = "inline"; - } + { + sIds = String( sIds ); + var aIds = sIds.split(','); + for ( var i=0, l = aIds.length; i < l ; i+=1) + { + doc.getById( aIds[i] ).$.style.display = "inline"; } + + } function hide_dic_buttons ( sIds ) + { + sIds = String( sIds ); + var aIds = sIds.split(','); + for ( var i = 0, l = aIds.length; i < l ; i += 1 ) { - sIds = String( sIds ); - var aIds = sIds.split(','); - for ( var i = 0, l = aIds.length; i < l ; i += 1 ) - { - doc.getById( aIds[i] ).$.style.display = "none"; - } + doc.getById( aIds[i] ).$.style.display = "none"; } + } function set_dic_name ( dic_name ) - { - doc.getById('dic_name').$.value= dic_name; - } + { + doc.getById('dic_name').$.value= dic_name; + } return dialogDefiniton; });