X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=angular-server.pl;h=7b75c41ebe5b468a6d10e997b4305a1c2e294f98;hb=3a6399b0aff9e49d00d21021a08fe8558288f9a4;hp=9ed7925ddfb09bc28c191287cd719e8ce27d1374;hpb=4d99a57488de9a6e3ceec84bf0384130ae8b4f3a;p=angular-drzb diff --git a/angular-server.pl b/angular-server.pl index 9ed7925..7b75c41 100755 --- a/angular-server.pl +++ b/angular-server.pl @@ -6,12 +6,17 @@ use Time::HiRes; use Clone qw(clone); use Mojo::UserAgent; +our $VERSION = `git describe`; +chomp $VERSION; + sub new_uuid { Time::HiRes::time * 100000 } #push @{app->static->paths}, 'app'; # default angular-seed app directory my $couchdb = $ENV{COUCHDB} || 'http://localhost:5984'; +my $couchdb_database = 'drzb2013v2'; +my $couchdb_view = "http://10.60.0.92:5984/_utils/document.html?$couchdb_database"; my $client = Mojo::UserAgent->new; sub _couchdb_put { @@ -64,6 +69,17 @@ helper locale => sub { return $locale{ $lang } || "MISSING $lang $_[1]"; }; +get '/js/services.js' => sub { + my $self = shift; + $self->stash( VERSION => $VERSION ); + $self->stash( couchdb_database => $couchdb_database ); + $self->render( 'js/services', format => 'js' ); +}; + +# short public URLs +get '/hr' => sub { shift->redirect_to('/lang/hr/drzb2013') }; +get '/en' => sub { shift->redirect_to('/lang/en/drzb2013') }; + get '/lang/:lang/:template' => sub { my $self = shift; $self->render( $self->stash('template') , lang => $self->stash('lang') ); @@ -71,6 +87,7 @@ get '/lang/:lang/:template' => sub { get '/lang/:lang/partials/:template' => sub { my $self = shift; + $self->stash( couchdb_view => $couchdb_view ); $self->render( 'partials/' . $self->stash('template') , lang => $self->stash('lang') ); }; @@ -197,10 +214,12 @@ get '/:database/_design/:design/_view/:view' => sub { organizations => { map => q| function(doc) { if ( doc.user.organization != '' ) { - emit(doc.user.organization, 1); + if ( doc.user.organization ) + emit(doc.user.organization, 1); if ( doc.user.persons ) { doc.user.persons.forEach( function(person) { - emit(person.organization, 1); + if ( person.organization ) + emit(person.organization, 1); }); } } @@ -231,7 +250,7 @@ hook after_dispatch => sub { return if $self->res->headers->header('ETag'); - my $our_etag = Mojo::ByteStream->new($body)->md5_sum; + my $our_etag = Mojo::ByteStream->new($body . $VERSION)->md5_sum; $self->res->headers->header('ETag' => $our_etag); my $browser_etag = $self->req->headers->header('If-None-Match');