mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Added localstorage save + read
This commit is contained in:
@ -13,7 +13,12 @@
|
||||
this.nameInput = $('#save-name');
|
||||
this.descriptionInput = $('#save-description');
|
||||
this.isPublicCheckbox = $('input[name=save-public-checkbox]');
|
||||
this.saveButton = $('#save-button');
|
||||
this.saveCloudButton = $('#save-cloud-button');
|
||||
this.saveLocalButton = $('#save-local-button');
|
||||
|
||||
// Only available in app-engine mode ...
|
||||
this.piskelName = $('.piskel-name').get(0);
|
||||
|
||||
this.status = $('#save-status');
|
||||
|
||||
var descriptor = this.piskelController.piskel.getDescriptor();
|
||||
@ -22,21 +27,22 @@
|
||||
|
||||
this.isPublicCheckbox.prop('checked', descriptor.isPublic);
|
||||
|
||||
if (!pskl.app.isAppEngineVersion) {
|
||||
this.nameInput.attr('disabled', 'disabled');
|
||||
this.descriptionInput.attr('disabled', 'disabled');
|
||||
this.isPublicCheckbox.attr('disabled', 'disabled');
|
||||
if (!pskl.app.isLoggedIn()) {
|
||||
this.saveCloudButton.attr('disabled', 'disabled');
|
||||
this.status.html('You are not logged in. Only Local Save is available.');
|
||||
} else {
|
||||
this.saveForm.submit(this.onSaveFormSubmit_.bind(this));
|
||||
}
|
||||
|
||||
this.saveForm.submit(this.onSaveFormSubmit_.bind(this));
|
||||
this.saveLocalButton.click(this.onSaveLocalClick_.bind(this));
|
||||
};
|
||||
|
||||
ns.SaveController.prototype.onSaveFormSubmit_ = function (evt) {
|
||||
evt.preventDefault();
|
||||
evt.stopPropagation();
|
||||
|
||||
var name = this.nameInput.val();
|
||||
var description = this.descriptionInput.val();
|
||||
var name = this.getName();
|
||||
var description = this.getDescription();
|
||||
var isPublic = !!this.isPublicCheckbox.prop('checked');
|
||||
|
||||
var descriptor = new pskl.model.piskel.Descriptor(name, description, isPublic);
|
||||
@ -50,10 +56,40 @@
|
||||
});
|
||||
};
|
||||
|
||||
ns.SaveController.prototype.onSaveLocalClick_ = function (evt) {
|
||||
var localStorageService = pskl.app.localStorageService;
|
||||
var isOk = true;
|
||||
var name = this.getName();
|
||||
var description = this.getDescription();
|
||||
if (localStorageService.getPiskel(name)) {
|
||||
isOk = window.confirm('There is already a piskel saved as ' + name + '. Override ?');
|
||||
}
|
||||
|
||||
if (isOk) {
|
||||
this.beforeSaving_();
|
||||
localStorageService.save(name, description, pskl.app.piskelController.serialize());
|
||||
window.setTimeout(function () {
|
||||
this.onSaveSuccess_();
|
||||
this.afterSaving_();
|
||||
}.bind(this), 1000);
|
||||
}
|
||||
};
|
||||
|
||||
ns.SaveController.prototype.getName = function () {
|
||||
return this.nameInput.val();
|
||||
};
|
||||
|
||||
ns.SaveController.prototype.getDescription = function () {
|
||||
return this.descriptionInput.val();
|
||||
};
|
||||
|
||||
ns.SaveController.prototype.beforeSaving_ = function () {
|
||||
this.saveButton.attr('disabled', true);
|
||||
this.saveCloudButton.attr('disabled', true);
|
||||
this.status.html('Saving ...');
|
||||
$('.piskel-name').get(0).classList.add('piskel-name-saving');
|
||||
|
||||
if (this.piskelName) {
|
||||
this.piskelName.classList.add('piskel-name-saving');
|
||||
}
|
||||
};
|
||||
|
||||
ns.SaveController.prototype.onSaveSuccess_ = function () {
|
||||
@ -66,9 +102,12 @@
|
||||
};
|
||||
|
||||
ns.SaveController.prototype.afterSaving_ = function () {
|
||||
this.saveButton.attr('disabled', false);
|
||||
this.saveCloudButton.attr('disabled', false);
|
||||
this.status.html('');
|
||||
$('.piskel-name').get(0).classList.remove('piskel-name-saving');
|
||||
|
||||
if (this.piskelName) {
|
||||
this.piskelName.classList.remove('piskel-name-saving');
|
||||
}
|
||||
|
||||
window.setTimeout($.publish.bind($, Events.HIDE_NOTIFICATION), 2000);
|
||||
};
|
||||
|
@ -18,6 +18,10 @@
|
||||
template : 'templates/settings/import.html',
|
||||
controller : ns.ImportController
|
||||
},
|
||||
'localstorage' : {
|
||||
template : 'templates/settings/localstorage.html',
|
||||
controller : ns.LocalStorageController
|
||||
},
|
||||
'save' : {
|
||||
template : 'templates/settings/save.html',
|
||||
controller : ns.SaveController
|
||||
|
Reference in New Issue
Block a user