Changeset 27


Ignore:
Timestamp:
11/24/10 08:50:41 (14 years ago)
Author:
nanardon
Message:
  • add detail page about rpms
Location:
server/trunk/web
Files:
5 added
2 edited

Legend:

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

    r21 r27  
    260260sub media_rpm_bypkgid :Chained('_media_list_rpms') PathPart('by-pkgid') { 
    261261    my ( $self, $c, $pkgid ) = @_; 
    262     $c->forward('/rpms/queryformat', [ $pkgid, '%{name}' ]); 
     262    $c->forward('/rpms/rpms', [ $pkgid ]); 
    263263} 
    264264 
  • server/trunk/web/lib/Sophie/Controller/Rpms.pm

    r24 r27  
    3232sub queryformat : XMLRPCLocal { 
    3333    my ( $self, $c, $pkgid, $qf ) = @_; 
    34     @{$c->stash->{xmlrpc}} = map { $_->get_column('qf') } $c->model('Base')->resultset('Rpms')->search( 
     34    $c->stash->{xmlrpc} = $c->model('base')->resultset('Rpms')->search( 
    3535        { pkgid => $pkgid }, 
    3636        {  
     
    3939            bind => [ $qf ], 
    4040        } 
    41     )->all; 
     41    )->next->get_column('qf'); 
    4242} 
    4343 
    4444sub tag : XMLRPCLocal { 
    4545    my ( $self, $c, $pkgid, $tag ) = @_; 
    46     @{$c->stash->{xmlrpc}} = map { $_->get_column('tag') } $c->model('Base')->resultset('Rpms')->search( 
     46    $c->stash->{xmlrpc} = [ map { $_->get_column('tag') } $c->model('Base')->resultset('Rpms')->search( 
    4747        { pkgid => $pkgid }, 
    4848        {  
     
    5151            bind => [ $tag ],  
    5252        } 
    53     )->all; 
    54 } 
     53    )->all ] 
     54} 
     55 
     56 
     57sub info : XMLRPCLocal { 
     58    my ($self, $c, $pkgid, $deptype) = @_; 
     59 
     60    my %info; 
     61    foreach (qw(name version release epoch url group size packager 
     62                url summary description sourcerpm license buildhost 
     63                pkgid builddate)) { 
     64        if (my $r = $c->model('base')->resultset('Rpms')->search( 
     65            { pkgid => $pkgid }, 
     66            {  
     67                select => [ qq{rpmqueryformat("header", ?)} ], 
     68                as => [ 'qf' ], 
     69                bind => [ "%{$_}" ], 
     70            } 
     71            )->next) {  
     72            $info{$_} = $r->get_column('qf'); 
     73        } 
     74    } 
     75 
     76    return $c->stash->{xmlrpc} = \%info; 
     77} 
     78 
    5579 
    5680sub deps : XMLRPCLocal { 
     
    83107    my ($self, $c, $pkgid) = @_; 
    84108 
     109    my %deps; 
    85110    foreach ( 
    86111        $c->model('Base')->resultset('Deps')->search( 
     
    96121            }, 
    97122        )->all) { 
    98         push( @{ $c->stash->{xmlrpc}{deps}{$_->get_column('deptype')} }, 
     123        push( @{ $deps{$_->get_column('deptype')} }, 
    99124            { 
    100125                name => $_->get_column('depname'), 
     
    105130        ); 
    106131    } 
     132    $c->stash->{xmlrpc} = \%deps; 
    107133} 
    108134 
     
    110136    my ($self, $c, $pkgid) = @_; 
    111137 
    112     @{ $c->stash->{xmlrpc}{files} } = map { 
     138    $c->stash->{xmlrpc} = [ map { 
    113139        { 
    114140            filename => $_->get_column('dirname') . $_->get_column('basename'), 
     
    123149 
    124150            }, 
    125         )->all; 
     151        )->all ]; 
    126152} 
    127153 
     
    149175    } 
    150176 
    151     $c->stash->{xmlrpc}{changelog} = \@ch; 
     177    $c->stash->{xmlrpc} = \@ch; 
    152178} 
    153179 
     
    155181sub rpms : Chained : PathPart { 
    156182    my ( $self, $c, $pkgid ) = @_; 
    157     $c->stash->{pkgid} = $c->model('Base::Rpms')->search(pkgid => $pkgid)->next; 
    158     $c->log->debug('rpms ' . $c->stash->{pkgid}); 
     183    $c->stash->{pkgid} = $c->model('Base')->resultset('Rpms')->search(pkgid => $pkgid)->next; 
     184    $c->stash->{xmlrpc} = { 
     185        info      => $c->forward('info', [ $pkgid ]), 
     186        changelog => $c->forward('changelog', [ $pkgid ]), 
     187        files     => $c->forward('files', [ $pkgid ]), 
     188        deps      => $c->forward('alldeps', [ $pkgid ]), 
     189    }; 
    159190} 
    160191 
Note: See TracChangeset for help on using the changeset viewer.