added chrom
This commit is contained in:
@@ -11,17 +11,12 @@ interface ParticipantModalProps {
|
||||
ref: RefObject<HTMLDialogElement | null>;
|
||||
}
|
||||
|
||||
export const ParticipantModal = ({
|
||||
participantForm,
|
||||
ref,
|
||||
}: ParticipantModalProps) => {
|
||||
export const ParticipantModal = ({ participantForm, ref }: ParticipantModalProps) => {
|
||||
return (
|
||||
<dialog className="modal" ref={ref}>
|
||||
<div className="modal-box">
|
||||
<form method="dialog">
|
||||
<button className="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">
|
||||
✕
|
||||
</button>
|
||||
<button className="btn btn-sm btn-circle btn-ghost absolute right-2 top-2">✕</button>
|
||||
</form>
|
||||
<h1 className="text-2xl">Teilnehmer bearbeiten</h1>
|
||||
<form
|
||||
@@ -35,21 +30,18 @@ export const ParticipantModal = ({
|
||||
})}
|
||||
className="space-y-1"
|
||||
>
|
||||
<Switch
|
||||
form={participantForm}
|
||||
name="attended"
|
||||
label="Termin Teilgenommen"
|
||||
/>
|
||||
<Switch
|
||||
form={participantForm}
|
||||
name="appointmentCancelled"
|
||||
label="Termin abgesagt"
|
||||
/>
|
||||
<Switch form={participantForm} name="attended" label="Termin Teilgenommen" />
|
||||
<Switch form={participantForm} name="appointmentCancelled" label="Termin abgesagt" />
|
||||
<Switch
|
||||
form={participantForm}
|
||||
name="finisherMoodleCurseCompleted"
|
||||
label="Abschluss-Moodle-Kurs abgeschlossen"
|
||||
/>
|
||||
<Switch
|
||||
form={participantForm}
|
||||
name="inscriptionWorkflowCompleted"
|
||||
label="Anmeldeprozess abgeschlossen (Discord-rollen vergeben)"
|
||||
/>
|
||||
<Switch
|
||||
form={participantForm}
|
||||
name="completetionWorkflowFinished"
|
||||
@@ -60,18 +52,12 @@ export const ParticipantModal = ({
|
||||
|
||||
<p className="w-full flex justify-between">
|
||||
<span>Termin ausgewählt am</span>
|
||||
<span>
|
||||
{new Date(
|
||||
participantForm.watch("enscriptionDate"),
|
||||
).toLocaleString()}
|
||||
</span>
|
||||
<span>{new Date(participantForm.watch("enscriptionDate")).toLocaleString()}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col">
|
||||
<h3 className="text-xl">Verlauf</h3>
|
||||
{(
|
||||
participantForm.watch("statusLog") as unknown as ParticipantLog[]
|
||||
)?.map((s) => (
|
||||
{(participantForm.watch("statusLog") as unknown as ParticipantLog[])?.map((s) => (
|
||||
<div className="flex justify-between" key={(s as any).timestamp}>
|
||||
<p>{s.event}</p>
|
||||
<p>{s.user}</p>
|
||||
|
||||
@@ -161,13 +161,6 @@ export const ConnectionHistory: React.FC<{ user: User }> = ({ user }: { user: Us
|
||||
<div className="flex-1">
|
||||
<h2 className="card-title">
|
||||
<MixerHorizontalIcon className="w-5 h-5" /> Dispo-Verbindungs Historie
|
||||
<button
|
||||
onClick={() => {
|
||||
dispoTableRef.current?.refresh();
|
||||
}}
|
||||
>
|
||||
refresh
|
||||
</button>
|
||||
</h2>
|
||||
<PaginatedTable
|
||||
ref={dispoTableRef}
|
||||
|
||||
@@ -90,6 +90,13 @@ export default function SortableTable<TData>({
|
||||
))}
|
||||
</tr>
|
||||
))}
|
||||
{table.getRowModel().rows.length === 0 && (
|
||||
<tr>
|
||||
<td colSpan={columns.length} className="text-center font-bold text-sm text-gray-500">
|
||||
Keine Daten gefunden
|
||||
</td>
|
||||
</tr>
|
||||
)}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import axios, { AxiosError } from "axios";
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { DiscordAccount, prisma, PrismaClient } from "@repo/db";
|
||||
import { DISCORD_ROLES, DiscordAccount, getPublicUser, prisma, PrismaClient } from "@repo/db";
|
||||
import { getServerSession } from "../auth/[...nextauth]/auth";
|
||||
import { addRolesToMember, removeRolesFromMember, renameMember } from "../../../helper/discord";
|
||||
|
||||
export const GET = async (req: NextRequest) => {
|
||||
const session = await getServerSession();
|
||||
@@ -67,8 +68,25 @@ export const GET = async (req: NextRequest) => {
|
||||
update: discordObject, // Updates if found
|
||||
create: discordObject, // Creates if not found
|
||||
});
|
||||
const user = await prisma.user.findUnique({
|
||||
where: { id: session.user.id },
|
||||
});
|
||||
if (user) {
|
||||
await renameMember(discordUser.id, `${getPublicUser(user).fullName} - ${user?.publicId}`);
|
||||
}
|
||||
if (user?.permissions.includes("PILOT")) {
|
||||
await addRolesToMember(discordUser.id, [DISCORD_ROLES.PILOT]);
|
||||
} else {
|
||||
await removeRolesFromMember(discordUser.id, [DISCORD_ROLES.PILOT]);
|
||||
}
|
||||
if (user?.permissions.includes("DISPO")) {
|
||||
await addRolesToMember(discordUser.id, [DISCORD_ROLES.ONLINE_DISPATCHER]);
|
||||
} else {
|
||||
await removeRolesFromMember(discordUser.id, [DISCORD_ROLES.PILOT]);
|
||||
}
|
||||
|
||||
return NextResponse.redirect(`${process.env.NEXT_PUBLIC_HUB_URL}/settings`);
|
||||
} catch (error: any) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return NextResponse.json(
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user