mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Issue #277 : Add isSaving state to storageService
This commit is contained in:
parent
e5be581e19
commit
fe9875841a
@ -40,8 +40,17 @@ var Events = {
|
|||||||
HISTORY_STATE_SAVED: 'HISTORY_STATE_SAVED',
|
HISTORY_STATE_SAVED: 'HISTORY_STATE_SAVED',
|
||||||
HISTORY_STATE_LOADED: 'HISTORY_STATE_LOADED',
|
HISTORY_STATE_LOADED: 'HISTORY_STATE_LOADED',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired when a Piskel is successfully saved
|
||||||
|
*/
|
||||||
PISKEL_SAVED: 'PISKEL_SAVED',
|
PISKEL_SAVED: 'PISKEL_SAVED',
|
||||||
|
/**
|
||||||
|
* Fired when a save action starts
|
||||||
|
*/
|
||||||
BEFORE_SAVING_PISKEL: 'BEFORE_SAVING_PISKEL',
|
BEFORE_SAVING_PISKEL: 'BEFORE_SAVING_PISKEL',
|
||||||
|
/**
|
||||||
|
* Fired when a save action ends. Always fires, even if saving was not successful
|
||||||
|
*/
|
||||||
AFTER_SAVING_PISKEL: 'AFTER_SAVING_PISKEL',
|
AFTER_SAVING_PISKEL: 'AFTER_SAVING_PISKEL',
|
||||||
|
|
||||||
FRAME_SIZE_CHANGED : 'FRAME_SIZE_CHANGED',
|
FRAME_SIZE_CHANGED : 'FRAME_SIZE_CHANGED',
|
||||||
|
@ -32,9 +32,6 @@
|
|||||||
this.addEventListener(this.saveBrowserButton, 'click', this.saveBrowser_);
|
this.addEventListener(this.saveBrowserButton, 'click', this.saveBrowser_);
|
||||||
this.addEventListener('form[name=save-form]', 'submit', this.onSaveFormSubmit_);
|
this.addEventListener('form[name=save-form]', 'submit', this.onSaveFormSubmit_);
|
||||||
|
|
||||||
$.subscribe(Events.BEFORE_SAVING_PISKEL, this.disableSaveButtons_.bind(this));
|
|
||||||
$.subscribe(Events.AFTER_SAVING_PISKEL, this.enableSaveButtons_.bind(this));
|
|
||||||
|
|
||||||
if (pskl.app.isLoggedIn()) {
|
if (pskl.app.isLoggedIn()) {
|
||||||
this.authenticatedUserInit_();
|
this.authenticatedUserInit_();
|
||||||
}
|
}
|
||||||
@ -42,6 +39,13 @@
|
|||||||
if (pskl.utils.Environment.detectNodeWebkit()) {
|
if (pskl.utils.Environment.detectNodeWebkit()) {
|
||||||
this.desktopApplicationInit_();
|
this.desktopApplicationInit_();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$.subscribe(Events.BEFORE_SAVING_PISKEL, this.disableSaveButtons_.bind(this));
|
||||||
|
$.subscribe(Events.AFTER_SAVING_PISKEL, this.enableSaveButtons_.bind(this));
|
||||||
|
|
||||||
|
if (pskl.app.storageService.isSaving()) {
|
||||||
|
this.disableSaveButtons_();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.SaveController.prototype.authenticatedUserInit_ = function () {
|
ns.SaveController.prototype.authenticatedUserInit_ = function () {
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
ns.StorageService = function (piskelController) {
|
ns.StorageService = function (piskelController) {
|
||||||
this.piskelController = piskelController;
|
this.piskelController = piskelController;
|
||||||
|
this.savingFlag_ = false;
|
||||||
|
|
||||||
this.onSaveSuccess_ = this.onSaveSuccess_.bind(this);
|
this.onSaveSuccess_ = this.onSaveSuccess_.bind(this);
|
||||||
this.onSaveError_ = this.onSaveError_.bind(this);
|
this.onSaveError_ = this.onSaveError_.bind(this);
|
||||||
@ -12,6 +13,38 @@
|
|||||||
pskl.app.shortcutService.addShortcut('ctrl+o', this.onOpenKey_.bind(this));
|
pskl.app.shortcutService.addShortcut('ctrl+o', this.onOpenKey_.bind(this));
|
||||||
pskl.app.shortcutService.addShortcut('ctrl+s', this.onSaveKey_.bind(this));
|
pskl.app.shortcutService.addShortcut('ctrl+s', this.onSaveKey_.bind(this));
|
||||||
pskl.app.shortcutService.addShortcut('ctrl+shift+s', this.onSaveAsKey_.bind(this));
|
pskl.app.shortcutService.addShortcut('ctrl+shift+s', this.onSaveAsKey_.bind(this));
|
||||||
|
|
||||||
|
$.subscribe(Events.BEFORE_SAVING_PISKEL, this.setSavingFlag_.bind(this, true));
|
||||||
|
$.subscribe(Events.AFTER_SAVING_PISKEL, this.setSavingFlag_.bind(this, false));
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.StorageService.prototype.isSaving = function () {
|
||||||
|
return this.savingFlag_;
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.StorageService.prototype.saveToGallery = function (piskel) {
|
||||||
|
return this.delegateSave_(pskl.app.galleryStorageService, piskel);
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.StorageService.prototype.saveToLocalStorage = function (piskel) {
|
||||||
|
return this.delegateSave_(pskl.app.localStorageService, piskel);
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.StorageService.prototype.saveToFileBrowser = function (piskel) {
|
||||||
|
return this.delegateSave_(pskl.app.fileDownloadStorageService, piskel);
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.StorageService.prototype.saveToFileNodeWebkit = function (piskel, saveAsNew) {
|
||||||
|
return this.delegateSave_(pskl.app.desktopStorageService, piskel, saveAsNew);
|
||||||
|
};
|
||||||
|
|
||||||
|
ns.StorageService.prototype.delegateSave_ = function(delegatedService, piskel, saveAsNew) {
|
||||||
|
if (this.isSaving_) {
|
||||||
|
return Q.reject('Already saving');
|
||||||
|
}
|
||||||
|
|
||||||
|
$.publish(Events.BEFORE_SAVING_PISKEL);
|
||||||
|
return delegatedService.save(piskel, saveAsNew).then(this.onSaveSuccess_, this.onSaveError_);
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.StorageService.prototype.onOpenKey_ = function () {
|
ns.StorageService.prototype.onOpenKey_ = function () {
|
||||||
@ -39,26 +72,6 @@
|
|||||||
// no other implementation for now
|
// no other implementation for now
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.StorageService.prototype.saveToGallery = function (piskel) {
|
|
||||||
$.publish(Events.BEFORE_SAVING_PISKEL);
|
|
||||||
return pskl.app.galleryStorageService.save(piskel).then(this.onSaveSuccess_, this.onSaveError_);
|
|
||||||
};
|
|
||||||
|
|
||||||
ns.StorageService.prototype.saveToLocalStorage = function (piskel) {
|
|
||||||
$.publish(Events.BEFORE_SAVING_PISKEL);
|
|
||||||
return pskl.app.localStorageService.save(piskel).then(this.onSaveSuccess_, this.onSaveError_);
|
|
||||||
};
|
|
||||||
|
|
||||||
ns.StorageService.prototype.saveToFileBrowser = function (piskel) {
|
|
||||||
$.publish(Events.BEFORE_SAVING_PISKEL);
|
|
||||||
return pskl.app.fileDownloadStorageService.save(piskel).then(this.onSaveSuccess_, this.onSaveError_);
|
|
||||||
};
|
|
||||||
|
|
||||||
ns.StorageService.prototype.saveToFileNodeWebkit = function (piskel, saveAsNew) {
|
|
||||||
$.publish(Events.BEFORE_SAVING_PISKEL);
|
|
||||||
return pskl.app.desktopStorageService.save(piskel, saveAsNew).then(this.onSaveSuccess_, this.onSaveError_);
|
|
||||||
};
|
|
||||||
|
|
||||||
ns.StorageService.prototype.onSaveSuccess_ = function () {
|
ns.StorageService.prototype.onSaveSuccess_ = function () {
|
||||||
$.publish(Events.SHOW_NOTIFICATION, [{'content': 'Successfully saved !'}]);
|
$.publish(Events.SHOW_NOTIFICATION, [{'content': 'Successfully saved !'}]);
|
||||||
$.publish(Events.PISKEL_SAVED);
|
$.publish(Events.PISKEL_SAVED);
|
||||||
@ -79,4 +92,8 @@
|
|||||||
$.publish(Events.AFTER_SAVING_PISKEL);
|
$.publish(Events.AFTER_SAVING_PISKEL);
|
||||||
window.setTimeout($.publish.bind($, Events.HIDE_NOTIFICATION), 5000);
|
window.setTimeout($.publish.bind($, Events.HIDE_NOTIFICATION), 5000);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ns.StorageService.prototype.setSavingFlag_ = function (savingFlag) {
|
||||||
|
this.savingFlag_ = savingFlag;
|
||||||
|
};
|
||||||
})();
|
})();
|
||||||
|
Loading…
Reference in New Issue
Block a user