/[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

Contents of /trunk/lib/Transports/Dispatcher.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 34 - (show 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 package Transports::Dispatcher;
2 use Jifty::Dispatcher -base;
3
4 # Default page
5 #on '/', run {
6 # redirect( '/new');
7 #};
8
9 =head1 Transports operations
10
11 =head2 transports
12
13 list of all transports
14
15 =cut
16
17 on 'transports', run {
18 my $transports = Transports::Model::TransportCollection->new();
19 $transports->unlimit();
20
21 set transports => $transports;
22 };
23
24 =head2 new
25
26 new transport
27
28 =cut
29
30 on 'new', run {
31 my $t = Jifty->web->new_action(
32 class => 'CreateTransport',
33 monkier => 'create',
34 );
35
36 set transport => $t;
37 };
38
39 =head2 /edit/42
40
41 edit transport with request number C<42>
42
43 =cut
44
45 on qr'^/edit/(\d+)', run {
46 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
51 set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );
52 show('/edit');
53 };
54
55 =head1 User operations
56
57 =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 set user_id => $id;
71
72 set user => Jifty->web->new_action(
73 class => $u->id ? 'UpdateUser' : 'CreateUser',
74 record => $u
75 );
76
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 set source => Jifty->web->new_action(
87 class => 'CreateUserOnSource',
88 monkier => 'create',
89 );
90
91 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 =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 =head1 Login and logout operations
115
116 =head2 login
117
118 =cut
119
120 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 =head2 logout
129
130 =cut
131
132 before 'logout', run {
133 Jifty->web->request->add_action(
134 moniker => 'logout',
135 class => 'Transports::Action::Logout'
136 );
137 };
138
139
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 1;

  ViewVC Help
Powered by ViewVC 1.1.26