mirror of
https://github.com/silverstripe/silverstripe-userforms.git
synced 2024-10-22 17:05:42 +02:00
NEW Filter submissions by created date
This commit is contained in:
parent
8e252c88ed
commit
c4c547321c
@ -17,7 +17,9 @@ class UserFormsGridFieldFilterHeader extends GridFieldFilterHeader {
|
||||
if($actionName === 'filter') {
|
||||
$gridField->State->UserFormsGridField = array(
|
||||
'filter' => isset($data['FieldNameFilter']) ? $data['FieldNameFilter'] : null,
|
||||
'value' => isset($data['FieldValue']) ? $data['FieldValue'] : null
|
||||
'value' => isset($data['FieldValue']) ? $data['FieldValue'] : null,
|
||||
'start' => isset($data['StartFilter']) ? $data['StartFilter'] : null,
|
||||
'end' => isset($data['EndFilter']) ? $data['EndFilter'] : null
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -30,8 +32,6 @@ class UserFormsGridFieldFilterHeader extends GridFieldFilterHeader {
|
||||
$selectedField = $state->filter;
|
||||
$selectedValue = $state->value;
|
||||
|
||||
// get the state of the grid field and populate the default values.
|
||||
|
||||
// retrieve a list of all the available form fields that have been
|
||||
// submitted in this form.
|
||||
$formFields = SubmittedFormField::get()
|
||||
@ -65,8 +65,26 @@ class UserFormsGridFieldFilterHeader extends GridFieldFilterHeader {
|
||||
_t('UserFormsGridFieldFilterHeader.WHEREVALUEIS', 'where value is..'
|
||||
));
|
||||
|
||||
$fields->push($columnField);
|
||||
$fields->push($valueField);
|
||||
$fields->push(new FieldGroup(new CompositeField(
|
||||
$columnField,
|
||||
$valueField
|
||||
)));
|
||||
|
||||
$fields->push(new FieldGroup(new CompositeField(
|
||||
$start = new DateField('StartFilter', 'From'),
|
||||
$end = new DateField('EndFilter', 'Till')
|
||||
)));
|
||||
|
||||
foreach(array($start, $end) as $date) {
|
||||
$date->setConfig('showcalendar', true);
|
||||
$date->setConfig('dateformat', 'y-mm-dd');
|
||||
$date->setConfig('datavalueformat', 'y-mm-dd');
|
||||
$date->addExtraClass('no-change-track');
|
||||
}
|
||||
|
||||
$end->setValue($state->end);
|
||||
$start->setValue($state->start);
|
||||
|
||||
|
||||
$fields->push($actions = new FieldGroup(
|
||||
GridField_FormAction::create($gridField, 'filter', false, 'filter', null)
|
||||
@ -97,7 +115,7 @@ class UserFormsGridFieldFilterHeader extends GridFieldFilterHeader {
|
||||
$state = $gridField->State;
|
||||
|
||||
if($filter = $state->UserFormsGridField->toArray()) {
|
||||
if(isset($filter['filter']) && isset($filter['value'])) {
|
||||
if(isset($filter['filter']) && $filter['filter'] && isset($filter['value']) && $filter['value']) {
|
||||
$dataList = $dataList->where(sprintf("
|
||||
SELECT COUNT(*) FROM SubmittedFormField
|
||||
WHERE (
|
||||
@ -110,6 +128,18 @@ class UserFormsGridFieldFilterHeader extends GridFieldFilterHeader {
|
||||
Convert::raw2sql($filter['value'])
|
||||
));
|
||||
}
|
||||
|
||||
if(isset($filter['start']) && $filter['start']) {
|
||||
$dataList = $dataList->filter(array(
|
||||
'Created:GreaterThan' => $filter['start']
|
||||
));
|
||||
}
|
||||
|
||||
if(isset($filter['end']) && $filter['end']) {
|
||||
$dataList = $dataList->filter(array(
|
||||
'Created:LessThan' => $filter['end']
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
return $dataList;
|
||||
|
Loading…
Reference in New Issue
Block a user