Commit Graph

198 Commits

Author SHA1 Message Date
pro
79c60f074c fix:계좌관리 페이지 버튼 색상 및 스타일 수정 2026-01-21 19:11:19 +09:00
pro
da29274f24 fix:sidebar.blade.php JavaScript null 참조 오류 수정 2026-01-21 19:11:05 +09:00
pro
0917c774f1 feat:재무 대시보드 페이지 추가 2026-01-21 19:10:52 +09:00
pro
c7fc872de7 feat:재무관리 React 페이지 추가 (VAT, 미수금, 미지급금 등 20개) 2026-01-21 19:10:44 +09:00
김보곤
acad251eec feat:자금계획일정 추가 2026-01-20 20:21:06 +09:00
김보곤
75a4a2b766 fix :메뉴 아이콘 추가 2026-01-20 15:40:12 +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
82a1d52976 fix(MNG): HTMX 401 에러 시 세션 만료 알림 및 로그인 리다이렉트 추가
- htmx:responseError 이벤트에서 401 상태 감지
- SweetAlert2로 세션 만료 알림 표시
- 확인 후 /login 페이지로 자동 이동
- 중복 리다이렉트 방지 플래그 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 14:49:29 +09:00
8e1f39defe feat: 알림음 시스템 - FCM 발송 UI 타입 드롭다운 추가
- 알림 타입 선택 드롭다운 추가 (6개 타입)
- channel_id 검증 로직 추가
- sound_key 파라미터 제거

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-07 20:10:19 +09:00
f70f75fb22 feat(dev-tools): 인증 모달에 회사 선택 및 토큰 표시 기능 추가
- 인증 모달에 회사(테넌트) 선택 드롭다운 추가
  - 헤더의 $globalTenants 재사용
  - tenant.switch 라우트와 동기화
  - 회사 변경 시 사용자 목록 자동 갱신

- Bearer 토큰 표시 및 복사 기능 추가
  - 토큰 발급 API 엔드포인트 추가 (POST /dev-tools/api-explorer/issue-token)
  - 현재 상태 영역에 토큰 표시
  - 클립보드 복사 버튼 (Clipboard API + fallback)
  - 적용 후 모달 유지하여 토큰 복사 가능

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 15:10:09 +09:00
5d7a813bb4 fix: 시뮬레이터 공정별 품목 8개 제한 제거
- items.slice(0, 8) 제거하여 모든 품목 표시
- max-h-80 overflow-y-auto로 스크롤 가능하게 변경

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 22:08:30 +09:00
d03fc53248 fix: MNG 시뮬레이터 옵션값 Design과 동일하게 수정
- GT(가이드레일): wall/ceiling/floor → 벽면형/측면형
- MP(모터전원): single/three → 220V/380V
- CT(제어기): basic/smart/premium → 단독/연동
- JavaScript 기본값도 동일하게 업데이트

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 21:36:30 +09:00
0c39f710f0 fix(mng): 좌측 메뉴 접근 시 페이지네이션 설정 미적용 버그 수정
- HTMX 로드 직후 htmx:configRequest 이벤트 리스너를 head에 등록
- 모든 HTMX 요청에서 쿠키의 per_page 값을 적용하도록 수정
- 기존 body 끝의 중복 코드 제거
- 타이밍 이슈로 인한 load 트리거 선행 실행 문제 해결

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 19:06:41 +09:00
33367406a0 feat(MNG): 견적 공식 시뮬레이터 UI 개선
- FormulaEvaluatorService: 공식 평가 로직 개선
- simulator.blade.php: 시뮬레이터 UI/UX 개선
  - 입력 필드 레이아웃 최적화
  - 계산 결과 표시 개선
  - 에러 처리 강화

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 17:27:01 +09:00
dcae003e32 fix: htmx 중복 로드 시 JavaScript 변수 재선언 에러 수정
- GuideModal, ExampleFlows, ExamplesModal 변수를 const에서 window 패턴으로 변경
- htmx가 콘텐츠를 다시 로드할 때 'Identifier has already been declared' 에러 방지
- window.XXX = window.XXX || {} 패턴으로 중복 선언 방지

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 14:41:20 +09:00
358c987cc1 feat(comment): 게시글 댓글 CRUD 기능 추가
- 댓글 라우트 추가 (store, update, destroy)
- PostService에 댓글 관리 메서드 추가
- PostController에 댓글 컨트롤러 메서드 추가
- 게시글 상세 페이지에 댓글 섹션 UI 추가 (AlpineJS)
- 계층형 댓글 지원 (부모/대댓글)
- BoardComment 모델 추가
- HTMLPurifier 패키지 및 설정 추가
- 게시글 목록에 첨부파일/댓글 수 표시

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 12:58:06 +09:00
a546215f45 fix(board,menu): 테넌트 게시판 수정 및 메뉴 페이지네이션 오류 수정
테넌트 게시판 수정 404 오류:
- BoardService.getBoardById()에 $systemOnly 파라미터 추가
- BoardController.edit()에서 systemOnly=false로 테넌트 게시판 조회 가능
- Api/Admin/BoardController에서 show/update 메서드 테넌트 게시판 지원
- updateAnyBoard() 메서드 사용하여 시스템/테넌트 게시판 공통 수정

메뉴 페이지네이션 쿠키 값 미적용 오류:
- HTMX 요청 시 htmx:configRequest 이벤트로 쿠키 값 적용
- pagination_per_page 쿠키에서 per_page 값 읽어서 요청 파라미터에 설정

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:12:29 +09:00
0db6e99a22 feat(board): 슈퍼관리자 삭제 게시물 관리 및 회사명 표시 기능 추가
## 슈퍼관리자 삭제 게시물 관리
- 삭제된 게시물 목록에 표시 (빨간색 배경, 취소선)
- 게시물 복원 기능 추가 (POST /{post}/restore)
- 게시물 영구삭제 기능 추가 (DELETE /{post}/force)
- 통계 카드에 삭제됨 카운트 추가

## 페이지 타이틀 회사명 표시
- /boards: "회사명 게시판 관리" 형식으로 표시
- /boards/{code}/posts: "회사명 게시판명" 형식으로 표시
- 회사명 파란색으로 구분 표시

## 버그 수정
- 통계 카드 CSS: Tailwind 동적 클래스 문제 해결
  (grid-cols-{{ }} → 정적 클래스로 변경)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 09:11:21 +09:00
a30410643b fix(board): 게시판 URL tenant_id 처리 및 게시글 수 표시 추가
- Route Model Binding → 수동 조회로 변경 (board_code + tenant_id)
- PostController: resolveBoard() 헬퍼 추가
  - t 파라미터 → 시스템 게시판 → 로그인 회원 tenant 순서
- 사이드바 메뉴 리다이렉트: tenant_id ?? 1 fallback 추가
  - SidebarMenuService와 동일한 로직으로 일관성 확보
- 게시판 목록 테이블에 게시글 수 컬럼 추가
- 모든 posts View에 tenant_id 파라미터 추가

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 01:30:50 +09:00
5b8ecf02ab fix(dev-tools): HTMX 호환성 문제 수정
- api-logs: let→var 변경으로 스크립트 재실행 오류 해결
- api-explorer: @push('styles')→content 내 style로 hx-boost 호환

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 01:04:50 +09:00
a84fc9ab77 feat(board-menu): 시스템 게시판 메뉴를 모든 테넌트에 자동 생성/삭제/복원
- createMenuForBoard(): 시스템 게시판 생성 시 GlobalMenu + 모든 활성 테넌트의 Menu에 추가
- deleteMenuForBoard(): 시스템 게시판 삭제 시 GlobalMenu + 모든 테넌트의 Menu 삭제
- restoreMenuForBoard(): 시스템 게시판 복원 시 GlobalMenu + 모든 테넌트의 Menu 복원/생성
- /menus 페이지(테넌트 메뉴)에서 시스템 게시판 메뉴가 모든 테넌트에 표시됨

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 23:12:04 +09:00
aa9623c5bb fix(mng): HTMX SPA 네비게이션 오류 수정
## 수정 내용

### HTMX 응답 형식 수정
- DepartmentController: view 직접 반환 (JSON 래핑 제거)
- MenuController: ->render() 제거하여 SVG 이스케이프 문제 해결

### 사이드바 개선
- hx-boost 적용하여 SPA 스타일 네비게이션 구현
- 메뉴 클릭 시 활성화 상태 즉시 반영
- 스크롤 위치 저장/복원 기능 추가

### 불필요한 코드 제거
- departments/index.blade.php: JSON.parse 코드 제거

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:23:03 +09:00
cd6cf9746a feat(mng): 게시판-메뉴 자동 연동 및 URL 패턴 변경
## 주요 변경사항

### 게시판-메뉴 자동 연동
- 게시판 생성 시 메뉴 자동 생성 (BoardService.createBoardFromTemplate)
- 게시판 삭제 시 연결 메뉴 함께 삭제 (Soft Delete 연동)
- 게시판 복원 시 메뉴 재생성
- 게시판 영구삭제 시 메뉴 영구삭제

### 게시판 메뉴 보호
- MenuService: 게시판 연동 메뉴 수동 수정/삭제 방지
- isBoardMenuUrl(), isBoardMenu(), validateNotBoardUrl() 헬퍼 추가
- 8개 CRUD 메서드에 검증 로직 적용

### URL 패턴 변경
- 시스템 게시판: /system-boards/{code} → /customer-center/{code}
- 테넌트 게시판: /boards/{code} (변경 없음)

### UI 개선
- 메뉴 목록에서 게시판 메뉴 "📋 게시판" 뱃지 표시
- 게시판 메뉴는 수정/삭제 버튼 숨김 (활성/숨김 토글만 허용)
- 삭제된 게시판 행 클릭 시 404 오류 수정

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 21:54:48 +09:00
b54a04d588 feat(mng): HTMX SPA 스타일 네비게이션 구현
- 사이드바에 hx-boost 적용하여 메인 콘텐츠만 교체
- main-content 영역에 id 부여
- 메뉴 클릭 시 활성화 상태 JavaScript로 처리
- 페이지 전환 시 사이드바 스크롤 위치 유지

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 21:50:01 +09:00
b992886fca feat(mng): 고객센터 게시판 목록 페이지 추가
- /customer-center 라우트 신규 생성
- 활성화된 시스템 게시판만 표시
- 테이블 컬럼: ID, 유형, 코드, 게시판명, 게시글 수, 생성일
- 관리 기능(구분, 필드, 상태, 액션) 제외한 읽기 전용 뷰

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 20:50:58 +09:00
64fa5f7766 fix(tenants): HTMX swap 오류 수정
- API가 HTMX 요청 시 JSON 대신 순수 HTML 반환하도록 변경
- 불필요한 htmx:afterSwap JSON 파싱 코드 제거

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 20:05:49 +09:00
da159cc46e feat(boards): 게시글 파일 시스템 개선 및 이미지 미리보기 추가
- Morph map에 Post, Department 모델 등록 (ClassMorphViolationException 해결)
- 파일 저장 방식을 API 스타일로 변경 (document_id + document_type)
- 파일 미리보기 라우트 및 메서드 추가 (previewFile)
- 게시글 상세 페이지에서 이미지 첨부파일을 본문 상단에 풀 너비로 표시
- 비이미지 첨부파일은 하단에 다운로드 목록으로 분리

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 17:08:53 +09:00
08e343f7f0 Fix: BOM 시뮬레이터 UI 렌더링 버그 수정
- renderProcessItem: item.amount → item.total_price (품목별 금액 0원 표시 수정)
- renderCostSummary: subtotals 객체에서 subtotal 값 추출 ([object Object] 표시 수정)
2025-12-24 16:22:17 +09:00
9e042b5d6b feat(simulator): Phase 4 - BOM 디버깅 UI 및 API 추가
- simulateBom API 엔드포인트 추가 (calculateBomWithDebug 연동)
- simulator.blade.php: BOM 디버깅 모드 탭 추가
  - 10단계 디버그 스텝 패널
  - 공정별 품목 그룹화 표시
  - 원가 요약 (공정별 소계, 총합계)
- FormulaEvaluatorService: currentTenantId 속성 추가
  - 콘솔/API에서 tenant_id 전달 가능하도록 수정
- routes/api.php: simulate-bom 라우트 추가
2025-12-24 15:45:54 +09:00
60618ddd04 feat: 견적 시뮬레이터 개선 및 FlowTester 조건 평가기 추가
- 견적 시뮬레이터 UI 레이아웃 개선 (가로 배치, 반응형)
- FlowTester ConditionEvaluator 클래스 추가 (조건부 실행 지원)
- FormulaEvaluatorService 기능 확장
- DependencyResolver 의존성 해결 로직 개선
- PushDeviceToken 모델 확장 (FCM 토큰 관리)
- QuoteFormula API 엔드포인트 추가
- FlowTester 가이드 모달 업데이트
2025-12-23 23:41:37 +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
03cf96d4bb feat: 포그라운드 푸시 알림 소리 추가
- Capacitor 패키지 추가 (@capacitor/core, @capacitor/push-notifications)
- 포그라운드에서 푸시 수신 시 알림 소리 재생
- 알림 소리 파일 추가 (push_notification.wav)
2025-12-23 08:49:07 +09:00
811a04347f feat: 플로우테스터 개선 및 품목 테스트 데이터 업데이트
- LoginToken 모델 수정
- items-bom/crud/search 플로우 데이터 업데이트
- API_FLOW_TESTER_DESIGN 문서 업데이트
- example-flows 뷰 업데이트
2025-12-22 19:51:36 +09:00
5742f9a3e4 feat(quote-formula): 매핑/품목 관리 UI 구현 (Phase 2, 3)
Phase 2 - 매핑(Mapping) 관리:
- QuoteFormulaMappingController, QuoteFormulaMappingService 추가
- mappings-tab.blade.php 뷰 생성
- 매핑 CRUD 및 순서 변경 API

Phase 3 - 품목(Item) 관리:
- QuoteFormulaItemController, QuoteFormulaItemService 추가
- items-tab.blade.php 뷰 생성
- 품목 CRUD 및 순서 변경 API
- 수량식/단가식 입력 지원

공통:
- edit.blade.php에 매핑/품목 탭 연동
- routes/api.php에 API 엔드포인트 추가
2025-12-22 19:07:50 +09:00
403e0720d9 feat(quote-formulas): 범위(Range) 관리 UI 추가 (Phase 1)
- QuoteFormulaRangeService, RangeController 생성
- 범위 CRUD API 엔드포인트 추가 (6개)
- edit.blade.php 탭 구조로 개편 (기본정보/범위/매핑/품목)
- ranges-tab.blade.php 범위 관리 UI 구현
- Alpine.js 기반 인터랙티브 CRUD
2025-12-22 17:42:51 +09:00
3f34e84bfc feat(menus): 메뉴 일괄 선택 삭제/복구/영구삭제 기능 추가
- GlobalMenu 모델에 getSection(), getMeta() 메서드 추가 (import 모드 500 에러 해결)
- table.blade.php: normal 모드에서 체크박스 + 드래그 핸들 분리
- index.blade.php: 선택 삭제/복구/영구삭제 버튼 및 JS 함수 추가
- MenuController: bulkDelete, bulkRestore, bulkForceDelete API 추가
- routes/api.php: bulk 엔드포인트 3개 등록

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 10:51:06 +09:00
20d92ea51b fix: 플로우 테스터 API 로그 오류 카운트 로직 수정
- 오류 카운트 기준: HTTP 상태 → 스텝 실패 여부로 변경
- expect로 4xx 기대하고 성공한 경우 오류로 카운트 안 함
- HTTP 4xx/5xx 응답은 주황색(amber)으로 시각적 구분

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:00:41 +09:00
1cbaf1b873 refactor(dev-tools): 인증 시스템 통합 및 테넌트 사용자 조회 개선
## 인증 모달 통합
- api-explorer, flow-tester, api-logs 3개 페이지의 인증 UI 통합
- 공유 컴포넌트 생성: auth-modal.blade.php, auth-scripts.blade.php
- sessionStorage 기반으로 페이지 간 인증 상태 공유
- DevToolsAuth 글로벌 JavaScript API 제공

## 테넌트 사용자 조회 개선
- 시스템 헤더에서 선택한 테넌트의 사용자 목록 표시
- 관리자가 모든 테넌트의 사용자 조회 가능 (소속 무관)
- session('selected_tenant_id')로 Tenant 모델 직접 조회
- 테넌트 미선택 시 안내 메시지 표시

## 버그 수정
- /users 페이지 HTMX swap 오류 수정 (JSON→HTML 직접 반환)
- 사용자 이름 JavaScript 이스케이프 처리 (@js() 사용)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 15:13:01 +09:00
0d79aa3d37 fix: [api-explorer] 즐겨찾기 및 태그명 표시 개선
- 즐겨찾기 클릭 시 404 오류 수정 (selectEndpointByPath 함수 추가)
- 태그명 형식을 "한글명 (English)"로 변경
- 사용자 목록 조회 오류 수정 (user_tenants 피벗 테이블 사용)
- 즐겨찾기 토글 시 페이지 새로고침 없이 로컬 상태 업데이트

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 14:19:26 +09:00
aa1fd76a99 feat: Flow Tester 기능 개선 및 안정화
- FlowTesterController: 테스트 실행 로직 개선
  - 에러 핸들링 강화
  - 응답 형식 표준화
- FlowExecutor: API 호출 실행기 개선
  - 다단계 플로우 지원 강화
  - 변수 바인딩 및 검증 개선
- index.blade.php: UI 개선
  - 테스트 결과 표시 개선
  - 사용성 향상
- routes/web.php: 라우트 정리
- composer.lock: 의존성 업데이트

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 01:35:54 +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
00a4920b7a feat: Global Menu 계층 이동 기능 추가 및 Role 삭제 오류 수정
Global Menu indent/outdent 기능:
- GlobalMenuController에 move() 메서드 추가
- MenuService에 moveGlobalMenu(), isGlobalDescendant(), reorderGlobalSiblings(), compactGlobalSiblings() 추가
- global-index.blade.php에 드래그 계층 이동 JavaScript 추가
- routes/api.php에 POST /move 라우트 추가

Role 삭제 500 에러 수정:
- config/auth.php에 api guard 추가 (Spatie Permission getModelForGuard 오류 해결)
- RoleService에서 불필요한 users()->detach() 제거 (FK CASCADE 처리)
- RoleController에서 HTMX 요청 시 View 직접 반환 (JSON 파싱 에러 해결)
- index.blade.php에서 불필요한 afterSwap 핸들러 제거

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-20 22:43:48 +09:00
6525bfd715 feat: MNG → DEV 자동 로그인 기능 구현
- LoginToken 모델 생성 (토큰 생성 및 URL 생성)
- UserController에 loginToken API 메서드 추가
- DEV_APP_URL 환경설정 추가 (config/services.php)
- 사용자 목록에 "DEV 접속" 버튼 추가
- openDevSite JavaScript 함수 추가

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-20 13:43:13 +09:00
d43013b4b4 feat(mobile): Phase 4 폼/필터 반응형 구현
- filter-collapsible 컴포넌트 생성 (모바일 필터 토글)
- 10개 index 페이지 헤더/필터 반응형 적용
- 헤더: flex-col sm:flex-row 스택 배치
- 필터: w-full sm:w-40 반응형 너비
- 버튼: flex-1 sm:flex-none 그룹 배치
2025-12-19 16:46:30 +09:00
a72e4c4127 feat(mng): Phase 3 - 테이블 스와이프 기능 구현
- table-swipe.blade.php 컴포넌트 생성
- CSS 터치 스크롤 최적화 및 스크롤바 스타일 추가
- 11개 테이블에 x-table-swipe 컴포넌트 적용
- 모바일에서 스와이프 힌트 애니메이션 표시 (sm 미만)
2025-12-19 16:20:20 +09:00
7fbb937ce0 feat: MNG 모바일 반응형 Phase 2 - 헤더 및 테넌트 최적화
- 사이드바 상단에 모바일 전용 테넌트 셀렉터 추가 (lg:hidden)
- 헤더 로고 옆에 현재 테넌트 뱃지 표시 (클릭 시 사이드바 열림)
- 사용자 메뉴 chevron 모바일 숨김 및 패딩 축소
2025-12-19 16:02:11 +09:00
093e98bc0f feat: MNG 모바일 반응형 Phase 1 - 사이드바 오버레이 및 햄버거 메뉴
- 모바일 사이드바 오버레이 구현 (슬라이드 인/아웃)
- 헤더에 햄버거 메뉴 버튼 추가
- 모바일 백드롭 오버레이 추가
- ESC 키 및 메뉴 클릭 시 사이드바 자동 닫힘
2025-12-19 15:51:29 +09:00
0c1501f08b feat: 메뉴 관리 UI 개선
- 부모메뉴 선택 시 트리 구조 순서 + 인덴트 적용
- 아이콘 선택 UI를 이모지에서 Heroicons SVG로 변경
- 확장 옵션 기본 펼침 상태로 변경
2025-12-19 12:58:37 +09:00
c073b82633 feat: FCM 관리자 페이지 추가
- FCM 토큰 관리 페이지 (목록, 활성화/비활성화, 삭제)
- 테스트 발송 페이지 (대상 필터, 미리보기, 발송)
- 발송 이력 페이지 (필터링, 결과 확인)
- FcmSender 서비스 (HTTP v1, 배치 처리)
- fcm_send_logs 테이블 마이그레이션
- google/auth 패키지 추가
2025-12-19 09:57:00 +09:00
6914ef1013 FCM 초기화 순서 개선 및 토큰 저장소 변경
- FCM 초기화 순서 변경: 리스너 등록 → 권한 요청 → register 호출
- localStorage → sessionStorage 변경 (보안 강화)
- 코드 간소화 및 불필요한 주석 제거
- API 토큰 동기화 로직 sessionStorage로 통일
2025-12-18 20:27:24 +09:00