mirror of
https://github.com/redmine/redmine.git
synced 2025-11-13 08:46:01 +01:00
Allow attachment thumbnails from REST API (#18707).
git-svn-id: http://svn.redmine.org/redmine/trunk@13806 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -22,7 +22,7 @@ class AttachmentsController < ApplicationController
|
|||||||
before_filter :delete_authorize, :only => :destroy
|
before_filter :delete_authorize, :only => :destroy
|
||||||
before_filter :authorize_global, :only => :upload
|
before_filter :authorize_global, :only => :upload
|
||||||
|
|
||||||
accept_api_auth :show, :download, :upload
|
accept_api_auth :show, :download, :thumbnail, :upload
|
||||||
|
|
||||||
def show
|
def show
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ module AttachmentsHelper
|
|||||||
api.content_type attachment.content_type
|
api.content_type attachment.content_type
|
||||||
api.description attachment.description
|
api.description attachment.description
|
||||||
api.content_url download_named_attachment_url(attachment, attachment.filename)
|
api.content_url download_named_attachment_url(attachment, attachment.filename)
|
||||||
|
if attachment.thumbnailable?
|
||||||
|
api.thumbnail_url thumbnail_url(attachment)
|
||||||
|
end
|
||||||
|
api.content_url download_named_attachment_url(attachment, attachment.filename)
|
||||||
api.author(:id => attachment.author.id, :name => attachment.author.name) if attachment.author
|
api.author(:id => attachment.author.id, :name => attachment.author.name) if attachment.author
|
||||||
api.created_on attachment.created_on
|
api.created_on attachment.created_on
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -47,6 +47,15 @@ class Redmine::ApiTest::AttachmentsTest < Redmine::ApiTest::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "GET /attachments/:id.xml for image should include thumbnail_url" do
|
||||||
|
get '/attachments/16.xml', {}, credentials('jsmith')
|
||||||
|
assert_response :success
|
||||||
|
assert_equal 'application/xml', @response.content_type
|
||||||
|
assert_select 'attachment id:content(16)' do
|
||||||
|
assert_select '~ thumbnail_url', :text => 'http://www.example.com/attachments/thumbnail/16'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
test "GET /attachments/:id.xml should deny access without credentials" do
|
test "GET /attachments/:id.xml should deny access without credentials" do
|
||||||
get '/attachments/7.xml'
|
get '/attachments/7.xml'
|
||||||
assert_response 401
|
assert_response 401
|
||||||
@@ -66,6 +75,12 @@ class Redmine::ApiTest::AttachmentsTest < Redmine::ApiTest::Base
|
|||||||
set_tmp_attachments_directory
|
set_tmp_attachments_directory
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "GET /attachments/thumbnail/:id should return the thumbnail" do
|
||||||
|
skip unless convert_installed?
|
||||||
|
get '/attachments/thumbnail/16', {}, credentials('jsmith')
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
|
||||||
test "POST /uploads.xml should return the token" do
|
test "POST /uploads.xml should return the token" do
|
||||||
set_tmp_attachments_directory
|
set_tmp_attachments_directory
|
||||||
assert_difference 'Attachment.count' do
|
assert_difference 'Attachment.count' do
|
||||||
|
|||||||
@@ -131,6 +131,10 @@ class ActiveSupport::TestCase
|
|||||||
Redmine::Thumbnail.convert_available?
|
Redmine::Thumbnail.convert_available?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def convert_installed?
|
||||||
|
self.class.convert_installed?
|
||||||
|
end
|
||||||
|
|
||||||
# Returns the path to the test +vendor+ repository
|
# Returns the path to the test +vendor+ repository
|
||||||
def self.repository_path(vendor)
|
def self.repository_path(vendor)
|
||||||
path = Rails.root.join("tmp/test/#{vendor.downcase}_repository").to_s
|
path = Rails.root.join("tmp/test/#{vendor.downcase}_repository").to_s
|
||||||
|
|||||||
Reference in New Issue
Block a user