save default search options (#2445)

* set default times for daterange objects
* allow to show order and order by fields
* move search to modal
* more options for page size
* save export visibility in cookie
This commit is contained in:
Kevin Papst
2021-03-20 01:10:45 +01:00
committed by GitHub
parent 954ba7c937
commit 87d07ffaaf
83 changed files with 903 additions and 410 deletions

View File

@@ -300,6 +300,8 @@ abstract class AbstractToolbarForm extends AbstractType
protected function addHiddenOrder(FormBuilderInterface $builder)
{
@trigger_error('addHiddenOrder() is deprecated and will be removed with 2.0, use the new search modal instead', E_USER_DEPRECATED);
$builder->add('order', HiddenType::class, [
'constraints' => [
new Choice(['choices' => [BaseQuery::ORDER_ASC, BaseQuery::ORDER_DESC]])
@@ -307,8 +309,21 @@ abstract class AbstractToolbarForm extends AbstractType
]);
}
protected function addOrder(FormBuilderInterface $builder)
{
$builder->add('order', ChoiceType::class, [
'label' => 'label.order',
'choices' => [
'label.asc' => BaseQuery::ORDER_ASC,
'label.desc' => BaseQuery::ORDER_DESC
]
]);
}
protected function addHiddenOrderBy(FormBuilderInterface $builder, array $allowedColumns)
{
@trigger_error('addHiddenOrderBy() is deprecated and will be removed with 2.0, use the new search modal instead', E_USER_DEPRECATED);
$builder->add('orderBy', HiddenType::class, [
'constraints' => [
new Choice(['choices' => $allowedColumns])
@@ -316,6 +331,19 @@ abstract class AbstractToolbarForm extends AbstractType
]);
}
protected function addOrderBy(FormBuilderInterface $builder, array $allowedColumns)
{
$all = [];
foreach ($allowedColumns as $id => $name) {
$label = \is_int($id) ? 'label.' . $name : $id;
$all[$label] = $name;
}
$builder->add('orderBy', ChoiceType::class, [
'label' => 'label.orderBy',
'choices' => $all
]);
}
protected function addTagInputField(FormBuilderInterface $builder)
{
$builder->add('tags', TagsType::class, [

View File

@@ -45,8 +45,8 @@ class ActivityToolbarForm extends AbstractToolbarForm
$this->addVisibilityChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
$this->addHiddenOrder($builder);
$this->addHiddenOrderBy($builder, ActivityQuery::ACTIVITY_ORDER_ALLOWED);
$this->addOrder($builder);
$this->addOrderBy($builder, ActivityQuery::ACTIVITY_ORDER_ALLOWED);
}
/**

View File

@@ -27,8 +27,8 @@ class CustomerToolbarForm extends AbstractToolbarForm
$this->addVisibilityChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
$this->addHiddenOrder($builder);
$this->addHiddenOrderBy($builder, CustomerQuery::CUSTOMER_ORDER_ALLOWED);
$this->addOrder($builder);
$this->addOrderBy($builder, CustomerQuery::CUSTOMER_ORDER_ALLOWED);
}
/**

View File

@@ -28,8 +28,8 @@ class ProjectToolbarForm extends AbstractToolbarForm
$this->addVisibilityChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
$this->addHiddenOrder($builder);
$this->addHiddenOrderBy($builder, ProjectQuery::PROJECT_ORDER_ALLOWED);
$this->addOrder($builder);
$this->addOrderBy($builder, ProjectQuery::PROJECT_ORDER_ALLOWED);
}
/**

View File

@@ -23,8 +23,8 @@ class TagToolbarForm extends AbstractToolbarForm
$this->addSearchTermInputField($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
$this->addHiddenOrder($builder);
$this->addHiddenOrderBy($builder, TagQuery::TAG_ORDER_ALLOWED);
$this->addOrder($builder);
$this->addOrderBy($builder, TagQuery::TAG_ORDER_ALLOWED);
}
/**

View File

@@ -24,8 +24,8 @@ class TeamToolbarForm extends AbstractToolbarForm
$this->addSearchTermInputField($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
$this->addHiddenOrder($builder);
$this->addHiddenOrderBy($builder, TeamQuery::TEAM_ORDER_ALLOWED);
$this->addOrder($builder);
$this->addOrderBy($builder, TeamQuery::TEAM_ORDER_ALLOWED);
}
/**

View File

@@ -41,8 +41,8 @@ class TimesheetToolbarForm extends AbstractToolbarForm
$this->addExportStateChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
$this->addHiddenOrder($builder);
$this->addHiddenOrderBy($builder, TimesheetQuery::TIMESHEET_ORDER_ALLOWED);
$this->addOrder($builder);
$this->addOrderBy($builder, TimesheetQuery::TIMESHEET_ORDER_ALLOWED);
}
/**

View File

@@ -28,8 +28,8 @@ class UserToolbarForm extends AbstractToolbarForm
$this->addVisibilityChoice($builder, 'label.active');
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
$this->addHiddenOrder($builder);
$this->addHiddenOrderBy($builder, UserQuery::USER_ORDER_ALLOWED);
$this->addOrder($builder);
$this->addOrderBy($builder, UserQuery::USER_ORDER_ALLOWED);
}
/**