[BACK]Return to dudelicious.pl CVS log [TXT][DIR] Up to [local] / todotxt / Text-Todo / bin

Diff for /todotxt/Text-Todo/bin/dudelicious.pl between version 1.10 and 1.14

version 1.10, 2010/05/01 21:23:19 version 1.14, 2010/05/01 22:47:51
Line 28 
Line 28 
   
 app->renderer->add_helper(  app->renderer->add_helper(
     todo => sub {      todo => sub {
         state $todo = Text::Todo->new( shift->stash('config') );          my ($self) = @_;
           state $todo = Text::Todo->new( $self->stash('config') );
   
           my $file = $self->stash('file');
           if ($file) {
               $file =~ s/(?:\.txt)?$/\.txt/ixms;
               $todo->load($file);
           }
   
         return $todo;          return $todo;
     }      }
 );  );
   
 app->renderer->add_helper(  app->renderer->add_helper(
     get_list => sub {      get_list => sub {
         my ( $self, $file ) = @_;          my ($self) = @_;
   
         $self->helper('todo')->load($file) if $file;  
   
         my $line = 1;          my $line = 1;
         return [          return [
             map {              map {
                 line => $line++,                  line     => $line++,
                 md5  => md5_hex( $_->text ),                      md5  => md5_hex( $_->text ),
                 text => $_->text,                      text => $_->text,
                 done => $_->done,                      done => $_->done,
             },              },
             $self->helper('todo')->list              $self->helper('todo')->list
         ];          ];
Line 66 
Line 72 
 get '/todotxt' => 'todotxt';  get '/todotxt' => 'todotxt';
   
 get '/l/:file' => sub {  get '/l/:file' => sub {
     my $self   = shift;      my $self = shift;
     my $file   = $self->stash('file') . '.txt';  
     my $format = $self->stash('format') || 'html';      my $format = $self->stash('format') || 'html';
     my $list   = $self->helper( 'get_list' => $file );  
   
     if ( $format eq 'json' ) {      if ( $format eq 'json' ) {
         $self->render_json($list);          $self->render_json( $self->helper('get_list') );
     }      }
     else {      else {
         $self->render( list => $list, layout => 'todotxt' );          $self->render(
               list   => $self->helper('get_list'),
               layout => 'todotxt'
           );
     }      }
 } => 'list';  } => 'list';
   
 get '/l/:file/e/:line' => sub {  get '/l/:file/e/:line' => sub {
     my $self   = shift;      my $self = shift;
     my $file   = $self->stash('file') . '.txt';  
     my $format = $self->stash('format') || 'html';      my $format = $self->stash('format') || 'html';
     my $entry      my $entry = $self->helper('get_list')->[ $self->stash('line') - 1 ];
         = $self->helper( 'get_list' => $file )->[ $self->stash('line') - 1 ];  
   
     if ( $format eq 'json' ) {      if ( $format eq 'json' ) {
         $self->render_json($entry);          $self->render_json($entry);
Line 94 
Line 101 
     }      }
 } => 'entry';  } => 'entry';
   
 app->start unless caller();  get '/l/:file/t' => sub {
       my $self = shift;
   
       my $format = $self->stash('format') || 'html';
   
       if ( $format eq 'json' ) {
           $self->render_json( $self->helper('todo')->known_tags );
       }
       else {
           $self->render(
               tags   => $self->helper('todo')->known_tags,
               layout => 'todotxt'
           );
       }
   } => 'tags';
   
   get '/l/:file/t/:tag' => sub {
       my $self = shift;
   
       my $format = $self->stash('format') || 'html';
       my $items  = $self->helper('todo')->listtag( $self->stash('tag') );
   
       if ( $format eq 'json' ) {
           $self->render_json($items);
       }
       else {
           $self->render( items => $items, layout => 'todotxt' );
       }
   } => 'tag';
   
   app->start if !caller();
   
   1;
 __DATA__  __DATA__
   
 @@ list.txt.ep  @@ list.txt.ep
Line 106 
Line 144 
 @@ entry.txt.ep  @@ entry.txt.ep
 <%= $entry->{text} %>  <%= $entry->{text} %>
   
   @@ tags.txt.ep
   % foreach my $tag (keys %{ $tags }) {
   <%= $tag %>, <%= $tags->{$tag} %>
   % }
   
   @@ tag.txt.ep
   # <%= $tag %>
   % foreach my $item (@{ $items}) {
   <%= $item %>
   % }
   
 @@ layouts/todotxt.txt.ep  @@ layouts/todotxt.txt.ep
 %= content  %= content
   
 @@ index.html.ep  @@ index.html.ep
 % foreach my $file (@{ $files }) {  % foreach my $file (@{ $files }) {
 <%== $file %> <br />  % my ($basename) = $file =~ /^(.*?)(?:\.[^\.]+)?$/xms;
   <a href="<%= url_for 'list' %>/<%= $basename %>"><%= $file %></a><br />
 % }  % }
   
 @@ list.html.ep  @@ list.html.ep
Line 126 
Line 176 
   
 @@ entry.html.ep  @@ entry.html.ep
 <%= $entry->{text} %>  <%= $entry->{text} %>
   
   @@ tags.html.ep
   % foreach my $tag (keys%{ $tags }) {
   <a href="<%= url_for 'tag', format => '' %>/<%= $tag %>"><%= $tag %> == <%= $tags->{$tag} %></a><br />
   % }
   
   @@ tag.html.ep
   <h2><%= $tag %></h2>
   % foreach my $item (@{ $items }) {
   <%= $item %><br />
   % }
   
 @@ layouts/todotxt.html.ep  @@ layouts/todotxt.html.ep
 <!doctype html><html>  <!doctype html><html>

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.14

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>