diff --git a/bin/Controls/Slider/PromosliderSettings.js b/bin/Controls/Slider/PromosliderSettings.js index 885e9d5d85091b681d1d7b2889ff5126815aeabc..587fe9ae4d828e0bba441ad59d5f37423922be89 100644 --- a/bin/Controls/Slider/PromosliderSettings.js +++ b/bin/Controls/Slider/PromosliderSettings.js @@ -142,6 +142,11 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ } }], columnModel: [{ + header : QUILocale.get(lg, 'quiqqer.bricks.promoslider.create.isDisabled.short'), + dataIndex: 'isDisabled', + dataType : 'boolean', + width : 60 + }, { header : QUILocale.get('quiqqer/system', 'image'), dataIndex: 'imagePreview', dataType : 'node', @@ -243,6 +248,10 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ entry = this.$data[i]; insert = {}; + if ("isDisabled" in entry) { + insert.isDisabled = entry.isDisabled; + } + if ("image" in entry && entry.image !== '') { insert.image = entry.image; @@ -324,6 +333,10 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ newTab: '' }; + if ("isDisabled" in params) { + entry.isDisabled = params.isDisabled; + } + if ("image" in params) { entry.image = params.image; } @@ -365,14 +378,19 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ } var entry = { - image : '', - title : '', - text : '', - type : '', - url : '', - newTab: '' + isDisabled: '', + image : '', + title : '', + text : '', + type : '', + url : '', + newTab : '' }; + if ("isDisabled" in params) { + entry.isDisabled = params.isDisabled; + } + if ("image" in params) { entry.image = params.image; } @@ -454,11 +472,12 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ for (var i = 0, len = gridData.length; i < len; i++) { data.push({ - image: gridData[i].image, - title: gridData[i].title, - text : gridData[i].text, - type : gridData[i].type, - url : gridData[i].url + isDisabled: gridData[i].isDisabled, + image : gridData[i].image, + title : gridData[i].title, + text : gridData[i].text, + type : gridData[i].type, + url : gridData[i].url }); } @@ -524,6 +543,7 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ var Content = Dialog.getContent(); var Form = Content.getElement('form'); + var IsDisabled = Form.elements.isDisabled; var Image = Form.elements.image; var Title = Form.elements.title; var Description = Form.elements.description; @@ -532,12 +552,13 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ var NewTab = Form.elements.newTab; self.edit(index, { - image : Image.value, - title : Title.value, - text : Description.value, - type : Type.value, - url : Url.value, - newTab: NewTab.value + isDisabled: IsDisabled.value, + image : Image.value, + title : Title.value, + text : Description.value, + type : Type.value, + url : Url.value, + newTab : NewTab.value }); Dialog.close(); @@ -554,6 +575,12 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ var Type = Form.elements.type; var Url = Form.elements.url; + if (data.isDisabled === "1") { + Dialog.IsDisabledSwitch.on(); + } else { + Dialog.IsDisabledSwitch.off(); + } + Image.value = data.image; Title.value = data.title; Description.value = data.text; @@ -590,20 +617,22 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ var Content = Dialog.getContent(); var Form = Content.getElement('form'); - var Image = Form.elements.image; - var Title = Form.elements.title; - var Description = Form.elements.description; - var Type = Form.elements.type; - var Url = Form.elements.url; - var NewTab = Form.elements.newTab; + var IsDisabled = Form.elements.isDisabled; + var Image = Form.elements.image; + var Title = Form.elements.title; + var Description = Form.elements.description; + var Type = Form.elements.type; + var Url = Form.elements.url; + var NewTab = Form.elements.newTab; self.add({ - image : Image.value, - title : Title.value, - text : Description.value, - type : Type.value, - url : Url.value, - newTab: NewTab.value + isDisabled: IsDisabled.value, + image : Image.value, + title : Title.value, + text : Description.value, + type : Type.value, + url : Url.value, + newTab : NewTab.value }); Dialog.close(); @@ -623,19 +652,21 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ return new Promise(function (resolve) { var Dialog = new QUIConfirm({ - title : QUILocale.get(lg, 'quiqqer.bricks.promoslider.adddialog.title'), - icon : 'fa fa-edit', - maxWidth : 800, - maxHeight : 600, - autoclose : false, - NewTabSwitch: false, - events : { + title : QUILocale.get(lg, 'quiqqer.bricks.promoslider.adddialog.title'), + icon : 'fa fa-edit', + maxWidth : 800, + maxHeight : 600, + autoclose : false, + IsDisabledSwitch: false, + NewTabSwitch : false, + events : { onOpen: function (Win) { Win.Loader.show(); Win.getContent().set('html', ''); var Container = new Element('div', { html : Mustache.render(templateEntry, { + fieldIsDisabled : QUILocale.get(lg, 'quiqqer.bricks.promoslider.create.isDisabled'), fieldImage : QUILocale.get(lg, 'quiqqer.bricks.promoslider.create.image'), fieldUrl : QUILocale.get(lg, 'quiqqer.bricks.promoslider.create.url'), fieldNewTab : QUILocale.get(lg, 'quiqqer.bricks.promoslider.create.newTab'), @@ -656,6 +687,11 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ var ThisDialog = this; require(['qui/controls/buttons/Switch'], function (SwitchControl) { + ThisDialog.IsDisabledSwitch = new SwitchControl({ + name: 'isDisabled' + }); + ThisDialog.IsDisabledSwitch.inject(Container.getElement('#isDisabledWrapper')); + ThisDialog.NewTabSwitch = new SwitchControl({ name: 'newTab' }); diff --git a/bin/Controls/Slider/PromosliderSettingsEntry.html b/bin/Controls/Slider/PromosliderSettingsEntry.html index 2080ff4ec56ddff595d2d104fe915a5bca868fee..89475ac05f7d2e541a1838fa759ecfe0c6e9976b 100644 --- a/bin/Controls/Slider/PromosliderSettingsEntry.html +++ b/bin/Controls/Slider/PromosliderSettingsEntry.html @@ -3,6 +3,16 @@ > <table class="data-table data-table-flexbox"> <tbody> + <tr> + <td> + <label class="field-container"> + <span class="field-container-item"> + {{fieldIsDisabled}} + </span> + <span id="isDisabledWrapper" class="field-container-field"></span> + </label> + </td> + </tr> <tr> <td> <label class="field-container"> diff --git a/locale.xml b/locale.xml index b99e50c13cdcb0fb31ee452d1606c3ef337d9c7f..47cd47caba6ac3dd31721b35a1988ecf09c9262d 100644 --- a/locale.xml +++ b/locale.xml @@ -780,6 +780,14 @@ Möchten Sie die Bausteine aus der Bausteinzone entfernen?</p>]]></de> <en><![CDATA[The slide can not be restored]]></en> </locale> + <locale name="quiqqer.bricks.promoslider.create.isDisabled"> + <de><![CDATA[Slide deaktivieren]]></de> + <en><![CDATA[Deactivate slide]]></en> + </locale> + <locale name="quiqqer.bricks.promoslider.create.isDisabled.short"> + <de><![CDATA[Deaktiviert]]></de> + <en><![CDATA[Deactivated]]></en> + </locale> <locale name="quiqqer.bricks.promoslider.create.image"> <de><![CDATA[Bild]]></de> <en><![CDATA[Image]]></en> diff --git a/src/QUI/Bricks/Controls/Slider/AbstractPromoslider.php b/src/QUI/Bricks/Controls/Slider/AbstractPromoslider.php index 85e73567ba20c8e8f0603eec9f12fa47e410da81..8a810db56fcf714f147abdbf10bf0eec907a004d 100644 --- a/src/QUI/Bricks/Controls/Slider/AbstractPromoslider.php +++ b/src/QUI/Bricks/Controls/Slider/AbstractPromoslider.php @@ -155,9 +155,13 @@ protected function parseSlides($slides, $type = 'desktop') return; } - $attributes = array('image', 'title', 'text', 'type', 'url', 'newTab'); + $attributes = array('image', 'title', 'text', 'type', 'url', 'newTab', 'isDisabled'); foreach ($slides as $slide) { + if (isset($slide['isDisabled']) && $slide['isDisabled']) { + continue; + } + foreach ($attributes as $attribute) { if (!isset($slide[$attribute])) { $slide[$attribute] = false;