feat(web): options to disable machine

This commit is contained in:
BennyKok
2023-12-21 13:39:36 +08:00
parent eda922a5e3
commit 61d3e2f65a
10 changed files with 744 additions and 55 deletions
+36 -11
View File
@@ -11,6 +11,7 @@ import {
FormMessage,
Form,
} from "./ui/form";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Checkbox } from "@/components/ui/checkbox";
import {
@@ -38,7 +39,13 @@ import {
TableHeader,
TableRow,
} from "@/components/ui/table";
import { addMachine, deleteMachine } from "@/server/curdMachine";
import type { MachineType } from "@/db/schema";
import {
addMachine,
deleteMachine,
disableMachine,
enableMachine,
} from "@/server/curdMachine";
import { zodResolver } from "@hookform/resolvers/zod";
import type {
ColumnDef,
@@ -59,12 +66,7 @@ import * as React from "react";
import { useForm } from "react-hook-form";
import { z } from "zod";
export type Machine = {
id: string;
name: string;
endpoint: string;
date: Date;
};
export type Machine = MachineType;
export const columns: ColumnDef<Machine>[] = [
{
@@ -106,7 +108,12 @@ export const columns: ColumnDef<Machine>[] = [
cell: ({ row }) => {
return (
// <a className="hover:underline" href={`/${row.original.id}`}>
row.getValue("name")
<div className="flex flex-row gap-2">
<div>{row.getValue("name")}</div>
{row.original.disabled && (
<Badge variant="destructive">Disabled</Badge>
)}
</div>
// </a>
);
},
@@ -137,7 +144,7 @@ export const columns: ColumnDef<Machine>[] = [
},
cell: ({ row }) => (
<div className="capitalize text-right">
{getRelativeTime(row.original.date)}
{getRelativeTime(row.original.updated_at)}
</div>
),
},
@@ -146,7 +153,7 @@ export const columns: ColumnDef<Machine>[] = [
id: "actions",
enableHiding: false,
cell: ({ row }) => {
const workflow = row.original;
const machine = row.original;
return (
<DropdownMenu>
@@ -161,11 +168,29 @@ export const columns: ColumnDef<Machine>[] = [
<DropdownMenuItem
className="text-destructive"
onClick={async () => {
callServerPromise(deleteMachine(workflow.id));
callServerPromise(deleteMachine(machine.id));
}}
>
Delete Machine
</DropdownMenuItem>
{machine.disabled ? (
<DropdownMenuItem
onClick={async () => {
callServerPromise(enableMachine(machine.id));
}}
>
Enable Machine
</DropdownMenuItem>
) : (
<DropdownMenuItem
className="text-destructive"
onClick={async () => {
callServerPromise(disableMachine(machine.id));
}}
>
Disable Machine
</DropdownMenuItem>
)}
{/* <DropdownMenuSeparator />
<DropdownMenuItem>View customer</DropdownMenuItem>
<DropdownMenuItem>View payment details</DropdownMenuItem> */}