feat(z01): 좌측 패널을 B03~B09 도킹 사이드바 양식으로(상자 둘 — 기초단가 · 마스터 트리) · 기초단가 다섯(노임·기계·자재·유가·요율) 표 + 칸 고치기(editable 만 · 못 고치는 칸은 까닭·산출근거) · 덮개 판정은 서버 state 만(원본 바뀜·주인 없음은 줄째 또렷이 · 단추 글자에 값) · 요율 알림 · 고친 것 모아 보기(서버 정렬) · 공용 오버레이에 진행단계·프로젝트 이름 끄기 선택(브레인)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
This commit is contained in:
@@ -140,10 +140,54 @@ export const ui_locales_b3 = {
|
||||
B01_Dashboard_SystemSettings: ["시스템 설정", "System Settings"],
|
||||
B01_Dashboard_MasterData: ["마스터 데이터", "Master Data"],
|
||||
Z01_MasterData_Title: ["마스터 데이터", "Master Data"],
|
||||
Z01_MasterData_Subtitle: [
|
||||
"로직·기초값을 표로 봄 — 읽기 전용",
|
||||
"Browse logic and base values — read only",
|
||||
Z01_MasterData_Tree: ["마스터 트리", "Master tree"],
|
||||
Z01_MasterData_BasePrices: ["기초단가", "Base prices"],
|
||||
Z01_MasterData_Base_labor: ["노임단가", "Labor"],
|
||||
Z01_MasterData_Base_machine: ["기계단가", "Machine"],
|
||||
Z01_MasterData_Base_material: ["자재단가", "Material"],
|
||||
Z01_MasterData_Base_oil: ["유가", "Fuel"],
|
||||
Z01_MasterData_Base_rate: ["요율", "Rates"],
|
||||
Z01_MasterData_Overrides: ["고친 것 모아 보기", "Edited values"],
|
||||
Z01_MasterData_Rate_Notice: [
|
||||
"법이 정한 값 — 고치면 갱신 때 주인을 잃기 쉬움",
|
||||
"Values set by law — edits may lose their row when the law is updated",
|
||||
],
|
||||
Z01_MasterData_Edit_Can: [
|
||||
"고칠 수 있는 칸 — 눌러 고치고 Enter 로 저장 (Esc 취소)",
|
||||
"Editable — click, type, Enter to save (Esc cancels)",
|
||||
],
|
||||
Z01_MasterData_Edit_Locked: ["못 고치는 칸", "Not editable"],
|
||||
Z01_MasterData_Edit_NotListed: ["고칠 수 있는 칸 목록에 없음", "Not in the editable list"],
|
||||
Z01_MasterData_Edit_RevertTo: ["원래 값 {value} 으로 되돌리기", "Revert to original {value}"],
|
||||
Z01_MasterData_Edit_TakeSource: ["새 원본 값 {value} 으로 받기", "Take new source value {value}"],
|
||||
Z01_MasterData_Edit_OriginalWas: ["고칠 때 원본 {value}", "source when edited {value}"],
|
||||
Z01_MasterData_Edit_Invalid: ["수로 못 읽음 — 저장 안 함", "Not a number — not saved"],
|
||||
Z01_MasterData_Edit_Saved: ["저장했음 — 덮개 파일에 쌓임", "Saved to the override file"],
|
||||
Z01_MasterData_Edit_Reverted: ["덮개를 뺐음 — 원본 값을 씀", "Override removed — using source"],
|
||||
Z01_MasterData_Edit_Failed: ["저장 못 함", "Save failed"],
|
||||
Z01_MasterData_Formula: ["산출근거", "Basis"],
|
||||
Z01_MasterData_State_Edited: ["고쳐짐 — 원래 값 {value}", "Edited — original {value}"],
|
||||
Z01_MasterData_State_SourceChanged: [
|
||||
"⚠ 고친 뒤 원본이 바뀜 — 고친 값을 그대로 씀 · 새 원본 값 {value}",
|
||||
"⚠ Source changed after edit — edited value still used · new source {value}",
|
||||
],
|
||||
Z01_MasterData_State_Orphan: [
|
||||
"⚠ 주인 없음 — 갱신으로 그 줄이 사라짐",
|
||||
"⚠ Orphan — the row disappeared on update",
|
||||
],
|
||||
Z01_MasterData_State_Missing: [
|
||||
"⚠ 서버가 판정(state)을 안 줌 — 버그",
|
||||
"⚠ Server sent no state — bug",
|
||||
],
|
||||
Z01_MasterData_List_State: ["상태", "State"],
|
||||
Z01_MasterData_List_Row: ["줄", "Row"],
|
||||
Z01_MasterData_List_Column: ["칸", "Column"],
|
||||
Z01_MasterData_List_Value: ["고친 값", "Edited value"],
|
||||
Z01_MasterData_List_Original: ["고칠 때 원본", "Source when edited"],
|
||||
Z01_MasterData_List_Current: ["지금 원본", "Current source"],
|
||||
Z01_MasterData_List_SourceChanged: ["⚠ 원본 바뀜", "⚠ Source changed"],
|
||||
Z01_MasterData_List_Orphan: ["⚠ 주인 없음", "⚠ Orphan"],
|
||||
Z01_MasterData_List_Edited: ["고쳐짐", "Edited"],
|
||||
Z01_MasterData_AdminOnly: ["시스템 관리자만 볼 수 있음", "System administrators only"],
|
||||
Z01_MasterData_LoadFailed: ["마스터 데이터를 못 읽음", "Failed to load master data"],
|
||||
Z01_MasterData_PickTable: ["왼쪽에서 표를 고를 것", "Pick a table on the left"],
|
||||
|
||||
@@ -13,9 +13,12 @@ const PROGRESS_OVERLAY_POSITION_KEY = "frd_workflow_progress_overlay_pos";
|
||||
|
||||
export interface WorkflowOverlayOptions {
|
||||
title: string;
|
||||
progressContent: HTMLElement;
|
||||
/** 없으면 진행단계 패널을 안 세움 — 워크플로 밖 화면(Z01 마스터 데이터)용. */
|
||||
progressContent?: HTMLElement;
|
||||
optionsContent?: HTMLElement;
|
||||
showTitlePanel?: boolean;
|
||||
/** false 면 제목 줄 오른쪽 프로젝트 이름을 안 붙임 — 프로젝트와 무관한 화면용. */
|
||||
showProjectName?: boolean;
|
||||
onOptionsOpenChange?: (isOpen: boolean) => void;
|
||||
}
|
||||
|
||||
@@ -239,15 +242,6 @@ export function createWorkflowOverlays(options: WorkflowOverlayOptions): Workflo
|
||||
const root = document.createElement("div");
|
||||
root.className = "ui-workflow-overlay";
|
||||
|
||||
const progressBody = document.createElement("div");
|
||||
progressBody.append(options.progressContent);
|
||||
|
||||
const progressPanel = createPanel(
|
||||
"progress",
|
||||
t("Workflow_Progress_Title"),
|
||||
progressBody,
|
||||
PROGRESS_OVERLAY_STATE_KEY,
|
||||
);
|
||||
let setTitleOpen = (_isOpen: boolean): void => {};
|
||||
if (options.showTitlePanel !== false) {
|
||||
const titleBody = document.createElement("div");
|
||||
@@ -258,16 +252,24 @@ export function createWorkflowOverlays(options: WorkflowOverlayOptions): Workflo
|
||||
titleBody,
|
||||
TITLE_OVERLAY_STATE_KEY,
|
||||
options.onOptionsOpenChange,
|
||||
createProjectNameTag(),
|
||||
options.showProjectName === false ? undefined : createProjectNameTag(),
|
||||
);
|
||||
root.append(titlePanel.root);
|
||||
setTitleOpen = titlePanel.setOpen;
|
||||
}
|
||||
root.append(progressPanel.root);
|
||||
let setProgressOpen = (_isOpen: boolean): void => {};
|
||||
if (options.progressContent) {
|
||||
const progressBody = document.createElement("div");
|
||||
progressBody.append(options.progressContent);
|
||||
const progressPanel = createPanel(
|
||||
"progress",
|
||||
t("Workflow_Progress_Title"),
|
||||
progressBody,
|
||||
PROGRESS_OVERLAY_STATE_KEY,
|
||||
);
|
||||
root.append(progressPanel.root);
|
||||
setProgressOpen = progressPanel.setOpen;
|
||||
}
|
||||
|
||||
return {
|
||||
root,
|
||||
setTitleOpen,
|
||||
setProgressOpen: progressPanel.setOpen,
|
||||
};
|
||||
return { root, setTitleOpen, setProgressOpen };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user