Changeset 158


Ignore:
Timestamp:
04/19/2009 10:49:55 PM (3 years ago)
Author:
ofer
Message:

Many cleanups at the translation dialog, fixes for IE6 and change notification

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/WordPress/plugin/transposh/js/transposh.js

    r157 r158  
    5151function getgt() 
    5252{ 
     53        jQuery(":button:contains('Suggest - Google')").attr("disabled","disabled").addClass("ui-state-disabled"); 
    5354        google.language.translate(jQuery("#tr_original").val(), "", transposh_params['lang'], function(result) { 
    54                   if (!result.error) { 
    55                     jQuery("#tr_translation").val(jQuery("<div>"+result.translation+"</div>").text()); 
    56                   }  
    57                 }); 
     55                if (!result.error) { 
     56                        jQuery("#tr_translation").val(jQuery("<div>"+result.translation+"</div>").text()) 
     57                        .keyup(); 
     58                }  
     59        }); 
    5860} 
    5961 
     
    181183}*/ 
    182184 
     185function confirm_close() { 
     186        jQuery('<div id="dial" title="Close without saving?"><p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>You have made a change to the translation. Are you sure you want to discard it?</p></div>').appendTo("body").dialog({ 
     187                        bgiframe: true, 
     188                        resizable: false, 
     189                        height:140, 
     190                        modal: true, 
     191                        overlay: { 
     192                                backgroundColor: '#000', 
     193                                opacity: 0.5 
     194                        }, 
     195                        buttons: { 
     196                                'Discard': function() { 
     197                                        jQuery("#tr_translation").data("edit", { changed: false}); 
     198                                        jQuery(this).dialog('close'); 
     199                                        jQuery("#tabs").dialog('close'); 
     200                                }, 
     201                                Cancel: function() { 
     202                                        jQuery(this).dialog('close'); 
     203                                } 
     204                        } 
     205                }); 
     206} 
     207 
    183208function translate_dialog(segment_id) { 
    184209        jQuery("#tabs").remove(); 
     
    188213        jQuery("#tabs").tabs('add',transposh_params['post_url']+'?tr_token_hist='+jQuery("#tr_" + segment_id).attr('token')+'&lang='+transposh_params['lang'],'History'); 
    189214        jQuery("#tabs-1").append( 
    190                         '<form>' +       
     215                        '<form id="tr_form">' +  
    191216                        '<fieldset>' + 
    192217                        '<label for="original">Original Text</label>' + 
    193                         '<input type="text" name="original" id="tr_original" class="text ui-widget-content ui-corner-all" readonly="y"/>' + 
     218                        '<textarea cols="80" row="3" name="original" id="tr_original" class="text ui-widget-content ui-corner-all" readonly="y"/>' + 
    194219                        '<label for="translation">Translate To</label>' + 
    195                         '<input type="text" name="translation" id="tr_translation" value="" class="text ui-widget-content ui-corner-all"/>' + 
     220                        '<textarea cols="80" row="3" name="translation" id="tr_translation" value="" class="text ui-widget-content ui-corner-all"/>' + 
    196221                        '</fieldset>' + 
    197222                        '</form>'); 
    198223        jQuery("#tr_original").val(jQuery("#tr_img_" + segment_id).attr('title')); 
    199224        jQuery("#tr_translation").val(jQuery("#tr_" + segment_id).html()); 
     225        jQuery("#tr_translation").data("edit", { changed: false}); 
     226        jQuery("#tr_translation").keyup(function(e){ 
     227                //alert(jQuery(this).val()); 
     228                //alert(jQuery("#tr_" + segment_id).text()); 
     229                if (jQuery("#tr_" + segment_id).text() != jQuery(this).val()) { 
     230                //if (e.which != 0) { 
     231                        jQuery(this).css("background","yellow"); 
     232                        jQuery(this).data("edit", { changed: true}); 
     233                } else { 
     234                        jQuery(this).css("background",""); 
     235                        jQuery(this).data("edit", { changed: false});                    
     236                } 
     237    }); 
     238        /*jQuery("#tr_translation").change(function(e){ 
     239                //alert(jQuery(this).val()); 
     240                //alert(jQuery("#tr_" + segment_id).text()); 
     241                //if (jQuery("#tr_" + segment_id).text() != jQuery(this).val()) { 
     242                        jQuery(this).css("background","yellow"); 
     243                        jQuery(this).data("edit", { changed: true}); 
     244    });*/ 
    200245        jQuery("#tabs").css("text-align","left"); 
    201246        jQuery("#tabs-1 label").css("display","block"); 
    202         jQuery("#tabs-1 input.text").css({'margin-bottom':'12px', 'width' : '95%', 'padding' : '.4em'}); 
     247        jQuery("#tabs-1 textarea.text").css({'margin-bottom':'12px', 'width' : '95%', 'padding' : '.4em'}); 
    203248        jQuery("#tabs").bind('tabsload', function(event, ui) { 
    204249                //TODO, formatting here, not server side 
     
    206251                jQuery("table thead tr",ui.panel).addClass("ui-widget-header"); 
    207252        }); 
    208         jQuery("#tabs").tabs().dialog({ 
    209                 bgiframe: true, 
    210                 modal: true, 
    211                 width: 460, 
    212                 buttons: { 
    213                         Suggest: function() { 
     253        jQuery("#tabs").bind('tabsselect', function(event, ui) { 
     254                // Change buttons 
     255                if (jQuery(ui.tab).text() == 'Translate') { 
     256                        jQuery("#tabs").dialog('option', 'buttons', tButtons); 
     257                } else { 
     258                        jQuery("#tabs").dialog('option', 'buttons', hButtons); 
     259                } 
     260        }); 
     261        jQuery("#tabs").bind('dialogbeforeclose', function(event, ui) { 
     262                //alert(jQuery('#tr_translation').data("edit").changed); 
     263                if(jQuery('#tr_translation').data("edit").changed) { 
     264                        confirm_close(); 
     265                        return false; 
     266                } 
     267        }); 
     268        var tButtons =  { 
     269                        'Suggest - Google': function() { 
    214270                                getgt(); 
    215271                        }, 
    216272                        Ok: function() { 
    217273                                var translation = jQuery('#tr_translation').val(); 
    218                                 ajax_translate(original,translation,0,segment_id); 
     274                                if(jQuery('#tr_translation').data("edit").changed) { 
     275                                        ajax_translate(jQuery("#tr_img_" + segment_id).attr('title'),translation,0,segment_id); 
     276                                        jQuery("#tr_translation").data("edit", { changed: false}); 
     277                                } 
    219278                                jQuery(this).dialog('close'); 
    220279                        } 
    221                 } 
    222         }).css("padding",0).dialog('open'); 
     280                };  
     281        var hButtons =  { 
     282                        Close: function() { 
     283                                jQuery(this).dialog('close'); 
     284                        } 
     285                };  
     286        jQuery("#tabs").tabs().dialog({ 
     287                bgiframe: true, 
     288                modal: true, 
     289                //width: 'auto', 
     290                width: 500, 
     291                buttons: tButtons                
     292        }).css("padding",0); 
     293        //if (!jQuery.support.boxModel) 
     294//              jQuery("#tabs").dialog('option', 'width', jQuery("#tabs fieldset").width()+50); 
     295        //alert(jQuery("#tabs fieldset").width()+50); 
     296        //alert(jQuery("#tabs").dialog('option', 'width')); 
    223297} 
    224298 
Note: See TracChangeset for help on using the changeset viewer.