13 Commits

Author SHA1 Message Date
DDD1542 8eb4e8c9a2 feat: 화재 알람 데모 SCADA 스타일 경고 인디케이터 + ZONE 17 콘텐츠 정렬
Build & Deploy to K8s / build-and-deploy (push) Successful in 5m29s
- 각 zone 중앙에 SCADA 스타일 경고 비콘 자동 삽입 (펄스 링 + 빨간 배지 + 노란 경고 삼각형)
- WARN/ALARM 별 색상 분리 (CSS 변수 --b-* 로 SVG <use> shadow DOM 통과)
  - WARN: 노란 톤 + 정적 표시
  - ALARM: 빨간 톤 + drop-shadow + brightness 깜빡임
- zone-area 점선 테두리: warn(노란/얇음), alarm(빨간/굵음+pulse)
- ZONE 17 콘텐츠를 ZONE 18 비례에 맞춰 재배치 (label y 453→396) — manual-call 과 라벨 겹침 해소

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 13:34:20 +09:00
DDD1542 5d2283cb47 feat: 화재 알람 데모 건물별 색상 분류 + 라벨/아이콘 가독성 개선
- 건물 4종(utility/service/factory1/office)에 배경 그라디언트 분기
- zone 영역도 같은 톤 색상 클래스 (za-utility/service/factory1/office)
- room-label 폰트 5.7 → 7.5, zone-label 10 → 13.5 키움
- 센서/manual-call 아이콘 26 → 34, 18 → 24 로 확대 + 위치 보정

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 11:05:42 +09:00
DDD1542 de0bfc1af4 feat: SCADA 데모 가독성 개선 + 컴포넌트 좌표 조정 도구 추가
- 압력 게이지 1.5x 확대, PRESS/판독값/라벨 폰트 강조
- 모든 설비(탱크/펌프/시스템/MBR/필터/카본) 라벨 폰트 +2~4 단계 키움
- 센서/타일 박스 및 폰트 확대, 위치 간격 보정
- 위쪽 처리 라인 30px 위로 + TSS-RAW 자기 자리 유지하도록 dy 보정
- AIR BLOWER 를 CIP 패널 내려간 만큼 같이 내림
- 게이지/밸브/모듈/탱크 및 파이프 라우팅 미세 조정 (드래그로 잡은 좌표 일괄 반영)
- dev-drag.js: Shift+D 임시 드래그 모드. 컴포넌트/파이프 via/절대 끝점 핸들로 좌표 인스펙션 후 토폴로지 재빌드, 변경 이력 누적 패널 + 전체 복사
2026-05-07 10:42:33 +09:00
gbpark da77de58ac fix: SCADA 데모 다중 경고 모드에서 dock 잘림 해소 (emergency-stack)
Build & Deploy to K8s / build-and-deploy (push) Successful in 4m14s
- 메인 모달 + alarm-list-dock 을 .emergency-stack 으로 묶어 viewport 안에서
  flex 자동 분할 (어떤 해상도/줌에서도 dock 이 잘리지 않게)
- with-multi 진입 시 JS 가 stack 으로 동적 wrapping, 해제 시 원위치 복귀
- mini-modal 본문도 line-clamp 3 + min-height:0 로 길이 폭주 차단

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 22:48:37 +09:00
gbpark 59fbbd95fa feat: 방재 시스템 화재 알람 모니터링 데모 페이지 추가
Build & Deploy to K8s / build-and-deploy (push) Has been cancelled
- /fire-alarm 라우트에 invyone 브랜딩 적용된 모니터링 데모 추가
- CCTV 화면은 화재 감지 → 스프링쿨러 작동 2개 영상을 순차 재생
  (단일 합본 mp4 의 ended 이벤트 불안정 + 루프 이슈로 분리)
- v1 종료 시점에 자동 phase2 전환: 스프링쿨러/방화셔터 상태 활성화
- 정보 패널 스프링쿨러 상태 텍스트에 시안 글로우 펄스로 작동 표시
- 종료 검출 3중 방어 (timeupdate / ended / hard-stop timer)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 22:47:03 +09:00
gbpark 4514275347 chore: SCADA 데모 CCTV 의 TARGET 라벨 박스 제거
Build & Deploy to K8s / build-and-deploy (push) Successful in 6s
실제 영상에서 BW-A1 위에 박스 정렬 어렵고 시연 임팩트 없음 — 그냥 영상 그대로 노출.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 07:38:45 +09:00
gbpark d0dd86371b chore: SCADA 데모의 알람 target 작업자를 siflex_user 로 기본 박음
Build & Deploy to K8s / build-and-deploy (push) Has been cancelled
데스크톱이 /scada?worker=siflex_user query 매번 안 박아도 자동으로 작업자 폰(siflex_user)에 push.
다른 작업자 시험할 일 있으면 ?worker=<id> 로 override 여전히 가능.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 07:16:11 +09:00
gbpark e70267f738 feat: SCADA 데모 음성 인식 + 경고 버튼 디자인 통일
Build & Deploy to K8s / build-and-deploy (push) Failing after 1m14s
- 음성 인식 (scada-demo/js/voice.js) — 한국어 발화 → 키워드 매핑 → INVYONE_UI.select()
  · 사이드바 마이크 버튼 + transcript 라벨, 매칭 시 청록 펄스
  · Chrome/Edge HTTPS 환경 (운영 siflex.invyone.com OK)
- 경고시스템/다중경고 버튼을 음성 인식과 동일 톤
  · 🚨 emoji → SVG 삼각형 아이콘, voice-btn 패턴 (다크 솔리드 + 컬러 액센트)
  · 정적 (반짝 펄스 애니메이션 제거)
- client.ts stash pop conflict 정리 (DEV_TENANT_HOST + 도메인 정리 통합)
- ui.js 다중 경고 시연 wiring + scada 작업 노트 2건
- 기타 syncthing 보류분 batch (대시보드/레이아웃/로그인 layout 정리)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 05:39:43 +09:00
gbpark 7635412b7b feat: SCADA 시연용 모바일 알람 동반 화면 + Spring WebSocket
- 작업자 폰(/mobile)을 SCADA 데모와 ws 로 연결, 알람 발생 시 풀스크린 푸시
  · v5 솔리드+글로우 톤, 진동/Web Audio 비프/Wake Lock/auto reconnect
  · 시연 안전망: ?test=1 자동 발동, 우상단 hidden 트리거
- backend: com.erp.alarm 신규 패키지 (WebSocketConfig + Handshake + Handler + Controller)
  · JWT 토큰 핸드셰이크 검증, userId 기반 채널 매핑 (멀티 디바이스 지원)
  · spring-boot-starter-websocket 의존성 추가
  · path 를 /api/demo/* 안에 두어 Traefik 라우트 추가 불필요 + 정식 알람과 분리
- SCADA scenario.js 의 emergency 시퀀스(2700ms)에 fetch('/api/demo/alarm/trigger') 배선
  · /scada?worker=<user_id> query 로 target user 지정 (iframe src 로 전달)
- 운영 시연 URL: siflex.invyone.com/mobile (siflex_user) ↔ /scada?worker=siflex_user

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 01:18:12 +09:00
gbpark e3fe7b640f 22 2026-04-07 13:39:14 +09:00
leeheejin 331261bc80 날씨 2025-10-23 13:17:21 +09:00
leeheejin da429e7f24 image 2025-09-29 18:14:03 +09:00
hyeonsu d5efe7e111 public 폴더 추가 2025-08-28 15:13:29 +09:00