/[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 28 by dpavlin, Mon Dec 10 14:56:12 2007 UTC revision 78 by dpavlin, Sat Apr 19 21:36:07 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    
 template 'pictures' => page {  
         my $fc = Arh::Model::PictureCollection->new;  
         $fc->unlimit;  
         my $present;  
         form {  
                 if ( $fc->count ) {  
                         h1 { _("Pictures available in system") };  
                 } else {  
                         span { outs _("No pubicly available pictures at this time...") }  
                 }  
                 table {  
                         while ( my $f = $fc->next ) {  
                                 $present->{ $f->filename }++;  
                                 my $delete = new_action( class => 'DeletePicture' );  
                                 my $update = new_action( class => 'UpdatePicture', record => $f );  
                                 row {  
                                         cell {  
                                                 attr { class => 'picture' };  
                                                 img { attr { src => "/static/pics/" . $f->filename } }  
                                                 div { tt{ $f->filename } }  
                                         }  
                                         cell {  
                                                 attr { class => 'picture-description' };  
                                                 render_param( $update => 'campaign', render_mode => 'read' );  
                                                 render_param( $update => 'type', render_mode => 'read' );  
                                                 if ( $f->current_user_can('write') ) {  
                                                         div {  
                                                                 $delete->button(  
                                                                         submit => $delete,  
                                                                         label => _('Delete picture'),  
                                                                         arguments => {  
                                                                                 id => $f->id,  
                                                                         }  
                                                                 )  
                                                         }  
                                                 }  
                                         }  
                                 }  
                         }  
                         warn "current_user->id: ",current_user->id;  
                         if ( current_user->id ) {  
                                 row {  
                                         cell { attr { colspan => 2 } h1 { _('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 {  
                                                         attr { class => 'picture' };  
                                                         img { attr { src => "/static/pics/$f" } }  
                                                         div { tt{ $f } }  
                                                 }  
                                                 cell {  
                                                         attr { class => 'picture-description' };  
                                                         render_param( $create => 'campaign' );  
                                                         render_param( $create => 'type' );  
                                                         $create->button(  
                                                                 submit => $create,  
                                                                 label => _('Add'),  
                                                                 arguments => {  
                                                                         filename => $f,  
                                                                 }  
                                                         );  
                                                 }  
                                         }  
                                 }  
                         }  
                 }  
         }  
   
 };  
   
10  use Jifty::View::Declare::CRUD;  use Jifty::View::Declare::CRUD;
11  Jifty::View::Declare::CRUD->mount_view('materials');  Jifty::View::Declare::CRUD->mount_view('Materials');
12  Jifty::View::Declare::CRUD->mount_view('UnitPictures');  Jifty::View::Declare::CRUD->mount_view('UnitPictures');
13  Jifty::View::Declare::CRUD->mount_view('units');  Jifty::View::Declare::CRUD->mount_view('Units');
14  Jifty::View::Declare::CRUD->mount_view('locations');  Jifty::View::Declare::CRUD->mount_view('Units', 'Arh::View::Units', '/units/bulk' );
15    #Jifty::View::Declare::CRUD->mount_view('locations');
16    
17  template '/units' => page {  template '/units' => page {
18          h1 { _("Units available in system") };          h1 { _("Units available in system") };
19    
         show( 'toggle_edit' );  
   
20          my $search = Arh::Model::UnitCollection->new;          my $search = Arh::Model::UnitCollection->new;
21          $search->unlimit;          $search->unlimit;
22    
23            show( 'toggle_edit' ) if $search->count;
24    
25          set( search_collection => $search );          set( search_collection => $search );
26          render_region(          render_region(
27                  name => 'units',                  name => 'units',
28                  path => '/units/list',                  path => '/units/list',
29                  defaults => {                  defaults => {
30                          page => 1,                          page => 1,
31                            per_page => get('per_page'),
32                  }                  }
33          );          );
34    
35  };  };
36    
37  private template '/toggle_edit' => sub {  template 'toggle_edit' => sub {
38          my $self = shift;          my $self = shift;
39    
40          # no fun for anonymous users          # don't show editing for anonymous users
41          return unless $self->current_user->id;          return unless $self->current_user->id;
42    
43          render_region(          my $toggleedit = new_action(
44                  name => 'toggle-edit',                  class => 'ToggleEdit',
45                  path => '/toggle_edit_region',  #               moniker => 'toggle-edit',
46          );          );
47    
 };  
   
 template 'toggle_edit_region' => sub {  
         my $self = shift;  
   
         my $toggleedit = new_action( class => 'ToggleEdit' );  
   
48          my $label = $self->current_user->editing ? _("Disable editing") : _("Enable editing");          my $label = $self->current_user->editing ? _("Disable editing") : _("Enable editing");
49    
50          warn "## $label\n";          warn "## $label\n";
51    
52          form {          form {
53                  hyperlink(                  outs_raw( $toggleedit->button(
54                          label => $label,                          label => $label,
55                          onclick => {                          submit => $toggleedit,
56                                  submit => $toggleedit,                  ));
57                                  refresh_self => 1,          }
58                          },  
59                  )  };
60    
61    template 'raw_pic' => sub {
62            my $filename = get('filename') or die "no filename?";
63            my $image = Arh::Model::Picture->new;
64            $image->load_by_cols( filename => $filename );
65            if ( $image->id ) {
66                    Jifty->handler->apache->content_type('image/jpg');
67                    Jifty->web->out($image->content);
68            } else {
69                    die "can't find picture $filename";
70            }
71    };
72    
73    template '/index.html' => page {
74            my $units = Arh::Model::UnitCollection->new;
75            $units->unlimit;
76            $units->order_by( column => 'id', order => 'DESC' );
77    
78            my $last = get('last') || 15;
79    
80            h1 { _("Last %1 units entered", $last) };
81    
82            ol {
83                    class is 'units';
84                    for ( 1 .. $last ) {
85                            my $unit = $units->next || last;
86                            li {
87                                    outs( $unit->name, ' ' );
88                                    hyperlink(
89                                            label => $unit->unit_id,
90                                            url => '/units/single?id=' . $unit->id,
91                                    );
92                                    span { class is 'unit details';
93                                            outs join(', ', grep(defined($_),
94                                                    $unit->subcategory,
95                                                    $unit->category->name,
96                                                    $unit->location->name,
97                                                    $unit->site->name,
98                                            ));
99                                    }
100                            }
101                    }
102          }          }
103    
104  };  };

Legend:
Removed from v.28  
changed lines
  Added in v.78

  ViewVC Help
Powered by ViewVC 1.1.26