about summary refs log tree commit diff
diff options
context:
space:
mode:
-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