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
- #archive_entry(entry_id) ⇒ Object
- #archive_mode=(enabled) ⇒ Object
- #archive_mode? ⇒ Boolean
- #project_names ⇒ Object
- #task_names_for_project(project) ⇒ Object
- #task_names_for_selected_project ⇒ Object
- #unarchive_entry(entry_id) ⇒ Object
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
27 28 29 |
# File 'app/view_models/main_view_model_archive_mode_helpers.rb', line 27 def archive_mode? @archive_mode end |
#project_names ⇒ Object
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_project ⇒ Object
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 |