Sha256: c80dcbb2252834741b2d69261ba1012c4e1d08a414b94b99a0d9587bd0f2b98d

Contents?: true

Size: 1.1 KB

Versions: 6

Compression:

Stored size: 1.1 KB

Contents

module Sufia::FilesController
  module BrowseEverything
    include ActiveSupport::Concern

    def create
      if params[:selected_files].present?
        create_from_browse_everything(params)
      else
        super
      end
    end

    protected

      def create_from_browse_everything(params)
        Batch.find_or_create(params[:batch_id])
        params[:selected_files].each_pair do |_index, file_info|
          next if file_info.blank? || file_info["url"].blank?
          create_file_from_url(file_info["url"], file_info["file_name"])
        end
        redirect_to self.class.upload_complete_path(params[:batch_id])
      end

      # Generic utility for creating GenericFile from a URL
      # Used in to import files using URLs from a file picker like browse_everything
      def create_file_from_url(url, file_name)
        ::GenericFile.new(import_url: url, label: file_name) do |gf|
          actor = Sufia::GenericFile::Actor.new(gf, current_user)
          actor.create_metadata(params[:batch_id])
          gf.save!
          Sufia.queue.push(ImportUrlJob.new(gf.id))
        end
      end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sufia-6.7.0 app/controllers/concerns/sufia/files_controller/browse_everything.rb
sufia-6.6.1 app/controllers/concerns/sufia/files_controller/browse_everything.rb
sufia-6.6.0 app/controllers/concerns/sufia/files_controller/browse_everything.rb
sufia-6.5.0 app/controllers/concerns/sufia/files_controller/browse_everything.rb
sufia-6.4.0 app/controllers/concerns/sufia/files_controller/browse_everything.rb
sufia-6.3.0 app/controllers/concerns/sufia/files_controller/browse_everything.rb