Minor refactors and fixes

This commit is contained in:
2024-06-27 11:19:05 +02:00
parent 161ef01d3b
commit a52a002b0f
9 changed files with 612 additions and 428 deletions
+67
View File
@@ -0,0 +1,67 @@
'use server'
cache: "no-store";
import { ReactNode, useEffect } from "react";
import PostTable, {
PostTableServerActions,
} from "@/components/client/admin/PostTable";
import {
deletePost,
getPostsWithBucketsAndProject,
GetPostsAttributes,
updatePost,
} from "@/app/lib/actions/entityManagement/postActions";
import { getProjects } from "@/app/lib/actions/entityManagement/projectActions";
import { Bucket, Project, Post, dbSync, Attachment } from "@/models";
import { handleActionResult } from "../../app/lib/actions/clientActionHandler";
type Props = {
children?: ReactNode;
};
async function getHeadings() {
let headings: string[] = [
"#",
"Title",
"Content",
"Project",
"CreatedAt",
"UpdatedAt",
];
return headings;
}
export default async function PostView(props: Props) {
const sync = await dbSync;
const headings = await getHeadings();
const actions: PostTableServerActions = {
deletePost: deletePost,
getPosts: getPostsWithBucketsAndProject,
getProjects: getProjects,
savePost: updatePost,
// uploadAttachment:tryCreateAttachment
};
const posts: GetPostsAttributes[] | undefined = handleActionResult(
await getPostsWithBucketsAndProject()
);
const projects = await Project.findAll().then((projects) =>
projects.map((e) => JSON.parse(JSON.stringify(e)))
);
return (
<div className="w-[100%] min-h-fit bg-gray-100 overflow-scroll">
<div className="w-[100%] m-auto">
<PostTable
posts={posts ? posts : []}
projects={projects}
headings={headings}
actions={actions}
></PostTable>
</div>
</div>
);
}
+64
View File
@@ -0,0 +1,64 @@
cache: 'no-store'
import { tryFetchPosts } from "@/app/api/post/route";
import { constructAPIUrl } from "@/util/Utils";
import { ReactNode, useEffect } from "react";
import EntityManagementTable from "../../components/client/EntityManagementTable";
import PostTable from "@/components/client/admin/PostTable";
import { deletePost, getPostsWithBucketsAndProject, updatePost } from "@/app/lib/actions/entityManagement/postActions";
import { getProjects } from "@/app/lib/actions/entityManagement/projectActions";
import { Bucket, Project, Post, dbSync, Attachment } from "@/models";
import { tryCreateAttachment } from "@/app/api/attachment/route";
import { Attributes } from '@sequelize/core';
import * as util from 'util'
type Props = {
children?:ReactNode
}
async function getHeadings(){
let headings:string[] = []
for (const key in Project.getAttributes())
{
headings.push(key)
}
return headings
}
export default async function ProjectView(props:Props){
const sync = await dbSync;
// const headings = [
// '#',
// 'Title',
// 'Content',
// 'Project',
// 'Date Created',
// 'Date Modified',
// 'Edit',
// 'Delete',
// ]
// const actions = {
// deletePost: deletePost,
// getPosts:getPostsWithBuckets,
// getProjects:getProjects,
// savePost:updatePost,
// // uploadAttachment:tryCreateAttachment
// };
const posts:Post[] = await Post.findAll({include: {model: Bucket, include: {model: Attachment}}}).then(posts=>posts.map((e)=>JSON.parse(JSON.stringify(e))));
const projects = await Project.findAll().then(projects=>projects.map((e)=>JSON.parse(JSON.stringify(e))));
const headings = await getHeadings();
return <>
<div className="w-[100%] min-h-fit bg-gray-100 overflow-scroll">
<div className="w-[100%] m-auto">
<EntityManagementTable entityName="Project" headings={headings}><></></EntityManagementTable>
{/* <PostTable data={posts}
projects={projects}
headings={headings}
actions={actions}>
</PostTable> */}
</div>
</div>
</>;
}
View File