Module: Zena::Routes

Defined in:
lib/zena/routes.rb

Instance Method Summary collapse

Instance Method Details

#zen_routesObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/zena/routes.rb', line 3

def zen_routes
  home       ':prefix',  :controller => 'nodes',    :action => 'index',  :prefix => /[a-zA-Z]{0,2}/
  not_found  ':prefix/404.html',  :controller => 'nodes',    :action => 'not_found', :prefix => /\w\w/
        'login',  :controller => 'user_sessions',  :action => 'new',    :requirements => { :method => :get  }
  logout     'logout', :controller => 'user_sessions',  :action => 'destroy'
  rescue_    'rescue',   :controller => 'users', :action => 'rescue'
  dev_skin   'dev_skin', :controller => 'users', :action => 'dev_skin'

  upload_progress 'upload_progress', :controller => 'documents', :action => 'upload_progress'

  resource  :session, :controller => "user_sessions"   # singleton resource
  resources :pings
  resources :users, :member => { :preferences => :get}
  resources :groups
  resources :acls
  resources :iformats

  connect ':prefix/*path',  :controller => 'nodes', :action => 'show', :prefix => /\w\w/
  connect 'dav/*path_info', :controller => 'nodes', :action => 'webdav'

  resources :nodes,
    :collection => { :asearch => :get, :search => :get },
    :member =>     { :import => :post, :export => :get, :save_text => :put,
                     :order => :any, :clear_order => :any,
                     :zafu => :any, :drop => :put, :attribute => :get,
                     :find => :get # same as search but starting on current node instead of root
                   }.merge(Zena::Use.routes('nodes')) do |nodes|
    nodes.resources :versions,
                    :member => { :edit    => :get,
                                 :diff    => :get,
                                 :custom_tab => :get,
                                 :propose => :put,
                                 :publish => :put,
                                 :unpublish => :put,
                                 :refuse  => :put,
                                 :remove  => :put,
                                 :redit   => :put,
                                 :preview => :any,
                                 :link    => :any }

    nodes.resources :links

    #nodes.resources :discussions, :name_prefix => nil do |discussions|
    #  #discussions.resources :comments,
    #  #              :name_prefix => nil,
    #  #              :member => { :reply_to => :post }
    #end

  end

  # FIXME: merge 'documents' controller into 'nodes' (keep module for clarity)
  resources :documents, :collection => { :upload    => :post, :get_uf => :get },
                            :member     => { :crop_form => :get }

  resources :relations
  resources :virtual_classes, :collection => {
                  :import_prepare => :post,
                  :import => :post,
                  :export => :get,
                }

  resources :columns

  resources :sites, :collection => { :clear_cache => :get },
                    :member     => { :action => :put, :jobs => :get }

  resources :comments,
                :collection => { :empty_bin => :delete },
                :member => { :remove  => :put,
                             :publish => :put,
                             :reply_to => :post,
                           }
  resources :data_entries, :member => { :zafu => :get }

  # temporary routes...
  connect 'discussions/:action/:id', :controller => 'discussions'

  # catch all
  connect '*path',  :controller => 'nodes',    :action => 'catch_all'
end