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

  ViewVC Help
Powered by ViewVC 1.1.26