Changeset 76


Ignore:
Timestamp:
12/05/10 07:14:41 (14 years ago)
Author:
nanardon
Message:
  • add file contents view
Location:
server/trunk/web
Files:
2 added
7 edited

Legend:

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

    r43 r76  
    5353    my $rsdist = $c->forward('/search/distrib_search', [ $c->session->{__explorer} ]); 
    5454 
     55    my @col = qw(dirname basename md5 size pkgid count); 
    5556    $c->stash->{xmlrpc} = [  
    56         map { { pkgid => $_->get_column('pkgid') } } 
     57        map { { 
     58            pkgid => $_->get_column('pkgid'), 
     59            filename => $_->get_column('dirname') . $_->get_column('basename'), 
     60            dirname => $_->get_column('dirname'), 
     61            basename => $_->get_column('basename'), 
     62            md5 => $_->get_column('md5'), 
     63            perm => $_->get_column('perm'), 
     64            size => $_->get_column('size'), 
     65            user => $_->get_column('user'), 
     66            group => $_->get_column('group'), 
     67            has_content => $_->get_column('has_content'), 
     68            count => $_->get_column('count') 
     69            } } 
    5770        $c->model('Base') 
    5871      ->resultset('Files') 
     
    6275          }, 
    6376          {  
    64               'select' => [ 
    65                   'contents IS NULL as has_contents', 'pkgid' 
    66               ], 
    67               as => [ qw(has_content pkgid) ], 
    68               order_by => 'pkgid'  
    69           } 
     77              'select' => [ 'contents is NOT NULL as has_content', 'rpmfilesmode(mode) as perm', @col, '"group"', 
     78                  '"user"' ], 
     79              as => [ qw(has_content perm), @col, 'group', 'user' ], 
     80              order_by => [ 'pkgid' ], 
     81 
     82          }, 
    7083      )->all ]; 
    7184} 
  • server/trunk/web/lib/Sophie/Controller/Distrib.pm

    r57 r76  
    287287} 
    288288 
    289 sub list_rpms :Chained('distrib_view') PathPart('rpms') { 
     289sub list_rpms :Chained('distrib_view') PathPart('rpms') Args(0) { 
    290290    my ( $self, $c ) = @_; 
    291291    $c->forward('rpms', $c->stash->{dist}); 
    292292} 
    293293 
    294 sub list_srpms :Chained('distrib_view') PathPart('srpms') { 
     294sub list_srpms :Chained('distrib_view') PathPart('srpms') Args(0) { 
    295295    my ( $self, $c ) = @_; 
    296296    $c->forward('srpms', $c->stash->{dist}); 
    297297} 
    298298 
    299 sub srpm_by_name :Chained('distrib_view') PathPart('srpms') Args(1) { 
    300     my ($self, $c, $name) = @_; 
     299sub srpm_by_name :Chained('distrib_view') PathPart('srpms') { 
     300    my ($self, $c, $name, @subpart) = @_; 
    301301    $c->stash->{dist}{src} = 1; 
    302302    ($c->stash->{pkgid}) = @{ $c->forward('/search/bytag', 
    303303        [ $c->stash->{dist}, 'name', $name ])->{results} }; 
    304304    $c->go('/404/index') unless ($c->stash->{pkgid}); 
    305     $c->go('/rpms/rpms', [ $c->stash->{pkgid} ]); 
    306 } 
    307  
    308 sub rpm_by_name :Chained('distrib_view') PathPart('rpms') Args(1) { 
    309     my ($self, $c, $name) = @_; 
     305    $c->go('/rpms/rpms', [ $c->stash->{pkgid}, @subpart ]); 
     306} 
     307 
     308sub rpm_by_name :Chained('distrib_view') PathPart('rpms') { 
     309    my ($self, $c, $name, @subpart) = @_; 
    310310    $c->stash->{dist}{src} = 0; 
    311311    ($c->stash->{pkgid}) = @{ $c->forward('/search/bytag', 
    312312        [ $c->stash->{dist}, 'name', $name ])->{results} }; 
    313313    $c->go('/404/index') unless ($c->stash->{pkgid}); 
    314     $c->go('/rpms/rpms', [ $c->stash->{pkgid} ]); 
     314    $c->go('/rpms/rpms', [ $c->stash->{pkgid}, @subpart ]); 
    315315} 
    316316 
     
    347347 
    348348sub media_rpm_bypkgid :Chained('_media_list_rpms') PathPart('by-pkgid') { 
    349     my ( $self, $c, $pkgid, $part ) = @_; 
     349    my ( $self, $c, $pkgid, @part ) = @_; 
    350350    if ($pkgid) { 
    351351        if (@{ $c->forward('/search/bypkgid', [ $c->stash->{dist}, $pkgid 
    352352            ])->{results} } ) { 
    353353            $c->stash->{pkgid} = $pkgid; 
    354             $c->go('/rpms/rpms', [ $pkgid, $part ]); 
     354            $c->go('/rpms/rpms', [ $pkgid, @part ]); 
    355355        } else { 
    356356            $c->go('/404/index'); 
  • server/trunk/web/lib/Sophie/Controller/Rpms.pm

    r61 r76  
    141141    { 
    142142        my $match = $c->stash->{pkgid}; 
    143         ($c->stash->{rpmurl}) = $c->req->path =~ 
    144             m{(.*/\Q$match\E)(?:/[^/]+)?$}; 
    145143    } 
    146144    #$c->model('Base')->resultset('Rpms')->search(pkgid => $pkgid)->next; 
     
    152150 
    153151sub rpms : Private { 
    154     my ( $self, $c, $pkgid, $subpart) = @_; 
     152    my ( $self, $c, $pkgid, $subpart, @args) = @_; 
     153    $c->stash->{rpmurl} = $c->req->path; 
    155154    # Because $c->forward don't take into account Chained sub 
    156155    $c->forward('rpms_', [ $pkgid ]); 
    157156    for ($subpart || '') { 
    158         /^deps$/      and $c->go('alldeps',      [ $pkgid ]); 
    159         /^files$/     and $c->go('files',     [ $pkgid ]); 
    160         /^changelog$/ and $c->go('changelog', [ $pkgid ]); 
     157        /^deps$/      and $c->go('alldeps',   [ $pkgid, @args ]); 
     158        /^files$/     and $c->go('files',     [ $pkgid, @args ]); 
     159        /^changelog$/ and $c->go('changelog', [ $pkgid, @args ]); 
    161160    } 
    162161 
     
    173172sub alldeps :Chained('rpms_') :PathPart('deps') :Args(0) :XMLRPCLocal { 
    174173    my ( $self, $c, $pkgid ) = @_; 
     174    $c->stash->{rpmurl} = ($c->req->path =~ m:(.*)/[^/]+:)[0]; 
    175175    $pkgid ||= $c->stash->{pkgid}; 
    176176 
     
    202202 
    203203sub files :Chained('rpms_') :PathPart('files') :Args(0) :XMLRPCLocal { 
    204     my ( $self, $c, $pkgid ) = @_; 
     204    my ( $self, $c, $pkgid, $number ) = @_; 
     205    $c->stash->{rpmurl} = ($c->req->path =~ m:(.*)/[^/]+:)[0]; 
    205206    $pkgid ||= $c->stash->{pkgid}; 
    206207 
    207     my @col = qw(dirname basename md5 size); 
     208    if ($number) { # This come from a forward 
     209        $c->go('files_contents', [ $number ]); 
     210    } 
     211 
     212    my @col = qw(dirname basename md5 size count); 
    208213    $c->stash->{xmlrpc} = [ map { 
    209214        { 
     
    217222            group => $_->get_column('group'), 
    218223            has_content => $_->get_column('has_content'), 
     224            count => $_->get_column('count'), 
    219225        } 
    220226    } $c->model('Base')->resultset('Files')->search( 
     
    232238} 
    233239 
     240sub files_contents :Chained('rpms_') :PathPart('files') :Args(1) { 
     241    my ( $self, $c, $number ) = @_; 
     242    $c->stash->{rpmurl} = ($c->req->path =~ m:(.*)/[^/]+/[^/]+:)[0]; 
     243    my $pkgid = $c->stash->{pkgid}; 
     244 
     245    $c->stash->{xmlrpc} = $c->model('Base')->resultset('Files')->search( 
     246        { 
     247            pkgid => $pkgid, 
     248            count => $number, 
     249        }, 
     250        { 
     251            select => ['contents'], 
     252        } 
     253    )->get_column('contents')->first; 
     254} 
     255 
    234256sub changelog :Chained('rpms_') :PathPart('changelog') :Args(0) { 
    235257    my ( $self, $c, $pkgid ) = @_; 
    236258    $pkgid ||= $c->stash->{pkgid}; 
     259    $c->stash->{rpmurl} = ($c->req->path =~ m:(.*)/[^/]+:)[0]; 
    237260 
    238261    my @ch; 
  • server/trunk/web/root/static/sophie.css

    r57 r76  
    2727    font-size: 1.2em; 
    2828} 
     29 
     30pre.filedata { 
     31    padding: 2em; 
     32    margin: 2em; 
     33    background: #F5F5DC; 
     34    border: outset; 
     35} 
  • server/trunk/web/root/templates/html/0explorer/file.tt

    r40 r76  
    44 
    55[% FOREACH file = xmlrpc %] 
     6[% IF loop.first %] 
     7<table> 
     8[% END %] 
    69[% info = c.forward('/rpms/info', [ file.pkgid ]) %] 
     10<tr><td colspan="6"> 
    711<a href="[% c.uri_for('/rpms', file.pkgid) %]"> 
    812    [% info.name | html %]-[% info.version %]-[% info.release %].[% info.arch %] 
    9 </a><br> 
     13</a></td></tr> 
     14 
     15<tr class="filename"><td>[% file.perm %]</td><td align="right">[% file.size | format('%6d') 
     16%]</td><td>[% file.user | format('%10s') -%]</td> 
     17<td>[%- file.group | format('%10s') %]</td><td>[% file.md5 %]</td> 
     18<td> 
     19[% IF file.has_content %] 
     20<a href="[% c.uri_for('/rpms', file.pkgid, 'files', file.count) %]"> 
     21[% file.basename %] 
     22</a> 
     23[% ELSE %] 
     24[% file.basename %] 
     25[% END %] 
     26</td></tr> 
     27 
     28[% IF loop.last %] 
     29</table> 
     30[% END %] 
    1031[% END %] 
    1132 
  • server/trunk/web/root/templates/html/rpms/files.tt

    r57 r76  
    1010<tr><td>[% file.perm %]</td><td align="right">[% file.size | format('%6d') %]</td><td>[% 
    1111file.user | format('%10s') -%]</td> 
    12 <td>[%- file.group | format('%10s') %]</td><td>[% file.filename %]</td> 
    13 <td>[% file.has_content %]</tr> 
     12<td>[%- file.group | format('%10s') %]</td> 
     13<td> 
     14    [% IF file.has_content %] 
     15    <a href="[% c.uri_for('/', rpmurl, 'files', file.count) %]"> 
     16    [% file.filename | html  %] 
     17    </a> 
     18    [% ELSE %] 
     19    [% file.filename | html  %] 
     20    [% END %] 
     21</td></tr> 
    1422[%- IF loop.last -%] 
    1523</table> 
  • server/trunk/web/root/templates/html/rpms/menu.tt

    r57 r76  
    22<a href="[% c.uri_for('/', rpmurl, 'deps') %]">Deps</a> 
    33<a href="[% c.uri_for('/', rpmurl, 'files') %]">Files</a> 
     4<a href="[% c.uri_for('/', rpmurl, 'changelog') %]">ChangeLog</a> 
Note: See TracChangeset for help on using the changeset viewer.