gov-portal 디자인을 시스템 전체에 적용한다.

- 사이트 업무 페이지: 공통 셸 bag/layout/portal(헤더+대메뉴 클릭+좌측 사이드바 소메뉴)
- 관리자 페이지: admin/layout 을 동일 포털 셸로 재작성(관리자 메뉴 트리, 폴백)
- 메인(/): gov-portal 대시보드, 종량제 실데이터만(재고/주문/승인/활동로그)
- 로그인/회원가입/2차인증/TOTP: 공통 auth/_shell 로 통일, 사이트 공통 로고
- 버튼색 통일: btn-search 등 주요 버튼을 #243a5e(메뉴바 네이비보다 살짝 밝게),
  밝은 파랑 채움 버튼(#2b4c8c/#1e548a)도 동일 색으로
- gov_portal_nav_context() 임의 메뉴 트리 수용, 업무 셸은 실제 bag/* 링크 유지
- Admin\Menu 권한거부 리다이렉트 admin/dashboard(404) → admin 수정
- E2E redesign.spec.js 추가, 기능 무변경

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
taekyoungc
2026-06-08 09:47:36 +09:00
parent 707182ad2d
commit ec3119799c
32 changed files with 1040 additions and 503 deletions

View File

@@ -687,11 +687,11 @@ if (! function_exists('gov_portal_nav_context')) {
* dashboardAliases: list<string>
* }
*/
function gov_portal_nav_context(): array
function gov_portal_nav_context(bool $remapLinks = true, ?array $tree = null): array
{
helper('url');
$tree = get_site_nav_tree();
$tree = $tree ?? get_site_nav_tree();
$rawPath = current_nav_request_path();
$variant = gov_portal_active_variant($rawPath);
$currentPath = gov_portal_nav_match_path($rawPath);
@@ -702,10 +702,10 @@ if (! function_exists('gov_portal_nav_context')) {
foreach ($tree as $pIdx => $parent) {
$children = [];
foreach ($parent->children ?? [] as $child) {
$href = gov_portal_menu_href_remap(
menu_link_preferred_href_path($child->mm_link ?? null, $currentPath),
$variant
);
$href = menu_link_preferred_href_path($child->mm_link ?? null, $currentPath);
if ($remapLinks) {
$href = gov_portal_menu_href_remap($href, $variant);
}
$children[] = [
'idx' => (int) ($child->mm_idx ?? 0),
'name' => (string) ($child->mm_name ?? ''),