From 8e78938b0201795369db342f7f39b43deb170559 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Wed, 30 Nov 2022 16:47:49 +0400 Subject: [PATCH] Archived table view filters update [SCI-7494] --- app/assets/javascripts/experiments/table.js | 30 +++++++++++++++++++ .../experiments/table_view_service.rb | 8 +++++ app/views/experiments/_table_filters.html.erb | 2 ++ 3 files changed, 40 insertions(+) diff --git a/app/assets/javascripts/experiments/table.js b/app/assets/javascripts/experiments/table.js index 7ea9a3280..198d7d9e3 100644 --- a/app/assets/javascripts/experiments/table.js +++ b/app/assets/javascripts/experiments/table.js @@ -429,6 +429,36 @@ ExperimnetTable.filters.push({ } }); +ExperimnetTable.filters.push({ + name: 'archived_on_from', + init: () => {}, + closeFilter: () => {}, + apply: ($container) => { + return ExperimnetTable.selectDate($('.archived-on-filter .from-date', $container)); + }, + active: (value) => { return value; }, + clearFilter: ($container) => { + if ($('.archived-on-filter .from-date', $container).data('DateTimePicker')) { + $('.archived-on-filter .from-date', $container).data('DateTimePicker').clear(); + } + } +}); + +ExperimnetTable.filters.push({ + name: 'archived_on_to', + init: () => {}, + closeFilter: () => {}, + apply: ($container) => { + return ExperimnetTable.selectDate($('.archived-on-filter .to-date', $container)); + }, + active: (value) => { return value; }, + clearFilter: ($container) => { + if ($('.archived-on-filter .to-date', $container).data('DateTimePicker')) { + $('.archived-on-filter .to-date', $container).data('DateTimePicker').clear(); + } + } +}); + ExperimnetTable.filters.push({ name: 'assigned_users', init: ($container) => { diff --git a/app/services/experiments/table_view_service.rb b/app/services/experiments/table_view_service.rb index 5780fab6e..0c9c9f682 100644 --- a/app/services/experiments/table_view_service.rb +++ b/app/services/experiments/table_view_service.rb @@ -181,6 +181,14 @@ module Experiments my_modules.where('my_modules.due_date <= ?', value) end + def archived_on_from_filter(my_modules, value) + my_modules.where('my_modules.archived_on >= ?', value) + end + + def archived_on_to_filter(my_modules, value) + my_modules.where('my_modules.archived_on <= ?', value) + end + def assigned_users_filter(my_modules, value) my_modules.joins(:user_my_modules).where(user_my_modules: { user_id: value }) end diff --git a/app/views/experiments/_table_filters.html.erb b/app/views/experiments/_table_filters.html.erb index 0e618fb83..7f7ba392d 100644 --- a/app/views/experiments/_table_filters.html.erb +++ b/app/views/experiments/_table_filters.html.erb @@ -5,6 +5,8 @@ } do %> <%= render partial: 'shared/filter_dropdown/text_search', locals: {container_class: 'task-name-filter', label_text: t('experiments.table.filters.name')} %> <%= render partial: 'shared/filter_dropdown/datetime_search', locals: {container_class: 'due-date-filter', label: t('experiments.table.filters.due_date'), view_mode: nil } %> + <%= render partial: 'shared/filter_dropdown/datetime_search', locals: {container_class: 'archived-on-filter', label: t("filters_modal.archived_on.label"), view_mode: 'archived' } if params[:view_mode] %> +