diff --git a/bin/Controls/Independent/Items/Anchor.html b/bin/Controls/Independent/Items/Anchor.html index 3635598ce715b4ae369cadcc8bc484e93da103f8..ae2876edf419d20a61b0408ab1e9885f3f5bc8a6 100644 --- a/bin/Controls/Independent/Items/Anchor.html +++ b/bin/Controls/Independent/Items/Anchor.html @@ -1,6 +1,11 @@ <form> <table class="data-table data-table-flexbox site-data"> + <thead> + <tr> + <th></th> + </tr> + </thead> <tbody> <tr> <td> diff --git a/bin/Controls/Independent/Items/Anchor.js b/bin/Controls/Independent/Items/Anchor.js index b4ed36c9d498ea29f6f11c013a0bc03a42860535..d0f3dac733c65a98f21c97c7e6372310b0d2e58d 100644 --- a/bin/Controls/Independent/Items/Anchor.js +++ b/bin/Controls/Independent/Items/Anchor.js @@ -8,10 +8,11 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Anchor', [ 'qui/controls/Control', 'Locale', 'Mustache', + 'package/quiqqer/menu/bin/classes/IndependentHandler', 'text!package/quiqqer/menu/bin/Controls/Independent/Items/Anchor.html' -], function (QUI, QUIControl, QUILocale, Mustache, template) { +], function (QUI, QUIControl, QUILocale, Mustache, IndependentHandler, template) { "use strict"; const lg = 'quiqqer/menu'; @@ -80,6 +81,14 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Anchor', [ this.getElm().getElement('[name="status"]').set('checked', true); } + IndependentHandler.getTypeName(this.getAttribute('type')).then((name) => { + const TH = this.getElm().getElement('th'); + + if (TH) { + TH.set('html', name); + } + }); + QUI.parse(this.getElm()).then(() => { this.$Title = QUI.Controls.getById( this.getElm().getElement('[name="title"]').get('data-quiid') diff --git a/bin/Controls/Independent/Items/Custom.html b/bin/Controls/Independent/Items/Custom.html index dbdfc92e746438b5480a8d6e645cb49e8e4a20cd..e385ac09bce9c60cb2c85c87ebfc649a3d044afa 100644 --- a/bin/Controls/Independent/Items/Custom.html +++ b/bin/Controls/Independent/Items/Custom.html @@ -1,6 +1,11 @@ <form> <table class="data-table data-table-flexbox site-data"> + <thead> + <tr> + <th></th> + </tr> + </thead> <tbody> <tr> <td> diff --git a/bin/Controls/Independent/Items/Custom.js b/bin/Controls/Independent/Items/Custom.js index 20d5098a95d1f60d9543997d22001037d722fb30..820438984f3f60d5be24e996a650d446a4979276 100644 --- a/bin/Controls/Independent/Items/Custom.js +++ b/bin/Controls/Independent/Items/Custom.js @@ -10,10 +10,11 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Custom', [ 'qui/controls/Control', 'Locale', 'Mustache', + 'package/quiqqer/menu/bin/classes/IndependentHandler', 'text!package/quiqqer/menu/bin/Controls/Independent/Items/Custom.html' -], function (QUI, QUIControl, QUILocale, Mustache, template) { +], function (QUI, QUIControl, QUILocale, Mustache, IndependentHandler, template) { "use strict"; const lg = 'quiqqer/menu'; @@ -109,6 +110,14 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Custom', [ this.getElm().getElement('[name="url"]').set('value', data.url); this.getElm().getElement('[name="rel"]').set('value', data.rel); + IndependentHandler.getTypeName(this.getAttribute('type')).then((name) => { + const TH = this.getElm().getElement('th'); + + if (TH) { + TH.set('html', name); + } + }); + QUI.parse(this.getElm()).then(() => { this.$Title = QUI.Controls.getById( this.getElm().getElement('[name="title"]').get('data-quiid') diff --git a/bin/Controls/Independent/Items/Site.html b/bin/Controls/Independent/Items/Site.html index 1dbf42bc76aa0fe47e81b5169fe2aa2fa7f204f3..b029c72da0ada23277e765cd66eb94397dec9a1d 100644 --- a/bin/Controls/Independent/Items/Site.html +++ b/bin/Controls/Independent/Items/Site.html @@ -1,6 +1,11 @@ <form> <table class="data-table data-table-flexbox site-data"> + <thead> + <tr> + <th></th> + </tr> + </thead> <tbody> <tr> <td> diff --git a/bin/Controls/Independent/Items/Site.js b/bin/Controls/Independent/Items/Site.js index 1ddc7576609071cf362c55f58f6c307f8c279921..859bc3f6978cda2a72b1c967bc3dbd1dbece2881 100644 --- a/bin/Controls/Independent/Items/Site.js +++ b/bin/Controls/Independent/Items/Site.js @@ -8,10 +8,11 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Site', [ 'qui/controls/Control', 'Locale', 'Mustache', + 'package/quiqqer/menu/bin/classes/IndependentHandler', 'text!package/quiqqer/menu/bin/Controls/Independent/Items/Site.html' -], function (QUI, QUIControl, QUILocale, Mustache, template) { +], function (QUI, QUIControl, QUILocale, Mustache, IndependentHandler, template) { "use strict"; const lg = 'quiqqer/menu'; @@ -92,6 +93,14 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Site', [ this.getElm().getElement('[name="status"]').set('checked', true); } + IndependentHandler.getTypeName(this.getAttribute('type')).then((name) => { + const TH = this.getElm().getElement('th'); + + if (TH) { + TH.set('html', name); + } + }); + QUI.parse(this.getElm()).then(() => { this.fireEvent('load'); }); diff --git a/bin/Controls/Independent/Items/Url.html b/bin/Controls/Independent/Items/Url.html index f3c1a5d09cbb4d79376cc228e34e23417aa05e1e..7f857865d7f1234cabaa25990d2b1fe7815d8537 100644 --- a/bin/Controls/Independent/Items/Url.html +++ b/bin/Controls/Independent/Items/Url.html @@ -1,6 +1,11 @@ <form> <table class="data-table data-table-flexbox site-data"> + <thead> + <tr> + <th></th> + </tr> + </thead> <tbody> <tr> <td> diff --git a/bin/Controls/Independent/Items/Url.js b/bin/Controls/Independent/Items/Url.js index ca41323ec2a4849a660046547b5a60ccabddf451..502516f63669a87bb2a5f0762db48e181cf7df43 100644 --- a/bin/Controls/Independent/Items/Url.js +++ b/bin/Controls/Independent/Items/Url.js @@ -8,10 +8,11 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Url', [ 'qui/controls/Control', 'Locale', 'Mustache', + 'package/quiqqer/menu/bin/classes/IndependentHandler', 'text!package/quiqqer/menu/bin/Controls/Independent/Items/Url.html' -], function (QUI, QUIControl, QUILocale, Mustache, template) { +], function (QUI, QUIControl, QUILocale, Mustache, IndependentHandler, template) { "use strict"; const lg = 'quiqqer/menu'; @@ -102,6 +103,14 @@ define('package/quiqqer/menu/bin/Controls/Independent/Items/Url', [ this.getElm().getElement('[name="status"]').set('checked', true); } + IndependentHandler.getTypeName(this.getAttribute('type')).then((name) => { + const TH = this.getElm().getElement('th'); + + if (TH) { + TH.set('html', name); + } + }); + this.getElm().getElement('[name="icon"]').set('value', icon); this.getElm().getElement('[name="url"]').set('value', data.url); this.getElm().getElement('[name="rel"]').set('value', data.rel); diff --git a/bin/Controls/Independent/MenuPanel.js b/bin/Controls/Independent/MenuPanel.js index b5c2bb61fb49497b8960c25097286f89bf574502..a7bde555cd93c7aa227115bcd4996192632a0b28 100644 --- a/bin/Controls/Independent/MenuPanel.js +++ b/bin/Controls/Independent/MenuPanel.js @@ -14,7 +14,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ 'qui/controls/contextmenu/Separator', 'Ajax', 'Locale', - 'package/quiqqer/menu/bin/classes/Independent/Handler', + 'package/quiqqer/menu/bin/classes/IndependentHandler', 'Mustache', 'text!package/quiqqer/menu/bin/Controls/Independent/MenuPanel.Create.html', @@ -22,11 +22,10 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ ], function (QUI, QUIPanel, QUIMap, QUIMapItem, QUIConfirm, QUIContextMenu, QUIContextMenuItem, QUIContextSeparator, - QUIAjax, QUILocale, MenuHandler, Mustache, templateCreate) { + QUIAjax, QUILocale, IndependentHandler, Mustache, templateCreate) { "use strict"; const lg = 'quiqqer/menu'; - const Handler = new MenuHandler(); return new Class({ @@ -140,7 +139,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ $onInject: function () { this.Loader.show(); - Handler.getMenu(this.getAttribute('menuId')).then((menuData) => { + IndependentHandler.getMenu(this.getAttribute('menuId')).then((menuData) => { this.setAttribute('title', menuData.title); this.setAttribute('icon', 'fa fa-bars'); this.refresh(); @@ -284,7 +283,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ let workingTitle = null; return this.$refreshItemDisplay().then(() => { - return Handler.saveMenu( + return IndependentHandler.saveMenu( this.getAttribute('menuId'), title, workingTitle, @@ -329,7 +328,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ textType : QUILocale.get('quiqqer/quiqqer', 'type') })); - Handler.getItemTypes().then((list) => { + IndependentHandler.getItemTypes().then((list) => { const Types = Content.getElement('[name="itemType"]'); for (let i = 0, len = list.length; i < len; i++) { @@ -385,7 +384,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ } Win.close(); - + this.save().then(() => { Child.click(); this.$ActiveMapItem = Child; @@ -429,7 +428,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ Win.Loader.show(); - Handler.getItemTypes().then((list) => { + IndependentHandler.getItemTypes().then((list) => { const Types = Content.getElement('[name="itemType"]'); for (let i = 0, len = list.length; i < len; i++) { @@ -511,7 +510,7 @@ define('package/quiqqer/menu/bin/Controls/Independent/MenuPanel', [ this.$ActiveItem = null; this.$ActiveMapItem = null; - return Handler.getItemTypes(); + return IndependentHandler.getItemTypes(); }).then((list) => { let control = ''; let type = Item.getAttribute('itemType'); diff --git a/bin/classes/Independent/Handler.js b/bin/classes/Independent/Handler.js index 3cab7b50da898e54043de5f09ace3cc85f811900..43e34a8942f9168a33c47f62b7d21bf3a788ca14 100644 --- a/bin/classes/Independent/Handler.js +++ b/bin/classes/Independent/Handler.js @@ -11,6 +11,8 @@ define('package/quiqqer/menu/bin/classes/Independent/Handler', [ ], function (QUI, QUIDOM, QUIAjax) { "use strict"; + let itemTypes = null; + return new Class({ Extends: QUIDOM, @@ -31,14 +33,38 @@ define('package/quiqqer/menu/bin/classes/Independent/Handler', [ * @returns {Promise} */ getItemTypes: function () { + if (itemTypes !== null) { + return Promise.resolve(itemTypes); + } + return new Promise(function (resolve, reject) { - QUIAjax.get('package_quiqqer_menu_ajax_backend_independent_getItemTypes', resolve, { + QUIAjax.get('package_quiqqer_menu_ajax_backend_independent_getItemTypes', function (result) { + itemTypes = result; + resolve(itemTypes); + }, { 'package': 'quiqqer/menu', onError : reject }); }); }, + /** + * Return the name of the types + * + * @returns {Promise} + */ + getTypeName: function (type) { + return this.getItemTypes().then((list) => { + for (let i = 0, len = list.length; i < len; i++) { + if (list[i].class === type) { + return list[i].title; + } + } + + return ''; + }); + }, + createMenu: function (title, workingTitle) { return new Promise(function (resolve, reject) { QUIAjax.post('package_quiqqer_menu_ajax_backend_independent_create', resolve, { diff --git a/bin/classes/IndependentHandler.js b/bin/classes/IndependentHandler.js new file mode 100644 index 0000000000000000000000000000000000000000..61c1030e32b1f4b7f52085eddfc60c433a2ff45c --- /dev/null +++ b/bin/classes/IndependentHandler.js @@ -0,0 +1,11 @@ +/** + * @module package/quiqqer/menu/bin/classes/Independent/Handler + * @author www.pcsg.de (Henning Leutz) + */ +define('package/quiqqer/menu/bin/classes/IndependentHandler', [ + 'package/quiqqer/menu/bin/classes/Independent/Handler' +], function (Handler) { + "use strict"; + + return new Handler(); +}); \ No newline at end of file