25 Commits

Author SHA1 Message Date
김보곤
90e2f23f18 feat: [menus] 최상위 그룹 상단/하단 이동 버튼 추가
- depth=0 메뉴에만 이동 버튼(↕) 표시
- 클릭 시 드롭다운으로 상단/하단 이동 선택
- 기존 reorder API 재사용하여 sort_order 일괄 변경
2026-02-28 08:24:55 +09:00
김보곤
83c6ee8b62 feat: [academy] 전문용어 툴팁 기능 추가
- 3개 백과사전 페이지 공용 glossary-tooltip 컴포넌트
- JS TreeWalker 자동 감지 + CSS-only 풍선 툴팁
- 도메인별 용어사전: 방화셔터/IT기획/서버지식 각 25~30개
2026-02-23 10:10:46 +09:00
김보곤
7eb761af41 feat:메뉴관리 전체 접기/펼치기 토글 버튼 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:52:09 +09:00
김보곤
440cd11ece refactor:esign 페이지 및 전역 레이아웃 React CDN 통합
- esign 전자서명 관련 9개 파일 업데이트
- layouts/app.blade.php 업데이트
- fcm.js React 관련 변경사항 반영
2026-02-12 10:35:04 +09:00
김보곤
5c9778c018 refactor:메뉴 그룹 드래그 UX 개선 - 체크박스 대신 상위 메뉴 자동 감지
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 09:11:30 +09:00
김보곤
7017dfabee feat:메뉴 관리 그룹 드래그 앤 드롭 구현
체크된 메뉴 항목들을 함께 드래그하여 이동할 수 있도록 개선:
- 상위 메뉴 체크 시 하위 메뉴도 함께 그룹으로 묶여서 이동
- 드래그 중 그룹 항목 수 뱃지 표시
- 드래그 인디케이터에 그룹 개수 표시
- 그룹 이동 시 순차적으로 API 호출

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 21:58:44 +09:00
7c0bed7dd9 fix(MNG): HTMX 네비게이션 스크립트 초기화 및 세션 자동 갱신
1. /menus 페이지 hx-boost 네비게이션 시 SortableJS 미실행 수정
   - htmx:afterSettle 이벤트로 페이지별 스크립트 초기화
   - menu-sortable.js로 SortableJS 로직 분리
   - 중복 코드 제거

2. 세션 만료 시 자동 갱신 로직 추가
   - /auth/refresh-session 엔드포인트 추가
   - Remember Token으로 자동 재인증 (자동 로그인 사용자)
   - 재인증 실패 시 로그인 페이지 리다이렉트
2026-01-20 13:42:28 +09:00
f5ec9d502c feat: [fcm] Admin FCM API 추가 - MNG에서 API 호출로 FCM 발송
- AdminFcmController, AdminFcmService 추가
- FormRequest 검증 (AdminFcmSendRequest 등)
- Swagger 문서 추가 (AdminFcmApi.php)
- ApiKeyMiddleware: admin/fcm/* 화이트리스트 추가
- FCM 에러 메시지 i18n 추가
2025-12-23 12:43:36 +09:00
fd50a6dba0 fix(mng): 메뉴 관리 UI 개선 및 페이지네이션 쿠키 버그 수정
- 메뉴 등록/수정: 부모 메뉴 선택에서 아이콘 제거 (메뉴명만 표시)
- 글로벌 메뉴: 아이콘 그리드 선택기, 확장 옵션(section, meta) 추가
- 페이지네이션: per_page 쿠키 값이 서버 기본값으로 덮어쓰이는 버그 수정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 01:31:06 +09:00
43e469b444 feat: FCM 포그라운드 알림 처리 강화
- type별 토스트 스타일 분기 (error/warning/success/info)
- 포그라운드 사운드 재생 (sound_key 기반)
- URL 클릭 이동 지원
- 앱 상태 감지 (포그라운드/백그라운드)
- sounds/ 디렉토리 추가
2025-12-18 23:01:13 +09:00
dd225d59af fix: FCM API URL에 v1 경로 추가
- /api/push/* → /api/v1/push/*
- 라우트 경로 불일치로 404 발생하던 문제 해결
2025-12-18 21:08:41 +09:00
6914ef1013 FCM 초기화 순서 개선 및 토큰 저장소 변경
- FCM 초기화 순서 변경: 리스너 등록 → 권한 요청 → register 호출
- localStorage → sessionStorage 변경 (보안 강화)
- 코드 간소화 및 불필요한 주석 제거
- API 토큰 동기화 로직 sessionStorage로 통일
2025-12-18 20:27:24 +09:00
a62337ef5c feat: [API Explorer] Phase 1 완성 - 히스토리 로드, 밸리데이션, 유니코드 처리
- 히스토리 로드 기능 구현 (loadFromHistory, fillFormFromHistory)
- 클라이언트 사이드 필수값 밸리데이션 추가
- 응답 본문 \xXX UTF-8 바이트 시퀀스 디코딩 (PHP 스택트레이스 한글 깨짐 해결)
- sidebar에 data-operation-id 속성 추가
- history-drawer 함수 연결 수정
- Flow Tester 변수 바인딩 개선
- 마이그레이션 파일 통합 정리
2025-12-18 15:42:01 +09:00
c383494d84 refactor: 브라우저 alert를 showToast로 변경
- user-modal.js: 삭제/복원/비밀번호 초기화 알림 개선
- context-menu.js: 테넌트 전환/사용자 삭제 알림 개선
- 시스템 일관성을 위해 SweetAlert2 토스트 사용
2025-12-17 15:44:31 +09:00
15a2cff453 페이지네이션 per_page 선택값 브라우저 복원 문제 수정
- pagination.blade.php: data-server-value 속성 추가, 즉시 실행 스크립트로 서버값 강제 설정
- pagination.js: htmx:afterSwap에서 쿠키값 대신 서버값(data-server-value) 우선 사용
- item-fields: 페이지네이션 추가, handlePageChange/handlePerPageChange 핸들러 구현
- 디버그 코드 제거
2025-12-16 23:16:50 +09:00
5d0f2d1346 feat(lab): SAM AI 음성 어시스턴트 레거시 마이그레이션
레거시 5130.sam.kr/ai_sam의 Google Gemini Live API 음성 어시스턴트를
MNG 프로젝트로 이전 (React → Pure JS + Blade)

변경 내용:
- GeminiController: API 키 제공 엔드포인트 추가
- sam-ai-live.js: LiveManager, AudioVisualizer ES 모듈
- sam-ai-menu.blade.php: 전면 재작성 (Tailwind UI)
- 환경변수: GEMINI_API_KEY, GEMINI_PROJECT_ID 추가

기능:
- 실시간 음성 입출력 (WebAudio API)
- UI 도구: navigateToPage, searchDocuments
- 오디오 시각화 (Canvas API)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 02:13:20 +09:00
767db6f513 feat: 품목 필드 관리 및 UI 개선
- ItemFieldController API 수정
- ItemFieldSeedingService 로직 개선
- Flow Tester 상세 화면 개선
- 레이아웃 및 프로젝트 상세 화면 수정
- 테이블 정렬 JS 추가
2025-12-12 08:51:54 +09:00
428d3d9e83 feat: 사용자 목록 테넌트 컬럼 추가 및 컨텍스트 메뉴 개선
- 사용자 목록에 테넌트 컬럼 추가 (기본 테넌트 인디고 배지)
- UserService: tenants 관계 eager loading 추가
- 컨텍스트 메뉴 우클릭 → 좌클릭 변경 (캡처링 방식)
- 전체 blade 파일 툴팁 통일: '클릭하여 메뉴 열기'
- flow-tester 오류 분석 문구 수정
2025-12-09 10:28:46 +09:00
7c7c04f8dc feat: 테넌트 모달 하단 버튼 플로팅 고정
- 닫기/수정 버튼을 모달 하단에 고정 (flex-shrink-0)
- 콘텐츠 스크롤 시에도 버튼 항상 표시
- 기존 modal-info 내부 버튼 제거

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:11:57 +09:00
85cbe23782 feat: [users] 사용자 등록 시 비밀번호 자동 생성 및 이메일 발송
- 사용자 등록 시 비밀번호 입력 필드 제거
- 임의 비밀번호 자동 생성 후 이메일 발송
- 사용자 수정 페이지에 비밀번호 초기화 버튼 추가
- 사용자 모달에 비밀번호 초기화 버튼 추가
- 사용자 모달 프로필 이미지 없을 때 이름 첫글자 표시 (한글 지원)
- UserPasswordMail 클래스 및 이메일 템플릿 추가
2025-12-01 10:50:16 +09:00
39ed2ac3e3 feat(user-modal): 사용자 정보 모달 및 컨텍스트 메뉴 확장
사용자 모달 기능:
- 사용자 정보 모달 팝업 (조회/삭제/수정)
- 권한 요약 정보 (Web/API 권한 카운트)
- 2x2 그리드 레이아웃 (테넌트, 역할, 부서, 권한)
- 테이블 행 클릭으로 모달 열기
- 권한 관리 링크 클릭 시 해당 사용자 자동 선택

컨텍스트 메뉴 확장:
- permission-analyze 페이지 사용자 이름에 컨텍스트 메뉴
- user-permissions 페이지 사용자 버튼에 컨텍스트 메뉴
- 사용자 모달 내 테넌트 칩에 컨텍스트 메뉴
- 헤더 테넌트 배지에 컨텍스트 메뉴
- 테넌트 메뉴에 "이 테넌트로 전환" 기능 추가
2025-11-27 20:05:27 +09:00
b32f6cfcf0 feat: 테넌트 정보 모달 팝업 기능 추가
- 테넌트 row 클릭 시 모달 팝업 표시
- 컨텍스트 메뉴 (우클릭) 지원
- 탭 구조: 구독정보, 사용자, 부서, 역할, 메뉴
- 메뉴 탭 트리 구조 접기/펼치기 기능
- 삭제된 테넌트 경고 배너 (삭제일, 삭제자 표시)
- 복원 버튼으로 즉시 복원 및 모달 새로고침
- 액션 버튼 (수정/삭제) 클릭 시 모달 미표시
2025-11-27 19:11:32 +09:00
604aa256f6 refactor: 메뉴 트리 스크립트 공통화 및 디자인 통일
- public/js/menu-tree.js 공통 스크립트 생성
  - 테이블(tr.menu-row) / div(.menu-item) 둘 다 지원
  - toggleChildren, hideChildren, showChildren 함수 통합

- 권한 관리 페이지들 메뉴 트리 디자인 통일
  - role-permissions, department-permissions, user-permissions
  - 폴더/파일 아이콘, 접기/펼치기 버튼, chevron 아이콘
  - menu-row 클래스 및 data 속성 추가

- permission-analyze 접기/펼치기 기능 추가
  - data-parent-id, data-depth 속성 추가
  - 폴더 버튼 클릭으로 하위 메뉴 토글

- menus 페이지 스크립트 공통화

- 각 페이지 중복 코드 제거 및 공통 menu-tree.js 로드
2025-11-27 10:25:02 +09:00
ee9e645290 역할 관리 페이지 개선
- 역할 목록: 테넌트/Guard 컬럼 추가, Guard 필터 드롭다운 추가
- 역할 등록/수정: Guard 선택 기능 추가 (API/Web)
- 권한 선택 UI를 메뉴 기반 매트릭스로 변경 (7가지 권한 유형)
- 테넌트 미선택 시 역할 등록 차단
- pagination.js 디버그 로그 제거
2025-11-26 17:11:17 +09:00
43af1a5779 페이지네이션 기능 개선 및 공통화
- 페이지네이션 로직을 별도 JS 파일로 분리 (public/js/pagination.js)
  * 쿠키 기반 per_page 값 저장 및 유지
  * 페이지네이션 이벤트 핸들러 통합
  * 중복 코드 제거

- 페이지네이션 UI 개선
  * 처음으로/끝으로 이동 버튼 추가
  * selectbox 너비 조정 (90px)
  * 서버사이드 selected 속성으로 옵션 매칭 개선

- 초기 페이지당 항목 수를 10개로 변경
  * TenantController, UserController, DepartmentController, RoleController 기본값 수정

- layouts/app.blade.php
  * pagination.js 로드 추가
  * 기존 인라인 스크립트 제거

변경 파일:
- public/js/pagination.js (신규)
- resources/views/layouts/app.blade.php
- resources/views/partials/pagination.blade.php
- app/Http/Controllers/Api/Admin/{Tenant,User,Department,Role}Controller.php
2025-11-24 21:21:22 +09:00