feat(ui): optimize table UI

This commit is contained in:
Fu Diwei
2024-12-08 11:55:30 +08:00
parent 4e0134b70a
commit 5c6be439e8
14 changed files with 84 additions and 143 deletions

View File

@@ -10,14 +10,15 @@ export const list = async () => {
});
};
export const save = async (data: Access) => {
if (data.id) {
return await getPocketBase().collection("access").update(data.id, data);
export const save = async (record: Access) => {
if (record.id) {
return await getPocketBase().collection("access").update(record.id, record);
}
return await getPocketBase().collection("access").create(data);
return await getPocketBase().collection("access").create(record);
};
export const remove = async (data: Access) => {
data.deleted = moment.utc().format("YYYY-MM-DD HH:mm:ss");
return await getPocketBase().collection("access").update(data.id, data);
export const remove = async (record: Access) => {
record.deleted = moment.utc().format("YYYY-MM-DD HH:mm:ss");
return await getPocketBase().collection("access").update(record.id, record);
};

View File

@@ -1,25 +0,0 @@
import { Deployment, DeploymentListReq } from "@/domain/deployment";
import { getPocketBase } from "./pocketbase";
export const list = async (req: DeploymentListReq) => {
let page = 1;
if (req.page) {
page = req.page;
}
let perPage = 50;
if (req.perPage) {
perPage = req.perPage;
}
let filter = "domain!=null";
if (req.domain) {
filter = `domain="${req.domain}"`;
}
return await getPocketBase().collection("deployments").getList<Deployment>(page, perPage, {
filter: filter,
sort: "-deployedAt",
expand: "domain",
});
};

View File

@@ -1,80 +0,0 @@
import { getTimeAfter } from "@/lib/time";
import { Domain } from "@/domain/domain";
import { getPocketBase } from "./pocketbase";
type DomainListReq = {
domain?: string;
page?: number;
perPage?: number;
state?: string;
};
export const list = async (req: DomainListReq) => {
const pb = getPocketBase();
let page = 1;
if (req.page) {
page = req.page;
}
let perPage = 2;
if (req.perPage) {
perPage = req.perPage;
}
let filter = "";
if (req.state === "enabled") {
filter = "enabled=true";
} else if (req.state === "disabled") {
filter = "enabled=false";
} else if (req.state === "expired") {
filter = pb.filter("expiredAt<{:expiredAt}", {
expiredAt: getTimeAfter(15),
});
}
const response = pb.collection("domains").getList<Domain>(page, perPage, {
sort: "-created",
expand: "lastDeployment",
filter: filter,
});
return response;
};
export const get = async (id: string) => {
const response = await getPocketBase().collection("domains").getOne<Domain>(id);
return response;
};
export const save = async (data: Domain) => {
if (data.id) {
return await getPocketBase().collection("domains").update<Domain>(data.id, data);
}
return await getPocketBase().collection("domains").create<Domain>(data);
};
export const remove = async (id: string) => {
return await getPocketBase().collection("domains").delete(id);
};
type Callback = (data: Domain) => void;
export const subscribeId = (id: string, callback: Callback) => {
return getPocketBase()
.collection("domains")
.subscribe<Domain>(
id,
(e) => {
if (e.action === "update") {
callback(e.record);
}
},
{
expand: "lastDeployment",
}
);
};
export const unsubscribeId = (id: string) => {
getPocketBase().collection("domains").unsubscribe(id);
};

View File

@@ -27,18 +27,18 @@ export const get = async (id: string) => {
return await getPocketBase().collection("workflow").getOne<Workflow>(id);
};
export const save = async (data: Record<string, string | boolean | WorkflowNode>) => {
if (data.id) {
export const save = async (record: Record<string, string | boolean | WorkflowNode>) => {
if (record.id) {
return await getPocketBase()
.collection("workflow")
.update<Workflow>(data.id as string, data);
.update<Workflow>(record.id as string, record);
}
return await getPocketBase().collection("workflow").create<Workflow>(data);
return await getPocketBase().collection("workflow").create<Workflow>(record);
};
export const remove = async (workflow: Workflow) => {
return await getPocketBase().collection("workflow").delete(workflow.id);
export const remove = async (record: Workflow) => {
return await getPocketBase().collection("workflow").delete(record.id);
};
type WorkflowLogsReq = {