Changeset 10723
- Timestamp:
- 04/29/08 12:10:23 (5 years ago)
- Files:
-
- 1 modified
-
lang/perl/Moxy/trunk/lib/Moxy.pm (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Moxy/trunk/lib/Moxy.pm
r10722 r10723 136 136 137 137 sub render_start_page { 138 my ($base, $current_url) = @_;138 my $base = shift; 139 139 140 140 return sprintf(<<"..."); … … 166 166 $self->log(debug => "Authorization header: $session_id"); 167 167 if ($session_id) { 168 my $uri = URI->new($c->req->uri); 169 $self->log(debug => "Request URI: $uri"); 170 171 my $base = $uri->clone; 172 $base->path(''); 173 $base->query_form({}); 174 175 (my $url = $uri->path_query) =~ s!^/!!; 176 $url = uf_uristr(uri_unescape $url); 177 my $response = $self->_make_response( 178 url => $url, 179 request => $c->req->as_http_request, 180 base_url => $base, 168 $self->_make_response( 169 c => $c, 181 170 user_id => $session_id, 182 171 ); 183 $c->res->set_http_response($response);184 172 } else { 185 173 $c->res->status(401); … … 193 181 my %args = validate( 194 182 @_ => +{ 195 url => qr{^https?://}, 196 request => { isa => 'HTTP::Request' }, 197 base_url => qr{^https?://}, 198 user_id => { type => SCALAR }, 183 c => { isa => 'HTTP::Engine::Context', }, 184 user_id => { type => SCALAR }, 199 185 } 200 186 ); 201 my $url = $args{url}; 202 my $base_url = $args{base_url}; 187 my $c = $args{c}; 188 189 my $base = $c->req->uri->clone; 190 $base->path(''); 191 $base->query_form({}); 192 193 (my $url = $c->req->uri->path_query) =~ s!^/!!; 194 $url = uf_uristr(uri_unescape $url); 203 195 204 196 if ($url) { … … 206 198 my $res = $self->_do_request( 207 199 url => $url, 208 request => $ args{request},200 request => $c->req->as_http_request, 209 201 user_id => $args{user_id}, 210 202 ); … … 219 211 $location->port($uri->port); 220 212 } 221 $res->header( 'Location' => $base _url. '/' . uri_escape( $location ) );213 $res->header( 'Location' => $base . '/' . uri_escape( $location ) ); 222 214 $self->log(debug => "redirect to " . $res->header('Location')); 223 215 } else { … … 225 217 $self->log("Content-Type: $content_type"); 226 218 if ($content_type =~ /html/i) { 227 $res->content( encode($res->charset, rewrite($base _url, decode($res->charset, $res->content), $url)) );219 $res->content( encode($res->charset, rewrite($base, decode($res->charset, $res->content), $url)) ); 228 220 } 229 221 use bytes; 230 222 $res->header('Content-Length' => bytes::length($res->content)); 231 223 } 232 return $res;224 $c->res->set_http_response($res); 233 225 } else { 234 226 # please input url. 235 my $res = HTTP::Response->new(200, 'about:blank'); 236 $res->header('Content-Type' => 'text/html; charset=utf8'); 237 my $panel = render_start_page($base_url, ''); 238 $res->content($panel); 239 return $res; 227 $c->res->status(200); 228 $c->res->content_type('text/html; charset=utf8'); 229 $c->res->body( render_start_page($base) ); 240 230 } 241 231 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)