Module: Presenters::StandardOperationsForRecord
- Extended by:
- ActiveSupport::Concern
- Included in:
- CatalogItemPresenter, CatalogPresenter, DeliveryPresenter, ExportedCatalogItemPacketPresenter, OrderPresenter
- Defined in:
- app/concerns/presenters/standard_operations_for_record.rb
Overview
CRUD-link helpers for record presenters: destroy/edit buttons and links
(permission-checked, Bootstrap-styled, Turbo-aware), plus date and audit
button rendering.
Instance Method Summary collapse
-
#audit_button ⇒ String?
Renders the audit-history button for the wrapped record.
-
#created_at ⇒ String, ...
Formatted
created_atdate of the wrapped record. -
#destroy_record_button(record, options = {}) ⇒ String?
Renders a destroy button for a record assuming standard rails routing practices and bootstrap styles.
-
#destroy_record_link(record, options = {}) ⇒ String
Renders a 'Delete' link to the record with turbo delete method/confirm data.
-
#edit_record_button(record, options = {}) ⇒ String?
Renders an edit button for a record assuming standard rails routing practices and bootstrap styles.
-
#edit_record_link(record, options = {}) ⇒ String
Renders an 'Edit' link to the record's edit page.
-
#updated_at ⇒ String, ...
Formatted
updated_atdate of the wrapped record.
Instance Method Details
#audit_button ⇒ String?
Renders the audit-history button for the wrapped record.
103 104 105 106 107 |
# File 'app/concerns/presenters/standard_operations_for_record.rb', line 103 def return if r.blank? h.(r) end |
#created_at ⇒ String, ...
Formatted created_at date of the wrapped record.
79 80 81 82 83 84 85 86 |
# File 'app/concerns/presenters/standard_operations_for_record.rb', line 79 def created_at begin return unless r.created_at rescue StandardError false end h.render_date(r.created_at) end |
#destroy_record_button(record, options = {}) ⇒ String?
Renders a destroy button for a record assuming standard rails routing
practices and bootstrap styles
23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/concerns/presenters/standard_operations_for_record.rb', line 23 def (record, = {}) return unless h.can?(:destroy, record) .reverse_merge!({ class: 'btn btn-danger', data: { turbo_confirm: "This will delete the #{record.class.name.humanize}, are you sure?" } }) destroy_record_link record, end |
#destroy_record_link(record, options = {}) ⇒ String
Renders a 'Delete' link to the record with turbo delete method/confirm data.
43 44 45 46 47 48 49 50 |
# File 'app/concerns/presenters/standard_operations_for_record.rb', line 43 def destroy_record_link(record, = {}) = .dup data = ([:data] || {}).dup data[:turbo_method] ||= :delete data[:turbo_confirm] ||= data.delete(:confirm) if data[:confirm] [:data] = data h.link_to 'Delete', h.polymorphic_path(record), ** end |
#edit_record_button(record, options = {}) ⇒ String?
Renders an edit button for a record assuming standard rails routing
practices and bootstrap styles
59 60 61 62 63 64 |
# File 'app/concerns/presenters/standard_operations_for_record.rb', line 59 def (record, = {}) return unless h.can?(:update, record) [:class] ||= 'btn btn-outline-primary' edit_record_link record, end |
#edit_record_link(record, options = {}) ⇒ String
Renders an 'Edit' link to the record's edit page.
72 73 74 |
# File 'app/concerns/presenters/standard_operations_for_record.rb', line 72 def edit_record_link(record, = {}) h.link_to 'Edit', h.polymorphic_path(record, action: :edit), ** end |
#updated_at ⇒ String, ...
Formatted updated_at date of the wrapped record.
91 92 93 94 95 96 97 98 |
# File 'app/concerns/presenters/standard_operations_for_record.rb', line 91 def updated_at begin return unless r.updated_at rescue StandardError false end h.render_date(r.updated_at) end |