/[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 13 by dpavlin, Fri May 5 22:20:53 2006 UTC revision 40 by dpavlin, Sat May 27 22:09:29 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( '/new_transport');  #    redirect( '/new');
7  };  #};
8    
9  on '/all_transports', run {  =head1 Transports operations
         my $transports = Transports::Model::TransportCollection->new();  
     $transports->unlimit();  
10    
11          set transports => $transports;  =head2 new
12  };  
13    new transport
14    
15    =cut
16    
17  on '/new_transport', run {  on 'new', run {
18          my $t = Jifty->web->new_action(          my $t = Jifty->web->new_action(
19                  class => 'CreateTransport',                  class => 'CreateTransport',
20                  monkier => 'create',                  monkier => 'create',
21          );          );
22    
23          set transport => $t;          set transport => $t;
         set viewer => Jifty->web->new_action( class => 'UpdateTransport', record => $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                    show('/user_form');
65            } else {
66                    my $u = Transports::Model::UserCollection->new();
67                    $u->unlimit();
68                    set users => $u;
69                    show('/users');
70            }
71    };
72    
73    =head1 Login and logout operations
74    
75    =head2 login
76    
77    =cut
78    
79    on qr'^/login(/.*)?$', run {
80    
81            my $return_url = $1 || '/';
82    
 # Login  
 on 'login', run {  
83      set 'action' =>      set 'action' =>
84          Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );          Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );
85      set 'next' => Jifty->web->request->continuation      set 'next' => Jifty->web->request->continuation
86          || Jifty::Continuation->new(          || Jifty::Continuation->new(
87          request => Jifty::Request->new( path => "/" ) );          request => Jifty::Request->new( path => $return_url ) );
88            show '/login';
89  };  };
90    
91  # Log out  =head2 logout
92    
93    =cut
94    
95  before 'logout', run {  before 'logout', run {
96      Jifty->web->request->add_action(      Jifty->web->request->add_action(
97          moniker => 'logout',          moniker => 'logout',
# Line 42  before 'logout', run { Line 99  before 'logout', run {
99      );      );
100  };  };
101    
102    
103    # These are dispatcher rules that halos and error handling need to be
104    # able to edit files in place.  These should become a plugin of some
105    # sort, when we have that infrastructure.
106    
107    before '*', run {
108        Jifty->api->allow(qr/^Jifty::Action::Devel/)
109          if Jifty->config->framework('DevelMode');
110    };
111    
112    on qr'^/__jifty/edit/(.*?)/(.*)$', run {
113        my $editor = Jifty->web->new_action(
114            class     => 'Jifty::Action::Devel::FileEditor',
115            moniker   => 'editpage',
116            arguments => {
117                source_path => $2,
118                file_type   => $1,
119            }
120        );
121    
122        set editor => $editor;
123        show '/__jifty/edit_file';
124    };
125    
126  1;  1;

Legend:
Removed from v.13  
changed lines
  Added in v.40

  ViewVC Help
Powered by ViewVC 1.1.26