Compare commits

..

5 Commits

47 changed files with 63 additions and 48 deletions

@ -16,7 +16,7 @@ jobs:
ref: ${{ github.head_ref }}
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
with:
CopyrightString: '/* Copyright (C) 2024 Manuel Bustillo*/\n\n'
CopyrightString: '/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/\n\n'
FileType: '.tsx, .jsx, .ts'
Path: 'app/, config/, db/'
IgnorePath: 'testfolder1/a/, testfolder3'

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client'

@ -1,10 +1,11 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';
import { AbstractApi, } from '@/app/api/abstract-api';
import { Group, GroupSerializer } from '@/app/lib/group';
import { Guest, GuestSerializer } from '@/app/lib/guest';
import { getCsrfToken, getSlug } from '@/app/lib/utils';
import AffinitiesFormDialog from '@/app/ui/components/affinities-form-dialog';
import { classNames } from '@/app/ui/components/button';
import GroupFormDialog from '@/app/ui/components/group-form-dialog';
@ -31,6 +32,16 @@ export default function Page() {
});
}
function resetAffinities() {
fetch(`/api/${getSlug()}/groups/affinities/reset`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'X-CSRF-TOKEN': getCsrfToken(),
}
})
}
const [groupsLoaded, setGroupsLoaded] = useState(false);
const [groups, setGroups] = useState<Array<Group>>([]);
const [groupBeingEdited, setGroupBeingEdited] = useState<Group | undefined>(undefined);
@ -70,7 +81,11 @@ export default function Page() {
<TabPanel header="Groups" leftIcon="pi pi-sitemap mx-2">
<div className="flex flex-col w-full items-center justify-between">
<div>
<button onClick={() => setGroupBeingEdited({})} className={classNames('primary')}>Add new</button>
<button onClick={resetAffinities} className={classNames('yellow')}>Reset affinities</button>
</div>
<GroupFormDialog
key={groupBeingEdited?.id}
groups={groups}

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import SideNav from '@/app/ui/dashboard/sidenav';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client'

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Entity } from '@/app/lib/definitions';
import { getCsrfToken, getSlug } from '@/app/lib/utils';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { asArray, getCsrfToken, getSlug } from '@/app/lib/utils';
import { Captcha, StructuredErrors, User } from '@/app/lib/definitions';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { data } from "autoprefixer";
import { getCsrfToken } from "../lib/utils";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { NextResponse } from "next/server";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { TableArrangement } from '@/app/lib/definitions';
import { getSlug } from '../lib/utils';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import '@/app/ui/global.css'

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
export class Affinities {
[key:string]: number;

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { AttendanceSummary } from "./group";
import { Guest } from "./guest";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Serializable } from "../api/abstract-api";
import { Entity } from "./definitions";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Entity } from "./definitions";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Serializable } from "../api/abstract-api";
import { Entity } from "./definitions";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Serializable } from "../api/abstract-api";
import { Entity } from "./definitions";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
export const getCsrfToken = () => {
return document.cookie

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import * as HeroIcon from '@heroicons/react/24/outline'
import { ComponentProps } from 'react'

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client'

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import clsx from 'clsx';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import clsx from "clsx";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import clsx from "clsx"
import { Icon } from "../../types";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Slider } from 'primereact/slider';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import React, { useState } from 'react';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
export default function TableOfContents<Type>({ headers, caption, elements, rowRender }: { headers: string[], caption: string, elements: Type[], rowRender: (element: Type) => JSX.Element }) {
return (

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Guest } from "@/app/lib/guest";
import { Table as TableType } from "@/app/lib/tableSimulation";

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { GlobalSummary as Summary} from '@/app/lib/definitions';
import { MainCard, SecondaryCard } from '../components/dashboard-cards';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
export default function Loading() {
return <div>Loading...</div>;

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client'

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client'

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import { Inter, Lusitana, Gloria_Hallelujah} from 'next/font/google';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
import Skeleton from '@/app/ui/skeleton';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
'use client';

@ -1,4 +1,4 @@
/* Copyright (C) 2024 Manuel Bustillo*/
/* Copyright (C) 2024-2025 LibreWeddingPlanner contributors*/
export default function Skeleton({ className }: { className: string }) {
return <div className={`bg-slate-200 motion-safe:animate-pulse rounded ${className}`} />;