diff --git a/core/client/mixins/editor-base-controller.js b/core/client/mixins/editor-base-controller.js index f0f40b6f68..c5a4cce5b8 100644 --- a/core/client/mixins/editor-base-controller.js +++ b/core/client/mixins/editor-base-controller.js @@ -195,6 +195,7 @@ var EditorControllerMixin = Ember.Mixin.create(MarkerManager, { prevStatus = this.get('status'), isNew = this.get('isNew'), autoSaveId = this.get('autoSaveId'), + timedSaveId = this.get('timedSaveId'), self = this, psmController = this.get('controllers.post-settings-menu'), promise; @@ -206,6 +207,11 @@ var EditorControllerMixin = Ember.Mixin.create(MarkerManager, { this.set('autoSaveId', null); } + if (timedSaveId) { + Ember.run.cancel(timedSaveId); + this.set('timedSaveId', null); + } + self.notifications.closePassive(); // ensure an incomplete tag is finalised before save @@ -319,10 +325,13 @@ var EditorControllerMixin = Ember.Mixin.create(MarkerManager, { autoSave: function () { if (this.get('model.isDraft')) { - var autoSaveId; + var autoSaveId, + timedSaveId; + + timedSaveId = Ember.run.throttle(this, 'send', 'save', {silent: true, disableNProgress: true}, 60000, false); + this.set('timedSaveId', timedSaveId); autoSaveId = Ember.run.debounce(this, 'send', 'save', {silent: true, disableNProgress: true}, 3000); - this.set('autoSaveId', autoSaveId); } },