feat(mgmt-perf): 업로드 영역 하단 배치, 업로드 삭제 API, 앱 내 밝은 배경
- 대시보드 조회를 위·엑셀 업로드를 아래로 재배치 - DELETE /api/mgmt-perf/upload/:id 및 최근 업로드 행 삭제 버튼 - dashboard.css 전역 body 어두운 배경을 body.mgmt-perf-standalone로 한정, 임베드는 투명 - mgmt_perf_embed에 standalone 클래스 유지 Made-with: Cursor
This commit is contained in:
16
server.js
16
server.js
@@ -1251,7 +1251,7 @@ app.post(
|
||||
quarter,
|
||||
payload,
|
||||
});
|
||||
res.json({ ok: true, message: "저장되었습니다. 아래 대시보드가 갱신되었습니다." });
|
||||
res.json({ ok: true, message: "저장되었습니다. 대시보드가 갱신되었습니다." });
|
||||
} catch (err) {
|
||||
console.error("mgmt-perf upload:", err);
|
||||
res.status(500).json({ error: err.message || "처리 실패" });
|
||||
@@ -1259,6 +1259,20 @@ app.post(
|
||||
}
|
||||
);
|
||||
|
||||
app.delete("/api/mgmt-perf/upload/:id", requireDashboardAccess, async (req, res) => {
|
||||
try {
|
||||
const result = await mgmtPerf.deleteUpload(pgPool, req.params.id);
|
||||
if (!result.ok) {
|
||||
const code = result.error === "항목을 찾을 수 없습니다." ? 404 : 400;
|
||||
return res.status(code).json({ ok: false, error: result.error });
|
||||
}
|
||||
res.json({ ok: true, message: "삭제되었습니다." });
|
||||
} catch (err) {
|
||||
console.error("mgmt-perf delete:", err);
|
||||
res.status(500).json({ ok: false, error: err?.message || "삭제 실패" });
|
||||
}
|
||||
});
|
||||
|
||||
const pageRouter = express.Router();
|
||||
pageRouter.get("/chat", (req, res) =>
|
||||
res.render("chat", {
|
||||
|
||||
Reference in New Issue
Block a user