From a1f12e3adeeffa55e66f0727f1b5994465e73429 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Fri, 3 Dec 2010 12:06:14 +0000 Subject: [PATCH] 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 --- app/controllers/projects_controller.rb | 17 +++++++++-------- app/views/projects/index.apit | 18 ++++++++++++++++++ app/views/projects/index.xml.builder | 19 ------------------- app/views/projects/show.apit | 22 ++++++++++++++++++++++ app/views/projects/show.xml.builder | 23 ----------------------- 5 files changed, 49 insertions(+), 50 deletions(-) create mode 100644 app/views/projects/index.apit delete mode 100644 app/views/projects/index.xml.builder create mode 100644 app/views/projects/show.apit delete mode 100644 app/views/projects/show.xml.builder 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