remove experimental features
This commit is contained in:
parent
3e53a12eb4
commit
1e63ad5b52
@ -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>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user