]> cat aescling's git repositories - mastodon.git/commitdiff
Fix for issue #462
authorRakib Hasan <rmhasan@gmail.com>
Thu, 2 Feb 2017 02:07:38 +0000 (21:07 -0500)
committerRakib Hasan <rmhasan@gmail.com>
Sun, 19 Feb 2017 08:28:33 +0000 (08:28 +0000)
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.

app/assets/javascripts/components/actions/compose.jsx
app/controllers/api/v1/media_controller.rb

index 03aae885e05ec69337f4802e376ba0710bf20dc3..84fbc7fc51af6d09d8d3915ccc7e1cc6090957f0 100644 (file)
@@ -119,7 +119,10 @@ export function uploadCompose(files) {
 
     let data = new FormData();
     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, {
       onUploadProgress: function (e) {
         dispatch(uploadComposeProgress(e.loaded, e.total));
index f8139ade7719a9d9d927aa23b93c130e58d99569..582d04dafa6a01bf787c1e00d8754102b526200a 100644 (file)
@@ -11,6 +11,10 @@ class Api::V1::MediaController < ApiController
 
   def create
     @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
     render json: { error: 'File type of uploaded media could not be verified' }, status: 422
   rescue Paperclip::Error