From 6f7f4a5d2cbdbc461968447cdefcbbac7391dcf7 Mon Sep 17 00:00:00 2001 From: Neha P <144308844+neha00290@users.noreply.github.com> Date: Wed, 4 Nov 2026 08:37:36 +0000 Subject: [PATCH] fix(dashboards): lock the import folder while importing and keep the home pin's folder current after a move (#16295) Co-authored-by: ktx-vaidehi Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com> --- .../dashboards/SelectFolderDropdown.spec.ts | 21 ++ .../dashboards/SelectFolderDropdown.vue | 6 + web/src/test/unit/HomeView.spec.ts | 188 +++++++++++++++--- web/src/test/unit/PinnedDashboardTab.spec.ts | 4 +- web/src/views/Dashboards/Dashboards.spec.ts | 43 ++++ web/src/views/Dashboards/Dashboards.vue | 13 +- .../views/Dashboards/ImportDashboard.spec.ts | 91 +++++++++ web/src/views/Dashboards/ImportDashboard.vue | 17 +- web/src/views/HomeView.vue | 79 ++++++-- web/src/views/PinnedDashboardTab.vue | 6 +- 10 files changed, 418 insertions(+), 50 deletions(-) diff --git a/web/src/components/dashboards/SelectFolderDropdown.spec.ts b/web/src/components/dashboards/SelectFolderDropdown.spec.ts index 3717026c9b..a5eb995f49 100644 --- a/web/src/components/dashboards/SelectFolderDropdown.spec.ts +++ b/web/src/components/dashboards/SelectFolderDropdown.spec.ts @@ -16,6 +16,7 @@ import { describe, it, expect, beforeEach, vi } from "vitest"; import { mount } from "@vue/test-utils"; import SelectFolderDropdown from "./SelectFolderDropdown.vue"; +import OSelect from "@/lib/forms/Select/OSelect.vue"; import i18n from "@/locales"; import { createStore } from "vuex"; import { createRouter, createWebHistory } from "vue-router"; @@ -341,6 +342,26 @@ describe("SelectFolderDropdown", () => { }); }); + describe("disabled prop", () => { + it("locks the folder select and the new-folder button when disabled", () => { + const wrapper = createWrapper({ disabled: true }, store, router); + + expect(wrapper.findComponent(OSelect).props("disabled")).toBe(true); + expect( + wrapper.find('[data-test="dashboard-folder-move-new-add"]').attributes("disabled"), + ).toBeDefined(); + }); + + it("leaves both controls enabled by default", () => { + const wrapper = createWrapper({}, store, router); + + expect(wrapper.findComponent(OSelect).props("disabled")).toBe(false); + expect( + wrapper.find('[data-test="dashboard-folder-move-new-add"]').attributes("disabled"), + ).toBeUndefined(); + }); + }); + describe("Reactive folder list", () => { it("should refresh selectedFolder when the store folders list changes and current id no longer exists", async () => { const wrapper = createWrapper({ activeFolderId: "folder1" }, store, router); diff --git a/web/src/components/dashboards/SelectFolderDropdown.vue b/web/src/components/dashboards/SelectFolderDropdown.vue index 3bd442a7a0..99059a241a 100644 --- a/web/src/components/dashboards/SelectFolderDropdown.vue +++ b/web/src/components/dashboards/SelectFolderDropdown.vue @@ -24,6 +24,7 @@ along with this program. If not, see . :options="folderOptions" data-test="index-dropdown-stream_type" labelKey="label" + :disabled="disabled" class="flex-1" >