Mercurial > hg > soundsoftware-site
comparison .svn/pristine/ac/acfa71d8220cd97a490ff32c8179207841225f4e.svn-base @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
1 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 map.with_options :controller => 'time_entry_reports', :action => 'report',:conditions => {:method => :get} do |time_report| | |
18 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 time_report.connect 'time_entries/report' | |
23 time_report.connect 'time_entries/report.:format' | |
24 end | |
25 | |
26 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 # TODO: wasteful since this is also nested under issues, projects, and projects/issues | |
33 map.resources :time_entries, :controller => 'timelog' | |
34 | |
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 | |
79 map.resources :issue_moves, :only => [:new, :create], :path_prefix => '/issues', :as => 'move' | |
80 map.resources :queries, :except => [:show] | |
81 | |
82 # Misc issue routes. TODO: move into resources | |
83 map.auto_complete_issues '/issues/auto_complete', :controller => 'auto_completes', :action => 'issues', :conditions => { :method => :get } | |
84 map.preview_issue '/issues/preview/:id', :controller => 'previews', :action => 'issue' # TODO: would look nicer as /issues/:id/preview | |
85 map.issues_context_menu '/issues/context_menu', :controller => 'context_menus', :action => 'issues' | |
86 map.issue_changes '/issues/changes', :controller => 'journals', :action => 'index' | |
87 map.bulk_edit_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_edit', :conditions => { :method => :get } | |
88 map.bulk_update_issue 'issues/bulk_edit', :controller => 'issues', :action => 'bulk_update', :conditions => { :method => :post } | |
89 map.quoted_issue '/issues/:id/quoted', :controller => 'journals', :action => 'new', :id => /\d+/, :conditions => { :method => :post } | |
90 map.connect '/issues/:id/destroy', :controller => 'issues', :action => 'destroy', :conditions => { :method => :post } # legacy | |
91 | |
92 map.with_options :controller => 'gantts', :action => 'show' do |gantts_routes| | |
93 gantts_routes.connect '/projects/:project_id/issues/gantt' | |
94 gantts_routes.connect '/projects/:project_id/issues/gantt.:format' | |
95 gantts_routes.connect '/issues/gantt.:format' | |
96 end | |
97 | |
98 map.with_options :controller => 'calendars', :action => 'show' do |calendars_routes| | |
99 calendars_routes.connect '/projects/:project_id/issues/calendar' | |
100 calendars_routes.connect '/issues/calendar' | |
101 end | |
102 | |
103 map.with_options :controller => 'reports', :conditions => {:method => :get} do |reports| | |
104 reports.connect 'projects/:id/issues/report', :action => 'issue_report' | |
105 reports.connect 'projects/:id/issues/report/:detail', :action => 'issue_report_details' | |
106 end | |
107 | |
108 # Following two routes conflict with the resources because #index allows POST | |
109 map.connect '/issues', :controller => 'issues', :action => 'index', :conditions => { :method => :post } | |
110 map.connect '/issues/create', :controller => 'issues', :action => 'index', :conditions => { :method => :post } | |
111 | |
112 map.resources :issues, :member => { :edit => :post }, :collection => {} do |issues| | |
113 issues.resources :time_entries, :controller => 'timelog' | |
114 issues.resources :relations, :shallow => true, :controller => 'issue_relations', :only => [:index, :show, :create, :destroy] | |
115 end | |
116 | |
117 map.resources :issues, :path_prefix => '/projects/:project_id', :collection => { :create => :post } do |issues| | |
118 issues.resources :time_entries, :controller => 'timelog' | |
119 end | |
120 | |
121 map.connect 'projects/:id/members/new', :controller => 'members', :action => 'new' | |
122 | |
123 map.with_options :controller => 'users' do |users| | |
124 users.connect 'users/:id/edit/:tab', :action => 'edit', :tab => nil, :conditions => {:method => :get} | |
125 | |
126 users.with_options :conditions => {:method => :post} do |user_actions| | |
127 user_actions.connect 'users/:id/memberships', :action => 'edit_membership' | |
128 user_actions.connect 'users/:id/memberships/:membership_id', :action => 'edit_membership' | |
129 user_actions.connect 'users/:id/memberships/:membership_id/destroy', :action => 'destroy_membership' | |
130 end | |
131 end | |
132 | |
133 map.resources :users, :member => { | |
134 :edit_membership => :post, | |
135 :destroy_membership => :post | |
136 } | |
137 | |
138 # For nice "roadmap" in the url for the index action | |
139 map.connect 'projects/:project_id/roadmap', :controller => 'versions', :action => 'index' | |
140 | |
141 map.all_news 'news', :controller => 'news', :action => 'index' | |
142 map.formatted_all_news 'news.:format', :controller => 'news', :action => 'index' | |
143 map.preview_news '/news/preview', :controller => 'previews', :action => 'news' | |
144 map.connect 'news/:id/comments', :controller => 'comments', :action => 'create', :conditions => {:method => :post} | |
145 map.connect 'news/:id/comments/:comment_id', :controller => 'comments', :action => 'destroy', :conditions => {:method => :delete} | |
146 | |
147 map.resources :projects, :member => { | |
148 :copy => [:get, :post], | |
149 :settings => :get, | |
150 :modules => :post, | |
151 :archive => :post, | |
152 :unarchive => :post | |
153 } do |project| | |
154 project.resource :project_enumerations, :as => 'enumerations', :only => [:update, :destroy] | |
155 project.resources :files, :only => [:index, :new, :create] | |
156 project.resources :versions, :shallow => true, :collection => {:close_completed => :put}, :member => {:status_by => :post} | |
157 project.resources :news, :shallow => true | |
158 project.resources :time_entries, :controller => 'timelog', :path_prefix => 'projects/:project_id' | |
159 project.resources :queries, :only => [:new, :create] | |
160 project.resources :issue_categories, :shallow => true | |
161 | |
162 project.wiki_start_page 'wiki', :controller => 'wiki', :action => 'show', :conditions => {:method => :get} | |
163 project.wiki_index 'wiki/index', :controller => 'wiki', :action => 'index', :conditions => {:method => :get} | |
164 project.wiki_diff 'wiki/:id/diff/:version', :controller => 'wiki', :action => 'diff', :version => nil | |
165 project.wiki_diff 'wiki/:id/diff/:version/vs/:version_from', :controller => 'wiki', :action => 'diff' | |
166 project.wiki_annotate 'wiki/:id/annotate/:version', :controller => 'wiki', :action => 'annotate' | |
167 project.resources :wiki, :except => [:new, :create], :member => { | |
168 :rename => [:get, :post], | |
169 :history => :get, | |
170 :preview => :any, | |
171 :protect => :post, | |
172 :add_attachment => :post | |
173 }, :collection => { | |
174 :export => :get, | |
175 :date_index => :get | |
176 } | |
177 | |
178 end | |
179 | |
180 # Destroy uses a get request to prompt the user before the actual DELETE request | |
181 map.project_destroy_confirm 'projects/:id/destroy', :controller => 'projects', :action => 'destroy', :conditions => {:method => :get} | |
182 | |
183 # TODO: port to be part of the resources route(s) | |
184 map.with_options :controller => 'projects' do |project_mapper| | |
185 project_mapper.with_options :conditions => {:method => :get} do |project_views| | |
186 project_views.connect 'projects/:id/settings/:tab', :controller => 'projects', :action => 'settings' | |
187 project_views.connect 'projects/:project_id/issues/:copy_from/copy', :controller => 'issues', :action => 'new' | |
188 end | |
189 end | |
190 | |
191 map.with_options :controller => 'activities', :action => 'index', :conditions => {:method => :get} do |activity| | |
192 activity.connect 'projects/:id/activity' | |
193 activity.connect 'projects/:id/activity.:format' | |
194 activity.connect 'activity', :id => nil | |
195 activity.connect 'activity.:format', :id => nil | |
196 end | |
197 | |
198 map.with_options :controller => 'repositories' do |repositories| | |
199 repositories.with_options :conditions => {:method => :get} do |repository_views| | |
200 repository_views.connect 'projects/:id/repository', :action => 'show' | |
201 repository_views.connect 'projects/:id/repository/edit', :action => 'edit' | |
202 repository_views.connect 'projects/:id/repository/statistics', :action => 'stats' | |
203 repository_views.connect 'projects/:id/repository/revisions', :action => 'revisions' | |
204 repository_views.connect 'projects/:id/repository/revisions.:format', :action => 'revisions' | |
205 repository_views.connect 'projects/:id/repository/revisions/:rev', :action => 'revision' | |
206 repository_views.connect 'projects/:id/repository/revisions/:rev/diff', :action => 'diff' | |
207 repository_views.connect 'projects/:id/repository/revisions/:rev/diff.:format', :action => 'diff' | |
208 repository_views.connect 'projects/:id/repository/revisions/:rev/raw/*path', :action => 'entry', :format => 'raw', :requirements => { :rev => /[a-z0-9\.\-_]+/ } | |
209 repository_views.connect 'projects/:id/repository/revisions/:rev/:action/*path', :requirements => { :rev => /[a-z0-9\.\-_]+/ } | |
210 repository_views.connect 'projects/:id/repository/raw/*path', :action => 'entry', :format => 'raw' | |
211 # TODO: why the following route is required? | |
212 repository_views.connect 'projects/:id/repository/entry/*path', :action => 'entry' | |
213 repository_views.connect 'projects/:id/repository/:action/*path' | |
214 end | |
215 | |
216 repositories.connect 'projects/:id/repository/:action', :conditions => {:method => :post} | |
217 end | |
218 | |
219 map.resources :attachments, :only => [:show, :destroy] | |
220 # additional routes for having the file name at the end of url | |
221 map.connect 'attachments/:id/:filename', :controller => 'attachments', :action => 'show', :id => /\d+/, :filename => /.*/ | |
222 map.connect 'attachments/download/:id/:filename', :controller => 'attachments', :action => 'download', :id => /\d+/, :filename => /.*/ | |
223 | |
224 map.resources :groups, :member => {:autocomplete_for_user => :get} | |
225 map.group_users 'groups/:id/users', :controller => 'groups', :action => 'add_users', :id => /\d+/, :conditions => {:method => :post} | |
226 map.group_user 'groups/:id/users/:user_id', :controller => 'groups', :action => 'remove_user', :id => /\d+/, :conditions => {:method => :delete} | |
227 | |
228 map.resources :trackers, :except => :show | |
229 map.resources :issue_statuses, :except => :show, :collection => {:update_issue_done_ratio => :post} | |
230 | |
231 #left old routes at the bottom for backwards compat | |
232 map.connect 'projects/:project_id/issues/:action', :controller => 'issues' | |
233 map.connect 'projects/:project_id/documents/:action', :controller => 'documents' | |
234 map.connect 'projects/:project_id/boards/:action/:id', :controller => 'boards' | |
235 map.connect 'boards/:board_id/topics/:action/:id', :controller => 'messages' | |
236 map.connect 'wiki/:id/:page/:action', :page => nil, :controller => 'wiki' | |
237 map.connect 'projects/:project_id/news/:action', :controller => 'news' | |
238 map.connect 'projects/:project_id/timelog/:action/:id', :controller => 'timelog', :project_id => /.+/ | |
239 map.with_options :controller => 'repositories' do |omap| | |
240 omap.repositories_show 'repositories/browse/:id/*path', :action => 'browse' | |
241 omap.repositories_changes 'repositories/changes/:id/*path', :action => 'changes' | |
242 omap.repositories_diff 'repositories/diff/:id/*path', :action => 'diff' | |
243 omap.repositories_entry 'repositories/entry/:id/*path', :action => 'entry' | |
244 omap.repositories_entry 'repositories/annotate/:id/*path', :action => 'annotate' | |
245 omap.connect 'repositories/revision/:id/:rev', :action => 'revision' | |
246 end | |
247 | |
248 map.with_options :controller => 'sys' do |sys| | |
249 sys.connect 'sys/projects.:format', :action => 'projects', :conditions => {:method => :get} | |
250 sys.connect 'sys/projects/:id/repository.:format', :action => 'create_project_repository', :conditions => {:method => :post} | |
251 end | |
252 | |
253 # Install the default route as the lowest priority. | |
254 map.connect ':controller/:action/:id' | |
255 map.connect 'robots.txt', :controller => 'welcome', :action => 'robots' | |
256 # Used for OpenID | |
257 map.root :controller => 'account', :action => 'login' | |
258 end |