From 777521a437aef528e5d074fbd62e0433e0ba0b0c Mon Sep 17 00:00:00 2001 From: Weves Date: Sat, 20 Jan 2024 19:12:32 -0800 Subject: [PATCH] Move delete to the right for consistency + disabled -> paused --- .../connector/[ccPairId]/DeletionButton.tsx | 2 +- .../[ccPairId]/ModifyStatusButtonCluster.tsx | 4 +- web/src/app/admin/personas/PersonaTable.tsx | 64 ++++++++++++------- web/src/components/Status.tsx | 2 +- .../connectors/table/ConnectorsTable.tsx | 4 +- web/src/lib/connector.ts | 4 +- 6 files changed, 48 insertions(+), 32 deletions(-) diff --git a/web/src/app/admin/connector/[ccPairId]/DeletionButton.tsx b/web/src/app/admin/connector/[ccPairId]/DeletionButton.tsx index 0014b6e49..8e15709bc 100644 --- a/web/src/app/admin/connector/[ccPairId]/DeletionButton.tsx +++ b/web/src/app/admin/connector/[ccPairId]/DeletionButton.tsx @@ -23,7 +23,7 @@ export function DeletionButton({ ccPair }: { ccPair: CCPairFullInfo }) { tooltip = "Click to delete"; } } else { - tooltip = "You must disable the connector before deleting it"; + tooltip = "You must pause the connector before deleting it"; } return ( diff --git a/web/src/app/admin/connector/[ccPairId]/ModifyStatusButtonCluster.tsx b/web/src/app/admin/connector/[ccPairId]/ModifyStatusButtonCluster.tsx index ef6faa4dd..83d6363f6 100644 --- a/web/src/app/admin/connector/[ccPairId]/ModifyStatusButtonCluster.tsx +++ b/web/src/app/admin/connector/[ccPairId]/ModifyStatusButtonCluster.tsx @@ -40,11 +40,11 @@ export function ModifyStatusButtonCluster({ ) } tooltip={ - "When disabled, the connectors documents will still" + + "When paused, the connectors documents will still" + " be visible. However, no new documents will be indexed." } > - Disable + Pause )} diff --git a/web/src/app/admin/personas/PersonaTable.tsx b/web/src/app/admin/personas/PersonaTable.tsx index 5cd35f167..a639296b3 100644 --- a/web/src/app/admin/personas/PersonaTable.tsx +++ b/web/src/app/admin/personas/PersonaTable.tsx @@ -1,34 +1,40 @@ "use client"; -import { Divider, Text } from "@tremor/react"; +import { Text } from "@tremor/react"; import { Persona } from "./interfaces"; -import { EditButton } from "@/components/EditButton"; import { useRouter } from "next/navigation"; import { CustomCheckbox } from "@/components/CustomCheckbox"; import { usePopup } from "@/components/admin/connectors/Popup"; import { useState } from "react"; import { UniqueIdentifier } from "@dnd-kit/core"; import { DraggableTable } from "@/components/table/DraggableTable"; -import { personaComparator } from "./lib"; +import { deletePersona, personaComparator } from "./lib"; +import { FiEdit } from "react-icons/fi"; +import { TrashIcon } from "@/components/icons/icons"; export function PersonasTable({ personas }: { personas: Persona[] }) { const router = useRouter(); const { popup, setPopup } = usePopup(); + const availablePersonaIds = new Set( + personas.map((persona) => persona.id.toString()) + ); const sortedPersonas = [...personas]; sortedPersonas.sort(personaComparator); - const [finalPersonas, setFinalPersonas] = useState( + const [finalPersonas, setFinalPersonas] = useState( sortedPersonas.map((persona) => persona.id.toString()) ); - const finalPersonaValues = finalPersonas.map((id) => { - return sortedPersonas.find( - (persona) => persona.id.toString() === id - ) as Persona; - }); + const finalPersonaValues = finalPersonas + .filter((id) => availablePersonaIds.has(id)) + .map((id) => { + return sortedPersonas.find( + (persona) => persona.id.toString() === id + ) as Persona; + }); const updatePersonaOrder = async (orderedPersonaIds: UniqueIdentifier[]) => { - setFinalPersonas(orderedPersonaIds); + setFinalPersonas(orderedPersonaIds.map((id) => id.toString())); const displayPriorityMap = new Map(); orderedPersonaIds.forEach((personaId, ind) => { @@ -64,17 +70,20 @@ export function PersonasTable({ personas }: { personas: Persona[] }) { { return { id: persona.id.toString(), cells: [ -

- {persona.name} -

, +
+ router.push(`/admin/personas/${persona.id}`)} + /> +

+ {persona.name} +

+
,

,

-
+
{!persona.default_persona ? ( - - router.push(`/admin/personas/${persona.id}`) - } - /> +
{ + const response = await deletePersona(persona.id); + if (response.ok) { + router.push(`/admin/personas?u=${Date.now()}`); + } else { + alert( + `Failed to delete persona - ${await response.text()}` + ); + } + }} + > + +
) : ( "-" )} diff --git a/web/src/components/Status.tsx b/web/src/components/Status.tsx index 9e5a6ca07..73cacaf15 100644 --- a/web/src/components/Status.tsx +++ b/web/src/components/Status.tsx @@ -86,7 +86,7 @@ export function CCPairStatus({ } else if (disabled) { badge = ( - Disabled + Paused ); } else if (status === "failed") { diff --git a/web/src/components/admin/connectors/table/ConnectorsTable.tsx b/web/src/components/admin/connectors/table/ConnectorsTable.tsx index e9b64bc36..1a84fdcd7 100644 --- a/web/src/components/admin/connectors/table/ConnectorsTable.tsx +++ b/web/src/components/admin/connectors/table/ConnectorsTable.tsx @@ -46,7 +46,7 @@ export function StatusRow({ if (connector.disabled) { const deletionAttempt = connectorIndexingStatus.deletion_attempt; if (!deletionAttempt || deletionAttempt.status === "FAILURE") { - statusDisplay =
Disabled
; + statusDisplay =
Paused
; } else { statusDisplay =
Deleting...
; shouldDisplayDisabledToggle = false; @@ -65,7 +65,7 @@ export function StatusRow({ > {statusHovered && (
- {connector.disabled ? "Enable!" : "Disable!"} + {connector.disabled ? "Enable!" : "Pause!"}
)} {connector.disabled ? ( diff --git a/web/src/lib/connector.ts b/web/src/lib/connector.ts index 384e7980c..7c55e8c2a 100644 --- a/web/src/lib/connector.ts +++ b/web/src/lib/connector.ts @@ -47,9 +47,7 @@ export async function disableConnector( disabled: !connector.disabled, }).then(() => { setPopup({ - message: connector.disabled - ? "Enabled connector!" - : "Disabled connector!", + message: connector.disabled ? "Enabled connector!" : "Paused connector!", type: "success", }); setTimeout(() => {