/[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 55 by dpavlin, Mon Jun 5 14:27:50 2006 UTC revision 90 by dpavlin, Wed Jun 21 13:06:11 2006 UTC
# Line 8  use Jifty::Dispatcher -base; Line 8  use Jifty::Dispatcher -base;
8    
9  =head1 Transports operations  =head1 Transports operations
10    
11  =head2 new  =head2 /transports/create/
12    
13  new transport  Select transport (if only one exists, it will be picked automatically) and
14    create new stransport
15    
16  =cut  =cut
17    
18  on 'new', run {  under '/transports/create' => [
         my $t = Jifty->web->new_action(  
                 class => 'CreateTransport',  
                 monkier => 'create',  
         );  
19    
20          set transport => $t;          on 'landscape' => run {
21  };  
22                            my $landscapes = Transports::Model::UserOnLandscapeCollection->new();
23  =head2 /edit/42                          $landscapes->limit(
24                                    column          => 'user_on',
25  edit transport with request number C<42>                                  value           => Jifty->web->current_user->id,
26                                    quote_value     => 0,
27  =cut                          );
28                            $landscapes->order_by( column => 'landscape' );
29  on qr'^/edit/(\d+)', run {  
30          my $id = $1;                          if ($landscapes->count == 0) {
31          my $t = Transports::Model::Transport->new();                                  show '/transports/create/no_landscape';
32          $t->load_by_cols( id => $id );                          } elsif ($landscapes->count == 1) {
33          Jifty->web->redirect( '/new' ) unless ( $t->id );                                  $landscape_id = $landscapes->first->id;
34                                    set 'landscape_id' => $landscape_id;
35          set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );                                  dispatch('/transports/create/');
36          show('/edit');                          } else {
37  };                                  set landscapes => $landscapes;
38                                    show '/transports/create/landscape';
39  =head2 /import/42                          };
40    
41  import transport with request number C<42>          },
42            on '' => run {
43  =cut  
44                    my $landscape_id = get('landscape_id');
45  on qr'^/import/(\d+)', run {                  redirect('/transports/create/landscape') unless ($landscape_id);
46          my $id = $1;  
47          my $t = Transports::Model::Transport->new();                  my $transport = Jifty->web->new_action(
48          $t->load_by_cols( id => $id );                          class => 'CreateTransport',
49          Jifty->web->redirect( '/transports' ) unless ( $t->id );                          moniker => 'transports_create',
50                    );
51          set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );  
52          show('/import');                  my $l = Transports::Model::Landscape->new();
53  };                  $l->load_by_cols( id => $landscape_id );
54    
55                    if (! $l->id) {
56                            warn "Can't find landscape with id $landscape_id\n";
57                            redirect('/transports/create/landscape');
58                    }
59    
60                    my $s = Transports::Model::SourceCollection->new();
61                    $s->limit(
62                            column => 'landscape',
63                            value => $landscape_id,
64                    );
65    #               $transport->arguments->{'source'}->{'valid_values'}->[0]->{'collection'} = $s;
66    
67                    my $d = Transports::Model::DestinationCollection->new();
68                    $d->limit(
69                            column => 'landscape',
70                            value => $landscape_id,
71                    );
72    #               $transport->arguments->{'destination'}->{'valid_values'}->[0]->{'collection'} = $d;
73    
74                    set 'transport' => $transport;
75    
76                    show '/transports/create/new';
77            },
78    ];
79    
80  =head1 User operations  =head1 User operations
81    
 =head2 /user/42  
   
 edit user with id C<42>  
   
82  =cut  =cut
83    
84  on qr'^/user/(\d+)', run {  under '/users' => [
85          my $u = Transports::Model::User->new();          on '' => run {
86          $u->load_by_cols( id => $1 );                  dispatch '/users/form' if ( get 'user_id' );
87            },
88          set user_id => $1;  ];
   
         set user => Jifty->web->new_action(  
                 class => $u->id ? 'UpdateUser' : 'CreateUser',  
                 record => $u  
         );  
   
         show('/user_form');  
 };  
89    
90  =head1 Login and logout operations  =head1 Login and logout operations
91    
 =head2 login  
   
 =cut  
   
 on qr'^/login(/.*)?$', run {  
   
         my $return_url = $1 || '/';  
   
     set 'action' =>  
         Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );  
     set 'next' => Jifty->web->request->continuation  
         || Jifty::Continuation->new(  
         request => Jifty::Request->new( path => $return_url ) );  
         show '/login';  
 };  
   
92  =head2 logout  =head2 logout
93    
94  =cut  =cut
95    
96  before 'logout', run {  before '/logout', run {
97      Jifty->web->request->add_action(      Jifty->web->request->add_action(
98          moniker => 'logout',          moniker => 'logout',
99          class   => 'Transports::Action::Logout'          class   => 'Transports::Action::Logout'
100      );      );
101            warn "added Transports::Action::Logout";
102  };  };
103    
104    
# Line 112  before 'logout', run { Line 107  before 'logout', run {
107  # sort, when we have that infrastructure.  # sort, when we have that infrastructure.
108    
109  before '*', run {  before '*', run {
110      Jifty->api->allow(qr/^Jifty::Action::Devel/)  
111            my $url = Jifty->web->request->path;
112    
113            #warn "before url: $url";
114    
115            next_rule if ($url eq '/' || $url =~ m#^/(?:login|logout|__jifty)/*#);
116    
117            Jifty->api->allow(qr/^Jifty::Action::Devel/)
118        if Jifty->config->framework('DevelMode');        if Jifty->config->framework('DevelMode');
119    
120            if (not Jifty->web->current_user->id) {
121                    warn "send user accessing $url to login form\n";
122                    Jifty->web->tangent( url => '/login' );
123            }
124    
125  };  };
126    
127  on qr'^/__jifty/edit/(.*?)/(.*)$', run {  on qr'^/__jifty/edit/(.*?)/(.*)$', run {

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

  ViewVC Help
Powered by ViewVC 1.1.26