HBSA250_Sheet Templates (시스템 시트 템플릿)
(Hereby) 시스템 관리 > [[HBSA200]] > Sheet Templates
| 앱 | System Admin (포트 4100) |
| 부모 화면 | [[HBSA200]] |
| 대상 사용자 | 플랫폼 운영자(OPERATOR) |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_권한(RBAC)]] |
| Status | draft (코드 기반 — 라이브 실사 불가: dev 라우트 AccessDenied 격리, 2026-08-25 확인) |
| Owner | 카나 |
개요
전역(시스템) 시트 템플릿의 category(자유 텍스트)와 활성 여부(isActive)를 인라인 편집한다. category는 org-facing 워크북 추천 템플릿의 섹션 헤더를 구성하며, 활성 off 시 org 추천 목록에서 숨겨진다. org-less 플랫폼 레벨 쓰기라 audit_logs.organizationId=null로 감사된다.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-08-25 | 카나 | 콸 | 최초 작성 (redesign PR #583 코드 census 기반, 라이브 미실사) |
Data I/O
Client → Server
| 액션 | 콘솔 REST | systemProcedure |
|---|---|---|
| 목록 | GET /api/sheet-templates (fan-out) | systemSheetTemplates |
| category/isActive 변경 | PATCH /api/sheet-templates/:id | systemPatchSheetTemplate |
Server → Client
| 변수 | 소스 | 비고 |
|---|---|---|
sheetTemplates[] | systemSheetTemplates | name/category/isActive/groupId/defaultSlug/sortOrder/description/updatedAt |
코드 근거: tabs/sheet-templates.html, server/routes/sheet-templates.ts, src/app.ts(sheetTemplateCategorySuggestions).
화면 플로우
Sheet Templates 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | activeTab === 'sheet-templates' | - | |
| 01 | 초기 상태 | Output | "System Sheet Templates: {n} active: {활성수}" + "refresh" | - | |
| 10 | 템플릿 테이블 | List | [List] 컬럼 name/category/active/groupId/slug/sortOrder/description/updated. 비활성 행 opacity 50 | sheetTemplates | |
| 11 | ㄴ category | Input Box | 인라인 자유텍스트(placeholder "(none)"). <datalist> 자동완성(큐레이트 4종 "인사"/"급여"/"근태"/"기타" + DB 존재값). Enter/blur 저장, Esc 되돌림, 빈 제출 → NULL(→org "기타") | onSheetTemplateCategoryChange → systemPatchSheetTemplate | |
| 12 | ㄴ active | Toggle | ACTIVE=green/INACTIVE=gray 배지 클릭 → toggleSheetTemplateActive(item) | systemPatchSheetTemplate | off 시 org 추천 목록 숨김 |
| 10-E | ㄴ Empty | Text | "no system templates found" | - | |
| 20 | 값 없음 처리 | - | groupId/slug 없으면 "—", description 없으면 "—"(truncate) | - | |
| 30 | 푸터 안내 | Info | "category: free-text. Click a cell to edit; Enter or click-away saves; Esc reverts..." / "active: when off, the org-facing 추천 템플릿 picker hides the row..." / "New categories take effect immediately..." | - | 원문 카피 |
| 40 | 에러·실패 | - | 로드 실패 tabError. PATCH 실패 시 값 되돌림 추정 TBU | - | |
| 50 | 권한별 차이 | - | OPERATOR org-less 쓰기(audit organizationId=null) | [[POL_권한(RBAC)]] |
권한 / 상태 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
case01 [category 변경] | blur/Enter | PATCH + org 추천 섹션 반영 | audit org=null |
case02 [빈 category] | 빈 제출 | NULL → org "기타" 버킷 | |
case03 [active off] | 토글 | org 추천 목록에서 숨김(DB 유지) |
OQ
- 새 조직 생성 없이 템플릿 자체를 콘솔에서 추가/삭제하는 경로 = 코드상 PATCH만(생성 UI 없음) TBU