Class: SolidQueueTui::Views::FailedView

Inherits:
Object
  • Object
show all
Includes:
FormattingHelpers, Confirmable, Filterable, Paginatable
Defined in:
lib/solid_queue_tui/views/failed_view.rb

Constant Summary

Constants included from Paginatable

Paginatable::LOAD_THRESHOLD

Constants included from Filterable

SolidQueueTui::Views::Filterable::FILTER_FIELDS

Instance Method Summary collapse

Methods included from FormattingHelpers

#format_duration, #format_number, #format_time, #humanize_duration, #time_ago, #time_until, #truncate

Methods included from Paginatable

#current_offset, #init_pagination, #items, #reset_pagination!, #selected_item, #total_count=

Methods included from Confirmable

#confirm_bindings, #confirm_mode?, #handle_confirm_input, #init_confirm, #render_confirm_popup

Methods included from Filterable

#clear_filter, #clear_filter_binding, #enter_filter_mode, #filter_bindings, #filter_mode?, #filter_title, #filters, #handle_filter_input, #init_filter, #render_filter_input

Constructor Details

#initialize(tui) ⇒ FailedView

Returns a new instance of FailedView.



11
12
13
14
15
16
# File 'lib/solid_queue_tui/views/failed_view.rb', line 11

def initialize(tui)
  @tui = tui
  init_pagination
  init_confirm
  init_filter
end

Instance Method Details

#append(failed_jobs:) ⇒ Object



22
23
24
# File 'lib/solid_queue_tui/views/failed_view.rb', line 22

def append(failed_jobs:)
  append_items(failed_jobs)
end

#bindingsObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/solid_queue_tui/views/failed_view.rb', line 56

def bindings
  if confirm_mode?
    confirm_bindings
  elsif filter_mode?
    filter_bindings
  else
    [
      { key: "j/k", action: "Navigate" },
      { key: "Enter", action: "Detail" },
      { key: "R", action: "Retry" },
      { key: "D", action: "Discard" },
      { key: "A", action: "Retry All" },
      { key: "/", action: "Filter" },
      clear_filter_binding
    ].compact
  end
end


78
79
80
# File 'lib/solid_queue_tui/views/failed_view.rb', line 78

def breadcrumb
  @filters.empty? ? "failed" : "failed:filtered"
end

#capturing_input?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/solid_queue_tui/views/failed_view.rb', line 74

def capturing_input?
  filter_mode? || confirm_mode?
end

#handle_input(event) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/solid_queue_tui/views/failed_view.rb', line 46

def handle_input(event)
  if confirm_mode?
    handle_confirm_input(event)
  elsif filter_mode?
    handle_filter_input(event)
  else
    handle_normal_input(event)
  end
end

#render(frame, area) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/solid_queue_tui/views/failed_view.rb', line 26

def render(frame, area)
  if confirm_mode?
    render_failed_table(frame, area)
    render_confirm_popup(frame, area)
  elsif filter_mode?
    filter_area, content_area = @tui.layout_split(
      area,
      direction: :vertical,
      constraints: [
        @tui.constraint_length(3),
        @tui.constraint_fill(1)
      ]
    )
    render_filter_input(frame, filter_area)
    render_failed_table(frame, content_area)
  else
    render_failed_table(frame, area)
  end
end

#update(failed_jobs:) ⇒ Object



18
19
20
# File 'lib/solid_queue_tui/views/failed_view.rb', line 18

def update(failed_jobs:)
  update_items(failed_jobs)
end