Changeset 90


Ignore:
Timestamp:
12/06/10 17:42:24 (13 years ago)
Author:
nanardon
Message:
  • optimize search again
File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/trunk/web/lib/Sophie/Controller/Search.pm

    r89 r90  
    3838        $c->forward('quick', [ 
    3939                { 
    40                     page => $c->req->param('page'), 
     40                    page => $c->req->param('page') || undef, 
    4141                } , grep { $_ } split(/\s/, $c->req->param('search')) ]); 
     42 
    4243    } 
    4344} 
     
    6465    ); 
    6566 
    66     if (1 || !$searchspec->{page}) { 
    67         my $pager = $rs->pager; 
     67    $c->stash->{rs} = $rs; 
     68    $c->stash->{column} ||= 'pkgid'; 
     69    my @results; 
     70    if (ref $c->stash->{column}) { 
     71        while (my $i = $rs->next) { 
     72            push(@results, { 
     73                map { $_ => $i->get_column($_) } @{$c->stash->{column}}  
     74            }); 
     75        } 
     76    } else { 
     77        @results = $rs->get_column($c->stash->{column})->all; 
     78    } 
     79    if (!$searchspec->{page}) { 
     80        my $pager = $c->stash->{rs}->pager; 
    6881        $c->stash->{pager} = $pager; 
    6982        $c->stash->{xmlrpc} = { 
     
    7487        }; 
    7588    } 
    76     $c->stash->{column} ||= 'pkgid'; 
    77     if (ref $c->stash->{column}) { 
    78         my @results; 
    79         while (my $i = $rs->next) { 
    80             push(@results, { 
    81                 map { $_ => $i->get_column($_) } @{$c->stash->{column}}  
    82             }); 
    83         } 
    84         $c->stash->{xmlrpc}{results} = \@results; 
    85     } else { 
    86         $c->stash->{xmlrpc}{results} = [ 
    87             $rs->get_column($c->stash->{column})->all 
    88         ]; 
    89     } 
     89    $c->stash->{xmlrpc}{results} = \@results; 
    9090    return $c->stash->{xmlrpc}; 
    9191} 
Note: See TracChangeset for help on using the changeset viewer.