/[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 46 - (show annotations)
Tue May 30 18:09:51 2006 UTC (17 years, 11 months ago) by dpavlin
File size: 2695 byte(s)
bunch of changes:
- added import operator user role (user_object->can_import),
  added import transort which sets return_code and optional comment - it can
  be executed by import operators or admins
- import operators will get just transports which aren't imported under /transports
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 =head2 /import/42
43
44 import transport with request number C<42>
45
46 =cut
47
48 on qr'^/import/(\d+)', run {
49 my $id = $1;
50 my $t = Transports::Model::Transport->new();
51 $t->load_by_cols( id => $id );
52 Jifty->web->redirect( '/transports' ) unless ( $t->id );
53
54 set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );
55 show('/import');
56 };
57
58 =head1 User operations
59
60 =head2 /user/42
61
62 edit user with id C<42>
63
64 =cut
65
66 on qr'^/users?/?(\d*)', run {
67 my $id = $1;
68
69 if ($id) {
70 my $u = Transports::Model::User->new();
71 $u->load_by_cols( id => $id );
72
73 set user_id => $id;
74
75 set user => Jifty->web->new_action(
76 class => $u->id ? 'UpdateUser' : 'CreateUser',
77 record => $u
78 );
79
80 show('/user_form');
81 } else {
82 my $u = Transports::Model::UserCollection->new();
83 $u->unlimit();
84 set users => $u;
85 show('/users');
86 }
87 };
88
89 =head1 Login and logout operations
90
91 =head2 login
92
93 =cut
94
95 on qr'^/login(/.*)?$', run {
96
97 my $return_url = $1 || '/';
98
99 set 'action' =>
100 Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );
101 set 'next' => Jifty->web->request->continuation
102 || Jifty::Continuation->new(
103 request => Jifty::Request->new( path => $return_url ) );
104 show '/login';
105 };
106
107 =head2 logout
108
109 =cut
110
111 before 'logout', run {
112 Jifty->web->request->add_action(
113 moniker => 'logout',
114 class => 'Transports::Action::Logout'
115 );
116 };
117
118
119 # These are dispatcher rules that halos and error handling need to be
120 # able to edit files in place. These should become a plugin of some
121 # sort, when we have that infrastructure.
122
123 before '*', run {
124 Jifty->api->allow(qr/^Jifty::Action::Devel/)
125 if Jifty->config->framework('DevelMode');
126 };
127
128 on qr'^/__jifty/edit/(.*?)/(.*)$', run {
129 my $editor = Jifty->web->new_action(
130 class => 'Jifty::Action::Devel::FileEditor',
131 moniker => 'editpage',
132 arguments => {
133 source_path => $2,
134 file_type => $1,
135 }
136 );
137
138 set editor => $editor;
139 show '/__jifty/edit_file';
140 };
141
142 1;

  ViewVC Help
Powered by ViewVC 1.1.26