Class: Sentiero::Web::Views::SessionShowView

Inherits:
BaseView
  • Object
show all
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

Attributes inherited from BaseView

#base_path, #csrf_token

Instance Method Summary collapse

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_activityObject (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

#sessionObject (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_idObject (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_replaysObject (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_idObject (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_keysObject



30
# File 'lib/sentiero/web/views/session_show_view.rb', line 30

def custom_keys = meta.keys - ["url", "referrer", "userAgent", "viewport"]

#duration_strObject



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])

#metaObject



26
# File 'lib/sentiero/web/views/session_show_view.rb', line 26

def meta = session[:metadata]

#multi_window?Boolean

Returns:

  • (Boolean)


29
# File 'lib/sentiero/web/views/session_show_view.rb', line 29

def multi_window? = tabs[:all].size > 1

#server_markersObject

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

#tabsObject

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

#templateObject



24
# File 'lib/sentiero/web/views/session_show_view.rb', line 24

def template = "session_show.html.erb"

#total_eventsObject



27
# File 'lib/sentiero/web/views/session_show_view.rb', line 27

def total_events = session[:windows]&.sum { |w| w[:event_count] } || 0