Class: SampleManifestUploadWithTagSequencesController
Constant Summary
FlashTruncation::STRING_OVERHEAD
Instance Method Summary
collapse
#block_api_access, #evil_parameter_hack!, #extract_header_info, #set_cache_disabled!
included
#max_flash_size, #truncate_flash, #truncate_flash_array
Instance Method Details
#apply_warning_flash(rows) ⇒ Object
rubocop:disable Metrics/AbcSize
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 43
def apply_warning_flash(rows) row_messages = rows.flat_map { |row| row.warnings.full_messages }.uniq
if row_messages.size > 10
row_messages = row_messages.first(10) + ["and #{row_messages.size - 10} more..."]
end
flash[:warning] = { 'Sample manifest uploaded with warnings!': row_messages }
redirect_target = (@uploader.study.present? ? sample_manifests_study_path(@uploader.study) : sample_manifests_path)
redirect_to redirect_target
end
|
#create ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 9
def create
return error('No file attached') if params[:upload].blank?
if upload_manifest
set_upload_flash_message
else
error('Your sample manifest couldn\'t be uploaded.')
end
rescue AccessionService::AccessionValidationFailed => e
error("Your sample manifest contained invalid data and could not be uploaded: #{e.message}")
end
|
#create_uploader ⇒ Object
#error(message) ⇒ Object
65
66
67
68
69
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 65
def error(message)
flash.now[:error] = message
render :new
end
|
#new ⇒ Object
5
6
7
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 5
def new
end
|
rubocop:todo Metrics/MethodLength
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 71
def pending_sample_manifests =
SampleManifest
.pending_manifests
.includes(:study, :supplier, :user, :uploaded_document)
.paginate(page: params[:page])
completed_sample_manifests =
SampleManifest
.completed_manifests
.includes(:study, :supplier, :user, :uploaded_document)
.paginate(page: params[:page])
@display_manifests = pending_sample_manifests | completed_sample_manifests
@sample_manifests = SampleManifest.paginate(page: params[:page])
end
|
#rows_with_warnings ⇒ Object
37
38
39
40
41
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 37
def rows_with_warnings
@uploader.upload.rows.select do |row|
row.respond_to?(:warnings) && row.warnings.any?
end
end
|
#set_upload_flash_message ⇒ Object
30
31
32
33
34
35
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 30
def set_upload_flash_message
warning_rows = rows_with_warnings
return success('Sample manifest successfully uploaded.') if warning_rows.empty?
apply_warning_flash(warning_rows)
end
|
#success(message) ⇒ Object
58
59
60
61
62
63
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 58
def success(message)
flash[:notice] = message
redirect_target = (@uploader.study.present? ? sample_manifests_study_path(@uploader.study) : sample_manifests_path)
redirect_to redirect_target
end
|
#upload_manifest ⇒ Object
25
26
27
28
|
# File 'app/controllers/sample_manifest_upload_with_tag_sequences_controller.rb', line 25
def upload_manifest
@uploader = create_uploader
@uploader.run!
end
|