Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 7abae2f3

Von Sven Schöling vor mehr als 13 Jahren hinzugefügt

  • ID 7abae2f3a934a3147b20ec216ab89fbdad3b8522
  • Vorgänger 60009b97
  • Nachfolger 7fa5f43b

Autocomplete version 1 - mehrere eingabefelder, type filter, limit

Unterschiede anzeigen:

SL/Controller/Part.pm
package SL::Controller::Part;
use strict;
use parent qw(SL::Controller::Base);
use SL::DB::Part;
# safety
__PACKAGE__->run_before(sub { $::auth->assert('part_service_assembly_edit') });
sub action_part_picker_testpage {
my ($self, %params) = @_;
$self->render('part/testpage');
}
sub action_ajax_autocomplete {
my ($self, %params) = @_;
my $limit = $::form->{limit} || 20;
my $type = $::form->{type} || {};
my $query = { ilike => "%$::form->{term}%" };
my @filter;
push @filter, SL::DB::Manager::Part->type_filter($type);
push @filter, ($::form->{column})
? ($::form->{column} => $query)
: (or => [ partnumber => $query, description => $query ]);
$self->{parts} = SL::DB::Manager::Part->get_all(query => [ @filter ], limit => $limit);
$self->{value} = $::form->{column} || 'description';
$self->render('part/ajax_autocomplete', { no_layout => 1 });
}
1;
templates/webpages/part/ajax_autocomplete.html
[%- USE HTML %][% USE JSON %][
[%- FOREACH part = SELF.parts %]
{
"label": [% JSON.json(part.partnumber _ " " _ part.description) %],
"value": [% part.${SELF.value}.json %],
"id": [% part.id.json %],
"partnumber": [% part.partnumber.json %],
"description": [% part.description.json %],
"type": [% part.type.json %]
}[% ',' UNLESS loop.last %]
[%- END %]
]

Auch abrufbar als: Unified diff