commit 5c887f7d94399c072fdfd1977f00e41653baa4f5
parent 69ade6113f0b100d55f1d0affd78e808bd6c473b
Author: felicitus <felicitus@felicitus.org>
Date: Thu, 5 Jul 2012 22:27:03 +0200
Added filter by create date
Diffstat:
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