Fix for issue #462

Modified uploadCompose action to send media ids of attached
media when sending a request. Modified create method in MediaController
to check if when posting a video, there are no other media attached
to the status by looking at the media ids sent from the uploadCompose
action.
rebase/4.0.0rc2
Rakib Hasan 2017-02-01 21:07:38 -05:00
parent 9e99b8c068
commit 6d2301988f
2 changed files with 8 additions and 1 deletions

View File

@ -119,6 +119,9 @@ export function uploadCompose(files) {
let data = new FormData(); let data = new FormData();
data.append('file', files[0]); data.append('file', files[0]);
data.append('media_ids', getState().getIn(
['compose', 'media_attachments']
).map(item => item.get('id')));
api(getState).post('/api/v1/media', data, { api(getState).post('/api/v1/media', data, {
onUploadProgress: function (e) { onUploadProgress: function (e) {

View File

@ -11,6 +11,10 @@ class Api::V1::MediaController < ApiController
def create def create
@media = MediaAttachment.create!(account: current_user.account, file: params[:file]) @media = MediaAttachment.create!(account: current_user.account, file: params[:file])
if @media.video? and params[:media_ids] != "List []"
@media.destroy
render json: {error: 'Cannot attach a video to a toot that already contains images'}, status: 422
end
rescue Paperclip::Errors::NotIdentifiedByImageMagickError rescue Paperclip::Errors::NotIdentifiedByImageMagickError
render json: { error: 'File type of uploaded media could not be verified' }, status: 422 render json: { error: 'File type of uploaded media could not be verified' }, status: 422
rescue Paperclip::Error rescue Paperclip::Error