/[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 46 by dpavlin, Tue May 30 18:09:51 2006 UTC revision 85 by dpavlin, Thu Jun 15 22:08:07 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
   
 new transport  
   
 =cut  
   
 on 'new', run {  
         my $t = Jifty->web->new_action(  
                 class => 'CreateTransport',  
                 monkier => 'create',  
         );  
   
         set transport => $t;  
 };  
   
 =head2 /edit/42  
   
 edit transport with request number C<42>  
12    
13  =cut  =cut
14    
15  on qr'^/edit/(\d+)', run {  on 'transports/create/new', run {
         my $id = $1;  
         my $t = Transports::Model::Transport->new();  
         $t->load_by_cols( id => $id );  
         Jifty->web->redirect( '/new' ) unless ( $t->id );  
   
         set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );  
         show('/edit');  
 };  
   
 =head2 /import/42  
16    
17  import transport with request number C<42>          my $landscape_id = get('landscape_id');
18            if (! $landscape_id) {
19  =cut          
20                    my $landscapes = Transports::Model::UserOnLandscapeCollection->new();
21  on qr'^/import/(\d+)', run {                  $landscapes->limit(
22          my $id = $1;                          column          => 'user_on',
23          my $t = Transports::Model::Transport->new();                          value           => Jifty->web->current_user->id,
24          $t->load_by_cols( id => $id );                          quote_value     => 0,
25          Jifty->web->redirect( '/transports' ) unless ( $t->id );                  );
26                    $landscapes->order_by({ column => 'landscape' });
27    
28          set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t );                  if ($landscapes->count == 0) {
29          show('/import');                          show '/transports/create/no_landscape';
30  };                  } elsif ($landscapes->count == 1) {
31                            $landscape_id = $landscapes->first->id;
32                    } else {
33                            set landscapes => $landscapes;
34                            show '/transports/create/landscape';
35                    }
36            }
37    
38  =head1 User operations          my $transport = Jifty->web->new_action(
39                    class => 'CreateTransport',
40                    monkier => 'create',
41            );
42    
43  =head2 /user/42          my $l = Transports::Model::Landscape->new();
44            $l->load_by_cols( id => $landscape_id );
45    
46  edit user with id C<42>          warn "Can't find landscape with id $landscape_id" unless ($l->id);
47    
48  =cut          my $s = Transports::Model::SourceCollection->new();
49            $s->limit(
50                    column => 'landscape',
51                    value => $landscape_id,
52            );
53            $transport->arguments->{'source'}->{'valid_values'}->[0]->{'collection'} = $s;
54    
55  on qr'^/users?/?(\d*)', run {          my $d = Transports::Model::DestinationCollection->new();
56          my $id = $1;          $d->limit(
57                    column => 'landscape',
58                    value => $landscape_id,
59            );
60            $transport->arguments->{'destination'}->{'valid_values'}->[0]->{'collection'} = $d;
61    
62          if ($id) {          set 'landscape_id' => $landscape_id;
63                  my $u = Transports::Model::User->new();          set 'transport' => $transport;
                 $u->load_by_cols( id => $id );  
   
                 set user_id => $id;  
   
                 set user => Jifty->web->new_action(  
                         class => $u->id ? 'UpdateUser' : 'CreateUser',  
                         record => $u  
                 );  
64    
65                  show('/user_form');          show '/transports/create/new';
66          } else {  }
                 my $u = Transports::Model::UserCollection->new();  
                 $u->unlimit();  
                 set users => $u;  
                 show('/users');  
         }  
 };  
67    
68  =head1 Login and logout operations  =head1 Login and logout operations
69    
# Line 92  on qr'^/users?/?(\d*)', run { Line 71  on qr'^/users?/?(\d*)', run {
71    
72  =cut  =cut
73    
74  on qr'^/login(/.*)?$', run {  on '--login', run {
   
         my $return_url = $1 || '/';  
75    
76      set 'action' =>      set 'action' =>
77          Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );          Jifty->web->new_action( class => 'Login', moniker => 'loginbox' );
78      set 'next' => Jifty->web->request->continuation      set 'next' => Jifty->web->request->continuation
79          || Jifty::Continuation->new(          || Jifty::Continuation->new(
80          request => Jifty::Request->new( path => $return_url ) );          request => Jifty::Request->new( path => '/transports' ) );
81          show '/login';          show '/login';
82  };  };
83    
# Line 120  before 'logout', run { Line 97  before 'logout', run {
97  # able to edit files in place.  These should become a plugin of some  # able to edit files in place.  These should become a plugin of some
98  # sort, when we have that infrastructure.  # sort, when we have that infrastructure.
99    
100  before '*', run {  before '*' => run {
101      Jifty->api->allow(qr/^Jifty::Action::Devel/)          my $url = Jifty->web->request->path;
102    
103            warn "hmmm.... url = $url\n";
104    
105            return if ($url eq '/' || $url eq '/login' || $url =~ m#^/__jifty/#);
106    
107            Jifty->api->allow(qr/^Jifty::Action::Devel/)
108        if Jifty->config->framework('DevelMode');        if Jifty->config->framework('DevelMode');
109    
110            if (not Jifty->web->current_user->id) {
111                    warn "send user accessing $url to login form\n";
112                    Jifty->web->tangent( url => '/login' );
113            }
114  };  };
115    
116  on qr'^/__jifty/edit/(.*?)/(.*)$', run {  on qr'^/__jifty/edit/(.*?)/(.*)$', run {

Legend:
Removed from v.46  
changed lines
  Added in v.85

  ViewVC Help
Powered by ViewVC 1.1.26