From 2551d884050f99cbc350f0152b7428d04b1fe2dd Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Tue, 14 Mar 2023 11:24:11 +0100 Subject: [PATCH] fix: quiqqer/coupons#14 --- ajax/create.php | 16 +++-- bin/backend/controls/Manager.js | 108 +++++++++++++++++--------------- 2 files changed, 70 insertions(+), 54 deletions(-) diff --git a/ajax/create.php b/ajax/create.php index 8ef89fb..2039113 100644 --- a/ajax/create.php +++ b/ajax/create.php @@ -1,9 +1,9 @@ <?php -use QUI\ERP\Coupons\Handler; -use QUI\Utils\Security\Orthos; use QUI\ERP\Coupons\CouponCodeException; +use QUI\ERP\Coupons\Handler; use QUI\ERP\Discount\Handler as DiscountsHandler; +use QUI\Utils\Security\Orthos; /** * Create new CouponCode(s) @@ -14,7 +14,15 @@ QUI::$Ajax->registerFunction( 'package_quiqqer_coupons_ajax_create', function ($attributes) { - $attributes = Orthos::clearArray(\json_decode($attributes, true)); + $attributes = Orthos::clearArray(json_decode($attributes, true)); + + if (!empty($attributes['code'])) { + $attributes['code'] = html_entity_decode($attributes['code']); + } + + if (!empty($attributes['title'])) { + $attributes['title'] = html_entity_decode($attributes['title']); + } try { $amount = 1; @@ -64,7 +72,7 @@ function ($attributes) { if ($i === 0) { \QUI\Translator::update( 'quiqqer/discount', - 'discount.'.$NewDiscount->getId().'.title', + 'discount.' . $NewDiscount->getId() . '.title', 'quiqqer/discount', [ 'de' => $L->getByLang('de', 'quiqqer/coupons', 'Discount.default_title', [ diff --git a/bin/backend/controls/Manager.js b/bin/backend/controls/Manager.js index 625738a..3714ed8 100644 --- a/bin/backend/controls/Manager.js +++ b/bin/backend/controls/Manager.js @@ -63,11 +63,11 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ initialize: function (options) { this.parent(options); - this.Loader = new QUILoader(); - this.$User = null; - this.$Grid = null; + this.Loader = new QUILoader(); + this.$User = null; + this.$Grid = null; this.$GridParent = null; - this.$Panel = null; + this.$Panel = null; this.addEvents({ onCreate : this.$onCreate, @@ -155,43 +155,51 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ ); this.$Grid = new Grid(this.$GridParent, { - columnModel : [{ - header : QUILocale.get('quiqqer/system', 'id'), - dataIndex: 'id', - dataType : 'number', - width : 50 - }, { - header : QUILocale.get(lg, 'controls.manager.tbl.header.code'), - dataIndex: 'code', - dataType : 'string', - width : 150 - }, { - header : QUILocale.get(lg, 'controls.manager.tbl.header.title'), - dataIndex: 'title', - dataType : 'string', - width : 200 - }, { - header : QUILocale.get(lg, 'controls.manager.tbl.header.status'), - dataIndex: 'status', - dataType : 'node', - width : 200, - className: 'clickable' - }, { - header : QUILocale.get(lg, 'controls.manager.tbl.header.validUntilDate'), - dataIndex: 'validUntilDateText', - dataType : 'string', - width : 150 - }, { - header : QUILocale.get(lg, 'controls.manager.tbl.header.reusable'), - dataIndex: 'maxUsageLabel', - dataType : 'string', - width : 150 - }, { - header : QUILocale.get(lg, 'controls.manager.tbl.header.createDate'), - dataIndex: 'createDate', - dataType : 'string', - width : 150 - }], + columnModel : [ + { + header : QUILocale.get('quiqqer/system', 'id'), + dataIndex: 'id', + dataType : 'number', + width : 50 + }, + { + header : QUILocale.get(lg, 'controls.manager.tbl.header.code'), + dataIndex: 'code', + dataType : 'string', + width : 150 + }, + { + header : QUILocale.get(lg, 'controls.manager.tbl.header.title'), + dataIndex: 'title', + dataType : 'string', + width : 200 + }, + { + header : QUILocale.get(lg, 'controls.manager.tbl.header.status'), + dataIndex: 'status', + dataType : 'node', + width : 200, + className: 'clickable' + }, + { + header : QUILocale.get(lg, 'controls.manager.tbl.header.validUntilDate'), + dataIndex: 'validUntilDateText', + dataType : 'string', + width : 150 + }, + { + header : QUILocale.get(lg, 'controls.manager.tbl.header.reusable'), + dataIndex: 'maxUsageLabel', + dataType : 'string', + width : 150 + }, + { + header : QUILocale.get(lg, 'controls.manager.tbl.header.createDate'), + dataIndex: 'createDate', + dataType : 'string', + width : 150 + } + ], pagination : true, serverSort : true, selectable : true, @@ -356,7 +364,7 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ return; } - + console.log(QUIFormUtils.getFormData(Form)); CouponCodes.create(QUIFormUtils.getFormData(Form)).then((couponCodeId) => { if (!couponCodeId) { Popup.Loader.hide(); @@ -408,7 +416,7 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ events : { onOpen: (Win) => { const Content = Popup.getContent(); - Form = Content.getElement('form'); + Form = Content.getElement('form'); Form.addEvent('submit', function (event) { event.stop(); @@ -416,12 +424,12 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ }); const Amount = Content.getElement('input[name="amount"]'); - const Code = Content.getElement('input[name="code"]'); + const Code = Content.getElement('input[name="code"]'); Code.addEvent('keyup', function () { if (Code.value !== '') { Amount.disabled = true; - Amount.value = 1; + Amount.value = 1; } else { Amount.disabled = false; } @@ -523,10 +531,10 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ * Remove all selected licenses */ $delete: function () { - var self = this; + var self = this; var deleteData = []; - var deleteIds = []; - var rows = this.$Grid.getSelectedData(); + var deleteIds = []; + var rows = this.$Grid.getSelectedData(); for (var i = 0, len = rows.length; i < len; i++) { deleteData.push( @@ -612,7 +620,7 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ headerOrderPrefixedId: QUILocale.get(lg, lgPrefix + 'headerOrderPrefixedId') })); - var Content = Popup.getContent(); + var Content = Popup.getContent(); var TableBody = Content.getElement('tbody'); for (var i = 0, len = RowData.usages.length; i < len; i++) { @@ -620,7 +628,7 @@ define('package/quiqqer/coupons/bin/backend/controls/Manager', [ var Row = new Element('tr', { html: '<td>' + usage.date + '</td>' + - '<td>' + usage.userId + ' (' + usage.userName + ')</td>' + '<td>' + usage.userId + ' (' + usage.userName + ')</td>' }).inject(TableBody); new Element('td', { -- GitLab