src/cm/media/js/site/text_edit.js
changeset 66 7842b011403a
child 103 61fd17f9ab78
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/site/text_edit.js	Mon Dec 14 17:58:20 2009 +0100
@@ -0,0 +1,90 @@
+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() ;}) ;
+}) ;