Module: RDBr::Web::DeferredValueHelpers
- Included in:
- Helpers
- Defined in:
- lib/rdbr/web/deferred_value_helpers.rb
Constant Summary collapse
- COPY_ICON_PATH =
[ 'M8 7V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-2v2H5a2 2 0 0 1-2-2V9', 'a2 2 0 0 1 2-2h3ZM10 7h5a2 2 0 0 1 2 2v8h2V5h-9v2Zm5 2H5v10h10V9Z' ].join.freeze
Instance Method Summary collapse
- #render_deferred_dialog(dialog_id:, column_name:, text:, trigger:, content_class: nil) ⇒ Object
- #render_deferred_value(value, label: 'View', qualifier: nil, summary: nil) ⇒ Object
- #safe_dom_name(name) ⇒ Object
Instance Method Details
#render_deferred_dialog(dialog_id:, column_name:, text:, trigger:, content_class: nil) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/rdbr/web/deferred_value_helpers.rb', line 21 def render_deferred_dialog(dialog_id:, column_name:, text:, trigger:, content_class: nil) id = Rack::Utils.escape_html(dialog_id) label = Rack::Utils.escape_html("Show full #{column_name}") content = Rack::Utils.escape_html(text) class_attribute = content_class ? %( class="#{content_class}") : '' dialog_attributes = %(id="#{id}" role="dialog" aria-modal="true" aria-label="#{label}" hidden) [ trigger, %(<div class="text-dialog popup-backdrop" #{dialog_attributes}><div class="text-dialog-panel popup-surface">), '<button class="dialog-close" type="button" data-close-dialog aria-label="Close">×</button>', (id), "<pre#{class_attribute}>#{content}</pre></div></div>" ].join end |
#render_deferred_value(value, label: 'View', qualifier: nil, summary: nil) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rdbr/web/deferred_value_helpers.rb', line 9 def render_deferred_value(value, label: 'View', qualifier: nil, summary: nil) escaped = Rack::Utils.escape_html(value.to_s) classes = [ 'deferred-value-controls', qualifier && "#{qualifier}-controls" ].compact.join(' ') [ %(<span class="#{classes}">), (escaped, label, qualifier), deferred_value_summary(summary), (escaped, qualifier), '<span class="deferred-copy-status" aria-live="polite"></span></span>' ].join end |
#safe_dom_name(name) ⇒ Object
36 37 38 |
# File 'lib/rdbr/web/deferred_value_helpers.rb', line 36 def safe_dom_name(name) name.gsub(/[^a-zA-Z0-9_-]/, '-') end |