fix:presentation 레이아웃 페이지 HTMX targetError 수정 (HX-Redirect 추가)
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
use App\Services\SalesScenarioService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\View\View;
|
||||
|
||||
/**
|
||||
* R&D Labs > M. 관리 메뉴 컨트롤러
|
||||
@@ -16,57 +18,96 @@ public function __construct(
|
||||
private SalesScenarioService $salesScenarioService
|
||||
) {}
|
||||
|
||||
// 바로빌 테넌트 관리
|
||||
public function barobillTenant()
|
||||
/**
|
||||
* Presentation 레이아웃 페이지를 위한 HX-Redirect 처리
|
||||
* (presentation 레이아웃은 #main-content가 없어서 HTMX swap 불가)
|
||||
*/
|
||||
private function handlePresentationPage(Request $request, string $routeName): ?Response
|
||||
{
|
||||
if ($request->header('HX-Request')) {
|
||||
return response('', 200)->header('HX-Redirect', route($routeName));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// 바로빌 테넌트 관리
|
||||
public function barobillTenant(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.barobill-tenant')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.barobill-tenant');
|
||||
}
|
||||
|
||||
// 전자세금계산서 전략
|
||||
public function taxInvoiceStrategy()
|
||||
public function taxInvoiceStrategy(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.tax-invoice-strategy')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.tax-invoice-strategy');
|
||||
}
|
||||
|
||||
// 전자세금계산서
|
||||
public function taxInvoice()
|
||||
public function taxInvoice(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.tax-invoice')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.tax-invoice');
|
||||
}
|
||||
|
||||
// 사업자등록번호 진위 확인
|
||||
public function businessVerify()
|
||||
public function businessVerify(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.business-verify')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.business-verify');
|
||||
}
|
||||
|
||||
// 영업관리 & 매니저 미팅관리
|
||||
public function salesMeeting()
|
||||
public function salesMeeting(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.sales-meeting')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.sales-meeting');
|
||||
}
|
||||
|
||||
// 카드 세무항목 매칭 전략
|
||||
public function cardTaxMatching()
|
||||
public function cardTaxMatching(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.card-tax-matching')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.card-tax-matching');
|
||||
}
|
||||
|
||||
// 한국 카드사 API 보고서
|
||||
public function cardApiReport()
|
||||
public function cardApiReport(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.card-api-report')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.card-api-report');
|
||||
}
|
||||
|
||||
// 카드 사용내역 수집 후 매칭
|
||||
public function cardUsageMatching()
|
||||
public function cardUsageMatching(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.card-usage-matching')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.card-usage-matching');
|
||||
}
|
||||
|
||||
// 계좌입출금 내역 조회 API
|
||||
public function accountApi()
|
||||
public function accountApi(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.account-api')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.account-api');
|
||||
}
|
||||
|
||||
@@ -132,8 +173,11 @@ public function salesScenarioToggle(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
// 매니저 시나리오
|
||||
public function managerScenario()
|
||||
public function managerScenario(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.management.manager-scenario')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.management.manager-scenario');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
namespace App\Http\Controllers\Lab;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\View\View;
|
||||
|
||||
/**
|
||||
* R&D Labs > S. 전략 메뉴 컨트롤러
|
||||
@@ -10,6 +13,18 @@
|
||||
*/
|
||||
class StrategyController extends Controller
|
||||
{
|
||||
/**
|
||||
* Presentation 레이아웃 페이지를 위한 HX-Redirect 처리
|
||||
* (presentation 레이아웃은 #main-content가 없어서 HTMX swap 불가)
|
||||
*/
|
||||
private function handlePresentationPage(Request $request, string $routeName): ?Response
|
||||
{
|
||||
if ($request->header('HX-Request')) {
|
||||
return response('', 200)->header('HX-Redirect', route($routeName));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 세무 전략 (장기적 세무전략 프레젠테이션)
|
||||
*/
|
||||
@@ -35,18 +50,24 @@ public function debt()
|
||||
}
|
||||
|
||||
/**
|
||||
* 스테이블코인 보고서
|
||||
* 스테이블코인 보고서 (presentation layout)
|
||||
*/
|
||||
public function stablecoin()
|
||||
public function stablecoin(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.strategy.stablecoin')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.strategy.stablecoin');
|
||||
}
|
||||
|
||||
/**
|
||||
* MRP 해외사례
|
||||
* MRP 해외사례 (presentation layout)
|
||||
*/
|
||||
public function mrpOverseas()
|
||||
public function mrpOverseas(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.strategy.mrp-overseas')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.strategy.mrp-overseas');
|
||||
}
|
||||
|
||||
@@ -115,10 +136,13 @@ public function confluenceVsNotion()
|
||||
}
|
||||
|
||||
/**
|
||||
* 차세대 QA 솔루션
|
||||
* 차세대 QA 솔루션 (presentation layout)
|
||||
*/
|
||||
public function qaSolution()
|
||||
public function qaSolution(Request $request): View|Response
|
||||
{
|
||||
if ($redirect = $this->handlePresentationPage($request, 'lab.strategy.qa-solution')) {
|
||||
return $redirect;
|
||||
}
|
||||
return view('lab.strategy.qa-solution');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user