1 package SL::Controller::TopQuickSearch::Project;
4 use parent qw(Rose::Object);
6 use SL::Locale::String qw(t8);
8 use SL::Controller::Helper::GetModels;
9 use SL::Controller::Base;
11 use Rose::Object::MakeMethods::Generic (
12 'scalar --get_set_init' => [ qw(models) ],
15 sub auth { 'project_edit' }
17 sub name { 'project' }
19 sub description_config { t8('Projects') }
21 sub description_field { t8('Projects') }
23 sub query_autocomplete {
26 my $objects = $self->models->get;
30 value => $_->full_description,
31 label => $_->full_description,
37 sub select_autocomplete {
38 $_[0]->redirect_to_object($::form->{id});
44 my $objects = $self->models->get;
46 return !@$objects ? ()
47 : @$objects == 1 ? $self->redirect_to_object($objects->[0]->id)
48 : $self->redirect_to_search($::form->{term});
51 sub redirect_to_search {
52 my ($self, $term) = @_;
54 SL::Controller::Base->new->url_for(
55 controller => 'controller.pl',
56 action => 'Project/list',
62 sub redirect_to_object {
63 my ($self, $term) = @_;
64 SL::Controller::Base->new->url_for(
65 controller => 'controller.pl',
66 action => 'Project/edit',
74 SL::Controller::Helper::GetModels->new(
79 'all:substr:multi::ilike' => $::form->{term},
92 with_objects => [ qw(customer) ]