/[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 55 by dpavlin, Mon Jun 5 14:27:50 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 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  on '/all_transports', run {  =head2 /edit/42
27          my $transports = Transports::Model::TransportCollection->new();  
28      $transports->unlimit();  edit transport with request number C<42>
29    
30    =cut
31    
32          set transports => $transports;  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'^/user/(\d+)', run {
67            my $u = Transports::Model::User->new();
68            $u->load_by_cols( id => $1 );
69    
70            set user_id => $1;
71    
72            set user => Jifty->web->new_action(
73                    class => $u->id ? 'UpdateUser' : 'CreateUser',
74                    record => $u
75            );
76    
77            show('/user_form');
78    };
79    
80    =head1 Login and logout operations
81    
82    =head2 login
83    
84    =cut
85    
86    on qr'^/login(/.*)?$', run {
87    
88            my $return_url = $1 || '/';
89    
 # Login  
 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' );
92      set 'next' => Jifty->web->request->continuation      set 'next' => Jifty->web->request->continuation
93          || Jifty::Continuation->new(          || Jifty::Continuation->new(
94          request => Jifty::Request->new( path => "/" ) );          request => Jifty::Request->new( path => $return_url ) );
95            show '/login';
96  };  };
97    
98  # Log out  =head2 logout
99    
100    =cut
101    
102  before 'logout', run {  before 'logout', run {
103      Jifty->web->request->add_action(      Jifty->web->request->add_action(
104          moniker => 'logout',          moniker => 'logout',
# Line 31  before 'logout', run { Line 106  before 'logout', run {
106      );      );
107  };  };
108    
109    
110    # These are dispatcher rules that halos and error handling need to be
111    # able to edit files in place.  These should become a plugin of some
112    # sort, when we have that infrastructure.
113    
114    before '*', run {
115        Jifty->api->allow(qr/^Jifty::Action::Devel/)
116          if Jifty->config->framework('DevelMode');
117    };
118    
119    on qr'^/__jifty/edit/(.*?)/(.*)$', run {
120        my $editor = Jifty->web->new_action(
121            class     => 'Jifty::Action::Devel::FileEditor',
122            moniker   => 'editpage',
123            arguments => {
124                source_path => $2,
125                file_type   => $1,
126            }
127        );
128    
129        set editor => $editor;
130        show '/__jifty/edit_file';
131    };
132    
133  1;  1;

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

  ViewVC Help
Powered by ViewVC 1.1.26