diff --git a/apps/dispatch/app/(app)/dispatch/_components/pannel/MissionForm.tsx b/apps/dispatch/app/(app)/dispatch/_components/pannel/MissionForm.tsx
index 6eb676e4..312be934 100644
--- a/apps/dispatch/app/(app)/dispatch/_components/pannel/MissionForm.tsx
+++ b/apps/dispatch/app/(app)/dispatch/_components/pannel/MissionForm.tsx
@@ -296,6 +296,7 @@ export const MissionForm = () => {
+
{form.watch("type") === "primär" && (
<>
+ {mission.type == "sekundär" && (
+ <>
+
+
+
+ {mission.addressMissionDestination}
+
+
+ >
+ )}
{mission.state === "draft" && (
diff --git a/apps/dispatch/app/_querys/osm.ts b/apps/dispatch/app/_querys/osm.ts
index 2e62e52f..42175f9f 100644
--- a/apps/dispatch/app/_querys/osm.ts
+++ b/apps/dispatch/app/_querys/osm.ts
@@ -16,6 +16,7 @@ export const getOsmAddress = async (lat: number, lng: number) => {
road?: string;
state?: string;
city?: string;
+ village?: string;
town?: string;
};
display_name?: string;
@@ -43,7 +44,7 @@ export const getOsmAddress = async (lat: number, lng: number) => {
return {
raw: data,
parsed: {
- addressCity: data.address?.city || data.address?.town || "",
+ addressCity: data.address?.city || data.address?.town || data.address?.village || "",
addressStreet,
addressZip: data.address?.postcode || "",
},
diff --git a/apps/dispatch/app/api/aircrafts/positionlog/route.ts b/apps/dispatch/app/api/aircrafts/positionlog/route.ts
index be1ed15d..5878b4bb 100644
--- a/apps/dispatch/app/api/aircrafts/positionlog/route.ts
+++ b/apps/dispatch/app/api/aircrafts/positionlog/route.ts
@@ -15,6 +15,9 @@ export async function GET(request: NextRequest): Promise
{
gte: new Date(Date.now() - 2 * 60 * 60 * 1000), // Last 2 hours
},
},
+ orderBy: {
+ timestamp: "desc",
+ },
});
return NextResponse.json(positionLog, {
diff --git a/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx b/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx
index 3d2d6860..8c4bba70 100644
--- a/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx
+++ b/apps/hub/app/(app)/admin/user/[id]/_components/forms.tsx
@@ -177,9 +177,13 @@ export const ProfileForm: React.FC = ({ user }: ProfileFormPro
type="button"
className="btn btn-sm btn-outline"
onClick={() =>
- form.setValue("permissions", ["LOGIN_NEXTCLOUD", "PILOT", "DISPO", "AUDIO"], {
- shouldDirty: true,
- })
+ form.setValue(
+ "permissions",
+ ["LOGIN_NEXTCLOUD", "PILOT", "DISPO", "AUDIO", "ADMIN_EVENT"],
+ {
+ shouldDirty: true,
+ },
+ )
}
onSubmit={() => false}
>
diff --git a/apps/hub/app/_components/PaginatedTable.tsx b/apps/hub/app/_components/PaginatedTable.tsx
index de757c16..41547a0c 100644
--- a/apps/hub/app/_components/PaginatedTable.tsx
+++ b/apps/hub/app/_components/PaginatedTable.tsx
@@ -112,6 +112,7 @@ export function PaginatedTable({
onChange={(e) => {
setSearchTerm(e.target.value);
handleSearchChange(e.target.value);
+ setPage(0); // Reset to first page on search
}}
className="input input-bordered w-full max-w-xs justify-end"
/>
diff --git a/packages/shared-components/components/PenaltyDropdown.tsx b/packages/shared-components/components/PenaltyDropdown.tsx
index bbc0189a..648013f5 100644
--- a/packages/shared-components/components/PenaltyDropdown.tsx
+++ b/packages/shared-components/components/PenaltyDropdown.tsx
@@ -17,96 +17,122 @@ export const PenaltyDropdown = ({
btnTip?: string;
Icon: ReactNode;
}) => {
+ const [open, setOpen] = useState(true);
const [reason, setReason] = useState("");
const [until, setUntil] = useState("default");
return (
-
- {Icon}
-