/[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 57 - (hide annotations)
Mon Jun 5 15:09:51 2006 UTC (17 years, 11 months ago) by dpavlin
File size: 2370 byte(s)
cleanup dispatcher, new template now contains all logic for /new
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 /edit/42
12    
13     edit transport with request number C<42>
14    
15     =cut
16    
17     on qr'^/edit/(\d+)', run {
18 dpavlin 26 my $id = $1;
19     my $t = Transports::Model::Transport->new();
20     $t->load_by_cols( id => $id );
21     Jifty->web->redirect( '/new' ) unless ( $t->id );
22 dpavlin 13
23 dpavlin 26 set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );
24     show('/edit');
25     };
26 dpavlin 13
27 dpavlin 46 =head2 /import/42
28    
29     import transport with request number C<42>
30    
31     =cut
32    
33     on qr'^/import/(\d+)', run {
34     my $id = $1;
35     my $t = Transports::Model::Transport->new();
36     $t->load_by_cols( id => $id );
37     Jifty->web->redirect( '/transports' ) unless ( $t->id );
38    
39     set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );
40     show('/import');
41     };
42    
43 dpavlin 31 =head1 User operations
44 dpavlin 26
45 dpavlin 31 =head2 /user/42
46    
47     edit user with id C<42>
48    
49     =cut
50    
51 dpavlin 55 on qr'^/user/(\d+)', run {
52     my $u = Transports::Model::User->new();
53     $u->load_by_cols( id => $1 );
54 dpavlin 31
55 dpavlin 55 set user_id => $1;
56 dpavlin 31
57 dpavlin 55 set user => Jifty->web->new_action(
58     class => $u->id ? 'UpdateUser' : 'CreateUser',
59     record => $u
60     );
61 dpavlin 33
62 dpavlin 55 show('/user_form');
63 dpavlin 31 };
64    
65     =head1 Login and logout operations
66    
67     =head2 login
68    
69     =cut
70    
71 dpavlin 40 on qr'^/login(/.*)?$', run {
72    
73     my $return_url = $1 || '/';
74    
75 dpavlin 5 set 'action' =>
76     Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );
77     set 'next' => Jifty->web->request->continuation
78     || Jifty::Continuation->new(
79 dpavlin 40 request => Jifty::Request->new( path => $return_url ) );
80     show '/login';
81 dpavlin 5 };
82    
83 dpavlin 31 =head2 logout
84    
85     =cut
86    
87 dpavlin 5 before 'logout', run {
88     Jifty->web->request->add_action(
89     moniker => 'logout',
90     class => 'Transports::Action::Logout'
91     );
92     };
93    
94 dpavlin 14
95     # These are dispatcher rules that halos and error handling need to be
96     # able to edit files in place. These should become a plugin of some
97     # sort, when we have that infrastructure.
98    
99     before '*', run {
100     Jifty->api->allow(qr/^Jifty::Action::Devel/)
101     if Jifty->config->framework('DevelMode');
102     };
103    
104     on qr'^/__jifty/edit/(.*?)/(.*)$', run {
105     my $editor = Jifty->web->new_action(
106     class => 'Jifty::Action::Devel::FileEditor',
107     moniker => 'editpage',
108     arguments => {
109     source_path => $2,
110     file_type => $1,
111     }
112     );
113    
114     set editor => $editor;
115     show '/__jifty/edit_file';
116     };
117    
118 dpavlin 5 1;

  ViewVC Help
Powered by ViewVC 1.1.26