To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
root / config / routes.rb @ 442:753f1380d6bc
History | View | Annotate | Download (14.9 KB)
| 1 | 0:513646585e45 | Chris | ActionController::Routing::Routes.draw do |map| |
|---|---|---|---|
| 2 | # Add your own custom routes here.
|
||
| 3 | # The priority is based upon order of creation: first created -> highest priority.
|
||
| 4 | |||
| 5 | # Here's a sample route:
|
||
| 6 | # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
|
||
| 7 | # Keep in mind you can assign values other than :controller and :action
|
||
| 8 | |||
| 9 | map.home '', :controller => 'welcome' |
||
| 10 | |||
| 11 | map.signin 'login', :controller => 'account', :action => 'login' |
||
| 12 | map.signout 'logout', :controller => 'account', :action => 'logout' |
||
| 13 | |||
| 14 | map.connect 'roles/workflow/:id/:role_id/:tracker_id', :controller => 'roles', :action => 'workflow' |
||
| 15 | map.connect 'help/:ctrl/:page', :controller => 'help' |
||
| 16 | |||
| 17 | 37:94944d00e43c | chris | map.with_options :controller => 'time_entry_reports', :action => 'report',:conditions => {:method => :get} do |time_report| |
| 18 | 441:cbce1fd3b1b7 | Chris | time_report.connect 'projects/:project_id/issues/:issue_id/time_entries/report'
|
| 19 | time_report.connect 'projects/:project_id/issues/:issue_id/time_entries/report.:format'
|
||
| 20 | time_report.connect 'projects/:project_id/time_entries/report'
|
||
| 21 | time_report.connect 'projects/:project_id/time_entries/report.:format'
|
||
| 22 | 37:94944d00e43c | chris | time_report.connect 'time_entries/report'
|
| 23 | time_report.connect 'time_entries/report.:format'
|
||
| 24 | 0:513646585e45 | Chris | end
|
| 25 | 37:94944d00e43c | chris | |
| 26 | 441:cbce1fd3b1b7 | Chris | map.bulk_edit_time_entry 'time_entries/bulk_edit',
|
| 27 | :controller => 'timelog', :action => 'bulk_edit', :conditions => { :method => :get } |
||
| 28 | map.bulk_update_time_entry 'time_entries/bulk_edit',
|
||
| 29 | :controller => 'timelog', :action => 'bulk_update', :conditions => { :method => :post } |
||
| 30 | map.time_entries_context_menu '/time_entries/context_menu',
|
||
| 31 | :controller => 'context_menus', :action => 'time_entries' |
||
| 32 | 37:94944d00e43c | chris | # TODO: wasteful since this is also nested under issues, projects, and projects/issues
|
| 33 | map.resources :time_entries, :controller => 'timelog' |
||
| 34 | 0:513646585e45 | Chris | |
| 35 | map.connect 'projects/:id/wiki', :controller => 'wikis', :action => 'edit', :conditions => {:method => :post} |
||
| 36 | map.connect 'projects/:id/wiki/destroy', :controller => 'wikis', :action => 'destroy', :conditions => {:method => :get} |
||
| 37 | map.connect 'projects/:id/wiki/destroy', :controller => 'wikis', :action => 'destroy', :conditions => {:method => :post} |
||
| 38 | |||
| 39 | map.with_options :controller => 'messages' do |messages_routes| |
||
| 40 | messages_routes.with_options :conditions => {:method => :get} do |messages_views| |
||
| 41 | messages_views.connect 'boards/:board_id/topics/new', :action => 'new' |
||
| 42 | messages_views.connect 'boards/:board_id/topics/:id', :action => 'show' |
||
| 43 | messages_views.connect 'boards/:board_id/topics/:id/edit', :action => 'edit' |
||
| 44 | end
|
||
| 45 | messages_routes.with_options :conditions => {:method => :post} do |messages_actions| |
||
| 46 | messages_actions.connect 'boards/:board_id/topics/new', :action => 'new' |
||
| 47 | messages_actions.connect 'boards/:board_id/topics/:id/replies', :action => 'reply' |
||
| 48 | messages_actions.connect 'boards/:board_id/topics/:id/:action', :action => /edit|destroy/ |
||
| 49 | end
|
||
| 50 | end
|
||
| 51 | |||
| 52 | map.with_options :controller => 'boards' do |board_routes| |
||
| 53 | board_routes.with_options :conditions => {:method => :get} do |board_views| |
||
| 54 | board_views.connect 'projects/:project_id/boards', :action => 'index' |
||
| 55 | board_views.connect 'projects/:project_id/boards/new', :action => 'new' |
||
| 56 | board_views.connect 'projects/:project_id/boards/:id', :action => 'show' |
||
| 57 | board_views.connect 'projects/:project_id/boards/:id.:format', :action => 'show' |
||
| 58 | board_views.connect 'projects/:project_id/boards/:id/edit', :action => 'edit' |
||
| 59 | end
|
||
| 60 | board_routes.with_options :conditions => {:method => :post} do |board_actions| |
||
| 61 | board_actions.connect 'projects/:project_id/boards', :action => 'new' |
||
| 62 | board_actions.connect 'projects/:project_id/boards/:id/:action', :action => /edit|destroy/ |
||
| 63 | end
|
||
| 64 | end
|
||
| 65 | |||
| 66 | map.with_options :controller => 'documents' do |document_routes| |
||
| 67 | document_routes.with_options :conditions => {:method => :get} do |document_views| |
||
| 68 | document_views.connect 'projects/:project_id/documents', :action => 'index' |
||
| 69 | document_views.connect 'projects/:project_id/documents/new', :action => 'new' |
||
| 70 | document_views.connect 'documents/:id', :action => 'show' |
||
| 71 | document_views.connect 'documents/:id/edit', :action => 'edit' |
||
| 72 | end
|
||
| 73 | document_routes.with_options :conditions => {:method => :post} do |document_actions| |
||
| 74 | document_actions.connect 'projects/:project_id/documents', :action => 'new' |
||
| 75 | document_actions.connect 'documents/:id/:action', :action => /destroy|edit/ |
||
| 76 | end
|
||
| 77 | end
|
||
| 78 | 14:1d32c0a0efbf | Chris | |
| 79 | map.resources :issue_moves, :only => [:new, :create], :path_prefix => '/issues', :as => 'move' |
||
| 80 | 22:40f7cfd4df19 | chris | |
| 81 | # Misc issue routes. TODO: move into resources
|
||
| 82 | 14:1d32c0a0efbf | Chris | map.auto_complete_issues '/issues/auto_complete', :controller => 'auto_completes', :action => 'issues' |
| 83 | 22:40f7cfd4df19 | chris | map.preview_issue '/issues/preview/:id', :controller => 'previews', :action => 'issue' # TODO: would look nicer as /issues/:id/preview |
| 84 | 14:1d32c0a0efbf | Chris | map.issues_context_menu '/issues/context_menu', :controller => 'context_menus', :action => 'issues' |
| 85 | map.issue_changes '/issues/changes', :controller => 'journals', :action => 'index' |
||
| 86 | 22:40f7cfd4df19 | chris | map.bulk_edit_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_edit', :conditions => { :method => :get } |
| 87 | map.bulk_update_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_update', :conditions => { :method => :post } |
||
| 88 | map.quoted_issue '/issues/:id/quoted', :controller => 'journals', :action => 'new', :id => /\d+/, :conditions => { :method => :post } |
||
| 89 | map.connect '/issues/:id/destroy', :controller => 'issues', :action => 'destroy', :conditions => { :method => :post } # legacy |
||
| 90 | |||
| 91 | 441:cbce1fd3b1b7 | Chris | map.with_options :controller => 'gantts', :action => 'show' do |gantts_routes| |
| 92 | gantts_routes.connect '/projects/:project_id/issues/gantt'
|
||
| 93 | gantts_routes.connect '/projects/:project_id/issues/gantt.:format'
|
||
| 94 | gantts_routes.connect '/issues/gantt.:format'
|
||
| 95 | end
|
||
| 96 | |||
| 97 | map.with_options :controller => 'calendars', :action => 'show' do |calendars_routes| |
||
| 98 | calendars_routes.connect '/projects/:project_id/issues/calendar'
|
||
| 99 | calendars_routes.connect '/issues/calendar'
|
||
| 100 | end
|
||
| 101 | 22:40f7cfd4df19 | chris | |
| 102 | map.with_options :controller => 'reports', :conditions => {:method => :get} do |reports| |
||
| 103 | reports.connect 'projects/:id/issues/report', :action => 'issue_report' |
||
| 104 | reports.connect 'projects/:id/issues/report/:detail', :action => 'issue_report_details' |
||
| 105 | end
|
||
| 106 | |||
| 107 | # Following two routes conflict with the resources because #index allows POST
|
||
| 108 | map.connect '/issues', :controller => 'issues', :action => 'index', :conditions => { :method => :post } |
||
| 109 | map.connect '/issues/create', :controller => 'issues', :action => 'index', :conditions => { :method => :post } |
||
| 110 | 0:513646585e45 | Chris | |
| 111 | 37:94944d00e43c | chris | map.resources :issues, :member => { :edit => :post }, :collection => {} do |issues| |
| 112 | issues.resources :time_entries, :controller => 'timelog' |
||
| 113 | end
|
||
| 114 | |||
| 115 | map.resources :issues, :path_prefix => '/projects/:project_id', :collection => { :create => :post } do |issues| |
||
| 116 | issues.resources :time_entries, :controller => 'timelog' |
||
| 117 | end
|
||
| 118 | 14:1d32c0a0efbf | Chris | |
| 119 | 0:513646585e45 | Chris | map.with_options :controller => 'issue_relations', :conditions => {:method => :post} do |relations| |
| 120 | relations.connect 'issues/:issue_id/relations/:id', :action => 'new' |
||
| 121 | relations.connect 'issues/:issue_id/relations/:id/destroy', :action => 'destroy' |
||
| 122 | end
|
||
| 123 | 22:40f7cfd4df19 | chris | |
| 124 | 0:513646585e45 | Chris | map.connect 'projects/:id/members/new', :controller => 'members', :action => 'new' |
| 125 | 37:94944d00e43c | chris | |
| 126 | 0:513646585e45 | Chris | map.with_options :controller => 'users' do |users| |
| 127 | 37:94944d00e43c | chris | users.connect 'users/:id/edit/:tab', :action => 'edit', :tab => nil, :conditions => {:method => :get} |
| 128 | |||
| 129 | 0:513646585e45 | Chris | users.with_options :conditions => {:method => :post} do |user_actions| |
| 130 | user_actions.connect 'users/:id/memberships', :action => 'edit_membership' |
||
| 131 | user_actions.connect 'users/:id/memberships/:membership_id', :action => 'edit_membership' |
||
| 132 | user_actions.connect 'users/:id/memberships/:membership_id/destroy', :action => 'destroy_membership' |
||
| 133 | end
|
||
| 134 | end
|
||
| 135 | |||
| 136 | 37:94944d00e43c | chris | map.resources :users, :member => { |
| 137 | :edit_membership => :post, |
||
| 138 | :destroy_membership => :post |
||
| 139 | 128:07fa8a8b56a8 | Chris | } |
| 140 | 37:94944d00e43c | chris | |
| 141 | 22:40f7cfd4df19 | chris | # For nice "roadmap" in the url for the index action
|
| 142 | map.connect 'projects/:project_id/roadmap', :controller => 'versions', :action => 'index' |
||
| 143 | 0:513646585e45 | Chris | |
| 144 | 37:94944d00e43c | chris | map.all_news 'news', :controller => 'news', :action => 'index' |
| 145 | map.formatted_all_news 'news.:format', :controller => 'news', :action => 'index' |
||
| 146 | map.preview_news '/news/preview', :controller => 'previews', :action => 'news' |
||
| 147 | map.connect 'news/:id/comments', :controller => 'comments', :action => 'create', :conditions => {:method => :post} |
||
| 148 | map.connect 'news/:id/comments/:comment_id', :controller => 'comments', :action => 'destroy', :conditions => {:method => :delete} |
||
| 149 | |||
| 150 | 22:40f7cfd4df19 | chris | map.resources :projects, :member => { |
| 151 | :copy => [:get, :post], |
||
| 152 | :settings => :get, |
||
| 153 | :modules => :post, |
||
| 154 | :archive => :post, |
||
| 155 | :unarchive => :post |
||
| 156 | } do |project|
|
||
| 157 | project.resource :project_enumerations, :as => 'enumerations', :only => [:update, :destroy] |
||
| 158 | project.resources :files, :only => [:index, :new, :create] |
||
| 159 | project.resources :versions, :collection => {:close_completed => :put}, :member => {:status_by => :post} |
||
| 160 | 37:94944d00e43c | chris | project.resources :news, :shallow => true |
| 161 | project.resources :time_entries, :controller => 'timelog', :path_prefix => 'projects/:project_id' |
||
| 162 | |||
| 163 | project.wiki_start_page 'wiki', :controller => 'wiki', :action => 'show', :conditions => {:method => :get} |
||
| 164 | project.wiki_index 'wiki/index', :controller => 'wiki', :action => 'index', :conditions => {:method => :get} |
||
| 165 | project.wiki_diff 'wiki/:id/diff/:version', :controller => 'wiki', :action => 'diff', :version => nil |
||
| 166 | project.wiki_diff 'wiki/:id/diff/:version/vs/:version_from', :controller => 'wiki', :action => 'diff' |
||
| 167 | project.wiki_annotate 'wiki/:id/annotate/:version', :controller => 'wiki', :action => 'annotate' |
||
| 168 | project.resources :wiki, :except => [:new, :create], :member => { |
||
| 169 | :rename => [:get, :post], |
||
| 170 | :history => :get, |
||
| 171 | :preview => :any, |
||
| 172 | :protect => :post, |
||
| 173 | :add_attachment => :post |
||
| 174 | }, :collection => {
|
||
| 175 | :export => :get, |
||
| 176 | :date_index => :get |
||
| 177 | } |
||
| 178 | |||
| 179 | 22:40f7cfd4df19 | chris | end
|
| 180 | 0:513646585e45 | Chris | |
| 181 | 22:40f7cfd4df19 | chris | # Destroy uses a get request to prompt the user before the actual DELETE request
|
| 182 | map.project_destroy_confirm 'projects/:id/destroy', :controller => 'projects', :action => 'destroy', :conditions => {:method => :get} |
||
| 183 | |||
| 184 | # TODO: port to be part of the resources route(s)
|
||
| 185 | map.with_options :controller => 'projects' do |project_mapper| |
||
| 186 | project_mapper.with_options :conditions => {:method => :get} do |project_views| |
||
| 187 | project_views.connect 'projects/:id/settings/:tab', :controller => 'projects', :action => 'settings' |
||
| 188 | project_views.connect 'projects/:project_id/issues/:copy_from/copy', :controller => 'issues', :action => 'new' |
||
| 189 | 0:513646585e45 | Chris | end
|
| 190 | end
|
||
| 191 | |||
| 192 | 22:40f7cfd4df19 | chris | map.with_options :controller => 'activities', :action => 'index', :conditions => {:method => :get} do |activity| |
| 193 | activity.connect 'projects/:id/activity'
|
||
| 194 | activity.connect 'projects/:id/activity.:format'
|
||
| 195 | activity.connect 'activity', :id => nil |
||
| 196 | activity.connect 'activity.:format', :id => nil |
||
| 197 | 0:513646585e45 | Chris | end
|
| 198 | 22:40f7cfd4df19 | chris | |
| 199 | |||
| 200 | 0:513646585e45 | Chris | map.with_options :controller => 'issue_categories' do |categories| |
| 201 | categories.connect 'projects/:project_id/issue_categories/new', :action => 'new' |
||
| 202 | end
|
||
| 203 | |||
| 204 | map.with_options :controller => 'repositories' do |repositories| |
||
| 205 | repositories.with_options :conditions => {:method => :get} do |repository_views| |
||
| 206 | repository_views.connect 'projects/:id/repository', :action => 'show' |
||
| 207 | repository_views.connect 'projects/:id/repository/edit', :action => 'edit' |
||
| 208 | repository_views.connect 'projects/:id/repository/statistics', :action => 'stats' |
||
| 209 | repository_views.connect 'projects/:id/repository/revisions', :action => 'revisions' |
||
| 210 | repository_views.connect 'projects/:id/repository/revisions.:format', :action => 'revisions' |
||
| 211 | repository_views.connect 'projects/:id/repository/revisions/:rev', :action => 'revision' |
||
| 212 | repository_views.connect 'projects/:id/repository/revisions/:rev/diff', :action => 'diff' |
||
| 213 | repository_views.connect 'projects/:id/repository/revisions/:rev/diff.:format', :action => 'diff' |
||
| 214 | repository_views.connect 'projects/:id/repository/revisions/:rev/raw/*path', :action => 'entry', :format => 'raw', :requirements => { :rev => /[a-z0-9\.\-_]+/ } |
||
| 215 | repository_views.connect 'projects/:id/repository/revisions/:rev/:action/*path', :requirements => { :rev => /[a-z0-9\.\-_]+/ } |
||
| 216 | repository_views.connect 'projects/:id/repository/raw/*path', :action => 'entry', :format => 'raw' |
||
| 217 | # TODO: why the following route is required?
|
||
| 218 | repository_views.connect 'projects/:id/repository/entry/*path', :action => 'entry' |
||
| 219 | repository_views.connect 'projects/:id/repository/:action/*path'
|
||
| 220 | end
|
||
| 221 | |||
| 222 | repositories.connect 'projects/:id/repository/:action', :conditions => {:method => :post} |
||
| 223 | end
|
||
| 224 | |||
| 225 | map.connect 'attachments/:id', :controller => 'attachments', :action => 'show', :id => /\d+/ |
||
| 226 | map.connect 'attachments/:id/:filename', :controller => 'attachments', :action => 'show', :id => /\d+/, :filename => /.*/ |
||
| 227 | map.connect 'attachments/download/:id/:filename', :controller => 'attachments', :action => 'download', :id => /\d+/, :filename => /.*/ |
||
| 228 | |||
| 229 | map.resources :groups
|
||
| 230 | |||
| 231 | #left old routes at the bottom for backwards compat
|
||
| 232 | 441:cbce1fd3b1b7 | Chris | map.connect 'projects/:project_id/queries/:action', :controller => 'queries' |
| 233 | 0:513646585e45 | Chris | map.connect 'projects/:project_id/issues/:action', :controller => 'issues' |
| 234 | map.connect 'projects/:project_id/documents/:action', :controller => 'documents' |
||
| 235 | map.connect 'projects/:project_id/boards/:action/:id', :controller => 'boards' |
||
| 236 | map.connect 'boards/:board_id/topics/:action/:id', :controller => 'messages' |
||
| 237 | map.connect 'wiki/:id/:page/:action', :page => nil, :controller => 'wiki' |
||
| 238 | map.connect 'issues/:issue_id/relations/:action/:id', :controller => 'issue_relations' |
||
| 239 | map.connect 'projects/:project_id/news/:action', :controller => 'news' |
||
| 240 | map.connect 'projects/:project_id/timelog/:action/:id', :controller => 'timelog', :project_id => /.+/ |
||
| 241 | map.with_options :controller => 'repositories' do |omap| |
||
| 242 | omap.repositories_show 'repositories/browse/:id/*path', :action => 'browse' |
||
| 243 | omap.repositories_changes 'repositories/changes/:id/*path', :action => 'changes' |
||
| 244 | omap.repositories_diff 'repositories/diff/:id/*path', :action => 'diff' |
||
| 245 | omap.repositories_entry 'repositories/entry/:id/*path', :action => 'entry' |
||
| 246 | omap.repositories_entry 'repositories/annotate/:id/*path', :action => 'annotate' |
||
| 247 | omap.connect 'repositories/revision/:id/:rev', :action => 'revision' |
||
| 248 | end
|
||
| 249 | |||
| 250 | map.with_options :controller => 'sys' do |sys| |
||
| 251 | sys.connect 'sys/projects.:format', :action => 'projects', :conditions => {:method => :get} |
||
| 252 | sys.connect 'sys/projects/:id/repository.:format', :action => 'create_project_repository', :conditions => {:method => :post} |
||
| 253 | 218:292cde42265a | chris | sys.connect 'sys/projects/:id/embedded.:format', :action => 'set_embedded_active', :conditions => { :method => :post } |
| 254 | 0:513646585e45 | Chris | end
|
| 255 | |||
| 256 | # Install the default route as the lowest priority.
|
||
| 257 | map.connect ':controller/:action/:id'
|
||
| 258 | map.connect 'robots.txt', :controller => 'welcome', :action => 'robots' |
||
| 259 | # Used for OpenID
|
||
| 260 | map.root :controller => 'account', :action => 'login' |
||
| 261 | end |