feat(ui): new WorkflowList UI using antd

This commit is contained in:
Fu Diwei
2024-12-04 21:55:52 +08:00
parent 668f6ee36f
commit c522196029
28 changed files with 838 additions and 342 deletions

View File

@@ -1,77 +1,58 @@
import { Workflow, WorkflowNode, WorkflowRunLog } from "@/domain/workflow";
import { getPb } from "./api";
import { RecordListOptions } from "pocketbase";
import { type RecordListOptions } from "pocketbase";
import { type Workflow, type WorkflowNode, type WorkflowRunLog } from "@/domain/workflow";
import { getPocketBase } from "./pocketbase";
export type WorkflowListReq = {
page?: number;
perPage?: number;
enabled?: boolean;
};
export const list = async (req: WorkflowListReq) => {
const page = req.page || 1;
const perPage = req.perPage || 10;
const options: RecordListOptions = { sort: "-created" };
if (req.enabled != null) {
options.filter = getPocketBase().filter("enabled={:enabled}", { enabled: req.enabled });
}
return await getPocketBase().collection("workflow").getList<Workflow>(page, perPage, options);
};
export const get = async (id: string) => {
const response = await getPb().collection("workflow").getOne<Workflow>(id);
return response;
return await getPocketBase().collection("workflow").getOne<Workflow>(id);
};
export const save = async (data: Record<string, string | boolean | WorkflowNode>) => {
if (data.id) {
return await getPb()
return await getPocketBase()
.collection("workflow")
.update<Workflow>(data.id as string, data);
}
return await getPb().collection("workflow").create<Workflow>(data);
};
export type WorkflowListReq = {
page: number;
perPage?: number;
enabled?: boolean;
};
export const list = async (req: WorkflowListReq) => {
let page = 1;
if (req.page) {
page = req.page;
}
let perPage = 10;
if (req.perPage) {
perPage = req.perPage;
}
const options: RecordListOptions = {
sort: "-created",
};
if (req.enabled !== undefined) {
options.filter = getPb().filter("enabled={:enabled}", {
enabled: req.enabled,
});
}
const response = await getPb().collection("workflow").getList<Workflow>(page, perPage, options);
return response;
return await getPocketBase().collection("workflow").create<Workflow>(data);
};
export const remove = async (id: string) => {
return await getPb().collection("workflow").delete(id);
return await getPocketBase().collection("workflow").delete(id);
};
type WorkflowLogsReq = {
id: string;
page: number;
page?: number;
perPage?: number;
};
export const logs = async (req: WorkflowLogsReq) => {
let page = 1;
if (req.page) {
page = req.page;
}
let perPage = 10;
if (req.perPage) {
perPage = req.perPage;
}
const page = req.page || 1;
const perPage = req.perPage || 10;
const response = await getPb()
return await getPocketBase()
.collection("workflow_run_log")
.getList<WorkflowRunLog>(page, perPage, {
sort: "-created",
filter: getPb().filter("workflow={:workflowId}", { workflowId: req.id }),
filter: getPocketBase().filter("workflow={:workflowId}", { workflowId: req.id }),
});
return response;
};