Module: SubmissionsHelper
- Defined in:
- app/helpers/submissions_helper.rb
Overview
Helper methods for presenting submission related information
Instance Method Summary collapse
-
#asset_group_select(asset_groups) ⇒ Object
rubocop:todo Metrics/MethodLength.
- #field_input_tag(field_info, values: {}, name_format: '%s', enforce_required: true) ⇒ Object
-
#order_input_label(field_info) ⇒ Object
<label for=“submission_order_params_field_info_key”>field_info.display_name/label>.
-
#order_input_tag(order, field_info) ⇒ Object
Returns a either a text input or a selection tag based on the ‘kind’ of the order parameter passed in.
-
#order_sample_names(order) ⇒ Object
rubocop:enable Metrics/AbcSize, Metrics/MethodLength.
-
#projects_select(form, projects) ⇒ Object
rubocop:todo Metrics/MethodLength.
- #request_description(presenter, request_type) ⇒ Object
-
#studies_select(form, studies) ⇒ Object
rubocop:todo Metrics/MethodLength.
- #submission_link(submission, options) ⇒ Object
-
#submission_status_message(submission) ⇒ Object
rubocop:todo Metrics/MethodLength, Metrics/AbcSize.
Instance Method Details
#asset_group_select(asset_groups) ⇒ Object
rubocop:todo Metrics/MethodLength
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'app/helpers/submissions_helper.rb', line 63 def asset_group_select(asset_groups) # rubocop:todo Metrics/MethodLength prompt = case asset_groups.size when 0 'There are no Asset Groups associcated with this Study' else 'Please select an asset group for this order.' end collection_select( :submission, :asset_group_id, asset_groups, :id, :name, { prompt: }, class: 'submission_asset_group_id required form-control', disabled: asset_groups.empty? ) end |
#field_input_tag(field_info, values: {}, name_format: '%s', enforce_required: true) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/helpers/submissions_helper.rb', line 18 def field_input_tag(field_info, values: {}, name_format: '%s', enforce_required: true) case field_info.kind when 'Selection' field_selection_tag(values, field_info, name_format, enforce_required) when 'Text' field_text_tag(values, field_info, name_format, enforce_required) when 'Numeric' field_number_tag(values, field_info, name_format, enforce_required) # Fall back to a text field else field_text_tag(values, field_info, name_format, enforce_required) end end |
#order_input_label(field_info) ⇒ Object
<label for=“submission_order_params_field_info_key”>field_info.display_name/label>
6 7 8 |
# File 'app/helpers/submissions_helper.rb', line 6 def order_input_label(field_info) label('submission[order_params]', field_info.key, field_info.display_name, class: 'form-label') end |
#order_input_tag(order, field_info) ⇒ Object
Returns a either a text input or a selection tag based on the ‘kind’ of the order parameter passed in. field_info is expected to be FieldInfo [sic]
13 14 15 16 |
# File 'app/helpers/submissions_helper.rb', line 13 def order_input_tag(order, field_info) = order&. || {} field_input_tag(field_info, values: , name_format: 'submission[order_params][%s]') end |
#order_sample_names(order) ⇒ Object
rubocop:enable Metrics/AbcSize, Metrics/MethodLength
120 121 122 |
# File 'app/helpers/submissions_helper.rb', line 120 def order_sample_names(order) order.assets.map(&:aliquots).flatten.map(&:sample).map(&:name).join(', ') end |
#projects_select(form, projects) ⇒ Object
rubocop:todo Metrics/MethodLength
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/helpers/submissions_helper.rb', line 44 def projects_select(form, projects) # rubocop:todo Metrics/MethodLength prompt = case projects.count when 0 'There are no valid projects available' else 'Please select a Project for this Submission...' end form.collection_select( :project_name, projects, :name, :name, { prompt: }, disabled: true, class: 'submission_project_name custom-select' ) end |
#request_description(presenter, request_type) ⇒ Object
124 125 126 127 128 129 130 |
# File 'app/helpers/submissions_helper.rb', line 124 def request_description(presenter, request_type) request_type_name = request_type.name.titleize return request_type_name unless request_type.request_class_name.match?(/SequencingRequest$/) tag.em(pluralize(presenter.lanes_of_sequencing, 'Lane') + ' of ') + request_type_name end |
#studies_select(form, studies) ⇒ Object
rubocop:todo Metrics/MethodLength
32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/helpers/submissions_helper.rb', line 32 def studies_select(form, studies) # rubocop:todo Metrics/MethodLength prompt = case studies.count when 0 'You are not managing any Studies at this time' else 'Please select a Study for this Submission...' end form.collection_select(:study_id, studies, :id, :name, { prompt: }, disabled: true, class: 'study_id custom-select') end |
#submission_link(submission, options) ⇒ Object
132 133 134 135 |
# File 'app/helpers/submissions_helper.rb', line 132 def submission_link(submission, ) link_text = tag.strong(submission.name) << ' ' << badge(submission.state, type: 'submission-state') link_to(link_text, submission_path(submission), ) end |
#submission_status_message(submission) ⇒ Object
rubocop:todo Metrics/MethodLength, Metrics/AbcSize
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'app/helpers/submissions_helper.rb', line 85 def (submission) # rubocop:todo Metrics/CyclomaticComplexity case submission.state when 'building' display_user_guide( 'This submission is still open for editing, further orders can still be added...', edit_submission_path(submission) ) + ('Edit Submission', edit_submission_path(submission), method: :get, class: 'button') when 'pending' display_user_guide('Your submission is currently pending.') + tag.p( # rubocop:todo Layout/LineLength 'It should be processed approximately 10 minutes after you have submitted it, however sometimes this may take longer.' # rubocop:enable Layout/LineLength ) when 'processing' display_user_guide('Your submission is currently being processed. This should take no longer than five minutes.') when 'failed' display_user_error( raw( # rubocop:todo Layout/LineLength "<h3>Your submission has failed:</h3><p> #{h((submission. || 'No failure reason recorded').lines.first)} </p>" # rubocop:enable Layout/LineLength ) ) when 'ready' alert(:success) { raw('Your submission has been <strong>processed</strong>.') } when 'cancelled' alert(:info) { raw('Your submission has been <strong>cancelled</strong>.') } else alert(:danger) { 'Your submission is in an unknown state (contact support).' } end end |