package Newslash::Web::Controller::Index;
use Mojo::Base 'Mojolicious::Controller';
use Mojo::Util qw(dumper);
+use Mojo::JSON qw(decode_json encode_json);
+use Template;
sub root {
my $c = shift;
my $stories = $c->model('stories')->latest;
+ my $boxes = $c->model('boxes');
+
+ my $user = $c->stash("user");
+ my $users = $c->model('users');
+ my $items = $users->sidebar_items(uid => $user->{uid});
+
+ my $sidebar_items = [];
+ my $tt = Template->new();
+
+ for my $box (@$items) {
+ if (!$box->{query_params}) {
+ push @$sidebar_items, $box->{template};
+ next;
+ }
+ my $q_params = decode_json($box->{query_params});
+ my $model = $c->model($box->{model});
+ next if !$model;
+ my $rs = $model->select(%$q_params);
+ my $result = '';
+ my $template = $box->{template};
+ if ($tt->process(\$template, {items => $rs}, \$result)) {
+ push @$sidebar_items, $result;
+ }
+ }
+ $c->app->log->debug(dumper($sidebar_items));
#$c->app->log->debug(dumper($stories));
- $c->render(stories => $stories);
+ $c->render(stories => $stories, boxes => $sidebar_items);
}
sub journals {