added _render_jsonp for angular
authorDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 11 Mar 2011 20:32:50 +0000 (20:32 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 11 Mar 2011 20:32:50 +0000 (20:32 +0000)
web_ui.pl

index 01b7b98..78823d0 100755 (executable)
--- a/web_ui.pl
+++ b/web_ui.pl
@@ -33,13 +33,23 @@ get '/ping_g' => sub {
        $self->render( 'ping', pong => $pong );
 };
 
+sub _render_jsonp {
+       my ( $self, $json ) = @_;
+       #my $data = $self->render( json => $json, partial => 1 );
+       my $data = $json;
+       if ( my $callback = $self->param('callback') ) {
+               $data = "$callback($data)";
+       }
+       $self->render( data => $data, format => 'js' );
+}
+
+
 get '/g/:call/:args' => [ args => qr/.*/ ] => sub {
        my $self = shift;
        my $ret = $gearman->req( 'SUBMIT_JOB', $self->param('call'), '', $self->param('args') );
        warn $self->param('call'), " = ", dump($ret), "\n";
        die "no result for ", $self->param('call'), ' args: ', $self->param('args') unless defined $ret;
-       my $json = Mojo::JSON->new->decode( $ret );
-       $self->render_json( $json );
+       _render_jsonp( $self, $ret );
 };
 app->start;
 __DATA__