#!/usr/bin/env perl
-use lib 'common/mojo/lib';
-
use Mojolicious::Lite;
use Data::Dump qw(dump);
use Time::HiRes;
sub new_uuid { Time::HiRes::time * 100000 }
-push @{app->static->paths}, 'app'; # default angular-seed app directory
+#push @{app->static->paths}, 'app'; # default angular-seed app directory
my $couchdb = $ENV{COUCHDB} || 'http://localhost:5984';
sub _couchdb_get {
my ( $url ) = @_;
my $return = $client->get( "$couchdb/$url" )->res->json;
- warn "# _couchdb_get $url = ",dump($return);
+# warn "# _couchdb_get $url = ",dump($return);
return $return;
}
my ( $self, $json ) = @_;
#warn "## _render_json ",dump($json);
my $data = $self->render( json => $json, partial => 1 );
-warn "## _render_json $data";
+#warn "## _render_json $data";
if ( my $callback = $self->param('callback') ) {
$data = "$callback($data)";
}
$self->render( data => $data, format => 'js' );
}
-#get '/' => 'index';
+get '/' => sub {
+ my $self = shift;
+ $self->render_text("...");
+};
+
+# define languages
+
+get '/en/' => sub {
+ my $self = shift;
+ $self->render_static('/en/index.html'); # main AngularJS application page
+};
+
+get '/hr/' => sub {
+ my $self = shift;
+ $self->render_static('/hr/index.html'); # main AngularJS application page
+};
get '/data/' => sub {
$endkey++;
my $counts = _couchdb_get qq|/$database/_all_docs?startkey="$entity";endkey="$endkey";include_docs=true|;
- warn "# counts ",dump($counts);
+# warn "# counts ",dump($counts);
_render_jsonp( $self, [ map { $_->{doc} } @{ $counts->{rows} } ] )
};
_render_jsonp( $self, _couchdb_get($url));
};
-# static JSON files from public/json/database/entity/json
-
-get '/json' => sub {
- _render_jsonp( shift, [ map { s{public/json/}{}; $_ } glob 'public/json/*' ] );
-};
-
-get '/json/:database' => sub {
- my $self = shift;
- my $database = $self->param('database');
-
- my $status = {
- document_counts => 0,
- name => $database,
- };
-
- foreach my $path ( glob "public/json/$database/*" ) {
- my @entities = glob "$path/*";
- $path =~ s{public/json/$database/}{};
- $status->{entities}->{$path} = scalar @entities;
- $status->{document_counts}++;
- }
-
- _render_jsonp( $self, $status );
-};
-
-get '/json/:database/:entity' => sub {
- my $self = shift;
-
- my $database = $self->param('database');
- my $entity = $self->param('entity');
-
- my $path = "public/json/$database/$entity";
- die "$path: $!" unless -d $path;
-
- my $docs;
- foreach my $path ( sort glob "$path/*" ) {
- open(my $fh, '<', $path) || die $!;
- local $/ = undef;
- my $str = <$fh>;
- warn "# $path $str";
- my $data = Mojo::JSON->new->decode( $str );
- $data->{_key} = $1 if $path =~ m{/([^/]+$)};
- push @$docs, $data;
- }
-
- _render_jsonp( $self, $docs )
-};
-
-get '/_utils/script/(*url)' => sub { $_[0]->proxy_to( "$couchdb/_utils/script/" . $_[0]->param('url') , with_query_params => 1 ) };
-
app->start;
-__DATA__
-
-@@ index.html.ep
-% layout 'funky';
-Yea baby!
-
-@@ layouts/funky.html.ep
-<!doctype html><html>
- <head><title>Funky!</title></head>
- <body><%== content %></body>
-</html>
-
-@@ layouts/angular.html.ep
-<!DOCTYPE HTML>
-<html xmlns:ng="http://angularjs.org">
- <head>
- <meta charset="utf-8">
-% my $ANGULAR_JS = $ENV{ANGULAR_JS} || ( -e 'public/angular/build/angular.js' ? '/angular/build/angular.js' : '/angular/src/angular-bootstrap.js' );
- <script type="text/javascript"
- src="<%== $ANGULAR_JS %>" ng:autobind></script>
- </head>
- <body><%== content %></body>
-</html>
+