Class: Sentiero::Web::Views::SessionShowView
- Defined in:
- lib/sentiero/web/views/session_show_view.rb
Constant Summary collapse
- MAX_VISIBLE_TABS =
Maximum tab buttons shown inline in the window switcher before the rest collapse into the overflow menu.
5
Constants inherited from BaseView
BaseView::TEMPLATES_DIR, BaseView::TEMPLATE_CACHE
Constants included from Escaping
Escaping::HTML_UNSAFE_IN_SCRIPT, Escaping::HTML_UNSAFE_IN_SCRIPT_PATTERN
Instance Attribute Summary collapse
-
#server_activity ⇒ Object
readonly
Returns the value of attribute server_activity.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
-
#session_id ⇒ Object
readonly
Returns the value of attribute session_id.
-
#shareable_replays ⇒ Object
readonly
Returns the value of attribute shareable_replays.
-
#window_id ⇒ Object
readonly
Returns the value of attribute window_id.
Attributes inherited from BaseView
Instance Method Summary collapse
- #custom_keys ⇒ Object
- #duration_str ⇒ Object
-
#initialize(session:, session_id:, window_id:, shareable_replays:, server_activity:) ⇒ SessionShowView
constructor
A new instance of SessionShowView.
- #meta ⇒ Object
- #multi_window? ⇒ Boolean
-
#server_markers ⇒ Object
Player-relative server-activity markers, lazily so base_path (set after construction by render_page) is available.
-
#tabs ⇒ Object
Splits the session's windows into the switcher's inline tab buttons and overflow menu, keeping the active window visible.
- #template ⇒ Object
- #total_events ⇒ Object
Methods inherited from BaseView
#built_asset, compiled_template, #escape_js, #h, #range_pairs, #render, #render_layout, #render_partial, #render_session_row
Methods included from Formatting
#format_duration, #format_vital, #parse_browser, #parse_device
Methods included from Escaping
#escape_html, #escape_js_string, #escape_json
Constructor Details
#initialize(session:, session_id:, window_id:, shareable_replays:, server_activity:) ⇒ SessionShowView
Returns a new instance of SessionShowView.
13 14 15 16 17 18 19 20 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 13 def initialize(session:, session_id:, window_id:, shareable_replays:, server_activity:) super() @session = session @session_id = session_id @window_id = window_id @shareable_replays = shareable_replays @server_activity = server_activity end |
Instance Attribute Details
#server_activity ⇒ Object (readonly)
Returns the value of attribute server_activity.
22 23 24 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 22 def server_activity @server_activity end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
22 23 24 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 22 def session @session end |
#session_id ⇒ Object (readonly)
Returns the value of attribute session_id.
22 23 24 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 22 def session_id @session_id end |
#shareable_replays ⇒ Object (readonly)
Returns the value of attribute shareable_replays.
22 23 24 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 22 def shareable_replays @shareable_replays end |
#window_id ⇒ Object (readonly)
Returns the value of attribute window_id.
22 23 24 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 22 def window_id @window_id end |
Instance Method Details
#custom_keys ⇒ Object
30 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 30 def custom_keys = .keys - ["url", "referrer", "userAgent", "viewport"] |
#duration_str ⇒ Object
28 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 28 def duration_str = format_duration(session[:first_event_at], session[:last_event_at]) |
#meta ⇒ Object
26 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 26 def = session[:metadata] |
#multi_window? ⇒ Boolean
29 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 29 def multi_window? = tabs[:all].size > 1 |
#server_markers ⇒ Object
Player-relative server-activity markers, lazily so base_path (set after construction by render_page) is available.
42 43 44 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 42 def server_markers @server_markers ||= build_server_markers end |
#tabs ⇒ Object
Splits the session's windows into the switcher's inline tab buttons and overflow menu, keeping the active window visible. Windows are sorted by last activity and numbered once into tab_num: pairs so the template never re-derives a tab number. Returns visible:, overflow:.
36 37 38 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 36 def tabs @tabs ||= partition_windows(session[:windows] || [], window_id) end |
#template ⇒ Object
24 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 24 def template = "session_show.html.erb" |
#total_events ⇒ Object
27 |
# File 'lib/sentiero/web/views/session_show_view.rb', line 27 def total_events = session[:windows]&.sum { |w| w[:event_count] } || 0 |