var $autosaveLastMessage = '';
var $autosaveNotice = null;
var $autosaveDidSave = false;
+ var $autosavePaused = false;
var $autosaveSaveNoticePE = null;
return {
if ($autosaveSaveNoticePE === null) {
$autosaveSaveNoticePE = new WCF.PeriodicalExecuter((function(pe) {
+ if ($autosavePaused === true) {
+ return;
+ }
+
if ($autosaveDidSave === false) {
pe.stop();
$autosaveSaveNoticePE = null;
}
},
+ /**
+ * Temporarily pauses autosave worker.
+ */
+ autosavePause: function() {
+ $autosavePaused = true;
+ },
+
+ /**
+ * Resumes autosave worker.
+ */
+ autosaveResume: function() {
+ $autosavePaused = false;
+ },
+
/**
* Replaces one button with a new one.
*
*/
_success: function(data, textStatus, jqXHR) {
if ($.browser.redactor) {
+ this._messageField.redactor('wutil.autosavePause');
this._messageField.redactor('wutil.autosavePurge');
}
if ($.browser.redactor) {
this._messageField.redactor('wutil.reset');
+ this._messageField.redactor('wutil.autosaveResume');
}
else {
this._messageField.val('');
},
/**
- * Destroies editor instance and removes it's DOM elements.
+ * Destroys editor instance and removes its DOM elements.
*/
_destroyEditor: function() {
var $container = this._container[this._activeElementID];
// destroy editor
if ($.browser.redactor) {
var $target = $('#' + this._messageEditorIDPrefix + $container.data('objectID'));
+ $target.redactor('wutil.autosavePause');
$target.redactor('wutil.autosavePurge');
$target.redactor('core.destroy');
}