mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
|
(function () {
|
||
|
var ns = $.namespace('pskl.controller');
|
||
|
|
||
|
/**
|
||
|
* When embedded in piskelapp.com, the page adds a header containing the name of the currently edited sprite
|
||
|
* This controller will keep the displayed name in sync with the actual piskel name
|
||
|
*/
|
||
|
ns.HeaderController = function (piskelController, savedStatusService) {
|
||
|
this.piskelController = piskelController;
|
||
|
this.savedStatusService = savedStatusService;
|
||
|
};
|
||
|
|
||
|
ns.HeaderController.prototype.init = function () {
|
||
|
this.piskelName_ = document.querySelector('.piskel-name');
|
||
|
|
||
|
$.subscribe(Events.BEFORE_SAVING_PISKEL, this.onBeforeSavingPiskelEvent_.bind(this));
|
||
|
$.subscribe(Events.AFTER_SAVING_PISKEL, this.onAfterSavingPiskelEvent_.bind(this));
|
||
|
|
||
|
$.subscribe(Events.PISKEL_DESCRIPTOR_UPDATED, this.updateHeader_.bind(this));
|
||
|
$.subscribe(Events.PISKEL_RESET, this.updateHeader_.bind(this));
|
||
|
$.subscribe(Events.PISKEL_SAVED_STATUS_UPDATE, this.updateHeader_.bind(this));
|
||
|
|
||
|
this.updateHeader_();
|
||
|
};
|
||
|
|
||
|
ns.HeaderController.prototype.updateHeader_ = function () {
|
||
|
try {
|
||
|
var name = this.piskelController.getPiskel().getDescriptor().name;
|
||
|
if (this.savedStatusService.isDirty()) {
|
||
|
name = name + ' *';
|
||
|
}
|
||
|
|
||
|
if (this.piskelName_) {
|
||
|
this.piskelName_.textContent = name;
|
||
|
}
|
||
|
} catch (e) {
|
||
|
console.warn('Could not update header : ' + e.message);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
ns.HeaderController.prototype.onBeforeSavingPiskelEvent_ = function () {
|
||
|
if (!this.piskelName_) {
|
||
|
return;
|
||
|
}
|
||
|
this.piskelName_.classList.add('piskel-name-saving');
|
||
|
};
|
||
|
|
||
|
ns.HeaderController.prototype.onAfterSavingPiskelEvent_ = function () {
|
||
|
if (!this.piskelName_) {
|
||
|
return;
|
||
|
}
|
||
|
this.piskelName_.classList.remove('piskel-name-saving');
|
||
|
};
|
||
|
|
||
|
})();
|