Module: RDBr::Web::RelatedValueHelpers
- Included in:
- Helpers
- Defined in:
- lib/rdbr/web/related_value_helpers.rb
Defined Under Namespace
Classes: RelatedValue
Instance Method Summary collapse
- #display_column_name(column) ⇒ Object
- #load_related_values(namespace, relation, rows) ⇒ Object
- #related_value_for(column, value) ⇒ Object
- #related_value_url(value) ⇒ Object
- #render_related_value(value, compact: true) ⇒ Object
Instance Method Details
#display_column_name(column) ⇒ Object
18 19 20 21 22 |
# File 'lib/rdbr/web/related_value_helpers.rb', line 18 def display_column_name(column) return column.name unless relationship_column?(column) humanize_identifier(column.name.sub(/_id\z/i, '').sub(/Id\z/, '')) end |
#load_related_values(namespace, relation, rows) ⇒ Object
8 9 10 11 12 |
# File 'lib/rdbr/web/related_value_helpers.rb', line 8 def (namespace, relation, rows) settings.catalog.outgoing_relationships(namespace, relation).each_with_object({}) do |relationship, values| load_relationship_values(relationship, rows, values) end end |
#related_value_for(column, value) ⇒ Object
14 15 16 |
# File 'lib/rdbr/web/related_value_helpers.rb', line 14 def (column, value) @related_values&.fetch((column.name, value), nil) end |
#related_value_url(value) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/rdbr/web/related_value_helpers.rb', line 24 def (value) primary_key = value.relation.primary_key if primary_key&.columns&.sort == value.key.keys.sort return record_url(value.namespace.name, value.relation.name, value.key, primary_key) end relation_url(value.namespace.name, value.relation.name, filter: equality_filters(value.key)) end |
#render_related_value(value, compact: true) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/rdbr/web/related_value_helpers.rb', line 33 def (value, compact: true) title = "#{value.column.name}: #{value.raw_value}" text = display_text(value.label, limit: compact ? 160 : 500) %(<span class="related-value" title="#{Rack::Utils.escape_html(title)}">) \ "#{Rack::Utils.escape_html(text)}</span>" end |