partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 5c887f7d94399c072fdfd1977f00e41653baa4f5
parent 69ade6113f0b100d55f1d0affd78e808bd6c473b
Author: felicitus <felicitus@felicitus.org>
Date:   Thu,  5 Jul 2012 22:27:03 +0200

Added filter by create date

Diffstat:
Msrc/backend/PartKeepr/Part/PartService.php | 27+++++++++++++++++++++++++++
Msrc/frontend/js/Components/Part/PartFilterPanel.js | 47++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/src/backend/PartKeepr/Part/PartService.php b/src/backend/PartKeepr/Part/PartService.php @@ -101,6 +101,33 @@ class PartService extends Service implements RestfulService { if ($this->getParameter("withoutPrice") === true || $this->getParameter("withoutPrice") === "true") { $queryBuilder->andWhere("q.averagePrice IS NULL"); } + + if ($this->getParameter("createDateRestriction") !== "") { + try { + $dateTime = new \DateTime($this->getParameter("createDate")); + $date = $dateTime->format("Y-m-d"); + + switch ($this->getParameter("createDateRestriction")) { + case ">": + $queryBuilder->andWhere("q.createDate > :createDate"); + $queryBuilder->setParameter("createDate", $date); + break; + case "<": + $queryBuilder->andWhere("q.createDate < :createDate"); + $queryBuilder->setParameter("createDate", $date); + break; + case "=": + $queryBuilder->andWhere("q.createDate > :createDate AND q.createDate < :createDate2"); + $queryBuilder->setParameter("createDate", $date. " 00:00:00"); + $queryBuilder->setParameter("createDate2", $date. " 23:59:59"); + break; + default: + break; + } + } catch (\Exception $e) { + // Do nothing for now + } + } } /** diff --git a/src/frontend/js/Components/Part/PartFilterPanel.js b/src/frontend/js/Components/Part/PartFilterPanel.js @@ -3,6 +3,9 @@ Ext.define('PartKeepr.PartFilterPanel', { alias: 'widget.PartFilterPanel', bodyPadding: '10px', layout: 'column', + autoScroll: true, + animCollapse: false, + panelCollapseAnimate: false, bodyStyle: 'background:#DBDBDB;', initComponent: function () { @@ -19,7 +22,8 @@ Ext.define('PartKeepr.PartFilterPanel', { items: [ this.storageLocationFilter, this.categoryFilter, - this.partsWithoutPrice + this.partsWithoutPrice, + this.createDateFilter ] }; @@ -94,6 +98,7 @@ Ext.define('PartKeepr.PartFilterPanel', { // Create the storage location filter field this.storageLocationFilter = Ext.create("PartKeepr.StorageLocationComboBox", { fieldLabel: i18n("Storage Location"), + anchor: '-10', forceSelection: true }); @@ -146,6 +151,42 @@ Ext.define('PartKeepr.PartFilterPanel', { this.distributorOrderNumberFilter = Ext.create("Ext.form.field.Text", { fieldLabel: i18n("Order Number") }); + + this.createDateField = Ext.create("Ext.form.field.Date", { + flex: 1 + }); + + var filter = Ext.create('Ext.data.Store', { + fields: ['type', 'name'], + data : [ + {"type":"<", "name":"before"}, + {"type":">", "name":"after"}, + {"type":"=", "name":"on"}, + {"type":"", "name": "- none -"} + ] + }); + + this.createDateFilterSelect = Ext.create('Ext.form.ComboBox', { + store: filter, + queryMode: 'local', + forceSelection: true, + editable: false, + width: 60, + value: '', + triggerAction: 'all', + displayField: 'name', + valueField: 'type' + }); + + this.createDateFilter = { + xtype: 'fieldcontainer', + anchor: '-10', + fieldLabel: i18n("Create date"), + layout: 'hbox', + border: false, + items: [ this.createDateFilterSelect, this.createDateField ] + }; + }, /** * Applies the filter parameters to the passed extraParams object. @@ -166,6 +207,10 @@ Ext.define('PartKeepr.PartFilterPanel', { delete extraParams.storageLocation; } + extraParams.createDateRestriction = this.createDateFilterSelect.getValue(); + extraParams.createDate = Ext.util.Format.date(this.createDateField.getValue(), "Y-m-d H:i:s"); + + } }); \ No newline at end of file