Changeset 1330 for trunk


Ignore:
Timestamp:
05/04/15 18:23:54 (9 years ago)
Author:
nanardon
Message:

Improve the attributes autocomplete search

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Json/RefVal.pm

    r1329 r1330  
    3030    my $term = $c->req->param('term') || ''; 
    3131 
    32     my @values = grep { $_ =~ /\Q$term\E/i } $attribute->can_values; 
     32    my @values = $attribute->can_values; 
    3333 
    34     if ($attribute->reference && scalar(@values) < 20) { 
    35         $c->stash->{data} = [  
    36             map { my $o = $base->get_object($attribute->reference, $_); { label => "$o", value => $_ } } 
    37             @values ]; 
     34    if ($attribute->reference) { 
     35        if ($term) { 
     36            my %objs = (); 
     37            foreach my $attr (@{ $c->config->{objects}{$otype}{quick_search} || [ 'cn' ]}) { 
     38                foreach ($base->search_objects( 
     39                        $otype, "$attr~" . $term)) { 
     40                    $objs{$_} = 1; 
     41                } 
     42            } 
     43            @values = grep { $objs{$_} } @values; 
     44        } 
     45 
     46        if (scalar(@values) <= 20) { 
     47            $c->stash->{data} = [ 
     48                map { my $o = $base->get_object($attribute->reference, $_); { label => "$o", value => $_ } } 
     49                @values ]; 
     50        } else { 
     51            $c->stash->{data} = [ map { { label => $_, value => $_ } } @values ]; 
     52        } 
    3853    } else { 
    39         $c->stash->{data} = [ map { { label => $_, value => $_ } } @values ]; 
     54        $c->stash->{data} = [ map { { label => $_, value => $_ } } grep { $_ =~ /\Q$term\E/i } @values ]; 
    4055    } 
    4156} 
Note: See TracChangeset for help on using the changeset viewer.