feat: 페이지 구조 재구성 및 사이드바 네비게이션 구현

- 페이지 폴더 재구성: safety/, attendance/ 폴더 신규 생성
  - work/ → safety/: 이슈 신고, 출입 신청 관련 페이지 이동
  - common/ → attendance/: 근태/휴가 관련 페이지 이동
  - admin/ 정리: safety-* 파일들을 safety/로 이동

- 사이드바 네비게이션 메뉴 구현
  - 카테고리별 메뉴: 작업관리, 안전관리, 근태관리, 시스템관리
  - 접기/펼치기 기능 및 상태 저장
  - 관리자 전용 메뉴 자동 표시/숨김

- 날씨 API 연동 (기상청 단기예보)
  - TBM 및 navbar에 현재 날씨 표시
  - weatherService.js 추가

- 안전 체크리스트 확장
  - 기본/날씨별/작업별 체크 유형 추가
  - checklist-manage.html 페이지 추가

- 이슈 신고 시스템 구현
  - workIssueController, workIssueModel, workIssueRoutes 추가

- DB 마이그레이션 파일 추가 (실행 대기)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-02-02 14:27:22 +09:00
parent b6485e3140
commit 74d3a78aa3
116 changed files with 23117 additions and 294 deletions

View File

@@ -92,36 +92,74 @@ docker-compose up -d # 수동 실행
- **일관된 헤더**: 모든 페이지에서 `<div id="navbar-container"></div>` 사용
- **CSS 로딩 순서**: `design-system.css` → 페이지별 CSS
### 페이지 구조 (2026-01-20 개편)
### 페이지 구조 (2026-02-02 현행)
```
web-ui/pages/
├── dashboard.html # 메인 대시보드
├── work/ # 작업 관련 페이지
├── dashboard.html # 메인 대시보드 (작업장 현황 지도 포함)
├── work/ # 작업 관련 페이지 (현장 입력/생산)
│ ├── tbm.html # TBM(Tool Box Meeting) 관리
│ ├── report-create.html # 작업보고서 작성
│ ├── report-view.html # 작업보고서 조회
│ └── analysis.html # 작업 분석
├── admin/ # 관리자 기능
│ ├── index.html # 관리 메뉴 허브
│ ├── projects.html # 프로젝트 관리
├── safety/ # 안전 관리 페이지 (신규)
│ ├── issue-report.html # 이슈 신고
│ ├── issue-list.html # 이슈 목록
│ ├── issue-detail.html # 이슈 상세
│ ├── visit-request.html # 출입 신청
│ ├── management.html # 안전 관리 (출입 승인)
│ ├── training-conduct.html # 안전교육 진행
│ └── checklist-manage.html # 안전 체크리스트 관리
├── attendance/ # 근태 관리 페이지 (common → attendance 변경)
│ ├── daily.html # 일일 출퇴근 입력
│ ├── monthly.html # 월별 출퇴근 현황
│ ├── vacation-request.html # 휴가 신청
│ ├── vacation-management.html # 휴가 관리 (통합)
│ ├── vacation-approval.html # 휴가 승인 관리
│ ├── vacation-input.html # 휴가 직접 입력
│ ├── vacation-allocation.html # 휴가 발생 입력
│ └── annual-overview.html # 연간 연차 현황
├── admin/ # 시스템 관리 페이지
│ ├── accounts.html # 계정 관리
│ ├── page-access.html # 페이지 접근 권한 관리
│ ├── workers.html # 작업자 관리
│ ├── projects.html # 프로젝트 관리
│ ├── tasks.html # 작업 관리
│ ├── workplaces.html # 작업장 관리 (지도 구역 설정)
│ ├── equipments.html # 설비 관리
│ ├── codes.html # 코드 관리
│ └── accounts.html # 계정 관리
│ └── attendance-report.html # 출퇴근-작업보고서 대조
├── profile/ # 사용자 프로필
│ ├── info.html # 내 정보
│ └── password.html # 비밀번호 변경
└── .archived-*/ # 미사용 페이지 보관
```
**폴더 분류 기준** (2026-02-02 변경):
- `work/`: 현장 입력/생산 활동 (TBM, 작업보고서)
- `safety/`: 안전 관리/분석 (이슈, 출입, 안전교육)
- `attendance/`: 근태/휴가 관리
- `admin/`: 시스템 관리 (관리자 전용)
- `profile/`: 개인 설정 페이지
**네이밍 규칙**:
- 메인 페이지: 단일 명사 (`dashboard.html`)
- 관리 페이지: 복수형 명사 (`projects.html`, `workers.html`)
- 기능 페이지: 동사-명사 (`report-create.html`, `report-view.html`)
- 폴더명: 단수형, 소문자 (`work/`, `admin/`, `profile/`)
- 기능 페이지: 동사-명사 또는 명사 (`report-create.html`, `daily.html`)
- 폴더명: 단수형, 소문자 (`work/`, `safety/`, `attendance/`, `admin/`, `profile/`)
**네비게이션 구조**:
- 1차: `dashboard.html` (메인 진입점)
- 2차: `admin/index.html` (관리 허브)
- 모든 페이지: navbar를 통해 profile, 작업 페이지로 이동 가능
- 1차: `dashboard.html` (메인 진입점, 작업장 현황 지도)
- 2차: 사이드 메뉴 또는 빠른 작업 카드를 통한 각 기능 페이지 이동
- 모든 페이지: navbar를 통해 profile, 로그아웃 가능
### 대기 중인 DB 마이그레이션
페이지 구조 변경에 따른 DB 마이그레이션이 필요합니다:
```bash
cd /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net
npx knex migrate:latest
```
- 마이그레이션 파일: `db/migrations/20260202200000_reorganize_pages.js`
- 내용: pages 테이블 경로 업데이트, role_default_pages 테이블 생성
### 표준 컴포넌트 (2026-01-20 업데이트)