[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