setting owner fixes + laser_soft write update
This commit is contained in:
parent
273ca51829
commit
3800cba048
6 changed files with 19 additions and 21 deletions
|
|
@ -128,13 +128,8 @@ export async function POST(req: Request) {
|
|||
if (!setting_title) return NextResponse.json({ error: "Missing required: setting_title" }, { status: 400 });
|
||||
|
||||
// Derive uploader from the authenticated user (ignore any spoofed value in body)
|
||||
const me = await dxGET<any>("/users/me?fields=username,display_name,first_name,last_name,email", bearer);
|
||||
const uploader =
|
||||
me?.display_name ||
|
||||
me?.username ||
|
||||
[me?.first_name, me?.last_name].filter(Boolean).join(" ") ||
|
||||
me?.email ||
|
||||
"user";
|
||||
const me = await dxGET<any>("/users/me?fields=id,username", bearer);
|
||||
const uploader = me?.username || "user";
|
||||
|
||||
// Relations & numerics
|
||||
const mat = body?.mat ?? null;
|
||||
|
|
@ -148,7 +143,7 @@ export async function POST(req: Request) {
|
|||
const setting_notes = String(body?.setting_notes || "").trim();
|
||||
|
||||
// Fiber-only
|
||||
const laser_soft = target === "settings_fiber" ? body?.laser_soft ?? null : undefined;
|
||||
const laser_soft = body?.laser_soft ?? null;
|
||||
const repeat_all = target === "settings_fiber" ? num(body?.repeat_all, null) : undefined;
|
||||
|
||||
// Upload / accept existing file ids
|
||||
|
|
@ -162,6 +157,7 @@ export async function POST(req: Request) {
|
|||
const up = await uploadFile(photoFile, (photoFile as File).name, bearer, {
|
||||
folderNamePath: folderPathFor(target, "photo"),
|
||||
title: setting_title,
|
||||
owner: me?.id || null,
|
||||
});
|
||||
photo_id = up.id;
|
||||
}
|
||||
|
|
@ -197,6 +193,7 @@ export async function POST(req: Request) {
|
|||
|
||||
photo: photo_id,
|
||||
screen: screen_id ?? null,
|
||||
laser_soft: laser_soft,
|
||||
|
||||
mat,
|
||||
mat_coat,
|
||||
|
|
@ -217,7 +214,6 @@ export async function POST(req: Request) {
|
|||
};
|
||||
|
||||
if (target === "settings_fiber") {
|
||||
payload.laser_soft = laser_soft ?? null;
|
||||
payload.repeat_all = repeat_all ?? null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import Link from "next/link";
|
|||
import Image from "next/image";
|
||||
|
||||
type Owner = {
|
||||
username?: string | null;
|
||||
id?: string | number;
|
||||
first_name?: string | null;
|
||||
last_name?: string | null;
|
||||
|
|
@ -36,7 +37,7 @@ export default function CO2GalvoSettingsPage() {
|
|||
"submission_id",
|
||||
"setting_title",
|
||||
"uploader",
|
||||
"owner.id",
|
||||
"owner.id", "owner.username",
|
||||
"owner.first_name",
|
||||
"owner.last_name",
|
||||
"owner.email",
|
||||
|
|
@ -64,8 +65,7 @@ export default function CO2GalvoSettingsPage() {
|
|||
|
||||
const ownerLabel = (o?: Owner) => {
|
||||
if (!o) return "—";
|
||||
const name = [o.first_name, o.last_name].filter(Boolean).join(" ").trim();
|
||||
return name || o.email || "—";
|
||||
return o.username || "—";
|
||||
};
|
||||
|
||||
const highlight = (text?: string) => {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import Link from "next/link";
|
|||
import Image from "next/image";
|
||||
|
||||
type Owner = {
|
||||
username?: string | null;
|
||||
id?: string | number;
|
||||
first_name?: string | null;
|
||||
last_name?: string | null;
|
||||
|
|
@ -36,7 +37,7 @@ export default function CO2GantrySettingsPage() {
|
|||
"submission_id",
|
||||
"setting_title",
|
||||
"uploader",
|
||||
"owner.id",
|
||||
"owner.id", "owner.username",
|
||||
"owner.first_name",
|
||||
"owner.last_name",
|
||||
"owner.email",
|
||||
|
|
@ -65,8 +66,7 @@ export default function CO2GantrySettingsPage() {
|
|||
|
||||
const ownerLabel = (o?: Owner) => {
|
||||
if (!o) return "—";
|
||||
const name = [o.first_name, o.last_name].filter(Boolean).join(" ").trim();
|
||||
return name || o.email || "—";
|
||||
return o.username || "—";
|
||||
};
|
||||
|
||||
const highlight = (text?: string) => {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ export default function FiberSettingsPage() {
|
|||
"submission_id",
|
||||
"setting_title",
|
||||
"uploader",
|
||||
"owner.display_name",
|
||||
"owner.username",
|
||||
"owner.first_name",
|
||||
"owner.last_name",
|
||||
"owner.email",
|
||||
|
|
@ -55,6 +55,8 @@ export default function FiberSettingsPage() {
|
|||
|
||||
const ownerName = (row: any) => {
|
||||
const o = row?.owner || {};
|
||||
return o.username || "—";
|
||||
};
|
||||
return (
|
||||
o.display_name ||
|
||||
[o.first_name, o.last_name].filter(Boolean).join(" ") ||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import Link from "next/link";
|
|||
import Image from "next/image";
|
||||
|
||||
type Owner = {
|
||||
username?: string | null;
|
||||
id?: string | number;
|
||||
first_name?: string | null;
|
||||
last_name?: string | null;
|
||||
|
|
@ -37,7 +38,7 @@ export default function UVSettingsPage() {
|
|||
"setting_title",
|
||||
"uploader",
|
||||
// owner (M2O) – minimal, safe fields
|
||||
"owner.id",
|
||||
"owner.id", "owner.username",
|
||||
"owner.first_name",
|
||||
"owner.last_name",
|
||||
"owner.email",
|
||||
|
|
@ -65,8 +66,7 @@ export default function UVSettingsPage() {
|
|||
|
||||
const ownerLabel = (o?: Owner) => {
|
||||
if (!o) return "—";
|
||||
const name = [o.first_name, o.last_name].filter(Boolean).join(" ").trim();
|
||||
return name || o.email || "—";
|
||||
return o.username || "—";
|
||||
};
|
||||
|
||||
const highlight = (text?: string) => {
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ export default function OwnerBadge({
|
|||
uploader,
|
||||
className = '',
|
||||
}: {
|
||||
owner?: { id?: string | number; display_name?: string } | null;
|
||||
owner?: { id?: string | number; username?: string } | null;
|
||||
uploader?: string | null;
|
||||
className?: string;
|
||||
}) {
|
||||
const hasOwner = !!owner?.id;
|
||||
const label = hasOwner ? 'Owner' : 'Uploader';
|
||||
const name = owner?.display_name ?? uploader ?? '—';
|
||||
const name = owner?.username ?? uploader ?? '—';
|
||||
|
||||
return (
|
||||
<span
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue