about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRakib Hasan <rmhasan@gmail.com>2017-02-01 21:07:38 -0500
committerRakib Hasan <rmhasan@gmail.com>2017-02-19 08:28:33 +0000
commit6d2301988fdc0118c5583f48ba6da4a3b8247ba4 (patch)
tree9f94a389b53220af1fe997bbe807a20319821b33
parent9e99b8c068b11ec2d0f3b5d560cae0166c247342 (diff)
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.
-rw-r--r--app/assets/javascripts/components/actions/compose.jsx5
-rw-r--r--app/controllers/api/v1/media_controller.rb4
2 files changed, 8 insertions, 1 deletions
diff --git a/app/assets/javascripts/components/actions/compose.jsx b/app/assets/javascripts/components/actions/compose.jsx
index 03aae885e..84fbc7fc5 100644
--- a/app/assets/javascripts/components/actions/compose.jsx
+++ b/app/assets/javascripts/components/actions/compose.jsx
@@ -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));
diff --git a/app/controllers/api/v1/media_controller.rb b/app/controllers/api/v1/media_controller.rb
index f8139ade7..582d04daf 100644
--- a/app/controllers/api/v1/media_controller.rb
+++ b/app/controllers/api/v1/media_controller.rb
@@ -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