From 93e831d2cbf7b4f2c600f33ca23748b9c4428c4c Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Mon, 21 Jun 2021 13:10:18 -0400 Subject: [PATCH] Upgrade "move to" to "copy to" --- app/src/lang/translations/en-US.yaml | 3 ++ app/src/modules/insights/components/panel.vue | 2 +- app/src/modules/insights/routes/dashboard.vue | 34 ++++++++++++------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/app/src/lang/translations/en-US.yaml b/app/src/lang/translations/en-US.yaml index 24305bec4e..a54f7d3568 100644 --- a/app/src/lang/translations/en-US.yaml +++ b/app/src/lang/translations/en-US.yaml @@ -380,6 +380,9 @@ select_a_collection: Select a Collection select_a_field: Select a Field active: Active move_to: Move To... +copy: Copy +copy_to: Copy To... +no_other_dashboards_copy: You don't have any other Dashboards yet. users: Users activity: Activity webhooks: Webhooks diff --git a/app/src/modules/insights/components/panel.vue b/app/src/modules/insights/components/panel.vue index eba4d39260..11f6ba32a9 100644 --- a/app/src/modules/insights/components/panel.vue +++ b/app/src/modules/insights/components/panel.vue @@ -40,7 +40,7 @@ - {{ t('move_to') }} + {{ t('copy_to') }} diff --git a/app/src/modules/insights/routes/dashboard.vue b/app/src/modules/insights/routes/dashboard.vue index b1192af643..b5e493ea87 100644 --- a/app/src/modules/insights/routes/dashboard.vue +++ b/app/src/modules/insights/routes/dashboard.vue @@ -78,10 +78,13 @@ - {{ t('move_to') }} + {{ t('copy_to') }} - + + {{ t('no_other_dashboards_copy') }} + + @@ -89,7 +92,7 @@ {{ t('cancel') }} - {{ t('move') }} + {{ t('copy') }} @@ -138,7 +141,7 @@ export default defineComponent({ const saving = ref(false); const movePanelLoading = ref(false); - const movePanelTo = ref(props.primaryKey); + const movePanelTo = ref(insightsStore.dashboards.find((dashboard) => dashboard.id !== props.primaryKey)?.id); const movePanelID = ref(); @@ -149,7 +152,7 @@ export default defineComponent({ ); const movePanelChoices = computed(() => { - return insightsStore.dashboards; + return insightsStore.dashboards.filter((dashboard) => dashboard.id !== props.primaryKey); }); const stagedPanels = ref[]>([]); @@ -278,7 +281,7 @@ export default defineComponent({ async function saveChanges() { if (!currentDashboard.value) return; - if (stagedPanels.value.length === 0) { + if (stagedPanels.value.length === 0 && panelsToBeDeleted.value.length === 0) { editMode.value = false; return; } @@ -295,11 +298,15 @@ export default defineComponent({ ]; try { - await api.patch(`/dashboards/${props.primaryKey}`, { - panels: updatedPanels, - }); + if (stagedPanels.value.length > 0) { + await api.patch(`/dashboards/${props.primaryKey}`, { + panels: updatedPanels, + }); + } - await api.delete(`/panels`, { data: panelsToBeDeleted.value }); + if (panelsToBeDeleted.value.length > 0) { + await api.delete(`/panels`, { data: panelsToBeDeleted.value }); + } await insightsStore.hydrate(); @@ -343,13 +350,14 @@ export default defineComponent({ async function movePanel() { movePanelLoading.value = true; + const currentPanel = panels.value.find((panel) => panel.id === movePanelID.value); + try { - await api.patch(`/panels/${movePanelID.value}`, { + await api.post(`/panels`, { + ...omit(currentPanel, ['id']), dashboard: movePanelTo.value, }); - stagedPanels.value = stagedPanels.value.filter((panel) => panel.id !== movePanelID.value); - await insightsStore.hydrate(); movePanelID.value = null;