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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 12 by dpavlin, Fri May 5 22:02:19 2006 UTC revision 31 by dpavlin, Fri May 26 23:25:35 2006 UTC
# Line 2  package Transports::Dispatcher; Line 2  package Transports::Dispatcher;
2  use Jifty::Dispatcher -base;  use Jifty::Dispatcher -base;
3    
4  # Default page  # Default page
5  on '/', run {  #on '/', run {
6      redirect( '/transport');  #    redirect( '/new');
7  };  #};
8    
9    =head1 Transports operations
10    
11    =head2 transports
12    
13    list of all transports
14    
15    =cut
16    
17  on '/all_transports', run {  on 'transports', run {
18          my $transports = Transports::Model::TransportCollection->new();          my $transports = Transports::Model::TransportCollection->new();
19      $transports->unlimit();      $transports->unlimit();
20    
21          set transports => $transports;          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 => Jifty->web->new_action(
71                            class => $u->id ? 'UpdateUser' : 'CreateUser',
72                            record => $u
73                    );
74                    show('/user_form');
75            } else {
76                    my $u = Transports::Model::UserCollection->new();
77                    $u->unlimit();
78                    set users => $u;
79                    show('/users');
80            }
81    };
82    
83    =head1 Login and logout operations
84    
85    =head2 login
86    
87    =cut
88    
 # Login  
89  on 'login', run {  on 'login', run {
90      set 'action' =>      set 'action' =>
91          Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );          Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );
# Line 23  on 'login', run { Line 94  on 'login', run {
94          request => Jifty::Request->new( path => "/" ) );          request => Jifty::Request->new( path => "/" ) );
95  };  };
96    
97  # Log out  =head2 logout
98    
99    =cut
100    
101  before 'logout', run {  before 'logout', run {
102      Jifty->web->request->add_action(      Jifty->web->request->add_action(
103          moniker => 'logout',          moniker => 'logout',
# Line 31  before 'logout', run { Line 105  before 'logout', run {
105      );      );
106  };  };
107    
108    
109    # These are dispatcher rules that halos and error handling need to be
110    # able to edit files in place.  These should become a plugin of some
111    # sort, when we have that infrastructure.
112    
113    before '*', run {
114        Jifty->api->allow(qr/^Jifty::Action::Devel/)
115          if Jifty->config->framework('DevelMode');
116    };
117    
118    on qr'^/__jifty/edit/(.*?)/(.*)$', run {
119        my $editor = Jifty->web->new_action(
120            class     => 'Jifty::Action::Devel::FileEditor',
121            moniker   => 'editpage',
122            arguments => {
123                source_path => $2,
124                file_type   => $1,
125            }
126        );
127    
128        set editor => $editor;
129        show '/__jifty/edit_file';
130    };
131    
132  1;  1;

Legend:
Removed from v.12  
changed lines
  Added in v.31

  ViewVC Help
Powered by ViewVC 1.1.26