fix: 기본코드 등록/수정 화면 탭 안 중첩 셸 제거
- CodeKind/CodeDetail create·edit 가 view('admin/layout') 직접 사용 → 탭(iframe) 안에서 풀셸 중첩
- renderWorkPage 로 교체 + renderWorkPage 가 embed 요청이면 경로 무관하게 embed 레이아웃 사용하도록 일반화
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -56,14 +56,11 @@ class CodeDetail extends BaseController
|
||||
|
||||
helper('admin');
|
||||
|
||||
return view('admin/layout', [
|
||||
'title' => '세부코드 등록 — ' . $kind->ck_name,
|
||||
'content' => view('admin/code_detail/create', [
|
||||
'kind' => $kind,
|
||||
'canPlatformScope' => $canPlatformScope,
|
||||
'localGovernments' => $govs,
|
||||
'effectiveLgIdx' => admin_effective_lg_idx(),
|
||||
]),
|
||||
return $this->renderWorkPage('세부코드 등록 — ' . $kind->ck_name, 'admin/code_detail/create', [
|
||||
'kind' => $kind,
|
||||
'canPlatformScope' => $canPlatformScope,
|
||||
'localGovernments' => $govs,
|
||||
'effectiveLgIdx' => admin_effective_lg_idx(),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -156,12 +153,9 @@ class CodeDetail extends BaseController
|
||||
|
||||
$kind = $this->kindModel->find($item->cd_ck_idx);
|
||||
|
||||
return view('admin/layout', [
|
||||
'title' => '세부코드 수정 — ' . ($kind->ck_name ?? ''),
|
||||
'content' => view('admin/code_detail/edit', [
|
||||
'item' => $item,
|
||||
'kind' => $kind,
|
||||
]),
|
||||
return $this->renderWorkPage('세부코드 수정 — ' . ($kind->ck_name ?? ''), 'admin/code_detail/edit', [
|
||||
'item' => $item,
|
||||
'kind' => $kind,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,10 +34,7 @@ class CodeKind extends BaseController
|
||||
return $r;
|
||||
}
|
||||
|
||||
return view('admin/layout', [
|
||||
'title' => '기본코드 종류 등록',
|
||||
'content' => view('admin/code_kind/create'),
|
||||
]);
|
||||
return $this->renderWorkPage('기본코드 종류 등록', 'admin/code_kind/create');
|
||||
}
|
||||
|
||||
public function store()
|
||||
@@ -76,10 +73,7 @@ class CodeKind extends BaseController
|
||||
return redirect()->to(site_url('bag/code-kinds'))->with('error', '코드 종류를 찾을 수 없습니다.');
|
||||
}
|
||||
|
||||
return view('admin/layout', [
|
||||
'title' => '기본코드 종류 수정',
|
||||
'content' => view('admin/code_kind/edit', ['item' => $item]),
|
||||
]);
|
||||
return $this->renderWorkPage('기본코드 종류 수정', 'admin/code_kind/edit', ['item' => $item]);
|
||||
}
|
||||
|
||||
public function update(int $id)
|
||||
|
||||
@@ -74,9 +74,17 @@ abstract class BaseController extends Controller
|
||||
while (str_starts_with($path, 'index.php/')) {
|
||||
$path = substr($path, strlen('index.php/'));
|
||||
}
|
||||
// 워크스페이스 탭(iframe) 안이면 경로와 무관하게 임베드 레이아웃 → 셸 중첩 방지
|
||||
// (예: bag/code-kinds 탭에서 admin/code-kinds/create 등록 화면을 열 때)
|
||||
if ($this->isEmbeddedRequest()) {
|
||||
return view('bag/layout/embed', [
|
||||
'title' => $title,
|
||||
'content' => $content,
|
||||
]);
|
||||
}
|
||||
|
||||
if ($path === 'bag' || str_starts_with($path, 'bag/')) {
|
||||
// /workspace 탭(iframe) 안에서는 임베드 레이아웃, 아니면 gov-portal 셸
|
||||
return view($this->isEmbeddedRequest() ? 'bag/layout/embed' : 'bag/layout/portal', [
|
||||
return view('bag/layout/portal', [
|
||||
'title' => $title,
|
||||
'content' => $content,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user