Skip to content

Commit b638eba

Browse files
author
Sergi Mansilla
committed
Small improvements to autosave and revisions.
1 parent 1719271 commit b638eba

2 files changed

Lines changed: 100 additions & 104 deletions

File tree

plugins-client/ext.autosave/autosave.js

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,15 @@ module.exports = ext.register("ext/autosave/autosave", {
3131
docChangeTimeout: null,
3232
docChangeListeners: {},
3333

34+
/** related to: Autosave#onExternalChange
35+
* Autosave#Autosave -> Array
36+
* Holds the list of filepaths that have ben changed in the server from an
37+
* external source.
38+
**/
39+
changedPaths: [],
40+
3441
hook: function() {
3542
var self = this;
36-
3743
settings.addSettings("General", markupSettings);
3844
ide.addEventListener("settings.load", function(e){
3945
e.ext.setDefaults("general", [["autosaveenabled", "false"]]);
@@ -70,7 +76,6 @@ module.exports = ext.register("ext/autosave/autosave", {
7076

7177
ide.addEventListener("afteropenfile", this.$onOpenFileFn);
7278
ide.addEventListener("closefile", this.$onCloseFileFn);
73-
ide.addEventListener("afteronline", this.$onAfterOnline);
7479
ide.addEventListener("beforewatcherchange", this.$onExternalChange);
7580
ide.addEventListener("beforesavewarn", this.$onBeforeSaveWarning);
7681
},
@@ -82,13 +87,13 @@ module.exports = ext.register("ext/autosave/autosave", {
8287
onBeforeSaveWarning: function(e) {
8388
var isNewFile = apf.isTrue(e.doc.getNode().getAttribute("newfile"));
8489
if (!isNewFile && this.isAutoSaveEnabled) {
85-
this.save();
90+
this.save(e.doc.$page);
8691
return false;
8792
}
8893
},
8994

90-
/** related to: Revisions#showQuestionWindow
91-
* Revisions#onExternalChange(e) -> Boolean
95+
/** related to: Autosave#showQuestionWindow
96+
* Autosave#onExternalChange(e) -> Boolean
9297
* - e(Object): Event object
9398
*
9499
* This is the listener to the file watcher event. It is fired when a file is
@@ -173,16 +178,16 @@ module.exports = ext.register("ext/autosave/autosave", {
173178
var hasChanged = Util.pageHasChanged(page);
174179
if (this.isAutoSaveEnabled && hasChanged) {
175180
if (btnSave.currentState !== SAVING) {
176-
apf.setStyleClass(btnSave.$ext, "saving", ["saved"]);
177-
apf.setStyleClass(document.getElementById("saveStatus"), "saving", ["saved"]);
181+
apf.setStyleClass(btnSave.$ext, "saving", ["saved"]);
182+
apf.setStyleClass(saveStatus, "saving", ["saved"]);
178183
btnSave.currentState = SAVING;
179184
btnSave.setCaption("Saving");
180185
}
181186
}
182187
else if (!hasChanged) {
183188
if (btnSave.currentState !== SAVED) {
184-
apf.setStyleClass(btnSave.$ext, "saved", ["saving"]);
185-
apf.setStyleClass(document.getElementById("saveStatus"), "saved", ["saving"]);
189+
apf.setStyleClass(btnSave.$ext, "saved", ["saving"]);
190+
apf.setStyleClass(saveStatus, "saved", ["saving"]);
186191
btnSave.currentState = SAVED;
187192
btnSave.setCaption("Changes saved");
188193
}
@@ -275,15 +280,16 @@ module.exports = ext.register("ext/autosave/autosave", {
275280

276281
if (typeof tabEditors === "undefined" || !this.isAutoSaveEnabled)
277282
return;
278-
283+
279284
this.save(tabEditors.getPage());
280285
},
281286

287+
282288
/**
283-
* Revisions#save([page])
289+
* Autosave#save([page])
284290
* - page(Object): Page that contains the document to be saved. In case it is
285291
* not provided, the current one will be used
286-
*
292+
*
287293
* Prompts a save of the desired document.
288294
**/
289295
save: function(page, forceSave) {
@@ -300,8 +306,10 @@ module.exports = ext.register("ext/autosave/autosave", {
300306
if (node.getAttribute("newfile") || node.getAttribute("debug"))
301307
return;
302308

309+
var _self = this;
303310
Save.quicksave(page, function() {
304311
stripws.enable();
312+
_self.setSaveButtonCaption(page);
305313
}, true);
306314
},
307315

@@ -315,18 +323,12 @@ module.exports = ext.register("ext/autosave/autosave", {
315323
if (this.$onCloseFileFn)
316324
ide.removeEventListener("closefile", this.$onCloseFileFn);
317325

318-
if (this.$onFileSaveFn)
319-
ide.removeEventListener("afterfilesave", this.$onFileSaveFn);
320-
321326
if (this.$onSwitchFileFn)
322327
ide.removeEventListener("tab.beforeswitch", this.$onSwitchFileFn);
323328

324329
if (this.$onAfterSwitchFn)
325330
ide.removeEventListener("tab.afterswitch", this.$onAfterSwitchFn);
326331

327-
if (this.$afterSelectFn)
328-
lstRevisions.removeEventListener("afterselect", this.$afterSelectFn);
329-
330332
if (this.$onExternalChange)
331333
ide.removeEventListener("beforewatcherchange", this.$onExternalChange);
332334

@@ -344,18 +346,12 @@ module.exports = ext.register("ext/autosave/autosave", {
344346
if (this.$onCloseFileFn)
345347
ide.addEventListener("closefile", this.$onCloseFileFn);
346348

347-
if (this.$onFileSaveFn)
348-
ide.addEventListener("afterfilesave", this.$onFileSaveFn);
349-
350349
if (this.$onSwitchFileFn)
351350
ide.addEventListener("tab.beforeswitch", this.$onSwitchFileFn);
352351

353352
if (this.$onAfterSwitchFn)
354353
ide.addEventListener("tab.afterswitch", this.$onAfterSwitchFn);
355354

356-
if (this.$afterSelectFn)
357-
lstRevisions.addEventListener("afterselect", this.$afterSelectFn);
358-
359355
if (this.$onExternalChange)
360356
ide.addEventListener("beforewatcherchange", this.$onExternalChange);
361357

@@ -432,4 +428,3 @@ module.exports = ext.register("ext/autosave/autosave", {
432428
}
433429
});
434430
});
435-

0 commit comments

Comments
 (0)