feat: Global Menu 계층 이동 기능 추가 및 Role 삭제 오류 수정
Global Menu indent/outdent 기능: - GlobalMenuController에 move() 메서드 추가 - MenuService에 moveGlobalMenu(), isGlobalDescendant(), reorderGlobalSiblings(), compactGlobalSiblings() 추가 - global-index.blade.php에 드래그 계층 이동 JavaScript 추가 - routes/api.php에 POST /move 라우트 추가 Role 삭제 500 에러 수정: - config/auth.php에 api guard 추가 (Spatie Permission getModelForGuard 오류 해결) - RoleService에서 불필요한 users()->detach() 제거 (FK CASCADE 처리) - RoleController에서 HTMX 요청 시 View 직접 반환 (JSON 파싱 에러 해결) - index.blade.php에서 불필요한 afterSwap 핸들러 제거 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -277,6 +277,37 @@ public function toggleHidden(Request $request, int $id): JsonResponse
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 글로벌 메뉴 계층 이동 (인덴트/아웃덴트)
|
||||
*/
|
||||
public function move(Request $request): JsonResponse
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'menu_id' => 'required|integer',
|
||||
'new_parent_id' => 'nullable|integer',
|
||||
'sort_order' => 'required|integer|min:1',
|
||||
]);
|
||||
|
||||
try {
|
||||
$result = $this->menuService->moveGlobalMenu(
|
||||
$validated['menu_id'],
|
||||
$validated['new_parent_id'],
|
||||
$validated['sort_order']
|
||||
);
|
||||
|
||||
if (! $result['success']) {
|
||||
return response()->json($result, 400);
|
||||
}
|
||||
|
||||
return response()->json($result);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => '글로벌 메뉴 이동에 실패했습니다: '.$e->getMessage(),
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 글로벌 메뉴 순서 변경
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user