/[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 37 - (hide annotations)
Sat May 27 15:56:52 2006 UTC (17 years, 11 months ago) by dpavlin
File size: 2839 byte(s)
make pager for transports using fragments (buzzword compliant, using AJAX)
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 31 =head1 User operations
43 dpavlin 26
44 dpavlin 31 =head2 /user/42
45    
46     edit user with id C<42>
47    
48     =cut
49    
50     on qr'^/users?/?(\d*)', run {
51     my $id = $1;
52    
53     if ($id) {
54     my $u = Transports::Model::User->new();
55     $u->load_by_cols( id => $id );
56    
57 dpavlin 33 set user_id => $id;
58    
59 dpavlin 31 set user => Jifty->web->new_action(
60     class => $u->id ? 'UpdateUser' : 'CreateUser',
61     record => $u
62     );
63 dpavlin 33
64     my $s = Transports::Model::UserOnSourceCollection->new;
65     $s->limit(
66     column => 'user_on',
67     value => $id,
68     quote_value => 0,
69     );
70     $s->order_by( { column => 'source' } );
71     set sources => $s;
72    
73 dpavlin 34 set source => Jifty->web->new_action(
74     class => 'CreateUserOnSource',
75     monkier => 'create',
76     );
77    
78 dpavlin 31 show('/user_form');
79     } else {
80     my $u = Transports::Model::UserCollection->new();
81     $u->unlimit();
82     set users => $u;
83     show('/users');
84     }
85     };
86    
87 dpavlin 34 =head2 delete_user_on_system
88    
89     =cut
90    
91     on qr'^/delete_user_on_source/(\d+)', run {
92     my $id = $1;
93     my $u = Transports::Model::UserOnSource->new();
94     $u->load_by_cols( id => $id );
95     my $user_id = $u->user_on->id;
96     $u->delete;
97     redirect "/user/$user_id";
98     };
99    
100    
101 dpavlin 31 =head1 Login and logout operations
102    
103     =head2 login
104    
105     =cut
106    
107 dpavlin 5 on 'login', run {
108     set 'action' =>
109     Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );
110     set 'next' => Jifty->web->request->continuation
111     || Jifty::Continuation->new(
112     request => Jifty::Request->new( path => "/" ) );
113     };
114    
115 dpavlin 31 =head2 logout
116    
117     =cut
118    
119 dpavlin 5 before 'logout', run {
120     Jifty->web->request->add_action(
121     moniker => 'logout',
122     class => 'Transports::Action::Logout'
123     );
124     };
125    
126 dpavlin 14
127     # These are dispatcher rules that halos and error handling need to be
128     # able to edit files in place. These should become a plugin of some
129     # sort, when we have that infrastructure.
130    
131     before '*', run {
132     Jifty->api->allow(qr/^Jifty::Action::Devel/)
133     if Jifty->config->framework('DevelMode');
134     };
135    
136     on qr'^/__jifty/edit/(.*?)/(.*)$', run {
137     my $editor = Jifty->web->new_action(
138     class => 'Jifty::Action::Devel::FileEditor',
139     moniker => 'editpage',
140     arguments => {
141     source_path => $2,
142     file_type => $1,
143     }
144     );
145    
146     set editor => $editor;
147     show '/__jifty/edit_file';
148     };
149    
150 dpavlin 5 1;

  ViewVC Help
Powered by ViewVC 1.1.26