##// END OF EJS Templates
Routes cleanup....
Jean-Philippe Lang -
r10751:cf66561b1ef5
parent child
Show More
@@ -1,346 +1,341
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2012 Jean-Philippe Lang
2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 RedmineApp::Application.routes.draw do
18 RedmineApp::Application.routes.draw do
19 root :to => 'welcome#index', :as => 'home'
19 root :to => 'welcome#index', :as => 'home'
20
20
21 match 'login', :to => 'account#login', :as => 'signin', :via => [:get, :post]
21 match 'login', :to => 'account#login', :as => 'signin', :via => [:get, :post]
22 match 'logout', :to => 'account#logout', :as => 'signout', :via => [:get, :post]
22 match 'logout', :to => 'account#logout', :as => 'signout', :via => [:get, :post]
23 match 'account/register', :to => 'account#register', :via => [:get, :post], :as => 'register'
23 match 'account/register', :to => 'account#register', :via => [:get, :post], :as => 'register'
24 match 'account/lost_password', :to => 'account#lost_password', :via => [:get, :post], :as => 'lost_password'
24 match 'account/lost_password', :to => 'account#lost_password', :via => [:get, :post], :as => 'lost_password'
25 match 'account/activate', :to => 'account#activate', :via => :get
25 match 'account/activate', :to => 'account#activate', :via => :get
26
26
27 match '/news/preview', :controller => 'previews', :action => 'news', :as => 'preview_news', :via => [:get, :post]
27 match '/news/preview', :controller => 'previews', :action => 'news', :as => 'preview_news', :via => [:get, :post]
28 match '/issues/preview/new/:project_id', :to => 'previews#issue', :as => 'preview_new_issue', :via => [:get, :post]
28 match '/issues/preview/new/:project_id', :to => 'previews#issue', :as => 'preview_new_issue', :via => [:get, :post]
29 match '/issues/preview/edit/:id', :to => 'previews#issue', :as => 'preview_edit_issue', :via => [:get, :post]
29 match '/issues/preview/edit/:id', :to => 'previews#issue', :as => 'preview_edit_issue', :via => [:get, :post]
30 match '/issues/preview', :to => 'previews#issue', :as => 'preview_issue', :via => [:get, :post]
30 match '/issues/preview', :to => 'previews#issue', :as => 'preview_issue', :via => [:get, :post]
31
31
32 match 'projects/:id/wiki', :to => 'wikis#edit', :via => :post
32 match 'projects/:id/wiki', :to => 'wikis#edit', :via => :post
33 match 'projects/:id/wiki/destroy', :to => 'wikis#destroy', :via => [:get, :post]
33 match 'projects/:id/wiki/destroy', :to => 'wikis#destroy', :via => [:get, :post]
34
34
35 match 'boards/:board_id/topics/new', :to => 'messages#new', :via => [:get, :post]
35 match 'boards/:board_id/topics/new', :to => 'messages#new', :via => [:get, :post]
36 get 'boards/:board_id/topics/:id', :to => 'messages#show', :as => 'board_message'
36 get 'boards/:board_id/topics/:id', :to => 'messages#show', :as => 'board_message'
37 match 'boards/:board_id/topics/quote/:id', :to => 'messages#quote', :via => [:get, :post]
37 match 'boards/:board_id/topics/quote/:id', :to => 'messages#quote', :via => [:get, :post]
38 get 'boards/:board_id/topics/:id/edit', :to => 'messages#edit'
38 get 'boards/:board_id/topics/:id/edit', :to => 'messages#edit'
39
39
40 post 'boards/:board_id/topics/preview', :to => 'messages#preview'
40 post 'boards/:board_id/topics/preview', :to => 'messages#preview'
41 post 'boards/:board_id/topics/:id/replies', :to => 'messages#reply'
41 post 'boards/:board_id/topics/:id/replies', :to => 'messages#reply'
42 post 'boards/:board_id/topics/:id/edit', :to => 'messages#edit'
42 post 'boards/:board_id/topics/:id/edit', :to => 'messages#edit'
43 post 'boards/:board_id/topics/:id/destroy', :to => 'messages#destroy'
43 post 'boards/:board_id/topics/:id/destroy', :to => 'messages#destroy'
44
44
45 # Misc issue routes. TODO: move into resources
45 # Misc issue routes. TODO: move into resources
46 match '/issues/auto_complete', :to => 'auto_completes#issues', :via => :get, :as => 'auto_complete_issues'
46 match '/issues/auto_complete', :to => 'auto_completes#issues', :via => :get, :as => 'auto_complete_issues'
47 match '/issues/context_menu', :to => 'context_menus#issues', :as => 'issues_context_menu', :via => [:get, :post]
47 match '/issues/context_menu', :to => 'context_menus#issues', :as => 'issues_context_menu', :via => [:get, :post]
48 match '/issues/changes', :to => 'journals#index', :as => 'issue_changes', :via => :get
48 match '/issues/changes', :to => 'journals#index', :as => 'issue_changes', :via => :get
49 match '/issues/:id/quoted', :to => 'journals#new', :id => /\d+/, :via => :post, :as => 'quoted_issue'
49 match '/issues/:id/quoted', :to => 'journals#new', :id => /\d+/, :via => :post, :as => 'quoted_issue'
50
50
51 match '/journals/diff/:id', :to => 'journals#diff', :id => /\d+/, :via => :get
51 match '/journals/diff/:id', :to => 'journals#diff', :id => /\d+/, :via => :get
52 match '/journals/edit/:id', :to => 'journals#edit', :id => /\d+/, :via => [:get, :post]
52 match '/journals/edit/:id', :to => 'journals#edit', :id => /\d+/, :via => [:get, :post]
53
53
54 get '/projects/:project_id/issues/gantt', :to => 'gantts#show'
54 get '/projects/:project_id/issues/gantt', :to => 'gantts#show'
55 get '/issues/gantt', :to => 'gantts#show'
55 get '/issues/gantt', :to => 'gantts#show'
56
56
57 get '/projects/:project_id/issues/calendar', :to => 'calendars#show'
57 get '/projects/:project_id/issues/calendar', :to => 'calendars#show'
58 get '/issues/calendar', :to => 'calendars#show'
58 get '/issues/calendar', :to => 'calendars#show'
59
59
60 match 'projects/:id/issues/report', :to => 'reports#issue_report', :via => :get
60 match 'projects/:id/issues/report', :to => 'reports#issue_report', :via => :get
61 match 'projects/:id/issues/report/:detail', :to => 'reports#issue_report_details', :via => :get
61 match 'projects/:id/issues/report/:detail', :to => 'reports#issue_report_details', :via => :get
62
62
63 match 'my/account', :controller => 'my', :action => 'account', :via => [:get, :post]
63 match 'my/account', :controller => 'my', :action => 'account', :via => [:get, :post]
64 match 'my/account/destroy', :controller => 'my', :action => 'destroy', :via => [:get, :post]
64 match 'my/account/destroy', :controller => 'my', :action => 'destroy', :via => [:get, :post]
65 match 'my/page', :controller => 'my', :action => 'page', :via => :get
65 match 'my/page', :controller => 'my', :action => 'page', :via => :get
66 match 'my', :controller => 'my', :action => 'index', :via => :get # Redirects to my/page
66 match 'my', :controller => 'my', :action => 'index', :via => :get # Redirects to my/page
67 match 'my/reset_rss_key', :controller => 'my', :action => 'reset_rss_key', :via => :post
67 match 'my/reset_rss_key', :controller => 'my', :action => 'reset_rss_key', :via => :post
68 match 'my/reset_api_key', :controller => 'my', :action => 'reset_api_key', :via => :post
68 match 'my/reset_api_key', :controller => 'my', :action => 'reset_api_key', :via => :post
69 match 'my/password', :controller => 'my', :action => 'password', :via => [:get, :post]
69 match 'my/password', :controller => 'my', :action => 'password', :via => [:get, :post]
70 match 'my/page_layout', :controller => 'my', :action => 'page_layout', :via => :get
70 match 'my/page_layout', :controller => 'my', :action => 'page_layout', :via => :get
71 match 'my/add_block', :controller => 'my', :action => 'add_block', :via => :post
71 match 'my/add_block', :controller => 'my', :action => 'add_block', :via => :post
72 match 'my/remove_block', :controller => 'my', :action => 'remove_block', :via => :post
72 match 'my/remove_block', :controller => 'my', :action => 'remove_block', :via => :post
73 match 'my/order_blocks', :controller => 'my', :action => 'order_blocks', :via => :post
73 match 'my/order_blocks', :controller => 'my', :action => 'order_blocks', :via => :post
74
74
75 resources :users
75 resources :users
76 match 'users/:id/memberships/:membership_id', :to => 'users#edit_membership', :via => :put, :as => 'user_membership'
76 match 'users/:id/memberships/:membership_id', :to => 'users#edit_membership', :via => :put, :as => 'user_membership'
77 match 'users/:id/memberships/:membership_id', :to => 'users#destroy_membership', :via => :delete
77 match 'users/:id/memberships/:membership_id', :to => 'users#destroy_membership', :via => :delete
78 match 'users/:id/memberships', :to => 'users#edit_membership', :via => :post, :as => 'user_memberships'
78 match 'users/:id/memberships', :to => 'users#edit_membership', :via => :post, :as => 'user_memberships'
79
79
80 match 'watchers/new', :controller=> 'watchers', :action => 'new', :via => :get
80 match 'watchers/new', :controller=> 'watchers', :action => 'new', :via => :get
81 match 'watchers', :controller=> 'watchers', :action => 'create', :via => :post
81 match 'watchers', :controller=> 'watchers', :action => 'create', :via => :post
82 match 'watchers/append', :controller=> 'watchers', :action => 'append', :via => :post
82 match 'watchers/append', :controller=> 'watchers', :action => 'append', :via => :post
83 match 'watchers/destroy', :controller=> 'watchers', :action => 'destroy', :via => :post
83 match 'watchers/destroy', :controller=> 'watchers', :action => 'destroy', :via => :post
84 match 'watchers/watch', :controller=> 'watchers', :action => 'watch', :via => :post
84 match 'watchers/watch', :controller=> 'watchers', :action => 'watch', :via => :post
85 match 'watchers/unwatch', :controller=> 'watchers', :action => 'unwatch', :via => :post
85 match 'watchers/unwatch', :controller=> 'watchers', :action => 'unwatch', :via => :post
86 match 'watchers/autocomplete_for_user', :controller=> 'watchers', :action => 'autocomplete_for_user', :via => :get
86 match 'watchers/autocomplete_for_user', :controller=> 'watchers', :action => 'autocomplete_for_user', :via => :get
87
87
88 get 'projects/:id/settings/:tab', :to => "projects#settings"
89
90 resources :projects do
88 resources :projects do
91 member do
89 member do
92 get 'settings'
90 get 'settings(/:tab)', :action => 'settings', :as => 'settings'
93 post 'modules'
91 post 'modules'
94 post 'archive'
92 post 'archive'
95 post 'unarchive'
93 post 'unarchive'
96 post 'close'
94 post 'close'
97 post 'reopen'
95 post 'reopen'
98 match 'copy', :via => [:get, :post]
96 match 'copy', :via => [:get, :post]
99 end
97 end
100
98
101 resources :memberships, :shallow => true, :controller => 'members', :only => [:index, :show, :new, :create, :update, :destroy] do
99 resources :memberships, :shallow => true, :controller => 'members', :only => [:index, :show, :new, :create, :update, :destroy] do
102 collection do
100 collection do
103 get 'autocomplete'
101 get 'autocomplete'
104 end
102 end
105 end
103 end
106
104
107 resource :enumerations, :controller => 'project_enumerations', :only => [:update, :destroy]
105 resource :enumerations, :controller => 'project_enumerations', :only => [:update, :destroy]
108
106
109 get 'issues/:copy_from/copy', :to => 'issues#new'
107 get 'issues/:copy_from/copy', :to => 'issues#new'
110 resources :issues, :only => [:index, :new, :create] do
108 resources :issues, :only => [:index, :new, :create] do
111 resources :time_entries, :controller => 'timelog' do
109 resources :time_entries, :controller => 'timelog' do
112 collection do
110 collection do
113 get 'report'
111 get 'report'
114 end
112 end
115 end
113 end
116 end
114 end
117 # issue form update
115 # issue form update
118 match 'issues/new', :controller => 'issues', :action => 'new', :via => [:put, :post], :as => 'issue_form'
116 match 'issues/new', :controller => 'issues', :action => 'new', :via => [:put, :post], :as => 'issue_form'
119
117
120 resources :files, :only => [:index, :new, :create]
118 resources :files, :only => [:index, :new, :create]
121
119
122 resources :versions, :except => [:index, :show, :edit, :update, :destroy] do
120 resources :versions, :except => [:index, :show, :edit, :update, :destroy] do
123 collection do
121 collection do
124 put 'close_completed'
122 put 'close_completed'
125 end
123 end
126 end
124 end
127 get 'versions.:format', :to => 'versions#index'
125 get 'versions.:format', :to => 'versions#index'
128 get 'roadmap', :to => 'versions#index', :format => false
126 get 'roadmap', :to => 'versions#index', :format => false
129 get 'versions', :to => 'versions#index'
127 get 'versions', :to => 'versions#index'
130
128
131 resources :news, :except => [:show, :edit, :update, :destroy]
129 resources :news, :except => [:show, :edit, :update, :destroy]
132 resources :time_entries, :controller => 'timelog' do
130 resources :time_entries, :controller => 'timelog' do
133 get 'report', :on => :collection
131 get 'report', :on => :collection
134 end
132 end
135 resources :queries, :only => [:new, :create]
133 resources :queries, :only => [:new, :create]
136 resources :issue_categories, :shallow => true
134 resources :issue_categories, :shallow => true
137 resources :documents, :except => [:show, :edit, :update, :destroy]
135 resources :documents, :except => [:show, :edit, :update, :destroy]
138 resources :boards
136 resources :boards
139 resources :repositories, :shallow => true, :except => [:index, :show] do
137 resources :repositories, :shallow => true, :except => [:index, :show] do
140 member do
138 member do
141 match 'committers', :via => [:get, :post]
139 match 'committers', :via => [:get, :post]
142 end
140 end
143 end
141 end
144
142
145 match 'wiki/index', :controller => 'wiki', :action => 'index', :via => :get
143 match 'wiki/index', :controller => 'wiki', :action => 'index', :via => :get
146 resources :wiki, :except => [:index, :new, :create] do
144 resources :wiki, :except => [:index, :new, :create] do
147 member do
145 member do
148 get 'rename'
146 get 'rename'
149 post 'rename'
147 post 'rename'
150 get 'history'
148 get 'history'
151 get 'diff'
149 get 'diff'
152 match 'preview', :via => [:post, :put]
150 match 'preview', :via => [:post, :put]
153 post 'protect'
151 post 'protect'
154 post 'add_attachment'
152 post 'add_attachment'
155 end
153 end
156 collection do
154 collection do
157 get 'export'
155 get 'export'
158 get 'date_index'
156 get 'date_index'
159 end
157 end
160 end
158 end
161 match 'wiki', :controller => 'wiki', :action => 'show', :via => :get
159 match 'wiki', :controller => 'wiki', :action => 'show', :via => :get
162 get 'wiki/:id/:version', :to => 'wiki#show'
160 get 'wiki/:id/:version', :to => 'wiki#show'
163 delete 'wiki/:id/:version', :to => 'wiki#destroy_version'
161 delete 'wiki/:id/:version', :to => 'wiki#destroy_version'
164 get 'wiki/:id/:version/annotate', :to => 'wiki#annotate'
162 get 'wiki/:id/:version/annotate', :to => 'wiki#annotate'
165 get 'wiki/:id/:version/diff', :to => 'wiki#diff'
163 get 'wiki/:id/:version/diff', :to => 'wiki#diff'
166 end
164 end
167
165
168 resources :issues do
166 resources :issues do
169 collection do
167 collection do
170 match 'bulk_edit', :via => [:get, :post]
168 match 'bulk_edit', :via => [:get, :post]
171 post 'bulk_update'
169 post 'bulk_update'
172 end
170 end
173 resources :time_entries, :controller => 'timelog' do
171 resources :time_entries, :controller => 'timelog' do
174 collection do
172 collection do
175 get 'report'
173 get 'report'
176 end
174 end
177 end
175 end
178 resources :relations, :shallow => true, :controller => 'issue_relations', :only => [:index, :show, :create, :destroy]
176 resources :relations, :shallow => true, :controller => 'issue_relations', :only => [:index, :show, :create, :destroy]
179 end
177 end
180 match '/issues', :controller => 'issues', :action => 'destroy', :via => :delete
178 match '/issues', :controller => 'issues', :action => 'destroy', :via => :delete
181
179
182 resources :queries, :except => [:show]
180 resources :queries, :except => [:show]
183
181
184 resources :news, :only => [:index, :show, :edit, :update, :destroy]
182 resources :news, :only => [:index, :show, :edit, :update, :destroy]
185 match '/news/:id/comments', :to => 'comments#create', :via => :post
183 match '/news/:id/comments', :to => 'comments#create', :via => :post
186 match '/news/:id/comments/:comment_id', :to => 'comments#destroy', :via => :delete
184 match '/news/:id/comments/:comment_id', :to => 'comments#destroy', :via => :delete
187
185
188 resources :versions, :only => [:show, :edit, :update, :destroy] do
186 resources :versions, :only => [:show, :edit, :update, :destroy] do
189 post 'status_by', :on => :member
187 post 'status_by', :on => :member
190 end
188 end
191
189
192 resources :documents, :only => [:show, :edit, :update, :destroy] do
190 resources :documents, :only => [:show, :edit, :update, :destroy] do
193 post 'add_attachment', :on => :member
191 post 'add_attachment', :on => :member
194 end
192 end
195
193
196 match '/time_entries/context_menu', :to => 'context_menus#time_entries', :as => :time_entries_context_menu, :via => [:get, :post]
194 match '/time_entries/context_menu', :to => 'context_menus#time_entries', :as => :time_entries_context_menu, :via => [:get, :post]
197
195
198 resources :time_entries, :controller => 'timelog', :except => :destroy do
196 resources :time_entries, :controller => 'timelog', :except => :destroy do
199 collection do
197 collection do
200 get 'report'
198 get 'report'
201 get 'bulk_edit'
199 get 'bulk_edit'
202 post 'bulk_update'
200 post 'bulk_update'
203 end
201 end
204 end
202 end
205 match '/time_entries/:id', :to => 'timelog#destroy', :via => :delete, :id => /\d+/
203 match '/time_entries/:id', :to => 'timelog#destroy', :via => :delete, :id => /\d+/
206 # TODO: delete /time_entries for bulk deletion
204 # TODO: delete /time_entries for bulk deletion
207 match '/time_entries/destroy', :to => 'timelog#destroy', :via => :delete
205 match '/time_entries/destroy', :to => 'timelog#destroy', :via => :delete
208
206
209 # TODO: port to be part of the resources route(s)
210 match 'projects/:id/settings/:tab', :to => 'projects#settings', :via => :get
211
212 get 'projects/:id/activity', :to => 'activities#index'
207 get 'projects/:id/activity', :to => 'activities#index'
213 get 'projects/:id/activity.:format', :to => 'activities#index'
208 get 'projects/:id/activity.:format', :to => 'activities#index'
214 get 'activity', :to => 'activities#index'
209 get 'activity', :to => 'activities#index'
215
210
216 # repositories routes
211 # repositories routes
217 get 'projects/:id/repository/:repository_id/statistics', :to => 'repositories#stats'
212 get 'projects/:id/repository/:repository_id/statistics', :to => 'repositories#stats'
218 get 'projects/:id/repository/:repository_id/graph', :to => 'repositories#graph'
213 get 'projects/:id/repository/:repository_id/graph', :to => 'repositories#graph'
219
214
220 get 'projects/:id/repository/:repository_id/changes(/*path(.:ext))',
215 get 'projects/:id/repository/:repository_id/changes(/*path(.:ext))',
221 :to => 'repositories#changes'
216 :to => 'repositories#changes'
222
217
223 get 'projects/:id/repository/:repository_id/revisions/:rev', :to => 'repositories#revision'
218 get 'projects/:id/repository/:repository_id/revisions/:rev', :to => 'repositories#revision'
224 get 'projects/:id/repository/:repository_id/revision', :to => 'repositories#revision'
219 get 'projects/:id/repository/:repository_id/revision', :to => 'repositories#revision'
225 post 'projects/:id/repository/:repository_id/revisions/:rev/issues', :to => 'repositories#add_related_issue'
220 post 'projects/:id/repository/:repository_id/revisions/:rev/issues', :to => 'repositories#add_related_issue'
226 delete 'projects/:id/repository/:repository_id/revisions/:rev/issues/:issue_id', :to => 'repositories#remove_related_issue'
221 delete 'projects/:id/repository/:repository_id/revisions/:rev/issues/:issue_id', :to => 'repositories#remove_related_issue'
227 get 'projects/:id/repository/:repository_id/revisions', :to => 'repositories#revisions'
222 get 'projects/:id/repository/:repository_id/revisions', :to => 'repositories#revisions'
228 get 'projects/:id/repository/:repository_id/revisions/:rev/:action(/*path(.:ext))',
223 get 'projects/:id/repository/:repository_id/revisions/:rev/:action(/*path(.:ext))',
229 :controller => 'repositories',
224 :controller => 'repositories',
230 :format => false,
225 :format => false,
231 :constraints => {
226 :constraints => {
232 :action => /(browse|show|entry|raw|annotate|diff)/,
227 :action => /(browse|show|entry|raw|annotate|diff)/,
233 :rev => /[a-z0-9\.\-_]+/
228 :rev => /[a-z0-9\.\-_]+/
234 }
229 }
235
230
236 get 'projects/:id/repository/statistics', :to => 'repositories#stats'
231 get 'projects/:id/repository/statistics', :to => 'repositories#stats'
237 get 'projects/:id/repository/graph', :to => 'repositories#graph'
232 get 'projects/:id/repository/graph', :to => 'repositories#graph'
238
233
239 get 'projects/:id/repository/changes(/*path(.:ext))',
234 get 'projects/:id/repository/changes(/*path(.:ext))',
240 :to => 'repositories#changes'
235 :to => 'repositories#changes'
241
236
242 get 'projects/:id/repository/revisions', :to => 'repositories#revisions'
237 get 'projects/:id/repository/revisions', :to => 'repositories#revisions'
243 get 'projects/:id/repository/revisions/:rev', :to => 'repositories#revision'
238 get 'projects/:id/repository/revisions/:rev', :to => 'repositories#revision'
244 get 'projects/:id/repository/revision', :to => 'repositories#revision'
239 get 'projects/:id/repository/revision', :to => 'repositories#revision'
245 post 'projects/:id/repository/revisions/:rev/issues', :to => 'repositories#add_related_issue'
240 post 'projects/:id/repository/revisions/:rev/issues', :to => 'repositories#add_related_issue'
246 delete 'projects/:id/repository/revisions/:rev/issues/:issue_id', :to => 'repositories#remove_related_issue'
241 delete 'projects/:id/repository/revisions/:rev/issues/:issue_id', :to => 'repositories#remove_related_issue'
247 get 'projects/:id/repository/revisions/:rev/:action(/*path(.:ext))',
242 get 'projects/:id/repository/revisions/:rev/:action(/*path(.:ext))',
248 :controller => 'repositories',
243 :controller => 'repositories',
249 :format => false,
244 :format => false,
250 :constraints => {
245 :constraints => {
251 :action => /(browse|show|entry|raw|annotate|diff)/,
246 :action => /(browse|show|entry|raw|annotate|diff)/,
252 :rev => /[a-z0-9\.\-_]+/
247 :rev => /[a-z0-9\.\-_]+/
253 }
248 }
254 get 'projects/:id/repository/:repository_id/:action(/*path(.:ext))',
249 get 'projects/:id/repository/:repository_id/:action(/*path(.:ext))',
255 :controller => 'repositories',
250 :controller => 'repositories',
256 :action => /(browse|show|entry|raw|changes|annotate|diff)/
251 :action => /(browse|show|entry|raw|changes|annotate|diff)/
257 get 'projects/:id/repository/:action(/*path(.:ext))',
252 get 'projects/:id/repository/:action(/*path(.:ext))',
258 :controller => 'repositories',
253 :controller => 'repositories',
259 :action => /(browse|show|entry|raw|changes|annotate|diff)/
254 :action => /(browse|show|entry|raw|changes|annotate|diff)/
260
255
261 get 'projects/:id/repository/:repository_id', :to => 'repositories#show', :path => nil
256 get 'projects/:id/repository/:repository_id', :to => 'repositories#show', :path => nil
262 get 'projects/:id/repository', :to => 'repositories#show', :path => nil
257 get 'projects/:id/repository', :to => 'repositories#show', :path => nil
263
258
264 # additional routes for having the file name at the end of url
259 # additional routes for having the file name at the end of url
265 match 'attachments/:id/:filename', :controller => 'attachments', :action => 'show', :id => /\d+/, :filename => /.*/, :via => :get
260 match 'attachments/:id/:filename', :controller => 'attachments', :action => 'show', :id => /\d+/, :filename => /.*/, :via => :get
266 match 'attachments/download/:id/:filename', :controller => 'attachments', :action => 'download', :id => /\d+/, :filename => /.*/, :via => :get
261 match 'attachments/download/:id/:filename', :controller => 'attachments', :action => 'download', :id => /\d+/, :filename => /.*/, :via => :get
267 match 'attachments/download/:id', :controller => 'attachments', :action => 'download', :id => /\d+/, :via => :get
262 match 'attachments/download/:id', :controller => 'attachments', :action => 'download', :id => /\d+/, :via => :get
268 match 'attachments/thumbnail/:id(/:size)', :controller => 'attachments', :action => 'thumbnail', :id => /\d+/, :via => :get, :size => /\d+/
263 match 'attachments/thumbnail/:id(/:size)', :controller => 'attachments', :action => 'thumbnail', :id => /\d+/, :via => :get, :size => /\d+/
269 resources :attachments, :only => [:show, :destroy]
264 resources :attachments, :only => [:show, :destroy]
270
265
271 resources :groups do
266 resources :groups do
272 member do
267 member do
273 get 'autocomplete_for_user'
268 get 'autocomplete_for_user'
274 end
269 end
275 end
270 end
276
271
277 match 'groups/:id/users', :controller => 'groups', :action => 'add_users', :id => /\d+/, :via => :post, :as => 'group_users'
272 match 'groups/:id/users', :controller => 'groups', :action => 'add_users', :id => /\d+/, :via => :post, :as => 'group_users'
278 match 'groups/:id/users/:user_id', :controller => 'groups', :action => 'remove_user', :id => /\d+/, :via => :delete, :as => 'group_user'
273 match 'groups/:id/users/:user_id', :controller => 'groups', :action => 'remove_user', :id => /\d+/, :via => :delete, :as => 'group_user'
279 match 'groups/destroy_membership/:id', :controller => 'groups', :action => 'destroy_membership', :id => /\d+/, :via => :post
274 match 'groups/destroy_membership/:id', :controller => 'groups', :action => 'destroy_membership', :id => /\d+/, :via => :post
280 match 'groups/edit_membership/:id', :controller => 'groups', :action => 'edit_membership', :id => /\d+/, :via => :post
275 match 'groups/edit_membership/:id', :controller => 'groups', :action => 'edit_membership', :id => /\d+/, :via => :post
281
276
282 resources :trackers, :except => :show do
277 resources :trackers, :except => :show do
283 collection do
278 collection do
284 match 'fields', :via => [:get, :post]
279 match 'fields', :via => [:get, :post]
285 end
280 end
286 end
281 end
287 resources :issue_statuses, :except => :show do
282 resources :issue_statuses, :except => :show do
288 collection do
283 collection do
289 post 'update_issue_done_ratio'
284 post 'update_issue_done_ratio'
290 end
285 end
291 end
286 end
292 resources :custom_fields, :except => :show
287 resources :custom_fields, :except => :show
293 resources :roles do
288 resources :roles do
294 collection do
289 collection do
295 match 'permissions', :via => [:get, :post]
290 match 'permissions', :via => [:get, :post]
296 end
291 end
297 end
292 end
298 resources :enumerations, :except => :show
293 resources :enumerations, :except => :show
299 match 'enumerations/:type', :to => 'enumerations#index', :via => :get
294 match 'enumerations/:type', :to => 'enumerations#index', :via => :get
300
295
301 get 'projects/:id/search', :controller => 'search', :action => 'index'
296 get 'projects/:id/search', :controller => 'search', :action => 'index'
302 get 'search', :controller => 'search', :action => 'index'
297 get 'search', :controller => 'search', :action => 'index'
303
298
304 match 'mail_handler', :controller => 'mail_handler', :action => 'index', :via => :post
299 match 'mail_handler', :controller => 'mail_handler', :action => 'index', :via => :post
305
300
306 match 'admin', :controller => 'admin', :action => 'index', :via => :get
301 match 'admin', :controller => 'admin', :action => 'index', :via => :get
307 match 'admin/projects', :controller => 'admin', :action => 'projects', :via => :get
302 match 'admin/projects', :controller => 'admin', :action => 'projects', :via => :get
308 match 'admin/plugins', :controller => 'admin', :action => 'plugins', :via => :get
303 match 'admin/plugins', :controller => 'admin', :action => 'plugins', :via => :get
309 match 'admin/info', :controller => 'admin', :action => 'info', :via => :get
304 match 'admin/info', :controller => 'admin', :action => 'info', :via => :get
310 match 'admin/test_email', :controller => 'admin', :action => 'test_email', :via => :get
305 match 'admin/test_email', :controller => 'admin', :action => 'test_email', :via => :get
311 match 'admin/default_configuration', :controller => 'admin', :action => 'default_configuration', :via => :post
306 match 'admin/default_configuration', :controller => 'admin', :action => 'default_configuration', :via => :post
312
307
313 resources :auth_sources do
308 resources :auth_sources do
314 member do
309 member do
315 get 'test_connection', :as => 'try_connection'
310 get 'test_connection', :as => 'try_connection'
316 end
311 end
317 end
312 end
318
313
319 match 'workflows', :controller => 'workflows', :action => 'index', :via => :get
314 match 'workflows', :controller => 'workflows', :action => 'index', :via => :get
320 match 'workflows/edit', :controller => 'workflows', :action => 'edit', :via => [:get, :post]
315 match 'workflows/edit', :controller => 'workflows', :action => 'edit', :via => [:get, :post]
321 match 'workflows/permissions', :controller => 'workflows', :action => 'permissions', :via => [:get, :post]
316 match 'workflows/permissions', :controller => 'workflows', :action => 'permissions', :via => [:get, :post]
322 match 'workflows/copy', :controller => 'workflows', :action => 'copy', :via => [:get, :post]
317 match 'workflows/copy', :controller => 'workflows', :action => 'copy', :via => [:get, :post]
323 match 'settings', :controller => 'settings', :action => 'index', :via => :get
318 match 'settings', :controller => 'settings', :action => 'index', :via => :get
324 match 'settings/edit', :controller => 'settings', :action => 'edit', :via => [:get, :post]
319 match 'settings/edit', :controller => 'settings', :action => 'edit', :via => [:get, :post]
325 match 'settings/plugin/:id', :controller => 'settings', :action => 'plugin', :via => [:get, :post]
320 match 'settings/plugin/:id', :controller => 'settings', :action => 'plugin', :via => [:get, :post]
326
321
327 match 'sys/projects', :to => 'sys#projects', :via => :get
322 match 'sys/projects', :to => 'sys#projects', :via => :get
328 match 'sys/projects/:id/repository', :to => 'sys#create_project_repository', :via => :post
323 match 'sys/projects/:id/repository', :to => 'sys#create_project_repository', :via => :post
329 match 'sys/fetch_changesets', :to => 'sys#fetch_changesets', :via => :get
324 match 'sys/fetch_changesets', :to => 'sys#fetch_changesets', :via => :get
330
325
331 match 'uploads', :to => 'attachments#upload', :via => :post
326 match 'uploads', :to => 'attachments#upload', :via => :post
332
327
333 get 'robots.txt', :to => 'welcome#robots'
328 get 'robots.txt', :to => 'welcome#robots'
334
329
335 Dir.glob File.expand_path("plugins/*", Rails.root) do |plugin_dir|
330 Dir.glob File.expand_path("plugins/*", Rails.root) do |plugin_dir|
336 file = File.join(plugin_dir, "config/routes.rb")
331 file = File.join(plugin_dir, "config/routes.rb")
337 if File.exists?(file)
332 if File.exists?(file)
338 begin
333 begin
339 instance_eval File.read(file)
334 instance_eval File.read(file)
340 rescue Exception => e
335 rescue Exception => e
341 puts "An error occurred while loading the routes definition of #{File.basename(plugin_dir)} plugin (#{file}): #{e.message}."
336 puts "An error occurred while loading the routes definition of #{File.basename(plugin_dir)} plugin (#{file}): #{e.message}."
342 exit 1
337 exit 1
343 end
338 end
344 end
339 end
345 end
340 end
346 end
341 end
General Comments 0
You need to be logged in to leave comments. Login now