Sha256: ed39c4b047596423b4461e07f68ae48ee6e40ffb04cd14d410df24e972f1688f

Contents?: true

Size: 1.83 KB

Versions: 20

Compression:

Stored size: 1.83 KB

Contents

module Sufia
  module FilesController::LocalIngestBehavior
  
    private
    
    def perform_local_ingest
      if Sufia.config.enable_local_ingest && current_user.respond_to?(:directory)
        if ingest_local_file
          redirect_to GenericFilesController.upload_complete_path( params[:batch_id])
        else
          flash[:alert] = "Error importing files from user directory."
          render :new
        end
      else
        flash[:alert] = "Your account is not configured for importing files from a user-directory on the server."
        render :new
      end
    end

    def ingest_local_file
      # Ingest files already on disk
      has_directories = false
      files = []
      params[:local_file].each do |filename|
        if File.directory?(File.join(current_user.directory, filename))
          has_directories = true
          Dir[File.join(current_user.directory, filename, '**', '*')].each do |single|
            next if File.directory? single
            logger.info("Ingesting file: #{single}")
            files << single.sub(current_user.directory + '/', '')
            logger.info("after removing the user directory #{current_user.directory} we have: #{files.last}")
          end
        else
          files << filename
        end
      end
      files.each do |filename|
        ingest_one(filename, has_directories)
      end
      true
    end

    def ingest_one(filename, unarranged)
      # do not remove :: 
      @generic_file = ::GenericFile.new
      basename = File.basename(filename)
      @generic_file.label = basename
      @generic_file.relative_path = filename if filename != basename
      create_metadata(@generic_file)
      Sufia.queue.push(IngestLocalFileJob.new(@generic_file.id, current_user.directory, filename, current_user.user_key))
    end
    
  end # /FilesController::LocalIngestBehavior
end # /Sufia

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
sufia-4.0.0.beta2 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-4.0.0.beta1 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.7.2 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.7.1 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.7.0 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.6.1 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.6.0 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.5.0 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.4.0 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.4.0.rc4 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.4.0.rc3 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.3.1 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.4.0.rc2 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.4.0.rc1 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.3.0 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.2.1 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.1.3 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.1.2 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.1.1 lib/sufia/files_controller/local_ingest_behavior.rb
sufia-3.1.0 lib/sufia/files_controller/local_ingest_behavior.rb