diff --git a/bin/Controls/Slider/PromosliderSettings.js b/bin/Controls/Slider/PromosliderSettings.js index 96fa3706d32b94476ebcc0fba4daeed0673a12f0..f4734c01f337aad6f50b377b101a63cf8bb93470 100644 --- a/bin/Controls/Slider/PromosliderSettings.js +++ b/bin/Controls/Slider/PromosliderSettings.js @@ -32,7 +32,8 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ '$onImport', '$openAddDialog', '$openDeleteDialog', - '$openEditDialog' + '$openEditDialog', + '$toggleSlideStatus' ], initialize: function (options) { @@ -124,6 +125,14 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ } }, { type: 'separator' + }, { + name : 'toggle', + textimage: 'fa fa-toggle-off', + text : QUILocale.get(lg, 'quiqqer.bricks.promoslider.button.text.enable'), + disabled : true, + events : { + onClick: this.$toggleSlideStatus + } }, { name : 'edit', textimage: 'fa fa-edit', @@ -196,12 +205,29 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ Delete = buttons.filter(function (Btn) { return Btn.getAttribute('name') === 'delete'; + })[0], + + Toggle = buttons.filter(function (Btn) { + return Btn.getAttribute('name') === 'toggle'; })[0]; Up.enable(); Down.enable(); Edit.enable(); Delete.enable(); + Toggle.enable(); + + if (this.$Grid.getSelectedData()[0].isDisabled === "1") { + Toggle.setAttributes({ + text: QUILocale.get(lg, 'quiqqer.bricks.promoslider.button.text.enable'), + textimage: 'fa fa-toggle-off' + }); + } else { + Toggle.setAttributes({ + text: QUILocale.get(lg, 'quiqqer.bricks.promoslider.button.text.disable'), + textimage: 'fa fa-toggle-on' + }); + } }.bind(this), onDblClick: this.$openEditDialog @@ -224,6 +250,25 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ } }, + + /** + * Toggles the slide's status between enabled and disabled + * + * @param {number} [index] - the slide's index + */ + $toggleSlideStatus: function() { + var index = this.$Grid.getSelectedIndices()[0], + data = this.$data[index]; + + if (data.isDisabled === "1") { + data.isDisabled = "0"; + } else { + data.isDisabled = "1"; + } + + this.edit(index, data); + }, + /** * Resize the control * @@ -303,12 +348,18 @@ define('package/quiqqer/bricks/bin/Controls/Slider/PromosliderSettings', [ Delete = buttons.filter(function (Btn) { return Btn.getAttribute('name') === 'delete'; + })[0], + + Toggle = buttons.filter(function (Btn) { + return Btn.getAttribute('name') === 'toggle'; })[0]; Up.disable(); Down.disable(); Edit.disable(); Delete.disable(); + Toggle.disable(); + }, /** diff --git a/locale.xml b/locale.xml index 47cd47caba6ac3dd31721b35a1988ecf09c9262d..c86f1ff2427b3bea7204567fe173cc3dc83e138d 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.button.text.enable"> + <de><![CDATA[Aktivieren]]></de> + <en><![CDATA[Enable]]></en> + </locale> + <locale name="quiqqer.bricks.promoslider.button.text.disable"> + <de><![CDATA[Deaktivieren]]></de> + <en><![CDATA[Disable]]></en> + </locale> <locale name="quiqqer.bricks.promoslider.create.isDisabled"> <de><![CDATA[Slide deaktivieren]]></de> <en><![CDATA[Deactivate slide]]></en>