refactored search with free search term support (#1064)

This commit is contained in:
Kevin Papst
2019-09-04 18:54:06 +02:00
committed by GitHub
parent 49e1a1c410
commit e99b170d0a
147 changed files with 2071 additions and 1322 deletions

View File

@@ -14,6 +14,7 @@ use App\Form\Type\CustomerType;
use App\Form\Type\DateRangeType;
use App\Form\Type\PageSizeType;
use App\Form\Type\ProjectType;
use App\Form\Type\SearchTermType;
use App\Form\Type\TagsInputType;
use App\Form\Type\UserRoleType;
use App\Form\Type\UserType;
@@ -50,11 +51,17 @@ abstract class AbstractToolbarForm extends AbstractType
return '';
}
protected function getSelectpickerConfig(): bool
{
return false;
}
protected function addUserChoice(FormBuilderInterface $builder)
{
$builder->add('user', UserType::class, [
'label' => 'label.user',
'required' => false,
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
@@ -64,6 +71,7 @@ abstract class AbstractToolbarForm extends AbstractType
'label' => 'label.user',
'multiple' => true,
'required' => false,
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
@@ -88,6 +96,7 @@ abstract class AbstractToolbarForm extends AbstractType
return $repo->getQueryBuilderForFormType($query);
},
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
);
@@ -98,7 +107,8 @@ abstract class AbstractToolbarForm extends AbstractType
$builder->add('visibility', VisibilityType::class, [
'required' => false,
'placeholder' => null,
'label' => $label
'label' => $label,
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
@@ -106,6 +116,7 @@ abstract class AbstractToolbarForm extends AbstractType
{
$builder->add('pageSize', PageSizeType::class, [
'required' => false,
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
@@ -113,6 +124,7 @@ abstract class AbstractToolbarForm extends AbstractType
{
$builder->add('role', UserRoleType::class, [
'required' => false,
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
@@ -149,6 +161,7 @@ abstract class AbstractToolbarForm extends AbstractType
return $repo->getQueryBuilderForFormType($query);
},
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
);
@@ -177,6 +190,7 @@ abstract class AbstractToolbarForm extends AbstractType
return $repo->getQueryBuilderForFormType($query);
},
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
);
@@ -196,6 +210,11 @@ abstract class AbstractToolbarForm extends AbstractType
]);
}
protected function addSearchTermInputField(FormBuilderInterface $builder)
{
$builder->add('searchTerm', SearchTermType::class);
}
protected function addTimesheetStateChoice(FormBuilderInterface $builder)
{
$builder->add('state', ChoiceType::class, [
@@ -207,6 +226,7 @@ abstract class AbstractToolbarForm extends AbstractType
'entryState.running' => TimesheetQuery::STATE_RUNNING,
'entryState.stopped' => TimesheetQuery::STATE_STOPPED
],
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
@@ -221,6 +241,7 @@ abstract class AbstractToolbarForm extends AbstractType
'entryState.exported' => TimesheetQuery::STATE_EXPORTED,
'entryState.not_exported' => TimesheetQuery::STATE_NOT_EXPORTED
],
'selectpicker' => $this->getSelectpickerConfig(),
]);
}
}

View File

@@ -24,8 +24,9 @@ class ActivityToolbarForm extends AbstractToolbarForm
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addPageSizeChoice($builder);
$this->addVisibilityChoice($builder);
$this->addSearchTermInputField($builder);
$this->addCustomerChoice($builder);
$this->addProjectChoice($builder);
$builder->add('globalsOnly', ChoiceType::class, [
'choices' => [
'yes' => 1,
@@ -34,9 +35,10 @@ class ActivityToolbarForm extends AbstractToolbarForm
'placeholder' => null,
'required' => false,
'label' => 'label.globalsOnly',
'selectpicker' => $this->getSelectpickerConfig(),
]);
$this->addCustomerChoice($builder);
$this->addProjectChoice($builder);
$this->addVisibilityChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
}

View File

@@ -23,8 +23,9 @@ class CustomerToolbarForm extends AbstractToolbarForm
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addPageSizeChoice($builder);
$this->addSearchTermInputField($builder);
$this->addVisibilityChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
}

View File

@@ -21,11 +21,17 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
*/
class ExportToolbarForm extends AbstractToolbarForm
{
protected function getSelectpickerConfig(): bool
{
return true;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addSearchTermInputField($builder);
$this->addExportStateChoice($builder);
$this->addTimesheetStateChoice($builder);
$this->addUsersChoice($builder);

View File

@@ -21,11 +21,17 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
*/
class InvoiceToolbarForm extends AbstractToolbarForm
{
protected function getSelectpickerConfig(): bool
{
return true;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addSearchTermInputField($builder);
$this->addTemplateChoice($builder);
$this->addUsersChoice($builder);
$this->addDateRangeChoice($builder);
@@ -52,6 +58,7 @@ class InvoiceToolbarForm extends AbstractToolbarForm
$builder->add('template', InvoiceTemplateType::class, [
'required' => true,
'placeholder' => null,
'selectpicker' => $this->getSelectpickerConfig(),
]);
}

View File

@@ -23,9 +23,10 @@ class ProjectToolbarForm extends AbstractToolbarForm
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addPageSizeChoice($builder);
$this->addVisibilityChoice($builder);
$this->addSearchTermInputField($builder);
$this->addCustomerChoice($builder);
$this->addVisibilityChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
}

View File

@@ -20,6 +20,7 @@ class TagToolbarForm extends AbstractToolbarForm
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addSearchTermInputField($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
}

View File

@@ -20,6 +20,7 @@ class TeamToolbarForm extends AbstractToolbarForm
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addSearchTermInputField($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
}

View File

@@ -23,8 +23,7 @@ class TimesheetToolbarForm extends AbstractToolbarForm
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addTimesheetStateChoice($builder);
$this->addPageSizeChoice($builder);
$this->addSearchTermInputField($builder);
if ($options['include_user']) {
$this->addUserChoice($builder);
}
@@ -33,6 +32,8 @@ class TimesheetToolbarForm extends AbstractToolbarForm
$this->addProjectChoice($builder);
$this->addActivityChoice($builder);
$this->addTagInputField($builder);
$this->addTimesheetStateChoice($builder);
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
}

View File

@@ -23,9 +23,10 @@ class UserToolbarForm extends AbstractToolbarForm
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->addPageSizeChoice($builder);
$this->addVisibilityChoice($builder, 'label.active');
$this->addSearchTermInputField($builder);
$this->addUserRoleChoice($builder);
$this->addVisibilityChoice($builder, 'label.active');
$this->addPageSizeChoice($builder);
$this->addHiddenPagination($builder);
}