diff --git a/modules/editor/skins/xeed/editor.html b/modules/editor/skins/xeed/editor.html index 43459695a..f73726126 100644 --- a/modules/editor/skins/xeed/editor.html +++ b/modules/editor/skins/xeed/editor.html @@ -385,9 +385,16 @@ diff --git a/modules/editor/skins/xeed/js/xeed.js b/modules/editor/skins/xeed/js/xeed.js index 3ff9d49b9..af54bb14c 100644 --- a/modules/editor/skins/xeed/js/xeed.js +++ b/modules/editor/skins/xeed/js/xeed.js @@ -2941,6 +2941,7 @@ Table = xe.createPlugin('Table', { */ AutoSave = xe.createPlugin('AutoSave', { _enable : false, + _timer : null, _start_time : null, _save_time : null, $bar : null, @@ -2966,9 +2967,41 @@ AutoSave = xe.createPlugin('AutoSave', { }, deactivate : function() { this.$bar.unbind(); + clearTimeout(this._timer); }, _save_callback : function(params) { + var self = this; + + this._save_time = (new Date).getTime(); + this.$bar.slideDown(300); + this._update_message(); + + this._timer = setInterval(function(){self._update_message()}, 5000); + }, + _update_message : function() { + var msg = lang.autosave_format, now = (new Date).getTime(), write_interval, save_interval, write_msg, save_msg; + + write_interval = Math.floor( (now - this._start_time)/1000/60 ); + save_interval = Math.floor( (now - this._save_time)/1000/60 ); + + if (write_interval < 60) { + write_msg = ((write_interval>1)?lang.autosave_mins:lang.autosave_min).replace('%d', write_interval); + } else { + write_interval = Math.floor(write_interval/60); + write_msg = ((write_interval>1)?lang.autosave_hours:lang.autosave_hour).replace('%d', write_interval); + } + + if (save_interval < 60) { + save_msg = ((save_interval>1)?lang.autosave_mins_ago:lang.autosave_min_ago).replace('%d', save_interval); + } else { + save_interval = Math.floor(write_interval/60); + save_msg = ((save_interval>1)?lang.autosave_hours_ago:lang.autosave_hour_ago).replace('%d', save_interval); + } + + msg = msg.replace('%s', write_msg).replace('%s', save_msg); + + this.$bar.find('>p').html(msg); }, API_EXEC_AUTOSAVE : function() { _editorAutoSave(true, this._save_callback);