var ko = require('ko'), Translator = require('Common/Translator'), TemplateStore = require('Stores/User/Template'), Remote = require('Remote/User/Ajax'); /** * @constructor */ function TemplatesUserSettings() { this.templates = TemplateStore.templates; this.processText = ko.computed(function() { return TemplateStore.templates.loading() ? Translator.i18n('SETTINGS_TEMPLETS/LOADING_PROCESS') : ''; }, this); this.visibility = ko.computed(function() { return '' === this.processText() ? 'hidden' : 'visible'; }, this); this.templateForDeletion = ko.observable(null).deleteAccessHelper(); } TemplatesUserSettings.prototype.scrollableOptions = function(sWrapper) { return { handle: '.drag-handle', containment: sWrapper || 'parent', axis: 'y' }; }; TemplatesUserSettings.prototype.addNewTemplate = function() { require('Knoin/Knoin').showScreenPopup(require('View/Popup/Template')); }; TemplatesUserSettings.prototype.editTemplate = function(oTemplateItem) { if (oTemplateItem) { require('Knoin/Knoin').showScreenPopup(require('View/Popup/Template'), [oTemplateItem]); } }; /** * @param {AccountModel} oTemplateToRemove */ TemplatesUserSettings.prototype.deleteTemplate = function(oTemplateToRemove) { if (oTemplateToRemove && oTemplateToRemove.deleteAccess()) { this.templateForDeletion(null); var self = this, fRemoveAccount = function(oAccount) { return oTemplateToRemove === oAccount; }; if (oTemplateToRemove) { this.templates.remove(fRemoveAccount); Remote.templateDelete(function() { self.reloadTemplates(); }, oTemplateToRemove.id); } } }; TemplatesUserSettings.prototype.reloadTemplates = function() { require('App/User').default.templates(); }; TemplatesUserSettings.prototype.onBuild = function(oDom) { var self = this; oDom .on('click', '.templates-list .template-item .e-action', function() { var oTemplateItem = ko.dataFor(this); if (oTemplateItem) { self.editTemplate(oTemplateItem); } }); this.reloadTemplates(); }; module.exports = TemplatesUserSettings;