/[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 37 - (show 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 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 new
12
13 new transport
14
15 =cut
16
17 on 'new', run {
18 my $t = Jifty->web->new_action(
19 class => 'CreateTransport',
20 monkier => 'create',
21 );
22
23 set transport => $t;
24 };
25
26 =head2 /edit/42
27
28 edit transport with request number C<42>
29
30 =cut
31
32 on qr'^/edit/(\d+)', run {
33 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
38 set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );
39 show('/edit');
40 };
41
42 =head1 User operations
43
44 =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 set user_id => $id;
58
59 set user => Jifty->web->new_action(
60 class => $u->id ? 'UpdateUser' : 'CreateUser',
61 record => $u
62 );
63
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 set source => Jifty->web->new_action(
74 class => 'CreateUserOnSource',
75 monkier => 'create',
76 );
77
78 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 =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 =head1 Login and logout operations
102
103 =head2 login
104
105 =cut
106
107 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 =head2 logout
116
117 =cut
118
119 before 'logout', run {
120 Jifty->web->request->add_action(
121 moniker => 'logout',
122 class => 'Transports::Action::Logout'
123 );
124 };
125
126
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 1;

  ViewVC Help
Powered by ViewVC 1.1.26