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

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>',
    deferred_dialog_copy_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}">),
    deferred_view_button(escaped, label, qualifier),
    deferred_value_summary(summary),
    deferred_copy_button(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