src/cm/media/js/site/text_edit.js
author reno
Mon, 14 Dec 2009 17:58:20 +0100
changeset 66 7842b011403a
child 103 61fd17f9ab78
permissions -rw-r--r--
FIX : added edit.js for better pre-edit messages translations

function check_save(){
    needToConfirm = false;

    var newVersion = $('#id_new_version').attr('checked') ;
    var commentsKept = $('#id_keep_comments').attr('checked') ;

    var new_content = $('#id_content').val()
    var new_format = $('#id_format').val()
    
    if (commentsKept) {
        var pre_edit_url = tb_conf['pre_edit_url'] ;

        $.ajax({
           url: pre_edit_url,
           type:'POST',
           dataType:"json",
           data: { "new_content": new_content,  "new_format": new_format},
           success: function(obj){
               nb_removed = obj['nb_removed'];
               if (newVersion) {
                    if (nb_removed == 0) {
                        $('#edit_form').submit();
                    }
                    else {
                		var message = ngettext( 
                				'%(nb_comments)s comment will be removed because the text it applies to has been changed.',
                				'%(nb_comments)s comments will be removed because the text they apply to has been changed.', 
								nb_removed) ;
                		message += '<br />' ;
                		message += gettext( 'Do you want to continue?') ;
                		message = interpolate(message,{'nb_comments':nb_removed}, true) ;		
                		
                        $('#check_save_dialog').html(message) ;
                        $('#check_save_dialog').dialog('open') ;
                    }
               }
               else {                  
                   if (nb_removed == 0) {
                        $('#edit_form').submit();
                    }
                   else {
	               		var message = ngettext(  
	               				'%(nb_comments)s comment will be lost because the text it applies to has been changed.',
	               				'%(nb_comments)s comments will be lost because the text they apply to has been changed.',	               								
								nb_removed) ;
                		message += '<br />' ;
                		message += gettext( '(We suggest you create a new version)') ;
                		message += '<br />' ;
                		message += gettext( 'Do you want to continue?') ;
                		message = interpolate(message,{'nb_comments':nb_removed}, true) ;		

                 		$('#check_save_dialog').html(message) ;
                        $('#check_save_dialog').dialog('open') ;
                   }
               }
           },
           error: function(msg){
               alert("error: " + msg);
           }
        });
    }
    else {
        if (!newVersion) {
                var message = gettext("Since you chose not to create a new version all comments will be deleted") ;
        		message += '<br />' ;
        		message += gettext( 'Do you want to continue?') ;
                $('#check_save_dialog').html(message) ;
                $('#check_save_dialog').dialog('open') ;
        }
        else {
            $('#edit_form').submit();
        }
    }
}

$(function() {
	var buttons = {};
	buttons[gettext('No')] = function() {$(this).dialog('close');} ;
	buttons[gettext('Yes')] = function() {$(this).dialog('close');$('#edit_form').submit();} ;

    $('#check_save_dialog').dialog({
        bgiframe: true, 
        autoOpen: false,        
        title :gettext('Warning'),
        modal: true,
        buttons:buttons
    }) ;
    
    $("#save").click(function() { check_save() ;}) ;
}) ;