Changeset 17
- Timestamp:
- 11/22/10 12:54:02 (14 years ago)
- Location:
- server/trunk/web
- Files:
-
- 2 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
server/trunk/web/lib/Sophie/Controller/Distrib.pm
r16 r17 37 37 $rs = $rs->search(name => $distribution)->search_related('Release'); 38 38 if (!$release) { 39 @{$c->stash->{xmlrpc}} = map { $_->version } $rs->all;40 return $c->stash->{xmlrpc};39 return $c->stash->{xmlrpc} = [ map { $_->version } $rs->all ]; 40 41 41 } 42 42 $rs = $rs->search(version => $release)->search_related('Arch'); 43 43 if (!$arch) { 44 @{$c->stash->{xmlrpc}} = map { $_->arch } $rs->all; 45 return $c->stash->{xmlrpc}; 44 return $c->stash->{xmlrpc} = [ map { $_->arch } $rs->all ]; 46 45 } 47 46 $rs = $rs->search(arch => $arch)->search_related('Medias'); 48 @{$c->stash->{xmlrpc}} = map { $_->label } $rs->all;47 $c->stash->{xmlrpc} = [ map { $_->label } $rs->all ]; 49 48 $c->stash->{xmlrpc} 50 49 } … … 96 95 sub list_release :Path :Args(1) { 97 96 my ( $self, $c, $distribution ) = @_; 98 $c->forward('list', [ $distribution ]); 97 $c->stash->{dist}{distribution} = $distribution; 98 $c->forward('list', [ $c->stash->{dist} ] ); 99 99 } 100 100 101 101 sub list_arch :Path :Args(2) { 102 102 my ( $self, $c, $distribution, $release ) = @_; 103 $c->forward('list', [ $distribution, $release ]); 103 $c->stash->{dist}{distribution} = $distribution; 104 $c->stash->{dist}{release} = $release; 105 $c->forward('list', [ $c->stash->{dist} ] ); 104 106 } 105 107 … … 107 109 sub distrib_view :PathPrefix :Chained :CaptureArgs(3) { 108 110 my ( $self, $c, $distribution, $release, $arch ) = @_; 109 $c->stash->{distrib} = [ $distribution, $release, $arch ]; 111 $c->stash->{dist}{distribution} = $distribution; 112 $c->stash->{dist}{release} = $release; 113 $c->stash->{dist}{arch} = $arch; 114 $c->stash->{distrib} = $c->stash->{dist}; 110 115 } 111 116 112 117 sub distrib :Chained('distrib_view') PathPart('') { 113 118 my ( $self, $c ) = @_; 114 $c->forward('list', $c->stash->{dist rib});115 $c->forward('rpms', $c->stash->{distrib});119 $c->forward('list', $c->stash->{dist}); 120 $c->forward('rpms', $c->stash->{dist}); 116 121 # TODO store properly results 117 122 # No call from json here … … 120 125 sub media :Chained('distrib_view') PathPart('media') { 121 126 my ( $self, $c ) = @_; 122 $c->forward('struct', $c->stash->{distrib});127 $c->forward('struct', [ $c->stash->{dist} ]); 123 128 } 124 129 125 130 sub rpms :XMLRPC { 126 131 my ( $self, $c, $distribution, $release, $arch ) = @_; 132 133 if (ref $distribution) { 134 ($distribution, $release, $arch) = ( 135 $distribution->{distribution}, 136 $distribution->{release}, 137 $distribution->{arch}, 138 ); 139 } 140 127 141 @{$c->stash->{rpm}} = map { 128 142 { … … 149 163 sub srpms :XMLRPC { 150 164 my ( $self, $c, $distribution, $release, $arch ) = @_; 165 166 if (ref $distribution) { 167 ($distribution, $release, $arch) = ( 168 $distribution->{distribution}, 169 $distribution->{release}, 170 $distribution->{arch}, 171 ); 172 } 173 151 174 @{$c->stash->{rpm}} = map { 152 175 { … … 173 196 sub list_rpms :Chained('distrib_view') PathPart('rpms') { 174 197 my ( $self, $c ) = @_; 175 $c->forward('rpms', $c->stash->{dist rib});198 $c->forward('rpms', $c->stash->{dist}); 176 199 } 177 200 178 201 sub list_srpms :Chained('distrib_view') PathPart('srpms') { 179 202 my ( $self, $c ) = @_; 180 $c->forward('srpms', $c->stash->{distrib});203 $c->forward('srpms', $c->stash->{dist}); 181 204 } 182 205 … … 190 213 sub media_rpms : XMLRPC { 191 214 my ( $self, $c, $distribution, $release, $arch, $media ) = @_; 215 216 if (ref $distribution) { 217 ($distribution, $release, $arch, $media) = ( 218 $distribution->{distribution}, 219 $distribution->{release}, 220 $distribution->{arch}, 221 $release, 222 ); 223 } 224 192 225 @{$c->stash->{rpm}} = map { 193 226 { … … 215 248 sub media_list_rpms :Chained('_media_list_rpms') PathPart('') { 216 249 my ( $self, $c ) = @_; 217 $c->forward('media_rpms', [ @{$c->stash->{dist rib}}, $c->stash->{media} ]);250 $c->forward('media_rpms', [ @{$c->stash->{dist}}, $c->stash->{media} ]); 218 251 } 219 252 sub media_rpm_byname :Chained('_media_list_rpms') PathPart('rpms/by_name') { -
server/trunk/web/lib/Sophie/Controller/Root.pm
r16 r17 25 25 sub begin : Private { 26 26 my ( $self, $c ) = @_; 27 28 if ($c->req->path =~ m:[^/]+\/$:) { 29 my $path = $c->req->path; 30 $path =~ s:/*$::; 31 $c->res->redirect($c->uri_for("/$path")); 32 return; 33 } 27 34 28 35 if (($c->req->query_keywords || '') =~ /([^\w]|^)json([^\w]|$)/ || … … 80 87 } elsif (!$c->stash->{current_view}) { 81 88 } 82 $c->stash->{ $c->action} = $c->stash->{xmlrpc};89 $c->stash->{data} = $c->stash->{xmlrpc}; 83 90 $c->model('Base')->storage->dbh->rollback; 84 91 } -
server/trunk/web/lib/Sophie/View/Ajax.pm
r16 r17 3 3 use strict; 4 4 use warnings; 5 use Sophie; 5 6 6 7 use base 'Catalyst::View::TT'; … … 9 10 TEMPLATE_EXTENSION => '.tt', 10 11 render_die => 1, 11 __PACKAGE__->config( 12 TEMPLATE_EXTENSION => '.tt', 13 render_die => 1, 14 INCLUDE_PATH => [ 15 Sophie->path_to( 'root', 'templates', 'html' ), 16 ], 17 ) 12 INCLUDE_PATH => [ 13 Sophie->path_to( 'root', 'templates', 'includes' ), 14 Sophie->path_to( 'root', 'templates', 'html' ), 15 ], 18 16 ); 19 17 -
server/trunk/web/lib/Sophie/View/TT.pm
r4 r17 3 3 use strict; 4 4 use warnings; 5 use Sophie; 5 6 6 7 use base 'Catalyst::View::TT'; -
server/trunk/web/root/static/sophie.css
- Property svn:keywords set to Id
r4 r17 1 // $Id$ 1 /* $Id$ */ 2 3 div#sophie_header { 4 border: outset; 5 } 6 7 #sophie_header p { 8 padding-left: 1em; 9 } -
server/trunk/web/root/templates/html/distrib/index.html
- Property svn:keywords set to Id
r16 r17 1 1 <!-- $Id$ --> 2 [% INCLUDE 'distrib/index.tt' %]2 [% INCLUDE 'distrib/index.tt' data = xmlrpc %] -
server/trunk/web/root/templates/html/distrib/index.tt
- Property svn:keywords set to Id
r16 r17 2 2 3 3 <ol> 4 [% FOREACH k = xmlrpc%]4 [% FOREACH k = data %] 5 5 <li><a href="[% c.uri_for('/', c.req.path, k) %]">[% k %]</a></li> 6 6 [% END %] -
server/trunk/web/root/templates/html/distrib/list_release.html
- Property svn:keywords set to Id
-
server/trunk/web/root/templates/html/distrib/list_release.tt
- Property svn:keywords set to Id
r16 r17 1 <ol> 2 [% FOREACH release = xmlrpc %] 3 <li><a href="[% c.uri_for('/', c.req.path, release) %]">[% release %]</a></li> 1 4 [% FOREACH f = c.forward('/distrib/list', [ 2 5 { 3 'distribution' => 'Mandriva',4 'release' => 'cooker'6 'distribution' => dist.distribution, 7 'release' => release, 5 8 } 6 9 ]) %] 7 10 [% f %] 8 11 [% END %] 12 [% END %] 13 </ol> -
server/trunk/web/root/templates/html/index.html
- Property svn:keywords set to Id
-
server/trunk/web/root/templates/includes/header.tt
r3 r17 10 10 <meta name="KEYWORDS" content="Sophie, rpm[% IF keywords.size -%], [%- keywords.join(', ') | html -%][% END %]"> 11 11 <meta name="REVISIT-AFTER" content="[% IF metarevisite %][% metarevisite %][% ELSE %]15[% END %] days"> 12 <link rel="icon" href="[%- c.uri_for('/static', ' images', 'favicon.ico') -%]" type="image/x-icon">12 <link rel="icon" href="[%- c.uri_for('/static', 'sophie.ico') -%]" type="image/x-icon"> 13 13 </head> 14 14 <body> 15 16 <div id="sophie_header"> 17 <img src="[% c.uri_for('/static', 'sophie.png') -%]" style="float:left"> 18 <div style="float:left"> 19 <p id="sitename">Sophie</p> 20 <p id="sophie_menu">fff</p> 21 </div> 22 <div style="clear:both"></div> 23 </div> -
server/trunk/web/root/templates/includes/rpmslist.tt
- Property svn:keywords set to Id
-
server/trunk/web/t/controller_Distrib.t
r4 r17 2 2 use warnings; 3 3 use Test::More; 4 require RPC::XML; 5 use HTTP::Request; 6 7 # know existing data: 8 my $distribution = 'Mandriva'; 4 9 5 10 BEGIN { use_ok 'Catalyst::Test', 'Sophie' } 6 11 BEGIN { use_ok 'Sophie::Controller::Distrib' } 7 12 13 sub xmlrpcreq { 14 my (@xmlargs) = @_; 15 my $str = RPC::XML::request->new( @xmlargs )->as_string; 16 17 my $req = HTTP::Request->new( POST => 'http://localhost/rpc' ); 18 $req->header( 'Content-Length' => length($str) ); 19 $req->header( 'Content-Type' => 'text/xml' ); 20 $req->content( $str ); 21 return $req; 22 } 23 8 24 ok( request('/distrib')->is_success, 'Request should succeed' ); 25 ok( request("/distrib/$distribution")->is_success, 'Request should succeed' ); 26 ok( request( xmlrpcreq('distrib.list') ), "XMLRPC"); 27 ok( request( xmlrpcreq('distrib.list', $distribution) ), "XMLRPC"); 9 28 done_testing();
Note: See TracChangeset
for help on using the changeset viewer.