From 16ccd9703f79f063bba438bc55f4faf0bfc129e8 Mon Sep 17 00:00:00 2001 From: sboursen-scinote Date: Wed, 17 May 2023 16:11:27 +0200 Subject: [PATCH 1/4] Implement the assign to task button [SCI-8252] --- .../repositories/repository_datatable.js | 6 ++++++ .../packs/vue/assign_items_to_task_modal.js | 3 +++ app/services/toolbars/repository_rows_service.rb | 14 ++++++++++++++ config/locales/en.yml | 1 + 4 files changed, 24 insertions(+) diff --git a/app/assets/javascripts/repositories/repository_datatable.js b/app/assets/javascripts/repositories/repository_datatable.js index d391882cf..bfc130a2e 100644 --- a/app/assets/javascripts/repositories/repository_datatable.js +++ b/app/assets/javascripts/repositories/repository_datatable.js @@ -872,6 +872,12 @@ var RepositoryDatatable = (function(global) { changeToEditMode(); // adjustTableHeader(); }) + .on('click', '#assignRepositoryRecords', function(e) { + e.preventDefault(); + e.stopPropagation(); + + window.AssignItemsToTaskModalComponentContainer.showModal(); + }) .on('click', '#deleteRepositoryRecords', function(e) { e.preventDefault(); e.stopPropagation(); diff --git a/app/javascript/packs/vue/assign_items_to_task_modal.js b/app/javascript/packs/vue/assign_items_to_task_modal.js index 7fd3cbc50..2cc783622 100644 --- a/app/javascript/packs/vue/assign_items_to_task_modal.js +++ b/app/javascript/packs/vue/assign_items_to_task_modal.js @@ -26,6 +26,9 @@ function initAssignItemsToTaskModalComponent() { }; }, methods: { + showModal() { + this.visibility = true; + }, closeModal() { this.visibility = false; } diff --git a/app/services/toolbars/repository_rows_service.rb b/app/services/toolbars/repository_rows_service.rb index ef32316c9..fde3b7c7c 100644 --- a/app/services/toolbars/repository_rows_service.rb +++ b/app/services/toolbars/repository_rows_service.rb @@ -30,6 +30,7 @@ module Toolbars [ restore_action, edit_action, + assign_action, duplicate_action, export_action, print_label_action, @@ -68,6 +69,19 @@ module Toolbars } end + def assign_action + return unless can_manage_repository_rows?(@repository) + + { + name: 'assign', + label: I18n.t('repositories.assign_record'), + icon: 'fas fa-paperclip', + button_class: 'assign-repository-rows-btn', + button_id: 'assignRepositoryRecords', + type: :legacy + } + end + def duplicate_action return unless can_create_repository_rows?(@repository) diff --git a/config/locales/en.yml b/config/locales/en.yml index 4219329c8..373daf621 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1958,6 +1958,7 @@ en: errors_list_title: "Items were not imported because one or more errors were found:" no_repository_name: "Item name is required!" edit_record: "Edit" + assign_record: "Assign to task" copy_record: "Duplicate" delete_record: "Delete" archive_record: "Archive" From 478b731830e89bde398ef43765690de59cac28eb Mon Sep 17 00:00:00 2001 From: sboursen-scinote Date: Wed, 17 May 2023 18:19:31 +0200 Subject: [PATCH 2/4] Fix the search_select outline [SCI-8252] --- .../stylesheets/repository/assign_items_to_task_modal.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/assets/stylesheets/repository/assign_items_to_task_modal.scss b/app/assets/stylesheets/repository/assign_items_to_task_modal.scss index dedd7be94..9fdcbdd94 100644 --- a/app/assets/stylesheets/repository/assign_items_to_task_modal.scss +++ b/app/assets/stylesheets/repository/assign_items_to_task_modal.scss @@ -22,7 +22,12 @@ display: flex; flex-direction: column; row-gap: .25rem; + } + .sn-select__search-input:focus { + border: none; + outline: none; + box-shadow: none; } label { From 9662eb72640178edbd34f29d07e1f2f1093de203 Mon Sep 17 00:00:00 2001 From: sboursen-scinote Date: Wed, 17 May 2023 19:01:16 +0200 Subject: [PATCH 3/4] Improve the logic of the select and select_search components > There is no need for the two components to hold their `value` state. It can be propagated from the component that uses them. This will help 'clear' the search when modification is finished. --- .../vue/assign_items_to_tasks_modal/container.vue | 3 +++ app/javascript/vue/shared/select.vue | 5 ++--- app/javascript/vue/shared/select_search.vue | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/javascript/vue/assign_items_to_tasks_modal/container.vue b/app/javascript/vue/assign_items_to_tasks_modal/container.vue index b0f30b4f9..feb53a36f 100644 --- a/app/javascript/vue/assign_items_to_tasks_modal/container.vue +++ b/app/javascript/vue/assign_items_to_tasks_modal/container.vue @@ -39,6 +39,7 @@ [] }, initialValue: { type: [String, Number] }, placeholder: { type: String }, @@ -25,7 +26,6 @@ }, data() { return { - value: null, isOpen: false, optionPositionStyle: '' } @@ -66,8 +66,7 @@ } }, setValue(value) { - this.value = value; - this.$emit('change', this.value); + this.$emit('change', value); }, updateOptionPosition() { const container = this.$refs.container; diff --git a/app/javascript/vue/shared/select_search.vue b/app/javascript/vue/shared/select_search.vue index 88249ef97..7bdb79b55 100644 --- a/app/javascript/vue/shared/select_search.vue +++ b/app/javascript/vue/shared/select_search.vue @@ -1,5 +1,5 @@