remove experimental features

This commit is contained in:
Torben Haack 2024-10-09 13:46:57 +02:00
parent 3e53a12eb4
commit 1e63ad5b52

View File

@ -1,10 +1,5 @@
import { AbortReasonsBarChart } from "@/app/admin/charts/abort-reasons";
import { LoadFactorChart } from "@/app/admin/charts/load-factor";
import { PrintJobsDonut } from "@/app/admin/charts/printjobs-donut";
import { DataCard } from "@/components/data-card";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { db } from "@/server/db";
import type { Metadata } from "next"; import type { Metadata } from "next";
export const metadata: Metadata = { export const metadata: Metadata = {
@ -14,7 +9,7 @@ export const metadata: Metadata = {
export const dynamic = "force-dynamic"; export const dynamic = "force-dynamic";
export default async function AdminPage() { export default async function AdminPage() {
const allPrintJobs = await db.query.printJobs.findMany({ /*const allPrintJobs = await db.query.printJobs.findMany({
with: { with: {
printer: true, printer: true,
}, },
@ -32,7 +27,8 @@ export default async function AdminPage() {
const pendingPrintJobs = totalAmountOfPrintJobs - completedPrintJobs - abortedPrintJobs; const pendingPrintJobs = totalAmountOfPrintJobs - completedPrintJobs - abortedPrintJobs;
const abortedPrintJobsReasons = Object.entries( const abortedPrintJobsReasons = Object.entries(
allPrintJobs.reduce((accumulator: Record<string, number>, job) => { totalAmountOfPrintJobs > 0
? allPrintJobs.reduce((accumulator: Record<string, number>, job) => {
if (job.aborted && job.abortReason) { if (job.aborted && job.abortReason) {
if (!accumulator[job.abortReason]) { if (!accumulator[job.abortReason]) {
accumulator[job.abortReason] = 1; accumulator[job.abortReason] = 1;
@ -41,10 +37,11 @@ export default async function AdminPage() {
} }
} }
return accumulator; return accumulator;
}, {}), }, {})
: {},
).map(([name, count]) => ({ name, Anzahl: count })); ).map(([name, count]) => ({ name, Anzahl: count }));
const mostAbortedPrinter = allPrintJobs.reduce((prev, current) => (prev.aborted > current.aborted ? prev : current)); const mostAbortedPrinter = totalAmountOfPrintJobs > 0 ? allPrintJobs.reduce((prev, current) => (prev.aborted > current.aborted ? prev : current));
const mostUsedPrinter = allPrintJobs.reduce((prev, current) => const mostUsedPrinter = allPrintJobs.reduce((prev, current) =>
prev.durationInMinutes > current.durationInMinutes ? prev : current, prev.durationInMinutes > current.durationInMinutes ? prev : current,
@ -60,68 +57,66 @@ export default async function AdminPage() {
return endAt > now.getTime(); return endAt > now.getTime();
}); });
return !inUse; return !inUse;
}); });*/
return ( return (
<> <>
<Tabs defaultValue={"@general"} className="flex flex-col gap-4 items-start"> <Tabs defaultValue={"@general"} className="flex flex-col gap-4 items-start">
<TabsList className="bg-neutral-100 w-full py-6"> <TabsList className="bg-neutral-100 w-full py-6">
<TabsTrigger value="@general">Allgemein</TabsTrigger> <TabsTrigger value="@general">Allgemein</TabsTrigger>
{allPrinters.map((printer) => ( {/*allPrinters.map((printer) => (
<TabsTrigger key={printer.id} value={printer.id}> <TabsTrigger key={printer.id} value={printer.id}>
{printer.name} {printer.name}
</TabsTrigger> </TabsTrigger>
))} ))*/}
</TabsList> </TabsList>
<TabsContent value="@general" className="w-full"> <TabsContent value="@general" className="w-full">
<div className="flex flex-col lg:grid lg:grid-cols-2 gap-4"> <div className="flex flex-col lg:grid lg:grid-cols-2 gap-4">
<DataCard title="Drucker mit meisten Reservierungen" value={mostUsedPrinter.printer.name} icon="Printer" /> {/*<DataCard title="Drucker mit meisten Reservierungen" value={mostUsedPrinter.printer.name} icon="Printer" />
<DataCard title="Drucker mit meisten Abbrüchen" value={mostAbortedPrinter.printer.name} icon="Printer" /> <DataCard title="Drucker mit meisten Abbrüchen" value={mostAbortedPrinter.printer.name} icon="Printer" />*/}
<Card className="w-full"> <Card className="w-full">
<CardHeader> <CardHeader>
<CardTitle>Druckaufträge</CardTitle> <CardTitle>Druckaufträge</CardTitle>
<CardDescription>nach Status</CardDescription> <CardDescription>nach Status</CardDescription>
</CardHeader> </CardHeader>
<CardContent> <CardContent>
<PrintJobsDonut {/*<PrintJobsDonut
data={[ data={[
{ name: "Abgeschlossen", value: completedPrintJobs }, { name: "Abgeschlossen", value: completedPrintJobs },
{ name: "Abgebrochen", value: abortedPrintJobs }, { name: "Abgebrochen", value: abortedPrintJobs },
{ name: "Ausstehend", value: pendingPrintJobs }, { name: "Ausstehend", value: pendingPrintJobs },
]} ]}
/> />*/}
</CardContent> </CardContent>
</Card> </Card>
<Card className="w-full "> <Card className="w-full ">
<CardHeader> <CardHeader>
<CardTitle> <CardTitle>
Auslastung: <span>{((1 - freePrinters.length / allPrinters.length) * 100).toFixed(2)}%</span> {/* Auslastung: <span>{((1 - freePrinters.length / allPrinters.length) * 100).toFixed(2)}%</span> */}
</CardTitle> </CardTitle>
</CardHeader> </CardHeader>
<CardContent> <CardContent>
<LoadFactorChart {/*<LoadFactorChart
data={[ data={[
{ name: "Frei", value: freePrinters.length }, { name: "Frei", value: freePrinters.length },
{ name: "Belegt", value: allPrinters.length - freePrinters.length }, { name: "Belegt", value: allPrinters.length - freePrinters.length },
]} ]}
/> />*/}
</CardContent> </CardContent>
</Card> </Card>
<Card className="w-full col-span-2"> <Card className="w-full col-span-2">
<CardHeader> <CardHeader>
<CardTitle>Abgebrochene Druckaufträge nach Abbruchgrund</CardTitle> <CardTitle>Abgebrochene Druckaufträge nach Abbruchgrund</CardTitle>
</CardHeader> </CardHeader>
<CardContent> <CardContent>{/*<AbortReasonsBarChart data={abortedPrintJobsReasons} />*/}</CardContent>
<AbortReasonsBarChart data={abortedPrintJobsReasons} />
</CardContent>
</Card> </Card>
</div> </div>
</TabsContent> </TabsContent>
{allPrinters.map((printer) => ( {/*allPrinters.map((printer) => (
<TabsContent key={printer.id} value={printer.id}> <TabsContent key={printer.id} value={printer.id}>
{printer.description} {printer.description}
</TabsContent> </TabsContent>
))} ))*/}
</Tabs> </Tabs>
</> </>
); );