annotate config/.svn/text-base/routes.rb.svn-base @ 36:de76cd3e8c8e cc-branches

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