diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2010-12-04 17:43:39 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2010-12-04 17:43:39 +0000 |
commit | 224921460a0a3d9c97813e4a64f0903adffff22f (patch) | |
tree | 76234577050b11dec0f6b79af2461b8e2359a199 /app/views/issues/show.api.rsb | |
parent | 915748204965bb7f9704b55554e30f091934138e (diff) | |
download | redmine-224921460a0a3d9c97813e4a64f0903adffff22f.tar.gz redmine-224921460a0a3d9c97813e4a64f0903adffff22f.zip |
Adds a pseudo format to api template names and overrides ActionController#default_template so that api templates are chosen automatically.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4466 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/views/issues/show.api.rsb')
-rw-r--r-- | app/views/issues/show.api.rsb | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/app/views/issues/show.api.rsb b/app/views/issues/show.api.rsb new file mode 100644 index 000000000..001cabe11 --- /dev/null +++ b/app/views/issues/show.api.rsb @@ -0,0 +1,63 @@ +api.issue do + api.id @issue.id + api.project(:id => @issue.project_id, :name => @issue.project.name) unless @issue.project.nil? + api.tracker(:id => @issue.tracker_id, :name => @issue.tracker.name) unless @issue.tracker.nil? + api.status(:id => @issue.status_id, :name => @issue.status.name) unless @issue.status.nil? + api.priority(:id => @issue.priority_id, :name => @issue.priority.name) unless @issue.priority.nil? + api.author(:id => @issue.author_id, :name => @issue.author.name) unless @issue.author.nil? + api.assigned_to(:id => @issue.assigned_to_id, :name => @issue.assigned_to.name) unless @issue.assigned_to.nil? + api.category(:id => @issue.category_id, :name => @issue.category.name) unless @issue.category.nil? + api.fixed_version(:id => @issue.fixed_version_id, :name => @issue.fixed_version.name) unless @issue.fixed_version.nil? + api.parent(:id => @issue.parent_id) unless @issue.parent.nil? + + api.subject @issue.subject + api.description @issue.description + api.start_date @issue.start_date + api.due_date @issue.due_date + api.done_ratio @issue.done_ratio + api.estimated_hours @issue.estimated_hours + if User.current.allowed_to?(:view_time_entries, @project) + api.spent_hours @issue.spent_hours + end + + api.array :custom_fields do + @issue.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 @issue.custom_field_values.empty? + + api.created_on @issue.created_on + api.updated_on @issue.updated_on + + render_api_issue_children(@issue, api) + + api.array :relations do + @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation| + api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay) + end + end + + api.array :changesets do + @issue.changesets.each do |changeset| + api.changeset :revision => changeset.revision do + api.user(:id => changeset.user_id, :name => changeset.user.name) unless changeset.user.nil? + api.comments changeset.comments + api.committed_on changeset.committed_on + end + end + end if User.current.allowed_to?(:view_changesets, @project) && @issue.changesets.any? + + api.array :journals do + @issue.journals.each do |journal| + api.journal :id => journal.id do + api.user(:id => journal.user_id, :name => journal.user.name) unless journal.user.nil? + api.notes journal.notes + api.array :details do + journal.details.each do |detail| + api.detail :property => detail.property, :name => detail.prop_key, :old => detail.old_value, :new => detail.value + end + end + end + end + end unless @issue.journals.empty? +end |