From 45889f322958a18fafe96b7ff0b7b260f819fff9 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Sat, 28 Feb 2026 10:40:24 -0500 Subject: [PATCH 01/14] Replace BPopover with custom GPopover component Add GPopover as a Bootstrap-Vue-free popover using @floating-ui/dom for positioning, following the same pattern as the existing GTooltip. Supports hover/click/manual triggers, programmatic show/hide via :show.sync, title and content via props or slots, placement mapping from BPopover strings to floating-ui equivalents, and boundary awareness via altBoundary. Migrated all 15 files that used BPopover, including dynamic component switching (FilterMenu, FormDataExtensions), manual trigger control (WorkflowAttributes best practice popovers), and click+blur triggers (SchemaOrg viewers). --- .../components/BaseComponents/GPopover.vue | 342 ++++++++++++++++++ .../common/CellStatusComponent.vue | 7 +- client/src/components/Common/FilterMenu.vue | 4 +- .../TemplateSummaryPopover.vue | 8 +- .../Elements/FormData/FormDataExtensions.vue | 6 +- .../CurrentHistory/PreferredStorePopover.vue | 6 +- .../SchemaOrg/OrganizationViewer.vue | 8 +- .../src/components/SchemaOrg/PersonViewer.vue | 8 +- client/src/components/Tool/ToolCard.vue | 7 +- .../src/components/Tool/ToolLinkPopover.vue | 5 +- .../ToolTargetPreferredObjectStorePopover.vue | 7 +- .../components/ToolsList/ToolsListCard.vue | 7 +- .../src/components/Workflow/Editor/Node.vue | 5 +- .../Workflow/Editor/WorkflowAttributes.vue | 18 +- ...kflowTargetPreferredObjectStorePopover.vue | 7 +- 15 files changed, 400 insertions(+), 45 deletions(-) create mode 100644 client/src/components/BaseComponents/GPopover.vue diff --git a/client/src/components/BaseComponents/GPopover.vue b/client/src/components/BaseComponents/GPopover.vue new file mode 100644 index 000000000000..0abae00505f4 --- /dev/null +++ b/client/src/components/BaseComponents/GPopover.vue @@ -0,0 +1,342 @@ + + + + + diff --git a/client/src/components/Collections/common/CellStatusComponent.vue b/client/src/components/Collections/common/CellStatusComponent.vue index 6e5acba93e0c..09ef74c41b7e 100644 --- a/client/src/components/Collections/common/CellStatusComponent.vue +++ b/client/src/components/Collections/common/CellStatusComponent.vue @@ -4,12 +4,13 @@ import { faCheck, faExclamationTriangle } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; import type { ICellRendererParams } from "ag-grid-community"; -import { BPopover } from "bootstrap-vue"; import { defineComponent } from "vue"; +import GPopover from "@/components/BaseComponents/GPopover.vue"; + export default defineComponent({ components: { - BPopover, + GPopover, FontAwesomeIcon, }, data() { @@ -59,7 +60,7 @@ export default defineComponent({ diff --git a/client/src/components/Common/FilterMenu.vue b/client/src/components/Common/FilterMenu.vue index df15bacdd3b1..b07bcf70541f 100644 --- a/client/src/components/Common/FilterMenu.vue +++ b/client/src/components/Common/FilterMenu.vue @@ -1,7 +1,6 @@ diff --git a/client/src/components/Form/Elements/FormData/FormDataExtensions.vue b/client/src/components/Form/Elements/FormData/FormDataExtensions.vue index 1a55e500dc54..f6e81473765f 100644 --- a/client/src/components/Form/Elements/FormData/FormDataExtensions.vue +++ b/client/src/components/Form/Elements/FormData/FormDataExtensions.vue @@ -1,13 +1,13 @@ From 2e88b4bd1e5b9febc911551372fbe428290252c9 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Mon, 25 May 2026 08:50:03 -0400 Subject: [PATCH 09/14] Migrate remaining BPopover call sites in StorageOperations and WorkflowExtractionMessages Catches up the sweep with files added on dev after the branch was cut -- mostly davelopez's StorageOperations batch plus a TODO in WorkflowExtractionMessages that was waiting on GPopover. Same drop-in swap as the others. Also broadens GPopover's TriggerType to accept the 'manual hover' combination BPopover supports (used by HistoryStorageOperationsIndicator for proactive auto-show with hover backup). --- client/src/components/BaseComponents/GPopover.vue | 4 ++-- client/src/components/Common/DatasetPopoverLink.vue | 6 +++--- .../HistoryStorageOperationsIndicator.vue | 7 ++++--- .../StorageOperationOutcomeProgress.vue | 8 +++++--- .../WorkflowExtraction/WorkflowExtractionMessages.vue | 9 ++++----- 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/client/src/components/BaseComponents/GPopover.vue b/client/src/components/BaseComponents/GPopover.vue index 02513144d894..f0ebcb33b812 100644 --- a/client/src/components/BaseComponents/GPopover.vue +++ b/client/src/components/BaseComponents/GPopover.vue @@ -29,7 +29,7 @@ import { } from "@floating-ui/dom"; import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue"; -type TriggerType = "hover" | "click" | "click blur" | "hover focus" | "manual" | "focus"; +type TriggerType = "hover" | "click" | "click blur" | "hover focus" | "manual" | "manual hover" | "focus"; const props = withDefaults( defineProps<{ @@ -228,7 +228,7 @@ const parsedTriggers = computed(() => { if (t.includes("blur")) { result.add("blur"); } - if (t === "manual") { + if (t.includes("manual")) { result.add("manual"); } return result; diff --git a/client/src/components/Common/DatasetPopoverLink.vue b/client/src/components/Common/DatasetPopoverLink.vue index 7c0b28dbfbbf..40a86db034df 100644 --- a/client/src/components/Common/DatasetPopoverLink.vue +++ b/client/src/components/Common/DatasetPopoverLink.vue @@ -1,11 +1,11 @@