Skip to content

HBHR108_폴더·휴지통 사이드바

(Hereby) HR 급여 관리 > [[HBHR100_시트 워크스페이스 (공통 Shell)]] > 좌측 사이드바 > 폴더·휴지통

HR 급여 관리 (HBHR)
대상 사용자조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN]
프로토타입TBU
관련 정책[[POL_급여정본경계]]
Statusreview
Owner카나 (PM)

개요

  • 워크스페이스 좌측에 상시 노출되는 폴더·휴지통 사이드바를 정의한다. "폴더" 탭은 폴더 트리(▸▾ 접기)로 시트를 나열하고, "휴지통(🗑)" 탭은 삭제된 시트를 보관한다(복원 전용, 영구 삭제/비우기 UI 없음).
  • 시트 삭제는 사이드바 시트 우클릭 → "삭제" → 네이티브 confirm이 유일 경로(파일 메뉴엔 삭제 없음)이며, 워크스페이스 헤더 "폴더 관리" 버튼으로 폴더 관리 모달을, "이전 월 가져오기" 버튼으로 이전 월에서 가져오기 모달을 연다.
  • 용어 결정(신규 확정): "그룹" → "폴더"로 확정. 근거 = 폴더 관리 모달 및 "+ 새 폴더" 버튼 원문. 본 문서 및 하위 참조는 "폴더" 표기를 정본으로 한다.

문서 히스토리

날짜작성자변경 내용
2026-07-06카나PM최초 작성
2026-07-10카나PM라이브 기능 검토 반영
2026-07-13카나PM버튼 행동 명세 보강
2026-07-21카나PMGC700 깊이 재작성 (폴더 관리 모달 신규·"그룹→폴더" 용어 확정)
2026-07-21카나PM가독성 패스 + 액션 표기 (GUIDE §7·§8)
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)
2026-08-11카나PM급여대장 단독 행 승격·연결 표식·수명주기 표식 반영(#528·#540)
2026-08-17카나PM라이브 실사 검증 반영(dev v0.1.0+)

Data I/O

Server → Client

변수엔티티.컬럼값 없을 때비고
$PayrollSheet.folder 그룹 (추정)"(미분류)"로 fallback폴더별 시트 그룹 + 건수
$PayrollSheet[] (period·folder 필터) (추정)빈 폴더 → Empty (문구 TBU)시트 아이템 "{이름} '26.7" + 건수
$PayrollSheet[] (deletedAt not null) (추정)빈 휴지통 (문구 TBU)휴지통 보관 시트
$폴더별 {이름} + {n}개 시트 (추정)"(미분류)" 제외 목록 (추정)폴더 관리 모달 원천

Client → Server

액션전달 값tRPC procedure권한 토큰
탭 전환(폴더/휴지통)tab클라이언트 상태 (추정)-
폴더 접기/펼치기folderId, expanded클라이언트 상태 (추정)-
시트 로드sheetIdsdk.payrollSheet.get() (추정)payroll:read (추정)
시트 전환(j/k)direction클라이언트 상태 (추정)-
시트 삭제(우클릭→삭제)sheetIdsdk.payrollSheet.delete() (추정) — soft delete, 네이티브 confirm 후payroll:write (추정)
휴지통 복원sheetIdsdk.payrollSheet.restore() (추정) — 영구 삭제/비우기 없음payroll:write (추정)
폴더 관리 (새 폴더 생성)folderNamesdk.payrollSheet.createFolder() (추정)payroll:write (추정)
이전 월에서 가져오기selectedSheetIds[]sdk.payrollSheet.importFromPrevMonth() (추정)payroll:write (추정)

화면 플로우

폴더·휴지통 사이드바 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-워크스페이스 진입 시 좌측에 상시 노출.
상위 노출은 [[HBHR100_시트 워크스페이스 (공통 Shell)]] 40(좌측 사이드바)에서 위임
[[HBHR100_시트 워크스페이스 (공통 Shell)]] 40상시 노출
10폴더/휴지통 탭 전환Tab• "폴더" / "휴지통(🗑)" 탭을 전환하는 기능
• 클릭 시: 탭 전환
 - CASE01 [폴더]: 폴더 트리(20) 표시
 - CASE02 [휴지통(🗑)]: 삭제 시트 목록(30) 표시
20 폴더 트리 / 30 휴지통
15급여대장 단독 행ListItem• 급여대장을 폴더 트리 위 단독 행으로 승격 표시(문서 아이콘 ic-folder-doc-check). 폴더 그룹과 분리되며 폴더 카운트 배지에서 제외
• 클릭 시: 급여대장 시트 로드
 - CASE01 [해당 월 급여대장 없음]: 급여대장 생성 진입점 노출(87437af)
20 폴더 트리(카운트 제외) / [[HBHR200_급여대장 시트]]#528 승격 · ic-folder-doc-check · TBU: 생성 진입점 문구·동선
20폴더 트리List• 폴더 그룹 + 폴더별 건수를 나열하는 트리. 폴더 접기 "▸▾"(펼침 ▾ / 접힘 ▸). 급여대장은 단독 행(15)으로 승격되어 폴더 카운트 배지에서 제외. 폴더 목록: "(미분류)" / "eCount 연동" / "급여대장" / "문서·서명" / "병동" / "시트 에러 발생 케이스" / "연장근무" / "인센티브" / "출퇴근" / "치료실 인센티브" / "휴직·퇴사". 폴더별 시트 구성은 폴더 카탈로그 요약표 참조
 - Empty: 해당 기간·폴더에 시트 없으면 빈 상태 노출
15 급여대장 단독 행 / 21 시트 아이템 / 폴더 카탈로그 요약표 · [[HBHR101_새 시트 만들기 모달]] 새 시트#528 급여대장 카운트 제외 · TBU: Empty 문구
ㄴ21시트 아이템 구조ListItem• 시트 하나를 나타내는 아이템 = 연결 상태 표식 + "{이름} '26.7"(월 표기) + 건수. 예 "급여대장 '26.7" + "293/293건". 이름 앞 표식은 장식 불릿에서 급여대장 연결 상태 표식으로 변경 — 연결=링크 아이콘 / 미연결=불릿(#528). 시트 행은 button→div 전환(#528)으로 3개월간 미렌더되던 핀·건수·마지막 수정 시각을 복구하되 핀·건수는 주석 처리, 마지막 수정 시각만 노출. 마지막 수정 시각은 마지막 실제 편집 기준(59af7b4)이며 상태별 라벨을 함께 표시. 라벨 형식 = "{n}일 전 편집됨"(예: "5일 전 편집됨") 또는 "MM/DD 편집됨"(예: "08/06 편집됨") — 상태별 라벨 모두 "…편집됨" 어미. 사이드바 폭이 181px 미만이면 기간 힌트 접힘. 설정 중 기어(⚙) 표식 노출(#540) — 급여대장 단독 행은 설정 중일 때 예 "급여대장 '26.8 · 5일 전 편집됨"에 기어 포함
• 클릭 시: 시트 로드(시트 그리드로 전환)
• 우클릭 시: 시트 컨텍스트 메뉴(22) 노출
시트 그리드 로드 / HBHR2xx / 15 급여대장 단독 행#528 연결 표식·button→div · #540 기어 표식·"작업 중"→"사용 중" · 59af7b4 마지막 실제 편집 기준 · 폭 181px 미만 기간 힌트 접힘 · 8/17 라이브 실사: 편집 라벨 형식("…편집됨") 확정 · TBU: 연결/미연결 판정 기준(라이브 시각 구분만 확인, 원문 미확정)
ㄴ22시트 우클릭 → 삭제ContextMenu• 시트를 삭제(휴지통 이동)하는 유일한 동선 — 파일 메뉴에 삭제 항목 없음
• 우클릭 시: "삭제" → 네이티브 confirm "삭제된 시트는 사이드바 상단 [휴지통]에서 복원할 수 있습니다." → 실행(휴지통으로 이동, soft delete)
 - 에러: confirm 취소 시 삭제 없음
30 휴지통 / [[HBHR102_파일 메뉴]] (파일 메뉴 삭제 없음)유일 삭제 경로
30휴지통(🗑)Tab• 삭제된 시트를 보관하는 탭 — 항목별 "복원" 버튼만 제공(복원 전용). 영구 삭제/비우기 UI 없음 — 삭제 시트는 휴지통에 잔류하며 복원만 가능
• 클릭 시: 삭제 시트 보관 목록 표시
 - Empty: 휴지통 빈 상태
ㄴ22 우클릭 삭제 / 10 탭 전환복원 전용(영구삭제 없음) · TBU: Empty 문구
ㄴ31복원 버튼Button• 삭제 시트를 원래 위치(폴더/월)로 되돌리는 버튼. 영구 삭제 액션은 없음
• 클릭 시: 복원 실행
20 폴더 트리(복원 대상)TBU: 복원 실패 피드백
40시트 전환 단축키(j/k)-• j / k 키로 사이드바 시트를 전환("j/k 사이드바 시트 전환 (다음 / 이전)"). 단축키 전체는 [[HBHR103_편집 메뉴·단축키]] 참조[[HBHR103_편집 메뉴·단축키]] 편집·단축키
50폴더 관리 버튼Button• 워크스페이스 헤더의 "폴더 관리" 진입 버튼
• 클릭 시: "폴더 관리" 모달 노출(별도 표)
폴더 관리 모달 사양표 · [[HBHR100_시트 워크스페이스 (공통 Shell)]] 헤더신규(7/21) · TBU: 생성 권한 요건
60이전 월 가져오기 버튼Button• 워크스페이스 헤더의 "이전 월 가져오기" 진입 버튼
• 클릭 시: "이전 월에서 가져오기" 모달 노출(별도 표)
이전 월에서 가져오기 모달 사양표 · [[HBHR100_시트 워크스페이스 (공통 Shell)]] 헤더이전 월 공유 시트 복제

폴더 관리 모달 사양표 (별도 표)

워크스페이스 헤더 "폴더 관리" 버튼으로 진입. 원문 (source: /workspace/group/conf-work/adtest2/HBHR-modals.json "폴더관리") — 각 폴더가 "{이름}" + "{n}개 시트"로 나열되고 맨 아래 "+ 새 폴더" 버튼.

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-워크스페이스 헤더 "폴더 관리" 버튼(50) 클릭 시 노출50 폴더 관리 버튼신규(7/21)
10폴더 목록List• 폴더별 "{이름}" + "{n}개 시트" 행을 나열. 원문 목록: "eCount 연동" / "2개 시트", "급여대장" / "3개 시트", "문서·서명" / "1개 시트", "병동" / "6개 시트", "시트 에러 발생 케이스" / "1개 시트", "연장근무" / "1개 시트", "인센티브" / "2개 시트", "출퇴근" / "3개 시트", "치료실 인센티브" / "1개 시트", "휴직·퇴사" / "2개 시트"
 - Empty: 폴더 0개 상태
20 폴더 트리원문 카피 · TBU: Empty 문구
ㄴ11폴더 행 구조ListItem• 각 행 = "{폴더명}" + "{n}개 시트". 예 "병동" + "6개 시트"폴더 카탈로그 요약표"그룹" → "폴더" 확정 근거
20+ 새 폴더Button• 목록 맨 아래 "+ 새 폴더" — 신규 폴더를 생성하는 버튼
• 클릭 시: 신규 폴더 생성(폴더명 입력 UI = TBU)
10 폴더 목록"그룹"이 아닌 "폴더" 확정 근거 · TBU: 폴더명 입력 UI·기본값 / 중복 폴더명 처리·실패 피드백

이전 월에서 가져오기 모달 사양표 (별도 표)

워크스페이스 헤더 "이전 월 가져오기" 버튼으로 진입.

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-워크스페이스 헤더 "이전 월 가져오기" 버튼(60) 클릭 시 노출60 이전 월 가져오기 버튼
10본문 안내Text• 모달 상단 안내 문구 "이전 월의 공유 시트 중 현재 월에 없는 시트를 복제합니다. 기본 시트는 자동으로 생성되므로 제외됩니다."원문 카피
20시트 선택 리스트List• 복제 대상 시트 리스트 — 각 항목 "이름 / n열 / n항목"
 - Empty: 복제 대상 시트 0건 상태
 - 값 없음: 미선택 시 "{n}개 가져오기" = "0개 가져오기"(추정)
sheet_list(period 이전 월) · 40이름/n열/n항목 · TBU: Empty 문구
30취소Button• "취소" — 복제 없이 모달을 닫는 버튼
• 클릭 시: 모달 닫기, 변경 없음
40{n}개 가져오기Button• "{n}개 가져오기" — 선택 시트를 현재 월로 복제하는 버튼
• 클릭 시: 선택 시트 수({n})만큼 현재 월로 복제 실행
sdk.payrollSheet.importFromPrevMonth() (추정)이전 월 공유 시트 복제 · TBU: 복제 실패 피드백

폴더 카탈로그 요약표

폴더별 시트 구성 요약. 각 시트 유형 상세는 HBHR2xx 참조. 폴더 10종(+ (미분류)).

폴더시트용도
(미분류)(미분류)임시·미분류 시트
eCount 연동eCount 수당 코드 (2개 시트)이카운트 export 매핑 ([[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]])
급여대장급여대장 293/293건 · 계약급여내역 (3개 시트)급여 작업 시트 (편집·검토 공간, 확정 전) — 확정 시 정본 생성 ([[HBHR200_급여대장 시트]] / [[HBHR210_계약급여내역 시트]])
문서·서명전자서명 발송 (1개 시트)명세서 전자서명 발송 ([[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]])
병동병동 일별 환자수 등 (6개 시트)간호 인력·병동 지표 + 수당 계산 워크시트 ([[HBHR240_병동 일별 환자수 시트]])
시트 에러 발생 케이스에러 케이스 (1개 시트)시트 에러 재현·검토용
연장근무연장근무 내역 (1개 시트)OT 집계 ([[HBHR220_연장근무 내역 시트]])
인센티브인센티브 세션 (2개 시트)인센티브 산정 ([[HBHR250_인센티브 세션 시트]])
출퇴근출퇴근 내역 · 근태 내역 (3개 시트)근태 ([[HBHR230_출퇴근 내역 시트]] / [[HBHR231_근태 내역 시트 (근무시간 유형 집계)]])
치료실 인센티브치료일 인센티브 (1개 시트)재활·치료 단가 인센티브 ([[HBHR251_치료실 인센티브 시트]])
휴직·퇴사퇴사/휴직 내역 (2개 시트)휴직·퇴사 정산 ([[HBHR260_휴직·퇴사 내역 시트 (2섹션)]])

권한·상태 분기 요약

시나리오트리거결과비고
CASE01 [폴더 탭]"폴더" 탭폴더 트리 표시▸▾ 접기
CASE02 [휴지통 탭]"휴지통(🗑)" 탭삭제 시트 목록(복원 전용)영구 삭제 없음
CASE03 [삭제 confirm]우클릭 → 삭제 → confirm 확인soft delete → 휴지통 이동유일 삭제 경로
조건1 [HR_ADMIN]폴더 관리·삭제·가져오기권한 요건 TBU세부 권한 미확인

Open Question

  • 휴지통 복원 API·권한 토큰 실제 키 = TBU (복원 전용, 영구 삭제 액션 없음)
  • 휴지통 복원 실패 피드백 = TBU
  • 시트 삭제(우클릭)·이전 월 가져오기·폴더 생성 tRPC procedure·권한 토큰 실제 키 = TBU
  • 빈 폴더/기간·빈 휴지통·이전 월 복제 대상 0건 Empty 상태 문구 = TBU
  • 폴더 관리 모달 폴더명 입력 UI·중복 처리 = TBU
  • 폴더 관리 모달의 "(미분류)" 표기 여부(원문 목록엔 미포함) = TBU
  • 급여대장 단독 행(15) 급여대장 미존재 시 생성 진입점 문구·동선 = TBU
  • 시트 아이템(21) 연결 상태 판정 기준(연결/미연결) 및 주석 처리된 핀·건수 복구 시점 = TBU (8/17 실사: 라이브 시각 구분만 확인, 연결/미연결 원문 미확정)
  • 시트 아이템(21) 편집 라벨 형식은 "…편집됨"으로 확정(8/17 실사). 상태별 배지/워딩 세부(#540)는 [[HBHR100_시트 워크스페이스 (공통 Shell)]] 64 참조
  • 이전 월에서 가져오기 복제 실패 피드백 = TBU