From 244dd7c2c5c5d727b41fd222d79979b0a60354b6 Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Mon, 11 Apr 2016 13:29:26 +0200 Subject: [PATCH] =?UTF-8?q?discount=20bl=C3=A4tterfunktion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ajax/list.php | 49 +++++++++++++++++++++++++++++++++++++++ bin/classes/Handler.js | 14 +++++++++-- bin/controls/Discounts.js | 22 +++++++++--------- 3 files changed, 72 insertions(+), 13 deletions(-) create mode 100644 ajax/list.php diff --git a/ajax/list.php b/ajax/list.php new file mode 100644 index 0000000..baa07df --- /dev/null +++ b/ajax/list.php @@ -0,0 +1,49 @@ +<?php + +/** + * This file contains package_quiqqer_discount_ajax_list + */ + +/** + * Returns discount list + * + * @param string $params - JSON query params + * + * @return array + */ +QUI::$Ajax->registerFunction( + 'package_quiqqer_discount_ajax_list', + function ($params) { + $Grid = new QUI\Utils\Grid(); + $Discounts = new QUI\ERP\Discount\Handler(); + $result = array(); + $Locale = QUI::getLocale(); + + // search + $data = $Discounts->getChildrenData( + $Grid->parseDBParams(json_decode($params, true)) + ); + + foreach ($data as $entry) { + $entry['title'] = array( + 'quiqqer/discount', + 'discount.' . $entry['id'] . '.title' + ); + + $entry['text'] = $Locale->get( + 'quiqqer/discount', + 'discount.' . $entry['id'] . '.title' + ); + + $result[] = $entry; + } + + usort($result, function ($a, $b) { + return $a['text'] > $b['text']; + }); + + return $Grid->parseResult($result, $Discounts->countChildren()); + }, + array('params'), + 'Permission::checkAdminUser' +); diff --git a/bin/classes/Handler.js b/bin/classes/Handler.js index 4a9bf7b..d4749c1 100644 --- a/bin/classes/Handler.js +++ b/bin/classes/Handler.js @@ -60,11 +60,21 @@ define('package/quiqqer/discount/bin/classes/Handler', [ }, /** + * Return a discount list for a grid * + * @params {Object} params - grid params * @returns {Promise} */ - getList: function () { - return this.search(); + getList: function (params) { + params = params || {}; + + return new Promise(function (resolve, reject) { + Ajax.get('package_quiqqer_discount_ajax_list', resolve, { + 'package': 'quiqqer/discount', + onError : reject, + params : JSON.encode(params) + }); + }); }, /** diff --git a/bin/controls/Discounts.js b/bin/controls/Discounts.js index ef2cfb6..7ad3305 100644 --- a/bin/controls/Discounts.js +++ b/bin/controls/Discounts.js @@ -123,6 +123,7 @@ define('package/quiqqer/discount/bin/controls/Discounts', [ this.$Grid = new Grid(Container, { multipleSelection: true, + pagination : true, columnModel : [{ header : QUILocale.get('quiqqer/system', 'id'), dataIndex: 'id', @@ -249,13 +250,15 @@ define('package/quiqqer/discount/bin/controls/Discounts', [ this.getButtons('edit').disable(); this.parent(); - return Discounts.getList().then(function (data) { - var i, len, active, entry, - gridData = []; + return Discounts.getList({ + perPage: this.$Grid.options.perPage, + page : this.$Grid.options.page + }).then(function (result) { + var i, len, active, entry; - for (i = 0, len = data.length; i < len; i++) { - entry = data[i]; - active = parseInt(data[i].active); + for (i = 0, len = result.data.length; i < len; i++) { + entry = result.data[i]; + active = parseInt(result.data[i].active); if (active) { entry.status = { @@ -281,13 +284,10 @@ define('package/quiqqer/discount/bin/controls/Discounts', [ }; } - gridData.push(entry); + result.data[i] = entry; } - self.$Grid.setData({ - data: gridData - }); - + self.$Grid.setData(result); self.Loader.hide(); }); }, -- GitLab