/** * * @module package/quiqqer/menu/bin/Controls/NavTabsVerticalSettings * * @require qui/controls/elements/FormList * @require css!package/quiqqer/menu/bin/Controls/NavTabsVerticalSettings.css */ define('package/quiqqer/menu/bin/Controls/NavTabsVerticalSettings2', [ 'qui/controls/elements/FormList', 'utils/Controls', 'Locale', 'Mustache', 'text!package/quiqqer/menu/bin/Controls/NavTabsVerticalSettings2.html', 'css!package/quiqqer/menu/bin/Controls/NavTabsVerticalSettings.css' ], function (QUIFormList, QUIControls, QUILocale, Mustache, template) { "use strict"; var lg = 'quiqqer/menu'; return new Class({ Extends: QUIFormList, Type : 'package/quiqqer/menu/bin/Controls/NavTabsVerticalSettings', Binds: [ '$onParsed' ], initialize: function (options) { this.parent(options); this.$Project = null; this.addEvents({ onParsed: this.$onParsed }); this.getElm().addClass('qui-controls-formlist-navTabsVerticalSettings'); this.setAttributes({ buttonText: QUILocale.get(lg, 'control.navTabsVertical.entries.addButton'), entry : Mustache.render(template, { 'title' : QUILocale.get(lg, 'control.navTabsVertical.entries.entryTitle'), 'titleIcon' : QUILocale.get(lg, 'control.navTabsVertical.entries.entryTitleIcon'), 'titleIconColor': QUILocale.get(lg, 'control.navTabsVertical.entries.entryTitleIconColor'), 'image' : QUILocale.get(lg, 'control.navTabsVertical.entries.entryImage'), 'content' : QUILocale.get(lg, 'control.navTabsVertical.entries.entryContent') }) }); }, /** * @event on import * * https://dev.quiqqer.com/quiqqer/package-bricks/issues/97 */ $onImport: function () { // look if some value exist var value = this.getElm().value; if (value === '') { this.parent(); return; } value = JSON.decode(value); if (typeOf(value) !== 'array') { this.parent(); return; } for (var i = 0, len = value.length; i < len; i++) { if (typeof value[i].content !== 'undefined') { value[i]['entryContent'] = value[i].content; } if (typeof value[i].title !== 'undefined') { value[i]['entryTitle'] = value[i].title; } if (typeof value[i].image !== 'undefined') { value[i]['entryImage'] = value[i].title; } } this.getElm().value = JSON.encode(value); this.parent(); }, /** * set the project to the control * * @param Project */ setProject: function (Project) { this.$Project = Project; this.$onParsed(false, this.getElm()); }, /** * Parses QUI controls when a new entry is created * * Fired after (inherited) FormList has parsed the content * * @param event * @param Node - The element that was previously parsed by (inherited) FormList */ $onParsed: function (event, Node) { if (!this.$Project) { return; } this.$executeParsing(Node); }, /** * Parse the editor * * @param Node * @returns {Promise} */ $executeParsing: function (Node) { var self = this; return QUIControls.parse(Node).then(function () { // Element is fully parsed so we can finally show it Node.getElements('.quiqqer-menu-navTabsVerticalSettings-entry').show(); self.getElm().addClass('qui-controls-formlist-navTabsVerticalSettings'); var inputEditors = Node.getElements('[data-qui="controls/editors/Input"]').map(function (InnerNode) { return QUI.Controls.getById(InnerNode.get('data-quiid')); }); for (var i = 0, len = inputEditors.length; i < len; i++) { if (inputEditors[i]) { inputEditors[i].setProject(self.$Project); } } }); } }); });