[Jifty-commit] r6655 - in jifty/trunk: share/web/templates/__jifty/webservices
Jifty commits
jifty-commit at lists.jifty.org
Tue Mar 17 18:57:29 EDT 2009
Author: sartak
Date: Tue Mar 17 18:57:29 2009
New Revision: 6655
Modified:
jifty/trunk/ (props changed)
jifty/trunk/share/web/templates/__jifty/webservices/xml
Log:
r81368 at onn: sartak | 2009-03-17 18:57:26 -0400
Puppies. Puppies for all..
Modified: jifty/trunk/share/web/templates/__jifty/webservices/xml
==============================================================================
--- jifty/trunk/share/web/templates/__jifty/webservices/xml (original)
+++ jifty/trunk/share/web/templates/__jifty/webservices/xml Tue Mar 17 18:57:29 2009
@@ -1,36 +1,38 @@
<%init>
my $output = "";
my $writer = XML::Writer->new( OUTPUT => \$output, UNSAFE => 1 );
+$r->content_type('text/xml; charset=utf-8');
$writer->xmlDecl( "UTF-8", "yes" );
$writer->startTag("response");
if (my $ext = Jifty->web->request->argument('_webservice_external_redirect')) {
$writer->startTag("redirect");
$writer->cdataElement(url=> $ext);
-
$writer->endTag();
+ $writer->endTag();
+ Jifty->web->out($output);
+ $m->abort;
}
-else {
FRAGMENT:
-for my $f ( Jifty->web->request->fragments ) {
+for my $fragment ( Jifty->web->request->fragments ) {
# Set up the form if need be
Jifty->web->form->_init;
- Jifty->web->form->is_open(1) if $f->in_form;
+ Jifty->web->form->is_open(1) if $fragment->in_form;
# Set up the region stack
local Jifty->web->{'region_stack'} = [];
my @regions;
do {
- push @regions, $f;
- } while ($f = $f->parent);
+ push @regions, $fragment;
+ } while ($fragment = $fragment->parent);
- for $f (reverse @regions) {
- my $new = Jifty->web->get_region( join '-', grep {$_} Jifty->web->qualified_region, $f->name );
+ for my $current (reverse @regions) {
+ my $new = Jifty->web->get_region( join '-', grep {$_} Jifty->web->qualified_region, $current->name );
# Arguments can be complex mapped hash values. Get their
# real values by mapping.
- my %defaults = %{$f->arguments || {}};
+ my %defaults = %{$current->arguments || {}};
for (keys %defaults) {
my ($key, $value) = Jifty::Request::Mapper->map(destination => $_, source => $defaults{$_});
delete $defaults{$_};
@@ -38,9 +40,9 @@
}
$new ||= Jifty::Web::PageRegion->new(
- name => $f->name,
- path => URI::Escape::uri_unescape($f->path),
- region_wrapper => $f->wrapper,
+ name => $current->name,
+ path => URI::Escape::uri_unescape($current->path),
+ region_wrapper => $current->wrapper,
parent => Jifty->web->current_region,
defaults => \%defaults,
);
@@ -67,8 +69,6 @@
Jifty->web->form->is_open(0);
}
-}
-
my %results = Jifty->web->response->results;
for (keys %results) {
$writer->startTag("result", moniker => $_, class => $results{$_}->action_class);
@@ -92,33 +92,7 @@
# Jifty::DBI::Record's yet, which are technically circular data
# structures at some level (current_user of a
# current_user->user_object is itself)
- use Scalar::Util qw(blessed);
- my $content = $results{$_}->content;
-
- sub stripkids {
- my $top = shift;
- if ( not ref $top ) { return $top }
- elsif (
- blessed($top)
- and ( $top->isa("Jifty::DBI::Record")
- or $top->isa("Jifty::DBI::Collection") )
- )
- {
- return undef;
- } elsif ( ref $top eq 'HASH' ) {
- foreach my $item ( keys %$top ) {
- $top->{$item} = stripkids( $top->{$item} );
- }
- } elsif ( ref $top eq 'ARRAY' ) {
- for ( 0 .. $#{$top} ) {
- $top->[$_] = stripkids( $top->[$_] );
- }
- }
- return $top;
- }
-
- $content = stripkids($content);
- use XML::Simple;
+ my $content = stripkids($results{$_}->content);
$writer->raw(XML::Simple::XMLout($content, NoAttr => 1, RootName => "content", NoIndent => 1))
if keys %{$content};
@@ -126,6 +100,30 @@
}
$writer->endTag();
-$r->content_type('text/xml; charset=utf-8');
Jifty->web->out($output);
</%init>
+<%once>
+use Scalar::Util qw(blessed);
+use XML::Simple;
+sub stripkids {
+ my $top = shift;
+ if ( not ref $top ) { return $top }
+ elsif (
+ blessed($top)
+ and ( $top->isa("Jifty::DBI::Record")
+ or $top->isa("Jifty::DBI::Collection") )
+ )
+ {
+ return undef;
+ } elsif ( ref $top eq 'HASH' ) {
+ foreach my $item ( keys %$top ) {
+ $top->{$item} = stripkids( $top->{$item} );
+ }
+ } elsif ( ref $top eq 'ARRAY' ) {
+ for ( 0 .. $#{$top} ) {
+ $top->[$_] = stripkids( $top->[$_] );
+ }
+ }
+ return $top;
+}
+</%once>
More information about the Jifty-commit
mailing list