/[A3C]/lib/A3C/View/Organization.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

Annotation of /lib/A3C/View/Organization.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 232 - (hide annotations)
Sun Aug 31 13:51:58 2008 UTC (15 years, 7 months ago) by dpavlin
File size: 2876 byte(s)
added cn to search
1 dpavlin 125 package A3C::View::Organization;
2    
3 dpavlin 138 =head1 NAME
4    
5     A3C::View::Organization
6    
7     =head1 DESCRIPTION
8    
9     Provide search and display form using table
10    
11     =cut
12    
13 dpavlin 125 use strict;
14     use warnings;
15    
16     use Jifty::View::Declare -base;
17     use base qw/ Jifty::View::Declare::CRUD /;
18    
19     use Data::Dump qw/dump/;
20    
21     sub display_columns {
22     return (
23     'o',
24     'cn',
25     'hrEduOrgUniqueNumber',
26 dpavlin 127 # 'hrEduOrgType',
27 dpavlin 125 'postalAddress',
28     'l',
29     );
30     }
31    
32 dpavlin 127 sub create_columns {
33     my $self = shift;
34     my $action = shift;
35     return $action->argument_names;
36     #return grep { !( m/_confirm/ || $action->arguments->{$_}{unreadable} ) } $action->argument_names;
37     }
38    
39 dpavlin 125 template 'search' => sub {
40     my $self = shift;
41     my ($object_type) = ( $self->object_type );
42     my $search = $self->record_class->as_search_action(
43     moniker => 'search',
44     sticky_on_success => 1,
45     );
46    
47     div {
48     { class is "jifty_admin" };
49     render_action( $search => [
50     'o_contains',
51     'dc_contains',
52 dpavlin 232 'cn_contains',
53 dpavlin 125 'hrEduOrgUniqueNumber_contains',
54     'l_contains',
55     'hrEduOrgType',
56     ] );
57    
58     $search->button(
59     label => _('Search'),
60     onclick => {
61     submit => $search,
62     # removed because we don't use search toggle region
63     #refresh => Jifty->web->current_region->parent,
64     args => { page => 1 }
65     }
66     );
67    
68     }
69     };
70    
71    
72     template 'list' => sub {
73     my $self = shift;
74    
75     my ( $page ) = get('page');
76     my $item_path = get('item_path') || $self->fragment_for("view");
77     my $collection = $self->_current_collection();
78     div { {class is 'crud-'.$self->object_type};
79     show('./search');
80     show( './paging_top', $collection, $page );
81     show( './list_items', $collection, $item_path );
82     show( './paging_bottom', $collection, $page );
83     };
84     };
85    
86    
87     private template 'list_items' => sub {
88     my $self = shift;
89     my $collection = shift;
90     my $item_path = shift;
91     my $callback = shift;
92     my $object_type = $self->object_type;
93     $collection->_do_search(); # we're going to need the results.
94     # XXX TODO, should use a real API to force the search
95     if ( $collection->count == 0 ) {
96     show('./no_items_found');
97     }
98    
99     my $o = $self->record_class->new;
100     my $name2label;
101     map {
102     $name2label->{ $_->name } = $_->label;
103     } $o->columns;
104     #warn "# name2label = ",dump( $name2label );
105    
106 dpavlin 127 div { class is 'note message'; _('Found %1 results', $collection->pager->total_entries ) }
107 dpavlin 125 table {
108     { class is 'list' };
109     row {
110     th { $name2label->{$_} } foreach $self->display_columns;
111     };
112     while (my $item = $collection->next) {
113     row {
114     cell { $item->$_ } foreach $self->display_columns;
115     }
116     }
117     };
118    
119     };
120    
121     sub per_page { 10 }
122    
123 dpavlin 127 template 'new' => page {
124     my $self = shift;
125     title is $self->object_type;
126     form {
127 dpavlin 138 render_region(
128     name => $self->object_type.'-list',
129     path => $self->fragment_base_path.'/new-list'
130     );
131 dpavlin 127 }
132 dpavlin 138 };
133 dpavlin 127
134 dpavlin 138 # in Jifty's template, it's included on bottom of list
135     template 'new-list' => sub {
136     div {
137     { class is 'list' };
138     }
139     show( './new_item_region');
140 dpavlin 127 };
141    
142 dpavlin 125 1;

  ViewVC Help
Powered by ViewVC 1.1.26