fix:HTMX 네비게이션 리다이렉트 처리 개선

This commit is contained in:
pro
2026-01-21 19:10:59 +09:00
parent 0917c774f1
commit 828534917e
4 changed files with 67 additions and 11 deletions

View File

@@ -7,6 +7,8 @@
use App\Models\Admin\AdminPmTask;
use App\Services\ProjectManagement\DailyLogService;
use App\Services\ProjectManagement\ProjectService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
class DailyLogController extends Controller
@@ -19,8 +21,13 @@ public function __construct(
/**
* 일일 로그 목록 화면
*/
public function index(): View
public function index(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드 (스크립트 로딩을 위해)
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('daily-logs.index'));
}
$tenantId = session('current_tenant_id', 1);
$projects = $this->projectService->getActiveProjects();
@@ -133,8 +140,13 @@ private function getAttentionTasks(): array
/**
* 일일 로그 상세 화면
*/
public function show(int $id): View
public function show(Request $request, int $id): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('daily-logs.show', $id));
}
$tenantId = session('current_tenant_id', 1);
$log = $this->dailyLogService->getDailyLogById($id, true);
@@ -160,8 +172,13 @@ public function show(int $id): View
/**
* 오늘 날짜 로그 화면 (자동 생성)
*/
public function today(): View
public function today(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('daily-logs.today'));
}
$tenantId = session('current_tenant_id', 1);
$today = now()->format('Y-m-d');

View File

@@ -9,6 +9,7 @@
use App\Services\ApiExplorer\OpenApiParserService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
/**
@@ -32,8 +33,13 @@ public function __construct(
/**
* 메인 페이지
*/
public function index(): View
public function index(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드 (스크립트 로딩을 위해)
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('dev-tools.api-explorer.index'));
}
$userId = auth()->id();
// 기본 환경 초기화
@@ -559,8 +565,13 @@ public function deleteBookmark(int $id): JsonResponse
/**
* API 사용 현황 페이지
*/
public function usage(): View
public function usage(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('dev-tools.api-explorer.usage'));
}
$comparison = $this->usageService->getApiUsageComparison();
$deprecations = $this->usageService->getDeprecations();
$dailyTrend = $this->usageService->getDailyTrend(30);

View File

@@ -7,6 +7,7 @@
use App\Models\Admin\AdminApiFlowRun;
use App\Services\FlowTester\FlowExecutor;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
/**
@@ -19,8 +20,13 @@ class FlowTesterController extends Controller
/**
* 플로우 목록
*/
public function index(): View
public function index(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드 (스크립트 로딩을 위해)
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('dev-tools.flow-tester.index'));
}
$flows = AdminApiFlow::with('latestRun')
->orderByDesc('created_at')
->paginate(20);
@@ -36,8 +42,13 @@ public function index(): View
/**
* 플로우 생성 폼
*/
public function create(): View
public function create(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('dev-tools.flow-tester.create'));
}
return view('dev-tools.flow-tester.create');
}
@@ -66,8 +77,13 @@ public function store(Request $request)
/**
* 플로우 편집 폼
*/
public function edit(int $id): View
public function edit(Request $request, int $id): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('dev-tools.flow-tester.edit', $id));
}
$flow = AdminApiFlow::findOrFail($id);
return view('dev-tools.flow-tester.edit', compact('flow'));
@@ -315,8 +331,13 @@ public function runStatus(int $runId)
/**
* 실행 이력 목록
*/
public function history(int $id): View
public function history(Request $request, int $id): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('dev-tools.flow-tester.history', $id));
}
$flow = AdminApiFlow::findOrFail($id);
$runs = $flow->runs()
->orderByDesc('created_at')
@@ -328,8 +349,13 @@ public function history(int $id): View
/**
* 실행 상세 보기
*/
public function runDetail(int $runId): View
public function runDetail(Request $request, int $runId): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('dev-tools.flow-tester.run-detail', $runId));
}
$run = AdminApiFlowRun::with('flow')->findOrFail($runId);
return view('dev-tools.flow-tester.run-detail', compact('run'));

View File

@@ -10,6 +10,8 @@
use Illuminate\Http\Response;
use Illuminate\View\View;
// Note: Response is still used by deleteToken() method
class FcmController extends Controller
{
public function __construct(
@@ -77,7 +79,7 @@ public function deleteToken(int $id): Response
/**
* FCM 테스트 발송 페이지
*/
public function send(Request $request): View
public function send(): View
{
$tenants = Tenant::orderBy('company_name')->get();