화면별 매뉴얼·이 화면 설명 버튼·탭 새로고침/경고·최근방문 기록 보강.
- 매뉴얼: 화면(소메뉴)별 용어·버튼·필드 설명으로 확장 + 기본정보 페이지 신규, 개요에 용어 사전 추가 (종량제 지식 없는 사용자 대상) - "이 화면 설명" 버튼: 화면 경로→매뉴얼 매핑(Config\Manual::screenHelp, manual_help_url_for_path). 워크스페이스 탭은 새 탭으로, 직접 페이지는 새 창으로 - 워크스페이스: 개별 탭 새로고침(↻) 버튼, 탭 2개 이상일 때만 새로고침 경고, 사이드바 하단 링크(매뉴얼 등)도 탭으로 열기 - 임베드: 탭 내 링크/폼 embed 유지(중첩 헤더 방지), 매뉴얼 리다이렉트 embed 유지 - 사이드바 하단: 종합그래프 → 사용자 매뉴얼 링크 - 최근 방문 메뉴: embed 페이지에도 방문 기록, 대시보드는 storage 이벤트로 실시간 갱신 - E2E qa_sweep 추가(주요 화면 콘솔/오버레이/매뉴얼/도움말 매핑 점검) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -936,3 +936,32 @@ if (! function_exists('gov_portal_nav_partial_vars')) {
|
||||
return $out;
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('manual_help_url_for_path')) {
|
||||
/**
|
||||
* 현재(또는 주어진) 화면 경로에 대응하는 매뉴얼 URL. 매칭 없으면 ''.
|
||||
* Config\Manual::$screenHelp 의 가장 긴(구체적) 접두를 우선 매칭한다.
|
||||
*/
|
||||
function manual_help_url_for_path(?string $path = null): string
|
||||
{
|
||||
helper('url');
|
||||
$path = strtolower(trim($path ?? current_nav_request_path(), '/'));
|
||||
if ($path === '') {
|
||||
return '';
|
||||
}
|
||||
$map = config(\Config\Manual::class)->screenHelp ?? [];
|
||||
$bestSlug = '';
|
||||
$bestLen = -1;
|
||||
foreach ($map as $prefix => $slug) {
|
||||
$p = strtolower((string) $prefix);
|
||||
if ($path === $p || str_starts_with($path . '/', $p . '/')) {
|
||||
if (strlen($p) > $bestLen) {
|
||||
$bestLen = strlen($p);
|
||||
$bestSlug = (string) $slug;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $bestSlug !== '' ? base_url('bag/manual/' . $bestSlug) : '';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user