/[Arh]/lib/Arh/View.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/Arh/View.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 7 by dpavlin, Thu Nov 29 15:13:10 2007 UTC revision 59 by dpavlin, Mon Apr 7 09:20:01 2008 UTC
# Line 7  use Jifty::View::Declare -base; Line 7  use Jifty::View::Declare -base;
7    
8  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
9    
10  template '/pictures' => page {  use Jifty::View::Declare::CRUD;
11          h1 { _("Pictures available in system") };  Jifty::View::Declare::CRUD->mount_view('materials');
12          my $fc = Arh::Model::PictureCollection->new;  Jifty::View::Declare::CRUD->mount_view('UnitPictures');
13          $fc->unlimit;  Jifty::View::Declare::CRUD->mount_view('units');
14          my $present;  #Jifty::View::Declare::CRUD->mount_view('locations');
15          form {  
16                  table {  template '/units' => page {
17                          while ( my $f = $fc->next ) {          h1 { _("Units available in system") };
18                                  $present->{ $f->filename }++;  
19                                  my $delete = new_action( class => 'DeletePicture' );          my $search = Arh::Model::UnitCollection->new;
20                                  row {          $search->unlimit;
21                                          cell {  
22                                                  img { attr { src => "static/pics/" . $f->filename } }          show( 'toggle_edit' ) if $search->count;
23                                                  div { tt{ $f->filename } }  
24                                          }          set( search_collection => $search );
25                                          cell {          render_region(
26                                                  ul {                  name => 'units',
27                                                          li { _("Part of campaign"), ': ',  $f->campaign->name; }                  path => '/units/list',
28                                                          li { _("Type of picture"), ': ', $f->type->name }                  defaults => {
29                                                          div { $delete->button(                          page => 1,
                                                                         submit => $delete,  
                                                                         label => _('Delete'),  
                                                                         arguments => {  
                                                                                 id => $f->id,  
                                                                         }  
                                                                 )  
                                                         }  
                                                 }  
                                         }  
                                 }  
                         }  
                         row {  
                                 cell { attr { colspan => 4 } outs _('Pending pictures') }  
                         };  
                         warn "## present = ",dump( $present );  
                         foreach my $f ( Arh::Model::Picture->all_filenames ) {  
                                 next if $present->{$f};  
                                 my $create = new_action( class => 'CreatePicture' );  
                                 row {  
                                         cell {  
                                                 img { attr { src => "static/pics/$f" } }  
                                                 div { tt{ $f } }  
                                         }  
                                         cell {  
                                                 render_param( $create => 'campaign' );  
                                                 render_param( $create => 'type' );  
                                                 $create->button(  
                                                         submit => $create,  
                                                         label => _('Add'),  
                                                         arguments => {  
                                                                 filename => $f,  
                                                         }  
                                                 );  
                                         }  
                                 }  
                         }  
30                  }                  }
31            );
32    
33    };
34    
35    template 'toggle_edit' => sub {
36            my $self = shift;
37    
38            # don't show editing for anonymous users
39            return unless $self->current_user->id;
40    
41            my $toggleedit = new_action(
42                    class => 'ToggleEdit',
43    #               moniker => 'toggle-edit',
44            );
45    
46            my $label = $self->current_user->editing ? _("Disable editing") : _("Enable editing");
47    
48            warn "## $label\n";
49    
50            form {
51                    outs_raw( $toggleedit->button(
52                            label => $label,
53                            submit => $toggleedit,
54                    ));
55          }          }
56    
57  };  };
58    
59    template 'raw_pic' => sub {
60            my $filename = get('filename') or die "no filename?";
61            my $image = Arh::Model::Picture->new;
62            $image->load_by_cols( filename => $filename );
63            if ( $image->id ) {
64                    Jifty->handler->apache->content_type('image/jpg');
65                    Jifty->web->out($image->content);
66            } else {
67                    die "can't find picture $filename";
68            }
69    };
70    
71  1;  1;

Legend:
Removed from v.7  
changed lines
  Added in v.59

  ViewVC Help
Powered by ViewVC 1.1.26