FilterEditor: save changes on element addition

refs #2900
This commit is contained in:
Alexander A. Klimov 2018-04-04 12:19:21 +02:00
parent 8262f19c5a
commit b5dde96746
2 changed files with 22 additions and 18 deletions

View File

@ -327,6 +327,17 @@ class FilterEditor extends AbstractWidget
$filter = $this->applyChanges($request->getPost()); $filter = $this->applyChanges($request->getPost());
$url = $this->url()->setQueryString($filter->toQueryString())->addParams($preserve); $url = $this->url()->setQueryString($filter->toQueryString())->addParams($preserve);
$url->getParams()->add('modifyFilter'); $url->getParams()->add('modifyFilter');
$addFilter = $request->get('add_filter');
if ($addFilter !== null) {
$url->setParam('addFilter', $addFilter);
}
$removeFilter = $request->get('remove_filter');
if ($removeFilter !== null) {
$url->setParam('removeFilter', $removeFilter);
}
$this->redirectNow($url); $this->redirectNow($url);
} }
} }
@ -388,28 +399,16 @@ class FilterEditor extends AbstractWidget
protected function removeLink(Filter $filter) protected function removeLink(Filter $filter)
{ {
return $this->view()->qlink( return "<button type='submit' name='remove_filter' value='{$filter->getId()}'>"
'', . $this->view()->icon('trash', t('Remove this part of your filter'))
$this->preservedUrl()->with('removeFilter', $filter->getId()), . '</button>';
null,
array(
'icon' => 'trash',
'title' => t('Remove this part of your filter')
)
);
} }
protected function addLink(Filter $filter) protected function addLink(Filter $filter)
{ {
return $this->view()->qlink( return "<button type='submit' name='add_filter' value='{$filter->getId()}'>"
'', . $this->view()->icon('plus', t('Add another filter'))
$this->preservedUrl()->with('addFilter', $filter->getId()), . '</button>';
null,
array(
'icon' => 'plus',
'title' => t('Add another filter')
)
);
} }
protected function stripLink(Filter $filter) protected function stripLink(Filter $filter)

View File

@ -164,6 +164,11 @@ table.multiselect tr[href] td {
div.buttons { div.buttons {
float: right; float: right;
} }
button {
border: none;
background: none;
}
} }
} }