Login-text, Context menu QoL enhancements
This commit is contained in:
@@ -113,19 +113,7 @@ export const ContextMenu = () => {
|
||||
style={{ transform: "translateX(-50%)" }}
|
||||
onClick={async () => {
|
||||
const { parsed } = await getOsmAddress(contextMenu.lat, contextMenu.lng);
|
||||
const objects = await addOSMobjects(true);
|
||||
|
||||
const closestObject = findClosestPolygon(objects, {
|
||||
lat: contextMenu.lat,
|
||||
lon: contextMenu.lng,
|
||||
});
|
||||
|
||||
setOpen(true);
|
||||
|
||||
if (closestObject) {
|
||||
toggleSearchElementSelection(closestObject.wayID, true);
|
||||
}
|
||||
|
||||
setMissionFormValues({
|
||||
...missionFormValues,
|
||||
...parsed,
|
||||
@@ -134,6 +122,17 @@ export const ContextMenu = () => {
|
||||
addressLng: contextMenu.lng,
|
||||
});
|
||||
|
||||
const objects = await addOSMobjects(true);
|
||||
|
||||
const closestObject = findClosestPolygon(objects, {
|
||||
lat: contextMenu.lat,
|
||||
lon: contextMenu.lng,
|
||||
});
|
||||
|
||||
if (closestObject) {
|
||||
toggleSearchElementSelection(closestObject.wayID, true);
|
||||
}
|
||||
|
||||
map.setView([contextMenu.lat, contextMenu.lng], 18, {
|
||||
animate: true,
|
||||
});
|
||||
|
||||
@@ -337,10 +337,14 @@ const MissionMarker = ({ mission }: { mission: Mission }) => {
|
||||
return [
|
||||
editingMissionId === mission.id && missionFormValues?.addressLat
|
||||
? missionFormValues.addressLat
|
||||
: mission.addressLat,
|
||||
: mission.hpgValidationState !== "POSITION_AMANDED" && mission.hpgLocationLat
|
||||
? mission.hpgLocationLat
|
||||
: mission.addressLat,
|
||||
editingMissionId === mission.id && missionFormValues?.addressLng
|
||||
? missionFormValues.addressLng
|
||||
: mission.addressLng,
|
||||
: mission.hpgValidationState !== "POSITION_AMANDED" && mission.hpgLocationLng
|
||||
? mission.hpgLocationLng
|
||||
: mission.addressLng,
|
||||
];
|
||||
}, [
|
||||
editingMissionId,
|
||||
|
||||
@@ -100,11 +100,17 @@ export default async function Page({ params }: { params: Promise<{ id: string }>
|
||||
if (!user) return <Error statusCode={404} title="User not found" />;
|
||||
return (
|
||||
<div className="grid grid-cols-6 gap-4">
|
||||
<div className="col-span-full">
|
||||
<div className="col-span-full flex justify-between items-center">
|
||||
<p className="text-2xl font-semibold text-left flex items-center gap-2">
|
||||
<PersonIcon className="w-5 h-5" />
|
||||
{user?.firstname} {user?.lastname} #{user?.publicId}
|
||||
</p>
|
||||
<p
|
||||
className="text-sm text-gray-400 font-thin tooltip tooltip-left"
|
||||
data-tip="Account erstellt am"
|
||||
>
|
||||
{new Date(user.createdAt).toLocaleString("de-DE")}
|
||||
</p>
|
||||
</div>
|
||||
<div className="card bg-base-200 shadow-xl mb-4 col-span-6 xl:col-span-3">
|
||||
<ProfileForm user={user} />
|
||||
|
||||
@@ -62,9 +62,9 @@ export const Login = () => {
|
||||
Registrierung
|
||||
</Link>
|
||||
</span>
|
||||
<div className="alert alert-info alert-outline text-sm font-semibold text-center">
|
||||
<div className="alert alert-info alert-outline text-sm font-semibold text-center justify-center">
|
||||
Du warst bereits Nutzer der V1? <br />
|
||||
Registriere dich mit der gleichen E-Mail, um deinen Account zu übernehmen!
|
||||
Melde dich mit deinen alten Zugangsdaten an.
|
||||
</div>
|
||||
<div className="mt-5 mb-2">
|
||||
<label className="input input-bordered flex items-center gap-2 w-full">
|
||||
|
||||
@@ -94,9 +94,10 @@ export const Register = () => {
|
||||
Login
|
||||
</Link>
|
||||
</span>
|
||||
<div className="alert alert-info alert-outline text-sm font-semibold text-center">
|
||||
<div className="alert alert-info alert-outline text-sm font-semibold text-center justify-center">
|
||||
Du warst bereits Nutzer der V1? <br />
|
||||
Registriere dich mit der gleichen E-Mail, um deinen Account zu übernehmen!
|
||||
Du musst keinen neuen Account erstellen, sondern kannst dich mit deinen alten Zugangsdaten
|
||||
anmelden.
|
||||
</div>
|
||||
<div className="mt-5 mb-2">
|
||||
<label className="input input-bordered flex items-center gap-2 mt-2 w-full">
|
||||
|
||||
@@ -15,6 +15,7 @@ interface PaginatedTableProps<TData> extends Omit<SortableTableProps<TData>, "da
|
||||
showEditButton?: boolean;
|
||||
searchFields?: string[];
|
||||
include?: Record<string, boolean>;
|
||||
strictQuery?: boolean;
|
||||
leftOfSearch?: React.ReactNode;
|
||||
rightOfSearch?: React.ReactNode;
|
||||
leftOfPagination?: React.ReactNode;
|
||||
@@ -30,6 +31,7 @@ export function PaginatedTable<TData>({
|
||||
filter,
|
||||
include,
|
||||
ref,
|
||||
strictQuery = false,
|
||||
leftOfSearch,
|
||||
rightOfSearch,
|
||||
leftOfPagination,
|
||||
@@ -63,6 +65,15 @@ export function PaginatedTable<TData>({
|
||||
filter,
|
||||
include,
|
||||
orderBy,
|
||||
strictQuery
|
||||
? restProps.columns
|
||||
.filter((col: any) => "accessorKey" in col)
|
||||
.map((col: any) => col.accessorKey)
|
||||
.reduce((acc: Record<string, any>, key: string) => {
|
||||
acc[key] = true;
|
||||
return acc;
|
||||
}, {})
|
||||
: undefined,
|
||||
).then((result) => {
|
||||
if (result) {
|
||||
setData(result.data);
|
||||
|
||||
@@ -11,6 +11,7 @@ export async function getData(
|
||||
filter?: Record<string, any>,
|
||||
include?: Record<string, boolean>,
|
||||
orderBy?: Record<string, "asc" | "desc">,
|
||||
select?: Record<string, any>,
|
||||
) {
|
||||
if (!model || !prisma[model]) {
|
||||
return { data: [], total: 0 };
|
||||
@@ -33,13 +34,13 @@ export async function getData(
|
||||
if (!prisma[model]) {
|
||||
return { data: [], total: 0 };
|
||||
}
|
||||
|
||||
const data = await (prisma[model] as any).findMany({
|
||||
where,
|
||||
orderBy,
|
||||
take: limit,
|
||||
skip: offset,
|
||||
include,
|
||||
select,
|
||||
});
|
||||
|
||||
const total = await (prisma[model] as any).count({ where });
|
||||
|
||||
@@ -6,6 +6,7 @@ import { PaginatedTable } from "_components/PaginatedTable";
|
||||
export default function () {
|
||||
return (
|
||||
<PaginatedTable
|
||||
strictQuery
|
||||
searchFields={["firstname", "lastname", "vatsimCid"]}
|
||||
prismaModel={"user"}
|
||||
filter={{
|
||||
|
||||
Reference in New Issue
Block a user