[Jifty-commit] r6652 - in jifty/trunk: share/web/templates/__jifty/webservices
Jifty commits
jifty-commit at lists.jifty.org
Tue Mar 17 18:40:18 EDT 2009
Author: sartak
Date: Tue Mar 17 18:40:16 2009
New Revision: 6652
Modified:
jifty/trunk/ (props changed)
jifty/trunk/share/web/templates/__jifty/webservices/xml
Log:
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:40:16 2009
@@ -1,38 +1,36 @@
<%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 $fragment ( Jifty->web->request->fragments ) {
+for my $f ( Jifty->web->request->fragments ) {
# Set up the form if need be
Jifty->web->form->_init;
- Jifty->web->form->is_open(1) if $fragment->in_form;
+ Jifty->web->form->is_open(1) if $f->in_form;
# Set up the region stack
local Jifty->web->{'region_stack'} = [];
my @regions;
do {
- push @regions, $fragment;
- } while ($fragment = $fragment->parent);
+ push @regions, $f;
+ } while ($f = $f->parent);
- for my $current (reverse @regions) {
- my $new = Jifty->web->get_region( join '-', grep {$_} Jifty->web->qualified_region, $current->name );
+ for $f (reverse @regions) {
+ my $new = Jifty->web->get_region( join '-', grep {$_} Jifty->web->qualified_region, $f->name );
# Arguments can be complex mapped hash values. Get their
# real values by mapping.
- my %defaults = %{$current->arguments || {}};
+ my %defaults = %{$f->arguments || {}};
for (keys %defaults) {
my ($key, $value) = Jifty::Request::Mapper->map(destination => $_, source => $defaults{$_});
delete $defaults{$_};
@@ -40,9 +38,9 @@
}
$new ||= Jifty::Web::PageRegion->new(
- name => $current->name,
- path => URI::Escape::uri_unescape($current->path),
- region_wrapper => $current->wrapper,
+ name => $f->name,
+ path => URI::Escape::uri_unescape($f->path),
+ region_wrapper => $f->wrapper,
parent => Jifty->web->current_region,
defaults => \%defaults,
);
@@ -69,6 +67,8 @@
Jifty->web->form->is_open(0);
}
+}
+
my %results = Jifty->web->response->results;
for (keys %results) {
$writer->startTag("result", moniker => $_, class => $results{$_}->action_class);
@@ -92,7 +92,33 @@
# Jifty::DBI::Record's yet, which are technically circular data
# structures at some level (current_user of a
# current_user->user_object is itself)
- my $content = stripkids($results{$_}->content);
+ 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;
$writer->raw(XML::Simple::XMLout($content, NoAttr => 1, RootName => "content", NoIndent => 1))
if keys %{$content};
@@ -100,30 +126,6 @@
}
$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