summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2010-12-03 12:06:14 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2010-12-03 12:06:14 +0000
commita1f12e3adeeffa55e66f0727f1b5994465e73429 (patch)
tree9fe23ede47dd996c0d9e6cda28d47d2f6f7258d0 /app
parentd0a3aab2e70241f9ce03704c2c87ed7cb2f2e4b6 (diff)
downloadredmine-a1f12e3adeeffa55e66f0727f1b5994465e73429.tar.gz
redmine-a1f12e3adeeffa55e66f0727f1b5994465e73429.zip
Converts ProjectsController to use the new API template system.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4456 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects_controller.rb17
-rw-r--r--app/views/projects/index.apit18
-rw-r--r--app/views/projects/index.xml.builder19
-rw-r--r--app/views/projects/show.apit22
-rw-r--r--app/views/projects/show.xml.builder23
5 files changed, 49 insertions, 50 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index f97f6c30f..d94dec1c6 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -52,8 +52,9 @@ class ProjectsController < ApplicationController
format.html {
@projects = Project.visible.find(:all, :order => 'lft')
}
- format.xml {
+ format.api {
@projects = Project.visible.find(:all, :order => 'lft')
+ render :template => 'projects/index.apit'
}
format.atom {
projects = Project.visible.find(:all, :order => 'created_on DESC',
@@ -93,12 +94,12 @@ class ProjectsController < ApplicationController
flash[:notice] = l(:notice_successful_create)
redirect_to :controller => 'projects', :action => 'settings', :id => @project
}
- format.xml { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) }
+ format.api { render :template => 'projects/show.apit', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) }
end
else
respond_to do |format|
format.html { render :action => 'new' }
- format.xml { render :xml => @project.errors, :status => :unprocessable_entity }
+ format.api { render_validation_errors(@project) }
end
end
@@ -169,7 +170,7 @@ class ProjectsController < ApplicationController
respond_to do |format|
format.html
- format.xml
+ format.api { render :template => 'projects/show.apit'}
end
end
@@ -194,7 +195,7 @@ class ProjectsController < ApplicationController
flash[:notice] = l(:notice_successful_update)
redirect_to :action => 'settings', :id => @project
}
- format.xml { head :ok }
+ format.api { head :ok }
end
else
respond_to do |format|
@@ -202,7 +203,7 @@ class ProjectsController < ApplicationController
settings
render :action => 'settings'
}
- format.xml { render :xml => @project.errors, :status => :unprocessable_entity }
+ format.api { render_validation_errors(@project) }
end
end
end
@@ -233,11 +234,11 @@ class ProjectsController < ApplicationController
if request.get?
# display confirmation view
else
- if params[:format] == 'xml' || params[:confirm]
+ if api_request? || params[:confirm]
@project_to_destroy.destroy
respond_to do |format|
format.html { redirect_to :controller => 'admin', :action => 'projects' }
- format.xml { head :ok }
+ format.api { head :ok }
end
end
end
diff --git a/app/views/projects/index.apit b/app/views/projects/index.apit
new file mode 100644
index 000000000..e65477a23
--- /dev/null
+++ b/app/views/projects/index.apit
@@ -0,0 +1,18 @@
+api.array :projects do
+ @projects.each do |project|
+ api.project do
+ api.id project.id
+ api.name project.name
+ api.identifier project.identifier
+ api.description project.description
+ api.parent(:id => project.parent_id, :name => project.parent.name) unless project.parent.nil?
+ api.array :custom_fields do
+ project.visible_custom_field_values.each do |custom_value|
+ api.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
+ end
+ end unless project.custom_field_values.empty?
+ api.created_on project.created_on
+ api.updated_on project.updated_on
+ end
+ end
+end
diff --git a/app/views/projects/index.xml.builder b/app/views/projects/index.xml.builder
deleted file mode 100644
index 6ea2a3aa7..000000000
--- a/app/views/projects/index.xml.builder
+++ /dev/null
@@ -1,19 +0,0 @@
-xml.instruct!
-xml.projects :type => 'array' do
- @projects.each do |project|
- xml.project do
- xml.id project.id
- xml.name project.name
- xml.identifier project.identifier
- xml.description project.description
- xml.parent(:id => project.parent_id, :name => project.parent.name) unless project.parent.nil?
- xml.custom_fields do
- project.visible_custom_field_values.each do |custom_value|
- xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
- end
- end unless project.custom_field_values.empty?
- xml.created_on project.created_on
- xml.updated_on project.updated_on
- end
- end
-end
diff --git a/app/views/projects/show.apit b/app/views/projects/show.apit
new file mode 100644
index 000000000..4479e500f
--- /dev/null
+++ b/app/views/projects/show.apit
@@ -0,0 +1,22 @@
+api.project do
+ api.id @project.id
+ api.name @project.name
+ api.identifier @project.identifier
+ api.description @project.description
+ api.homepage @project.homepage
+
+ api.array :custom_fields do
+ @project.visible_custom_field_values.each do |custom_value|
+ api.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
+ end
+ end unless @project.custom_field_values.empty?
+
+ api.created_on @project.created_on
+ api.updated_on @project.updated_on
+
+ api.array :trackers do
+ @project.trackers.each do |tracker|
+ api.tracker(:id => tracker.id, :name => tracker.name)
+ end
+ end
+end
diff --git a/app/views/projects/show.xml.builder b/app/views/projects/show.xml.builder
deleted file mode 100644
index d99db8b56..000000000
--- a/app/views/projects/show.xml.builder
+++ /dev/null
@@ -1,23 +0,0 @@
-xml.instruct!
-xml.project do
- xml.id @project.id
- xml.name @project.name
- xml.identifier @project.identifier
- xml.description @project.description
- xml.homepage @project.homepage
-
- xml.custom_fields do
- @project.visible_custom_field_values.each do |custom_value|
- xml.custom_field custom_value.value, :id => custom_value.custom_field_id, :name => custom_value.custom_field.name
- end
- end unless @project.custom_field_values.empty?
-
- xml.created_on @project.created_on
- xml.updated_on @project.updated_on
-
- xml.trackers do
- @project.trackers.each do |tracker|
- xml.tracker(:id => tracker.id, :name => tracker.name)
- end
- end
-end