FoxInput에 digitsOnly를 둔다. 타이핑·붙여넣기·끌어놓기·IME 어느 경로든 input
이벤트에서 숫자만 남기고, 커서 앞에서 지운 글자 수만큼 커서를 당겨 제자리를
지킨다. 붙여넣기는 따로 받는다 — 브라우저가 maxLength를 붙여넣은 원문에 먼저
적용해 `123-45-67890`의 뒷자리를 잘라 버리기 때문이다. 초기값의 하이픈도 걷는다.
FoxPhoneNumber는 이미 숫자만 받았지만 번호 전체를 한 칸에 붙여넣으면 그 칸
자릿수만 남았다. 붙여넣은 숫자를 세 칸에 나눠 채우고 마지막 칸으로 포커스를 옮긴다.
onlyDigits는 두 컴포넌트가 같이 쓰도록 utils로 뺀다.
가맹몰 관리 모달(사업자등록번호·전화번호·입금계좌번호)과 가맹몰 상세(업체 연락처)에
켜고, 도메인 검증도 숫자만 허용하도록 조인다 — 사업자등록번호는 10자리.
Co-Authored-By: Claude Fable 5.1
1:1문의는 앱이 제목(bbsNm)에 유형 이름만 넣어 백엔드 검색(BBS_NM LIKE)이
쓸모없다. 검색 상자가 없던 이유가 그것이라, 백엔드가 못 거르는 두 대상은
Repository가 전 페이지(500건씩·최대 20쪽)를 받아 걸러 페이지로 자른다.
검색어가 없으면 종전처럼 서버 페이징을 쓴다.
백엔드에 searchCondition 2(BBS_CN)·3(작성자)이 생기면 서버 검색으로 바꾼다.
Co-Authored-By: Claude Opus 5
게시판(공지·FAQ·1:1문의)·콘텐츠(쇼츠·만화·퀴즈)·꾸미기 아이템·금칙어·공통코드 그룹 목록에
새로 추가하고, 포인트 적립·기준의 [초기화]는 [검색 초기화]로 바꾼다. 모두 목록 컨테이너를
다시 마운트해 입력 중인 검색어까지 비우고 기본 주소로 돌아간다. 검색이 없는 앱 메뉴·관리자
메뉴 목록은 대상이 아니고, 가맹몰 관리는 앞서 요청으로 뺀 상태를 유지한다.
Co-Authored-By: Claude Opus 5
디자인팀 규칙 보완(사용자 요청). 가맹점코드·코드ID·상세코드ID·아이템ID·메뉴번호, 이름·아이디·
보호자이름·아이템명·작성자·질문자명에 align=start. 번호·날짜·상태·구분 같은 짧은 값은 가운데 그대로.
Co-Authored-By: Claude Opus 5
디자인팀 확정. thead 칸은 열의 align을 받지 않고(FoxTableCell·FoxListContainer) 스타일이
가운데로 고정한다 — 본문 행의 머리칸(form 레이블 열)은 그대로 왼쪽. 휴대전화번호·전화번호·
연락처·보호자연락처 열은 긴 글로 보아 align=start.
Co-Authored-By: Claude Opus 5
통용 관례 적용을 되돌리고(64b5dee) 디자인팀 회신대로 한다 — 목록의 기본은 시안대로 가운데,
제목 열(가맹점명·업체명·메뉴명·제목·콘텐츠명·질문·금지 키워드·코드명·학생명·이벤트/구분)과
긴 글 열(주소·설명·코드설명·질문내용·키워드·이메일)만 align=start로 왼쪽에 둔다. 머리칸은
본문 열을 따른다.
Co-Authored-By: Claude Opus 5
시안(tbl-basic·tbl-list)의 가운데 기본 대신 A List Apart·Material·Carbon·GOV.UK가 공통으로
쓰는 규칙을 따른다(사용자 확정, 되돌리기 쉽게 별도 브랜치).
- FoxTable list·basic의 기본 정렬을 start로. form은 이미 start.
- 비교하는 숫자(포인트·가격·메뉴 건수·정렬순서·메뉴순번)는 end.
- 이미지·체크박스·아이콘·펼침 토글·관리 버튼·알약 배지는 center. 관리 열은 화면마다
start/center/end로 갈리던 것을 center로 통일.
- 식별값(번호·학년/반/번호)·날짜·상태 표시(글자)는 기본(왼쪽) — 기존 center 지정을 뺀다.
- 머리칸은 본문 열 정렬을 따른다(FoxListContainer가 이미 같은 align을 준다).
Co-Authored-By: Claude Opus 5
저장된 장을 다시 올릴 때 이름을 MIME(image/jpeg;charset=UTF-8)에서 그대로 만들어 확장자가
'jpeg;charset=utf-8'이 됐고, 백엔드가 이름의 확장자로 허용 여부를 가려(EgovFileMngUtil.
checkAllowFileExtension) 거절했다(dev 로그 #585). 묶음 파일 목록의 원본 이름·확장자를 쓰고
없으면 MIME 매개변수를 뗀다. 덧붙이기 저장 뒤 화면이 옛 칸을 유지하던 것도 장수를 key에
넣어 다시 마운트한다.
Co-Authored-By: Claude Fable 5.1
업종 선택지는 FRCS_TPBIZ_CD(2자리)만 — 4자리 FRCS_CD는 업종+업태를 이어 붙인 표시용이라 저장값이
아니다. 연락처는 BizPlay 행처럼 숫자만 보낸다. 백엔드가 BizPlay 위임을 끊고 TB_COM_VOUCHER에
직접 넣게 된 것과 수정 VO에 frcsNo가 빠진 결함을 문서에 적는다.
Co-Authored-By: Claude Fable 5.1
- 상단 업체명 검색이 안 됐다 — 목록 컨테이너의 검색 상자는 onQueryChange로만 알리는데 링크만
넘기고 있었다. 백엔드 조건(searchFrcsNm)은 있으나 목록을 합쳐 프론트에서 거르므로 그대로 쓴다.
- 상세가 없는 행의 [비활성]·[삭제]를 잠근다.
- 메뉴 설명의 줄바꿈을 표에서 살린다(pre-line, 3줄 뒤 말줄임).
- 단건 조회가 업체명 대신 코드를 줄 때 가맹점 목록에서 채우는 것을 Repository로 옮겨 메뉴
등록·수정 화면의 「대상 업체」에도 이름이 나온다.
Co-Authored-By: Claude Fable 5.1