/** * 장치 단위 이벤트의 camera_id 센티넬 — 프런트 공용. * * device_fault / monitoring_degraded 는 카메라가 아니라 노드에 대한 사건인데 * move_events.camera_id 가 NOT NULL 이라 서버가 '__device__' 를 넣는다(App\DeviceScope). * * WHY A SHARED FILE * 처음에는 이 값을 app.js 와 zone-draw.js 에만 적어 두었다. 그 결과 이벤트 스트림에서만 * "장치 전체" 로 보이고 상세 화면·리포트·사고조사 패키지·설정 점검·컴플라이언스에는 * `__device__` 가 그대로 노출됐다. 값이 흩어진 것이 원인이었으므로 한 파일로 모은다. * 서버측 단일 출처는 App\DeviceScope 이고, 두 값이 어긋나면 테스트가 잡는다. */ (function (global) { 'use strict'; var CAMERA = '__device__'; var LABEL = '장치 전체'; global.DeviceScope = { CAMERA: CAMERA, LABEL: LABEL, /** 이 이벤트(또는 camera_id)가 노드 단위인가. */ is: function (cameraIdOrEvent) { if (cameraIdOrEvent && typeof cameraIdOrEvent === 'object') { return String(cameraIdOrEvent.camera_id) === CAMERA; } return String(cameraIdOrEvent) === CAMERA; }, /** 사람에게 보여줄 이름. 표시하는 모든 자리에서 이 함수를 통과시킨다. */ label: function (cameraId) { return String(cameraId) === CAMERA ? LABEL : String(cameraId == null ? '' : cameraId); } }; })(window);