Ignore:
Timestamp:
12/17/10 13:23:21 (13 years ago)
Author:
nanardon
Message:
  • allow using glob like search on dirname part
File:
1 edited

Legend:

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

    r129 r130  
    381381    my ( $self, $c, $searchspec, $file) = @_; 
    382382    my ($dirname, $basename) = $file =~ m:^(.*/)?([^/]+)$:; 
     383    $dirname =~ m:^[/]: or $dirname = undef; 
     384    if (!$dirname) { 
     385        if ($file =~ /(\*|\?)/) { 
     386            $file =~ tr/*?/%_/; 
     387        } else { 
     388            $file = '%' . $file; 
     389        } 
     390    } 
    383391    $searchspec ||= {}; 
    384392 
     
    391399                    ? (dirname => $dirname) 
    392400                    : ()), 
     401                { 'dirname || basename' => { LIKE => $file } }, 
    393402                basename => $basename, 
    394403                ($searchspec->{content} ? { has_content => 1 } : ()), 
     
    434443sub byfile : XMLRPCPath('/search/rpm/byfile') { 
    435444    my ( $self, $c, $searchspec, $file) = @_; 
    436     my ($dirname, $basename) = $file =~ m:^(.*/)?([^/]+)$:; 
    437445    $searchspec ||= {}; 
    438446    my $distrs = $c->forward('distrib_search', [ $searchspec, 1 ]); 
     
    547555sub file_search : XMLRPCPath('/search/file/byname') { 
    548556    my ( $self, $c, $searchspec, $file) = @_; 
    549     my ($dirname, $basename) = $file =~ m:^(.*/)?([^/]+)$:; 
    550557    $searchspec ||= {}; 
    551558 
Note: See TracChangeset for help on using the changeset viewer.