mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
|
(function () {
|
||
|
var ns = $.namespace('pskl.controller.dialogs');
|
||
|
|
||
|
ns.BrowseLocalController = function (piskelController) {};
|
||
|
|
||
|
pskl.utils.inherit(ns.BrowseLocalController, ns.AbstractDialogController);
|
||
|
|
||
|
ns.BrowseLocalController.prototype.init = function () {
|
||
|
this.superclass.init.call(this);
|
||
|
|
||
|
this.localStorageItemTemplate_ = pskl.utils.Template.get('local-storage-item-template');
|
||
|
|
||
|
this.service_ = pskl.app.localStorageService;
|
||
|
this.piskelList = $('.local-piskel-list');
|
||
|
this.prevSessionContainer = $('.previous-session');
|
||
|
|
||
|
this.fillLocalPiskelsList_();
|
||
|
|
||
|
this.piskelList.click(this.onPiskelsListClick_.bind(this));
|
||
|
};
|
||
|
|
||
|
ns.BrowseLocalController.prototype.onPiskelsListClick_ = function (evt) {
|
||
|
var action = evt.target.getAttribute('data-action');
|
||
|
var name = evt.target.getAttribute('data-name');
|
||
|
if (action === 'load') {
|
||
|
if (window.confirm('This will erase your current piskel. Continue ?')) {
|
||
|
this.service_.load(name);
|
||
|
this.closeDialog();
|
||
|
}
|
||
|
} else if (action === 'delete') {
|
||
|
if (window.confirm('This will permanently DELETE this piskel from your computer. Continue ?')) {
|
||
|
this.service_.remove(name);
|
||
|
this.fillLocalPiskelsList_();
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
ns.BrowseLocalController.prototype.fillLocalPiskelsList_ = function () {
|
||
|
var html = '';
|
||
|
var keys = this.service_.getKeys();
|
||
|
|
||
|
keys.sort(function (k1, k2) {
|
||
|
if (k1.date < k2.date) {return 1;}
|
||
|
if (k1.date > k2.date) {return -1;}
|
||
|
return 0;
|
||
|
});
|
||
|
|
||
|
keys.forEach((function (key) {
|
||
|
var date = pskl.utils.DateUtils.format(key.date, '{{Y}}/{{M}}/{{D}} {{H}}:{{m}}');
|
||
|
html += pskl.utils.Template.replace(this.localStorageItemTemplate_, {
|
||
|
name : key.name,
|
||
|
date : date
|
||
|
});
|
||
|
}).bind(this));
|
||
|
|
||
|
var tableBody_ = this.piskelList.get(0).tBodies[0];
|
||
|
tableBody_.innerHTML = html;
|
||
|
};
|
||
|
})();
|