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

Annotation of /lib/A3C/View.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 55 - (hide annotations)
Tue Apr 1 19:39:00 2008 UTC (16 years ago) by dpavlin
File size: 1583 byte(s)
- added SyncOrganization action with tests and GUI
1 dpavlin 37 package A3C::View;
2    
3     use strict;
4     use warnings;
5    
6     use Jifty::View::Declare -base;
7     use A3C::LDAP;
8    
9     use Data::Dump qw/dump/;
10    
11    
12     template '/skole' => page {
13     h1 { _('Schools in system') };
14     show 'skole_sve';
15     };
16    
17     private template 'skole_sve' => sub {
18 dpavlin 40 my $ldap = A3C::LDAP->new;
19 dpavlin 37 div {
20 dpavlin 40 $ldap->search(
21 dpavlin 37 base => 'dc=skole,dc=hr',
22     filter => '(objectClass=hrEduOrg)',
23     sizelimit => 10,
24     );
25 dpavlin 41 while ( my $entry = $ldap->current_search->shift_entry ) {
26 dpavlin 37 #warn $entry->dump;
27     ul {
28     foreach my $attr ( $entry->attributes ) {
29     li {
30     tt { $attr }
31 dpavlin 39 span { dump( $entry->get_value( $attr ) ) }
32 dpavlin 37 }
33     }
34     }
35     }
36     }
37     };
38    
39 dpavlin 49 template '/search-users' => page {
40    
41     my $action = new_action(
42     class => 'SearchUser',
43     moniker => 'search-users'
44     );
45    
46     form {
47     render_action( $action => [ 'uid_contains', 'cn_contains' ] );
48     form_submit( label => _('Find someone') );
49     };
50    
51     # warn dump( $action->result->content );
52    
53     if ( my $search = $action->result->content('search') ) {
54     div { sprintf(_('Found %d results'), $search->count ) }
55     ol {
56     while (my $user = $search->next) {
57     li {
58     span { $user->cn }
59     tt { $user->uid }
60     }
61     }
62     }
63     }
64    
65     };
66    
67 dpavlin 55 template '/sync' => page {
68    
69     my $action = new_action(
70     class => 'SyncOrganization',
71     moniker => 'sync-organization'
72     );
73    
74     form {
75     render_action( $action => [ 'cn' ] );
76     form_submit( label => _('Sync Organization') );
77     };
78    
79     if ( my $users = $action->result->content('synced-users') ) {
80     ol {
81     while (my $user = $users->next) {
82     li {
83     span { $user->cn }
84     tt { '<' . $user->mail . '>' }
85     }
86     }
87     }
88     }
89    
90     };

  ViewVC Help
Powered by ViewVC 1.1.26