--- orig/autosave.js 2008-10-08 18:44:12.000000000 +0200 +++ ../modules/autosave/autosave.js 2008-10-08 18:42:36.000000000 +0200 @@ -5,22 +5,33 @@ var autosaved_forms; Drupal.attachAutosave = function() { - setTimeout('Drupal.saveForm()', Drupal.settings['period'] * 1000); + setTimeout(function () { Drupal.saveForm() }, Drupal.settings['period'] * 1000); } Drupal.saveForm = function() { if (typeof tinyMCE == 'object') { - editorBookmark = tinyMCE.selectedInstance.selection.getBookmark(); + var editorBookmark = tinyMCE.selectedInstance.selection.getBookmark(); editorIsDirty=true; tinyMCE.triggerSave(); } - + + if (typeof FCKeditorAPI == 'object') { + for( var i = 0 ; i < fckLaunchedJsId.length ; i++ ) { + var fck = FCKeditorAPI.GetInstance( fckLaunchedJsId[i] ) + fck.UpdateLinkedField(); + } + } + //for (var i = 0; i < form_ids.length; i++) { - form_id = Drupal.settings['form_id'].replace(/_/g, '-'); + var form_id = Drupal.settings['form_id'].replace(/_/g, '-'); //else form_id = Drupal.settings['form_id'][i].replace(/_/g, '-'); - serialized = $('#' + form_id).formHash(); + var serialized = $('#' + form_id).formHash(); //serialized['q'] = Drupal.settings['q'][0]; serialized['q'] = Drupal.settings['q']; + + // Do not serialize the buttons + delete serialized.op; + $.ajax({ url: Drupal.settings['autosave_url'], type: "POST", @@ -30,30 +41,30 @@ $('#autosave-status #status').html('Form autosaved.'); $('#autosave-status #operations').css('display', 'none').css('visibility', 'hidden'); $('#autosave-status').slideDown(); - setTimeout("$('#autosave-status').fadeOut('slow')", 3000); + setTimeout(function() { $('#autosave-status').fadeOut('slow') }, 3000); } }); //} if (typeof tinyMCE == 'object') { tinyMCE.selectedInstance.selection.moveToBookmark(editorBookmark); } - setTimeout('Drupal.saveForm()', Drupal.settings['period'] * 1000); + setTimeout(function() { Drupal.saveForm() }, Drupal.settings['period'] * 1000); } Drupal.configureAutosave = function() { $('form').each(function(index) { - id = $(this).attr('id'); - fieldset = document.createElement('fieldset'); + var id = $(this).attr('id'); + var fieldset = document.createElement('fieldset'); fieldset.id = 'autosave-' + id; - elem_id = '#autosave-' + id; - legend = document.createElement('legend'); + var elem_id = '#autosave-' + id; + var legend = document.createElement('legend'); $(this).wrap(fieldset); $(legend).html('Autosave enabled'); $(elem_id).prepend(legend); $(elem_id).attr('autosave', 'true'); $(elem_id).click(function() { - id = $('form', this).attr('id'); + var id = $('form', this).attr('id'); if ($(this).attr('autosave') == 'true') { $('form', this).css('opacity', '0.2'); $('legend', this).html('Autosave disabled'); @@ -70,7 +81,7 @@ } Drupal.checkArrowsStatus = function(length, pos) { - pos += 1; + var pos += 1; if (pos == 1) { $('#left-arrow').removeAttr('class').attr('class', 'arrow disabled').unbind('click'); $('#right-arrow').removeAttr('class').attr('class', 'arrow enabled').unbind('click').bind('click', function() { Drupal.rightArrowCallback(length, pos) }); @@ -131,6 +142,14 @@ if ($(this).html() == 'View') { $('#' + autosaved_form_id).formHash(autosaved_forms[position]['serialized']); $('#' + autosaved_form_id).focus(); + + if (typeof FCKeditorAPI == 'object') { + for( var i = 0 ; i < fckLaunchedJsId.length ; i++ ) { + var fck = FCKeditorAPI.GetInstance( fckLaunchedJsId[i] ) + fck.SetHTML($('#' + fckLaunchedJsId[i]).val()); + } + } + $(this).html('Reset'); $('#autosave-status #keep').css('display', 'inline').css('visibility', 'visible'); $('#autosave-status #keep a').html('Keep'); @@ -176,4 +195,4 @@ } } }); -} +}