From 58e12ecad2d2ed32218d20d437ba3db4f340b8e7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Wed, 10 Jul 2013 19:18:42 +0200 Subject: [PATCH] exact match funktion wieder hergestellt nach dem letzten commit --- SL/Controller/Part.pm | 19 +++++++++++++++++-- SL/Presenter/Part.pm | 8 ++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/SL/Controller/Part.pm b/SL/Controller/Part.pm index 4d8da25f8..9b4744e9e 100644 --- a/SL/Controller/Part.pm +++ b/SL/Controller/Part.pm @@ -44,8 +44,23 @@ sub action_ajax_autocomplete { # if someone types something, and hits enter, assume he entered the full name. # if something matches, treat that as sole match + # unfortunately get_models can't do more than one per package atm, so we d it + # the oldfashioned way. if ($::form->{prefer_exact}) { - # TODO! + my $exact_matches; + if (1 == scalar @{ $exact_matches = SL::DB::Manager::Part->get_all( + query => [ + obsolete => 0, + SL::DB::Manager::Part->type_filter($::form->{filter}{type}), + or => [ + description => { ilike => $::form->{filter}{'all:substr::ilike'} }, + partnumber => { ilike => $::form->{filter}{'all:substr::ilike'} }, + ] + ], + limit => 2, + ) }) { + $self->parts($exact_matches); + } } my @hashes = map { @@ -57,7 +72,7 @@ sub action_ajax_autocomplete { description => $_->description, type => $_->type, } - } @{ $self->parts }; + } @{ $self->parts }; # neato: if exact match triggers we don't even need the init_parts $self->render(\ SL::JSON::to_json(\@hashes), { layout => 0, type => 'json', process => 0 }); } diff --git a/SL/Presenter/Part.pm b/SL/Presenter/Part.pm index bef55a35f..e2ca02085 100644 --- a/SL/Presenter/Part.pm +++ b/SL/Presenter/Part.pm @@ -49,10 +49,14 @@ section C. C can be an id or C instance. -If C contains C only parts of this type will be used for autocompletion. +If C contains C only parts of this type will be used for +autocompletion. Currently only one type may be specified. Obsolete parts will by default not displayed for selection. However they are -accepted as default values and can persist during updates. +accepted as default values and can persist during updates. As with other +selectors though, they are not selecatble once overridden. + + =back -- 2.20.1