diff --git a/app/assets/javascripts/dashboard/current_tasks.js b/app/assets/javascripts/dashboard/current_tasks.js index b5954d4a2..0cf83b3e6 100644 --- a/app/assets/javascripts/dashboard/current_tasks.js +++ b/app/assets/javascripts/dashboard/current_tasks.js @@ -3,7 +3,7 @@ var DasboardCurrentTasksWidget = (function() { var sortFilter = '.curent-tasks-filters .sort-filter'; - var viewFilter = '.curent-tasks-filters .view-filter'; + var statusFilter = '.curent-tasks-filters .view-filter'; var projectFilter = '.curent-tasks-filters .project-filter'; var experimentFilter = '.curent-tasks-filters .experiment-filter'; @@ -35,7 +35,7 @@ var DasboardCurrentTasksWidget = (function() { params.project_id = dropdownSelector.getValues(projectFilter); params.experiment_id = dropdownSelector.getValues(experimentFilter); params.sort = dropdownSelector.getValues(sortFilter); - params.view = dropdownSelector.getValues(viewFilter); + params.statuses = dropdownSelector.getValues(statusFilter); params.query = $('.current-tasks-widget .task-search-field').val(); params.mode = $('.current-tasks-navbar .active').data('mode'); return params; @@ -47,7 +47,6 @@ var DasboardCurrentTasksWidget = (function() { return dropdownSelector.getValues(experimentFilter) || dropdownSelector.getValues(projectFilter) || $('.current-tasks-widget .task-search-field').val().length > 0 - || dropdownSelector.getValues(viewFilter) !== 'uncompleted'; } function loadCurrentTasksList(newList) { @@ -56,7 +55,7 @@ var DasboardCurrentTasksWidget = (function() { project_id: dropdownSelector.getValues(projectFilter), experiment_id: dropdownSelector.getValues(experimentFilter), sort: dropdownSelector.getValues(sortFilter), - view: dropdownSelector.getValues(viewFilter), + statuses: dropdownSelector.getValues(statusFilter), query: $('.current-tasks-widget .task-search-field').val(), mode: $('.current-tasks-navbar .active').data('mode') }; @@ -97,12 +96,9 @@ var DasboardCurrentTasksWidget = (function() { disableSearch: true }); - dropdownSelector.init(viewFilter, { - noEmptyOption: true, - singleSelect: true, - closeOnSelect: true, + dropdownSelector.init(statusFilter, { selectAppearance: 'simple', - disableSearch: true + optionClass: 'checkbox-icon' }); dropdownSelector.init(projectFilter, { @@ -142,7 +138,7 @@ var DasboardCurrentTasksWidget = (function() { e.stopPropagation(); e.preventDefault(); dropdownSelector.closeDropdown(sortFilter); - dropdownSelector.closeDropdown(viewFilter); + dropdownSelector.closeDropdown(statusFilter); dropdownSelector.closeDropdown(projectFilter); dropdownSelector.closeDropdown(experimentFilter); }); diff --git a/app/assets/javascripts/sitewide/dropdown_selector.js b/app/assets/javascripts/sitewide/dropdown_selector.js index 9497c6b69..f4d7ef7ae 100644 --- a/app/assets/javascripts/sitewide/dropdown_selector.js +++ b/app/assets/javascripts/sitewide/dropdown_selector.js @@ -434,7 +434,7 @@ var dropdownSelector = (function() { // Select default value if (!selectElement.data('ajax-url')) { - addSelectedOption(selectElement, dropdownContainer); + addSelectedOptions(selectElement, dropdownContainer); } // Enable simple mode for dropdown selector diff --git a/app/controllers/dashboard/current_tasks_controller.rb b/app/controllers/dashboard/current_tasks_controller.rb index 3da93e6cf..8d28d0cec 100644 --- a/app/controllers/dashboard/current_tasks_controller.rb +++ b/app/controllers/dashboard/current_tasks_controller.rb @@ -25,7 +25,7 @@ module Dashboard tasks = tasks.left_outer_joins(:user_my_modules).where(user_my_modules: { user_id: current_user.id }) end - tasks = filter_by_state(tasks) + # tasks = filter_by_state(tasks) case task_filters[:sort] when 'start_date' diff --git a/config/locales/dashboard/en.yml b/config/locales/dashboard/en.yml index 0d2ba5749..e102ed33e 100644 --- a/config/locales/dashboard/en.yml +++ b/config/locales/dashboard/en.yml @@ -14,7 +14,11 @@ en: due_date: "Due date" atoz: "From A to Z" ztoa: "From Z to A" - display: "Display" + display: "Display statuses" + statuses: + placeholder: "Select statuses" + all_selected: "All selected" + selected: "selected" uncompleted_tasks: "Tasks in progress" completed_tasks: "Tasks completed" project: "Project" diff --git a/db/migrate/20200826143431_migrate_task_status.rb b/db/migrate/20200826143431_migrate_task_status.rb new file mode 100644 index 000000000..99d7c5e6d --- /dev/null +++ b/db/migrate/20200826143431_migrate_task_status.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class MigrateTaskStatus < ActiveRecord::Migration[6.0] + def up + in_progress_status = execute("SELECT id FROM my_module_statuses WHERE name = 'In progress' LIMIT 1")[0]&['id'] + completed_status = execute("SELECT id FROM my_module_statuses WHERE name = 'Completed' LIMIT 1")[0]&['id'] + + execute "UPDATE my_modules SET my_module_status_id = #{in_progress_status} WHERE state = 0" + execute "UPDATE my_modules SET my_module_status_id = #{completed_status} WHERE state = 1" + end +end diff --git a/db/structure.sql b/db/structure.sql index 1efe7eb1c..64b55a4aa 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -7625,4 +7625,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200622155632'), ('20200709142830'), ('20200713142353'), -('20200714082503'); +('20200714082503'), +('20200826143431'); + +