/[transports]/trunk/lib/Transports/Dispatcher.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 /trunk/lib/Transports/Dispatcher.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 46 - (hide annotations)
Tue May 30 18:09:51 2006 UTC (17 years, 11 months ago) by dpavlin
File size: 2695 byte(s)
bunch of changes:
- added import operator user role (user_object->can_import),
  added import transort which sets return_code and optional comment - it can
  be executed by import operators or admins
- import operators will get just transports which aren't imported under /transports
1 dpavlin 5 package Transports::Dispatcher;
2     use Jifty::Dispatcher -base;
3    
4     # Default page
5 dpavlin 25 #on '/', run {
6     # redirect( '/new');
7     #};
8 dpavlin 5
9 dpavlin 31 =head1 Transports operations
10    
11     =head2 new
12    
13     new transport
14    
15     =cut
16    
17     on 'new', run {
18 dpavlin 13 my $t = Jifty->web->new_action(
19     class => 'CreateTransport',
20     monkier => 'create',
21     );
22 dpavlin 12
23 dpavlin 13 set transport => $t;
24     };
25    
26 dpavlin 31 =head2 /edit/42
27    
28     edit transport with request number C<42>
29    
30     =cut
31    
32     on qr'^/edit/(\d+)', run {
33 dpavlin 26 my $id = $1;
34     my $t = Transports::Model::Transport->new();
35     $t->load_by_cols( id => $id );
36     Jifty->web->redirect( '/new' ) unless ( $t->id );
37 dpavlin 13
38 dpavlin 26 set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );
39     show('/edit');
40     };
41 dpavlin 13
42 dpavlin 46 =head2 /import/42
43    
44     import transport with request number C<42>
45    
46     =cut
47    
48     on qr'^/import/(\d+)', run {
49     my $id = $1;
50     my $t = Transports::Model::Transport->new();
51     $t->load_by_cols( id => $id );
52     Jifty->web->redirect( '/transports' ) unless ( $t->id );
53    
54     set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );
55     show('/import');
56     };
57    
58 dpavlin 31 =head1 User operations
59 dpavlin 26
60 dpavlin 31 =head2 /user/42
61    
62     edit user with id C<42>
63    
64     =cut
65    
66     on qr'^/users?/?(\d*)', run {
67     my $id = $1;
68    
69     if ($id) {
70     my $u = Transports::Model::User->new();
71     $u->load_by_cols( id => $id );
72    
73 dpavlin 33 set user_id => $id;
74    
75 dpavlin 31 set user => Jifty->web->new_action(
76     class => $u->id ? 'UpdateUser' : 'CreateUser',
77     record => $u
78     );
79 dpavlin 33
80 dpavlin 31 show('/user_form');
81     } else {
82     my $u = Transports::Model::UserCollection->new();
83     $u->unlimit();
84     set users => $u;
85     show('/users');
86     }
87     };
88    
89     =head1 Login and logout operations
90    
91     =head2 login
92    
93     =cut
94    
95 dpavlin 40 on qr'^/login(/.*)?$', run {
96    
97     my $return_url = $1 || '/';
98    
99 dpavlin 5 set 'action' =>
100     Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );
101     set 'next' => Jifty->web->request->continuation
102     || Jifty::Continuation->new(
103 dpavlin 40 request => Jifty::Request->new( path => $return_url ) );
104     show '/login';
105 dpavlin 5 };
106    
107 dpavlin 31 =head2 logout
108    
109     =cut
110    
111 dpavlin 5 before 'logout', run {
112     Jifty->web->request->add_action(
113     moniker => 'logout',
114     class => 'Transports::Action::Logout'
115     );
116     };
117    
118 dpavlin 14
119     # These are dispatcher rules that halos and error handling need to be
120     # able to edit files in place. These should become a plugin of some
121     # sort, when we have that infrastructure.
122    
123     before '*', run {
124     Jifty->api->allow(qr/^Jifty::Action::Devel/)
125     if Jifty->config->framework('DevelMode');
126     };
127    
128     on qr'^/__jifty/edit/(.*?)/(.*)$', run {
129     my $editor = Jifty->web->new_action(
130     class => 'Jifty::Action::Devel::FileEditor',
131     moniker => 'editpage',
132     arguments => {
133     source_path => $2,
134     file_type => $1,
135     }
136     );
137    
138     set editor => $editor;
139     show '/__jifty/edit_file';
140     };
141    
142 dpavlin 5 1;

  ViewVC Help
Powered by ViewVC 1.1.26