Changeset 108
- Timestamp:
- 12/10/10 19:54:46 (13 years ago)
- Location:
- server/trunk/web
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
server/trunk/web/lib/Sophie/Controller/0Explorer.pm
r107 r108 2 2 use Moose; 3 3 use namespace::autoclean; 4 use DBD::Pg qw(:async); 5 use Sophie::Base::Async; 4 6 5 7 BEGIN {extends 'Catalyst::Controller'; } … … 31 33 $c->session->{__explorer}, 1 ]); 32 34 my %uniq; 33 foreach ( 34 $c->model('Base') 35 ->resultset('Files') 36 ->search( 37 { 38 dirname => '/' . ($dir ? "$dir/" : ''), 39 ($rsdist 40 ? (pkgid => { IN => $rsdist->get_column('pkgid')->as_query, },) 41 : ()), 42 ($c->req->param('filename') 43 ? ( basename => { LIKE => $c->req->param('filename') . '%' } ) 44 : ()), 45 }, 46 { 47 #order_by => [ 'basename' ], 48 #group_by => [ 'basename' ], 49 select => [ 'basename' ], 50 } 51 )->get_column('basename')->all) { 52 $uniq{$_} = 1; 35 36 my $query = Sophie::Base::Async->new( 37 $c->model('Base'), 38 timeout => 10, 39 build => sub { $_[0] 40 ->resultset('Files') 41 ->search( 42 { 43 dirname => '/' . ($dir ? "$dir/" : ''), 44 ($rsdist 45 ? (pkgid => { IN => $rsdist->get_column('pkgid')->as_query, },) 46 : ()), 47 ($c->req->param('filename') 48 ? ( basename => { LIKE => $c->req->param('filename') . '%' } ) 49 : ()), 50 }, 51 { 52 #order_by => [ 'basename' ], 53 #group_by => [ 'basename' ], 54 select => [ 'basename' ], 55 } 56 ) 57 ->get_column('basename') 58 }, 59 ); 60 61 if(my $sth = $query->wait_result) { 62 while (my $res = $sth->fetchrow_hashref()) { 63 $uniq{$res->{basename}} = 1; 64 } 65 } else { 66 $c->stash->{timeout} = 1; 53 67 } 68 54 69 $c->stash->{xmlrpc} = [ sort keys %uniq ]; 55 70 } -
server/trunk/web/root/templates/html/0explorer/dir.tt
r38 r108 1 1 <!-- $Id --> 2 2 3 [% IF timeout %] 4 [% ELSE %] 3 5 [% IF xmlrpc.size %] 4 6 [% FOREACH dir = xmlrpc %] … … 9 11 No sub directories 10 12 [% END %] 13 [% END %]
Note: See TracChangeset
for help on using the changeset viewer.