Module: QTimetrap::ViewModels::MainViewModelArchiveModeHelpers

Included in:
MainViewModel
Defined in:
app/view_models/main_view_model_archive_mode_helpers.rb

Overview

Archive-mode specific filtering and projections for MainViewModel.

Constant Summary collapse

EMPTY_ARRAY =
[].freeze

Instance Method Summary collapse

Instance Method Details

#archive_entry(entry_id) ⇒ Object



38
39
40
41
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 38

def archive_entry(entry_id)
  archived_entries_store.archive(entry_id)
  reset_archive_mode_caches!
end

#archive_mode=(enabled) ⇒ Object



31
32
33
34
35
36
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 31

def archive_mode=(enabled)
  @archive_mode = [true, 1].include?(enabled)
  reset_archive_mode_caches!
  normalize_selected_projects!
  normalize_selected_tasks!
end

#archive_mode?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 27

def archive_mode?
  @archive_mode
end

#project_namesObject



9
10
11
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 9

def project_names
  ['* ALL', *ordered_project_names_for_mode]
end

#task_names_for_project(project) ⇒ Object



20
21
22
23
24
25
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 20

def task_names_for_project(project)
  normalized_project = normalize_text(project).strip
  return [] if normalized_project.empty? || normalized_project == '* ALL'

  ordered_task_names_by_project.fetch(normalized_project, EMPTY_ARRAY)
end

#task_names_for_selected_projectObject



13
14
15
16
17
18
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 13

def task_names_for_selected_project
  return [] unless selected_projects == [selected_project]
  return [] if selected_project == '* ALL'

  task_names_for_project(selected_project)
end

#unarchive_entry(entry_id) ⇒ Object



43
44
45
46
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 43

def unarchive_entry(entry_id)
  archived_entries_store.unarchive(entry_id)
  reset_archive_mode_caches!
end