Files
jongryangje/docs/기본 개발계획/26-메뉴_드래그_정렬_기능.md

31 lines
1.3 KiB
Markdown
Raw Normal View History

# 메뉴 목록 드래그 정렬 기능
## 목적
- 관리자 메뉴 관리 화면에서 상위/하위 메뉴 행을 마우스로 드래그해 순서를 쉽게 변경한다.
- 변경된 순서를 기존 `순서 적용` 버튼으로 저장한다.
## 적용 범위
- 화면: `admin/menus` (`app/Views/admin/menu/index.php`)
- 서버 정렬 조회: `app/Models/MenuModel.php`
## 구현 내용
- 메뉴 목록 테이블에 드래그 핸들(`↕`) 컬럼 추가.
- 각 메뉴 행에 HTML5 DnD(`draggable="true"`) 적용.
- 드래그 중 마우스 위치 기준으로 행을 실시간 재배치.
- 행 순서가 바뀌면 화면의 순번(`#`)을 즉시 갱신.
- 저장은 기존과 동일하게 `mm_idx[]` 순서로 `POST /admin/menus/move` 호출.
- 목록 조회 정렬을 `mm_num ASC` 기준으로 변경하여 드래그 저장 결과가 그대로 반영되도록 수정.
## 사용 방법
1. 메뉴 관리 화면에서 원하는 행을 드래그한다.
2. 원하는 위치로 놓는다.
3. `순서 적용` 버튼을 눌러 저장한다.
## 동작 규칙/제약
- 드래그는 행 단위 정렬만 수행한다.
- 부모/자식 관계(`mm_pidx`, `mm_dep`)는 변경하지 않는다.
- 즉, 구조 변경이 아니라 표시/노출 순서(`mm_num`)만 변경한다.
## 참고
- 하위 메뉴의 추가는 1차 메뉴에서만 가능하도록 기존 정책 유지.