diff --git a/bin/Controls/Independent/MenuManagement.js b/bin/Controls/Independent/MenuManagement.js index dbbf53b3c77c0ca15168f9ac38dc7eb51286c1ad..a0238a1cc40dc066f4a5d295e0afb681ebd87d16 100644 --- a/bin/Controls/Independent/MenuManagement.js +++ b/bin/Controls/Independent/MenuManagement.js @@ -110,10 +110,16 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuManagement', [ width : 50 }, { - header : QUILocale.get(lg, 'grid.menuTitle'), + header : QUILocale.get(lg, 'menu.title'), dataIndex: 'title', dataType : 'string', - width : 150 + width : 250 + }, + { + header : QUILocale.get(lg, 'menu.workingTitle'), + dataIndex: 'workingTitle', + dataType : 'string', + width : 350 } ] }); diff --git a/bin/Controls/Independent/MenuPanel.js b/bin/Controls/Independent/MenuPanel.js index 01b3ca3d5554a45b7f69b09a9bad1f941bd3b130..7b9aff7879148ef4bf817e5b841e8cd370bbd2b1 100644 --- a/bin/Controls/Independent/MenuPanel.js +++ b/bin/Controls/Independent/MenuPanel.js @@ -303,6 +303,8 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ }; }; + this.setMenuTitle(); + let result = toArray(this.$Map.firstChild()); return this.$refreshItemDisplay().then(() => { @@ -317,6 +319,42 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ }); }, + /** + * Set the title of this.$Map, so the title changes in the left panel. + * Also set menu title and working title to the variables: + * this.$title + * this.$workingTitle + * + * This function is a small workaround for this user flow: + * "User change the menu title (and working title) and save directly the menu by clicking save-button". + */ + setMenuTitle: function() { + const selected = this.$Map.getSelectedChildren(); + + if (selected.length === 1 && selected[0].getAttribute('value') !== 'start') { + return; + } + + const Title = this.$InnerContainer.getElement('[name="title"]'); + const WorkingTitle = this.$InnerContainer.getElement('[name="workingTitle"]'); + + if (!Title) { + return; + } + + selected[0].setAttribute('itemTitle', Title.value); + + this.$title = JSON.decode(Title.value); + this.$workingTitle = JSON.decode(WorkingTitle.value); + + let current = QUILocale.getCurrent(); + + if (current in this.$title) { + selected[0].setAttribute('text', this.$title[current]); + selected[0].setAttribute('title', this.$title[current]); + } + }, + addItem: function (Parent, where) { if (typeof where === 'undefined') { where = 'bottom'; @@ -580,12 +618,15 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ this.$ActiveItem = null; this.$ActiveMapItem = null; this.$InnerContainer.set('html', Mustache.render(templateSettings, { - settingsTitle: QUILocale.get('quiqqer/quiqqer', 'settings'), - title : QUILocale.get('quiqqer/quiqqer', 'title') + title : QUILocale.get('quiqqer/menu', 'menu.title'), + workingTitle: QUILocale.get('quiqqer/menu', 'menu.workingTitle') })); - this.$InnerContainer.getElement('[name="title"]').set('value', JSON.stringify(this.$title)); - this.$InnerContainer.getElement('[name="workingTitle"]').set('value', JSON.stringify(this.$workingTitle)); + const TitleNode = this.$InnerContainer.getElement('[name="title"]'), + WorkingTitleNode = this.$InnerContainer.getElement('[name="workingTitle"]'); + + TitleNode.set('value', JSON.stringify(this.$title)); + WorkingTitleNode.set('value', JSON.stringify(this.$workingTitle)); }).then(() => { return QUI.parse(this.$InnerContainer); }).then(() => { diff --git a/locale.xml b/locale.xml index 9ca23ccf52d5a65773d698db848a21b1af449d3c..6d4cd9db84abeebf4f43c94540f0828fdb7504d2 100644 --- a/locale.xml +++ b/locale.xml @@ -554,10 +554,14 @@ <de><![CDATA[ID]]></de> <en><![CDATA[ID]]></en> </locale> - <locale name="grid.menuTitle"> + <locale name="menu.title"> <de><![CDATA[Titel]]></de> <en><![CDATA[Title]]></en> </locale> + <locale name="menu.workingTitle"> + <de><![CDATA[Arbeitstitel]]></de> + <en><![CDATA[Working title]]></en> + </locale> <locale name="creation.window.title"> <de><![CDATA[Neues Menü anlegen]]></de>