POP 프로필 팝오버에 "앱 모드" 메뉴를 추가한다.
Fullscreen API로 브라우저를 전체화면 전환하여 앱처럼 사용 가능.
- showAppMode 설정 옵션 추가 (기본 활성화)
- 풀스크린 진입: document.documentElement.requestFullscreen()
- 풀스크린 해제: document.exitFullscreen()
- 상태에 따라 아이콘/텍스트 전환 (Maximize2/Minimize2, 앱 모드/앱 모드 해제)
- fullscreenchange 이벤트 리스너로 상태 동기화
- 디자이너 설정 패널에 "앱 모드 (풀스크린)" 토글 추가
리서치 반영 UX 구조 대폭 변경:
- 좌측 사이드바(220px) → 상단 탭 바(48px)로 전환 (작업 전|작업 중|작업 후|실적)
- 탭마다 진행률 표시 (예: "작업 전 2/5")
- 고정 헤더: 진한 배경(#263238) + 흰색 텍스트로 작업 정보 표시
- KPI 카드 상시 표시: 접수량/작업완료/잔여/불량 (40px bold, 색상 구분)
- 고정 풋터 액션바: 일시정지(황)/불량등록(적)/작업완료(녹) 3버튼
- 작업완료 2단계 확인 (클릭 → "정말 완료?" 확인)
- 배경색 #F5F5F5 (공장 조명 눈부심 방지)
- 체크리스트 행: 좌측 상태 바 (완료=녹, 필수=적, 기본=회)
- ChecklistRowItem 래퍼로 행 전체 터치 영역 + 시각 피드백
- DESIGN 토큰 확장: tab, footer, header, kpi, bg 추가
- COLORS 확장: kpiInput, kpiComplete, kpiRemaining, kpiDefect 추가
- step 모드와 list 모드 모두 탭 구조 안에서 정상 동작
cart_items.row_data에서 코드값(partner_id)을 추출한 후
참조 테이블(customer_mng)에서 표시값(customer_name)을 조회하는
json_extract_lookup 기능을 추가한다.
화면 4579(출고 확정)에서 거래처명이 표시되지 않는 문제를 해결한다.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
출고(판매/기타/외주) 전용 카드 리스트 컴포넌트를 신규 생성한다.
- 세로형 카드 레이아웃: 헤더 + 스탯 그리드 + 수량 입력 + 담기/취소
- ISA-101 산업 현장 디자인 토큰 (56px 버튼, 36px 숫자)
- useCartSync 훅 연동, 이벤트 버스 filter/collect/save 지원
- 디자이너 설정 패널 3탭 (데이터/카드/장바구니)
- React key prop fallback 패턴 적용 (sf.id || idx)
- PopComponentType, ComponentPalette, PopRenderer 레지스트리 등록
- @playwright/test devDependency 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
검색어 입력 시 activeFilterTab(초성/알파벳) 필터가 동시 적용되어
검색 결과가 현재 탭 내로 제한되던 문제를 수정한다.
searchText가 있으면 필터 탭을 무시하고 전체 데이터에서 검색한다.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
require("../../package.json")이 Docker 컨테이너(/app/src/)에서
모듈을 찾지 못해 서버가 크래시하는 문제를 try-catch로 해결한다.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
POP MES 전용 카드 + 디자인 감사 + 장바구니 분리 + 체크리스트/실적 관리 기능을 main에 통합한다.
주요 병합 내용:
- mes-process-card 전용 카드 + batch_done 워크플로우 + 실적 관리 강화
- MES 불량 처분 체계(disposition 3종) + 공정 흐름 스트립 필/칩 UI 개편
- MES 다중작업자 분할접수 4대 연쇄 버그 근본 해결
- MES 체크리스트 자동 복사 + 구조적 버그 3건 수정
- MES 카드 산업용 태블릿 UI 리디자인 (10인치 터치 최적화)
- MES 상태 탭 카드 내장 + pop-search 레거시 정리 + 하위 테이블 자동 판단
- pop-card-list-v2 설정 패널 MES 간소화 + 내 작업 표시 3모드
- BLOCK DETAIL Phase 4: 그룹별 타이머, 터치 최적화 UI, DB 저장 버그 수정
- POP 디자인 감사 + WYSIWYG 정렬 + MES/장바구니 분리
- POP 장바구니 입고 워크플로우 수정 및 접근성/UX 개선
- POP 뷰어 헤더 제거 + 디자이너-뷰어 그리드 칸 수 불일치 수정
- PopFieldConfig JsonKeySelect 개선
충돌 해결: 1건 (.gitignore - 양쪽 추가 항목 통합)
장바구니(cart) 기반 구매입고 흐름에서 버튼 동작, 검색 접근성,
필터 안내 메시지 기능을 수정하여 실제 운영 시나리오에서의
안정성을 확보한다.
[pop-button 장바구니 모드 판단 수정]
- isCartMode: v1 preset뿐 아니라 v2 tasks에 cart-save가 포함된
경우에도 장바구니 모드로 인식하도록 개선
- resolvedCartScreenId: v2 tasks의 cartScreenId도 참조
- 장바구니 모드 분기를 v2 tasks 처리보다 먼저 실행하여
cart-save 버튼이 정상 동작하도록 순서 변경
[pop-search 아이콘 카드 접근성]
- IconView의 div 카드에 role="button", tabIndex={0},
onKeyDown(Enter/Space) 추가
- 브라우저 자동화 및 키보드 사용자가 아이콘 카드를
인터랙티브 요소로 인식 가능
[필터 필수 안내 메시지 기능]
- pop-card-list(장바구니 목록): requireFilter, requireFilterMessage
설정 추가, 필터 미선택 시 커스텀 안내 문구 표시
- pop-card-list-v2(MES 공정흐름): hideUntilFilteredMessage
설정 추가, 기존 필터 전 숨김에 커스텀 문구 지원
- 양쪽 설정 패널에 안내 문구 입력 UI 추가
[원본 화면 선택 Combobox 전환]
- PopCardListConfig 장바구니 모드의 원본 화면 선택을
Select에서 검색 가능한 Combobox로 변경
- 로그인 계정의 companyCode로 화면 목록 필터링 적용
- Added new route for receiving management, allowing users to manage incoming goods effectively.
- Updated global CSS to unify font sizes across the application, ensuring a consistent user experience.
- Modified customer and sales order fetching logic to improve data retrieval and handling, including enhanced error logging for better debugging.
These changes aim to streamline the receiving process and improve overall UI consistency within the application.
- Added new API endpoints for retrieving routing versions and managing work standards associated with work instructions.
- Implemented functionality to update routing versions for work instructions, enhancing the flexibility of the work instruction management process.
- Introduced a new modal for editing work standards, allowing users to manage detailed work items and processes effectively.
- Updated frontend components to integrate routing and work standard functionalities, improving user experience and data management.
These changes aim to enhance the management of work instructions and their associated processes, facilitating better tracking and organization within the application.
- V2WebView 컴포넌트: iframe 기반 외부 웹 임베딩
- SSO 연동: 현재 로그인 JWT를 sso_token 파라미터로 자동 전달
- /api/system/raw-token: 범용 JWT 토큰 조회 API
- V2WebViewConfigPanel: URL, SSO, sandbox 등 설정 UI + 개발자 가이드
Made-with: Cursor
- Implemented a new API endpoint for retrieving BOM materials based on item codes, enhancing the ability to manage and view component materials.
- Added necessary SQL queries to fetch BOM details, ensuring that the data is filtered by company code for multi-tenancy support.
- Updated frontend components to integrate BOM materials fetching, allowing for better visibility and management of materials in the process workflow.
These changes aim to streamline the management of BOM materials, facilitating better tracking and organization within the application.
- Integrated a combobox for selecting employees, allowing users to assign tasks more efficiently.
- Implemented fetching of employee data to populate the selection options, improving user experience.
- Added functionality to filter tasks based on the current user's related tasks, enhancing task management capabilities.
- Updated the modal states for better handling of designer assignments and task interactions.
These changes aim to streamline the design task management process, facilitating better organization and assignment of tasks within the application.
별도 pop-status-bar 컴포넌트 배치/연결 없이 카드 상단에
MES 고정 상태 탭(전체/대기/접수가능/진행/완료)을 내장한다.
[내장 상태 탭 UI]
- MES_STATUS_TABS 상수: waiting/acceptable/in_progress/completed 고정
- 카드 그리드 상단에 pill 형태 탭 렌더링
- 상태별 카운트 + "전체"는 클론 제외 originalCount 표시
- showStatusTabs && hasProcessFlow 조건부 표시
[자체 카운트/필터]
- statusCounts useMemo: filteredRows 기준 VIRTUAL_SUB_STATUS 집계
- statusFilteredRows useMemo: 선택 탭으로 내부 필터
- displayCards/hasMoreCards/totalPages가 statusFilteredRows 기준으로 동작
- 탭 전환 시 currentPage=1 리셋
[외부 status-bar 하위 호환]
- effectiveExternalFilters: showStatusTabs일 때 _source="status-bar"
필터 무시 (내장 탭으로 대체, 충돌 방지)
- all_rows 이벤트 발행 유지 (기존 pop-status-bar 연결 안 깨짐)
- rowsForStatusCount: showStatusTabs일 때 filteredRows 직접 반환
[설정 패널]
- 고급 설정에 "상태 탭 내장" Switch 토글 추가
- showStatusTabs?: boolean 타입 추가 (기본 false)
- Introduced new routes and controllers for managing work instructions, including functionalities for listing, saving, and previewing work instruction numbers.
- Implemented company code filtering for multi-tenancy support, ensuring that users can only access their respective work instructions.
- Added a new Work Instruction page in the frontend for comprehensive management, including search and registration functionalities.
These changes aim to enhance the management of work instructions, facilitating better tracking and organization within the application.
- Introduced a new Design Request page for managing design requests, including functionalities for creating, updating, and deleting requests.
- Implemented client-side filtering and progress tracking for design requests, enhancing user experience and data management.
- Integrated a combobox for selecting customers and orders, improving the efficiency of data entry.
- Added necessary types and styles for better organization and visual representation of design request statuses.
These changes aim to provide a comprehensive interface for managing design requests, facilitating better tracking and organization within the application.
MES 고정 구조에 맞게 검색/연결/필터 컴포넌트를 간소화하고,
하위 테이블 필터를 수동 설정에서 자동 판단으로 전환한다.
[pop-search 레거시 정리]
- LegacySearchInputType, StatusChipConfig, StatusChipStyle,
SelectDataSource 등 미사용 타입 제거
- status-chip, multi-select, combo 입력 타입 제거
(DB 호환: normalizeInputType에서 text로 정규화)
- 설정 패널에서 status-chip 관련 UI/안내문 제거
- SEARCH_INPUT_TYPE_LABELS 간소화 (7종 -> 5종)
[하위 테이블 자동 판단]
- PopCardListV2Component: subTableKeys useMemo 추가
(processFlow rawData 키셋에서 하위 테이블 컬럼 자동 추출)
- isSubTableColumn useCallback: filterConfig.isSubTable 하위 호환 +
subTableKeys 기반 자동 판단으로 메인/하위 필터 분류
- ConnectionEditor: "하위 테이블 기준으로 필터" 체크박스 UI 제거,
isSubTable 상태 및 setIsSubTable 전부 제거
- 컬럼 선택 드롭다운: 메인+하위 테이블 컬럼 통합 표시
- 기존 연결 배지 "하위 테이블" -> "자동 판단"으로 변경
[초기값 프로필 세팅]
- PopSearchConfig.initialValueSource 타입 추가
({ type: "user_profile", column: string })
- PopSearchComponent: useAuth + useEffect로 사용자 프로필 값
자동 필터 발행 (userId, deptCode, positionCode 등)
- 설정 패널: "초기값 자동 세팅" Select 드롭다운 추가
(사용 안 함 / 사용자ID / 부서코드 / 직급 등 7개 옵션)
MES 고정 구조에 맞게 설정 패널을 간소화하고, 작업상세 내장 모달과
작업자 기반 카드 필터링 기능을 추가한다.
[설정 패널 간소화]
- 3탭(데이터/디자인/동작) -> 2탭(정보/동작)으로 축소
- "정보" 탭: 데이터 소스, 카드 구성, 클릭 동작을 읽기 전용 요약으로 표시
- "동작" 탭: cardClickAction 선택(none/modal-open/built-in-work-detail)
+ 내 작업 표시 + 고급 설정(필터 전 숨김, 기본 표시 수) 유지
- PopWorkDetailConfigPanel을 카드 설정에서 분리
(작업상세 컴포넌트 자체 설정 패널에서 관리)
[Core Binding 내장 모달]
- cardClickAction="built-in-work-detail" 시 내부 Dialog로
PopWorkDetail 직접 렌더링, parentRow를 prop으로 전달
- LazyPopWorkDetail dynamic import로 성능 최적화
- in_progress 상태 카드만 상세 모달 열림
[카드 열 수 선택]
- 정보 탭 상단에 1열/2열/3열/4열 버튼 UI 추가
- gridColumns 설정 즉시 반영
[내 작업 표시 3모드]
- 전체 보기: 모든 카드 동등 표시
- 우선 표시: 내 카드 상단 + 다른 카드 비활성화(기존 동작)
- 내 작업만: worker 컬럼 기준 내 카드만 표시, 나머지 숨김
- ownerFilterMode("priority"|"only") 타입 추가, 컬럼 선택 드롭다운
제거하고 worker 고정 토글로 단순화
- Introduced new routes and controllers for managing shipping orders, including listing, saving, and previewing next order numbers.
- Added design management routes and controller for handling design requests, projects, tasks, and work logs.
- Implemented company code filtering for multi-tenancy support in both shipping order and design request functionalities.
- Enhanced the shipping plan routes to include listing and updating plans, improving overall shipping management capabilities.
These changes aim to provide comprehensive management features for shipping orders and design processes, facilitating better organization and tracking within the application.