From 681e2db9ec8757a6bc8311a760de9878dacb130e Mon Sep 17 00:00:00 2001 From: Jon Ayers Date: Fri, 30 Jun 2023 20:26:38 -0500 Subject: [PATCH] Revert "fix: add front-end fixes for minor workspace action bugs (#8252)" (#8286) This reverts commit c569528fb7f300780f8cf2a4fa381ccc7f10dee0. --- .../ImpendingDeletionBanner.tsx | 9 ++------- site/src/components/WorkspaceDeletion/utils.ts | 2 +- site/src/i18n/en/templateSettingsPage.json | 8 +++----- .../InactivityDialog.stories.tsx | 2 +- .../TemplateScheduleForm/InactivityDialog.tsx | 13 +++++-------- .../TemplateScheduleForm.tsx | 16 +++------------- .../useWorkspacesToBeDeleted.ts | 5 ++--- .../src/pages/WorkspacesPage/WorkspacesPage.tsx | 10 +--------- .../pages/WorkspacesPage/WorkspacesPageView.tsx | 12 ++++-------- site/src/pages/WorkspacesPage/data.ts | 17 ----------------- 10 files changed, 22 insertions(+), 72 deletions(-) diff --git a/site/src/components/WorkspaceDeletion/ImpendingDeletionBanner.tsx b/site/src/components/WorkspaceDeletion/ImpendingDeletionBanner.tsx index 75460ef1d2..d793c16d5d 100644 --- a/site/src/components/WorkspaceDeletion/ImpendingDeletionBanner.tsx +++ b/site/src/components/WorkspaceDeletion/ImpendingDeletionBanner.tsx @@ -1,8 +1,5 @@ import { Workspace } from "api/typesGenerated" -import { - displayImpendingDeletion, - IMPENDING_DELETION_DISPLAY_THRESHOLD, -} from "./utils" +import { displayImpendingDeletion } from "./utils" import { useDashboard } from "components/Dashboard/DashboardProvider" import { Alert } from "components/Alert/Alert" import { formatDistanceToNow, differenceInDays, add, format } from "date-fns" @@ -51,9 +48,7 @@ export const ImpendingDeletionBanner = ({ new Date(), ) - const plusFourteen = add(new Date(), { - days: IMPENDING_DELETION_DISPLAY_THRESHOLD, - }) + const plusFourteen = add(new Date(), { days: 14 }) return ( null, isInactivityDialogOpen: true, setIsInactivityDialogOpen: () => null, - numberWorkspacesToBeDeletedToday: 2, + workspacesToBeDeletedToday: 2, }, } diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/InactivityDialog.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/InactivityDialog.tsx index 192a0dd4c5..3f5ec252b0 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/InactivityDialog.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/InactivityDialog.tsx @@ -1,19 +1,16 @@ import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog" -import { useTranslation } from "react-i18next" export const InactivityDialog = ({ submitValues, isInactivityDialogOpen, setIsInactivityDialogOpen, - numberWorkspacesToBeDeletedToday, + workspacesToBeDeletedToday, }: { submitValues: () => void isInactivityDialogOpen: boolean setIsInactivityDialogOpen: (arg0: boolean) => void - numberWorkspacesToBeDeletedToday: number + workspacesToBeDeletedToday: number }) => { - const { t } = useTranslation("templateSettingsPage") - return ( setIsInactivityDialogOpen(false)} title="Delete inactive workspaces" confirmText="Delete Workspaces" - description={t("inactivityDialogDescription", { - count: numberWorkspacesToBeDeletedToday, - })} + description={`There are ${ + workspacesToBeDeletedToday ? workspacesToBeDeletedToday : "" + } workspaces that already match this filter and will be deleted upon form submission. Are you sure you want to proceed?`} /> ) } diff --git a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/TemplateScheduleForm.tsx b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/TemplateScheduleForm.tsx index 7c382fe9b9..5a0a4f819e 100644 --- a/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/TemplateScheduleForm.tsx +++ b/site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/TemplateScheduleForm.tsx @@ -82,7 +82,7 @@ export const TemplateScheduleForm: FC = ({ validationSchema, onSubmit: () => { if ( - form.values.locked_cleanup_enabled && + form.values.inactivity_cleanup_enabled && workspacesToBeDeletedToday && workspacesToBeDeletedToday.length > 0 ) { @@ -100,10 +100,7 @@ export const TemplateScheduleForm: FC = ({ const { t } = useTranslation("templateSettingsPage") const styles = useStyles() - const workspacesToBeDeletedToday = useWorkspacesToBeDeleted( - form.values, - template.name, - ) + const workspacesToBeDeletedToday = useWorkspacesToBeDeleted(form.values) const [isInactivityDialogOpen, setIsInactivityDialogOpen] = useState(false) @@ -308,7 +305,6 @@ export const TemplateScheduleForm: FC = ({ onChange={handleToggleFailureCleanup} /> } - disabled={isSubmitting} label="Enable Failure Cleanup" /> = ({ onChange={handleToggleInactivityCleanup} /> } - disabled={isSubmitting} label="Enable Inactivity Cleanup" /> = ({ onChange={handleToggleLockedCleanup} /> } - disabled={ - isSubmitting || !form.values.inactivity_cleanup_enabled - } label="Enable Locked Cleanup" /> = ({ submitValues={submitValues} isInactivityDialogOpen={isInactivityDialogOpen} setIsInactivityDialogOpen={setIsInactivityDialogOpen} - numberWorkspacesToBeDeletedToday={ - workspacesToBeDeletedToday?.length ?? 0 - } + workspacesToBeDeletedToday={workspacesToBeDeletedToday?.length ?? 0} /> { const { data: workspacesData } = useQuery({ queryKey: ["workspaces"], - queryFn: () => getWorkspaces({ q: `template:${templateName}` }), - enabled: formValues.locked_cleanup_enabled, + queryFn: () => getWorkspaces({}), + enabled: formValues.inactivity_cleanup_enabled, }) return workspacesData?.workspaces?.filter((workspace: Workspace) => { const isInactive = inactiveStatuses.includes(workspace.latest_build.status) diff --git a/site/src/pages/WorkspacesPage/WorkspacesPage.tsx b/site/src/pages/WorkspacesPage/WorkspacesPage.tsx index 93bb9195fb..440fa1c8fe 100644 --- a/site/src/pages/WorkspacesPage/WorkspacesPage.tsx +++ b/site/src/pages/WorkspacesPage/WorkspacesPage.tsx @@ -2,11 +2,7 @@ import { usePagination } from "hooks/usePagination" import { FC } from "react" import { Helmet } from "react-helmet-async" import { pageTitle } from "utils/page" -import { - useWorkspacesData, - useWorkspaceUpdate, - useWorkspacesWithImpendingDeletions, -} from "./data" +import { useWorkspacesData, useWorkspaceUpdate } from "./data" import { WorkspacesPageView } from "./WorkspacesPageView" import { useOrganizationId, usePermissions } from "hooks" import { useTemplateFilterMenu, useStatusFilterMenu } from "./filter/menus" @@ -33,9 +29,6 @@ const WorkspacesPage: FC = () => { query: filter.query, }) const updateWorkspace = useWorkspaceUpdate(queryKey) - const { data: workspacesWithImpendingDeletions } = - useWorkspacesWithImpendingDeletions() - const permissions = usePermissions() const canFilterByUser = permissions.viewDeploymentValues const userMenu = useUserFilterMenu({ @@ -64,7 +57,6 @@ const WorkspacesPage: FC = () => { page: number @@ -46,7 +45,6 @@ export const WorkspacesPageView: FC< React.PropsWithChildren > = ({ workspaces, - workspacesWithDeletions, error, limit, count, @@ -57,9 +55,9 @@ export const WorkspacesPageView: FC< }) => { const { saveLocal, getLocal } = useLocalStorage() - const workspaceIdsWithImpendingDeletions = workspacesWithDeletions?.map( - (workspace) => workspace.id, - ) + const workspaceIdsWithImpendingDeletions = workspaces + ?.filter((workspace) => workspace.deleting_at) + .map((workspace) => workspace.id) /** * Returns a boolean indicating if there are workspaces that have been @@ -107,9 +105,7 @@ export const WorkspacesPageView: FC< {/* determines its own visibility */} workspace.deleting_at, - )} + workspace={workspaces?.find((workspace) => workspace.deleting_at)} shouldRedisplayBanner={isNewWorkspacesImpendingDeletion()} onDismiss={() => saveLocal( diff --git a/site/src/pages/WorkspacesPage/data.ts b/site/src/pages/WorkspacesPage/data.ts index c681576c04..e3d71ab808 100644 --- a/site/src/pages/WorkspacesPage/data.ts +++ b/site/src/pages/WorkspacesPage/data.ts @@ -14,8 +14,6 @@ import { import { displayError } from "components/GlobalSnackbar/utils" import { useState } from "react" import { useTranslation } from "react-i18next" -import { add, format } from "date-fns" -import { IMPENDING_DELETION_DISPLAY_THRESHOLD } from "components/WorkspaceDeletion/utils" type UseWorkspacesDataParams = { page: number @@ -81,21 +79,6 @@ export const useWorkspaceUpdate = (queryKey: QueryKey) => { }) } -// Returns workspace that will be deleted within 14 days. -// This query is used for the ImpendingDeletionBanner -export const useWorkspacesWithImpendingDeletions = () => { - return useQuery({ - queryKey: ["workspacesWithImpendingDeletions"], - queryFn: () => - getWorkspaces({ - q: `deleting_by:"${format( - add(new Date(), { days: IMPENDING_DELETION_DISPLAY_THRESHOLD }), - "yyyy-MM-dd", - )}"`, - }), - }) -} - const assignLatestBuild = ( oldResponse: WorkspacesResponse, build: WorkspaceBuild,