리브랜딩 - 서비스명 "종량제 시스템" → "GBLS", 헤더 로고에 풀네임(Garbage Bag Logistics System) 병기 (gov-portal·공통 브랜드·로그인/welcome 셸·타이틀·푸터 전반) 매뉴얼 - 신규 페이지 [로그인·회원가입·계정](01_account.md): 가입 항목·관리자 승인·2차 인증 흐름 - [화면 구성·워크스페이스·단축키]에 계정 전환 시 탭 초기화 안내 추가 워크스페이스(탭) - 탭 전환 시 좌측 사이드바 강조 동기화(메뉴 없는 화면은 강조 해제, 경로 폴백 매칭) - 소메뉴 좌측 아이콘(▸/·) 전부 제거 — 활성 메뉴는 배경 강조로만 구분 - 탭을 사용자(mb_idx)별로 격리: 다른 아이디 로그인 시 이전 탭 복원 안 함 - 사이드바 FAQ 링크 제거(자주 묻는 질문은 매뉴얼에 통합) 기본 코드관리 화면 - 업무현황 카드 스타일로 재디자인(가벼운 표·상태/범위 pill·단일 구분선) - render()에 $bare 옵션 추가 → 이미 카드형인 화면은 바깥 래퍼 생략 기타 - .claude/settings.local.json(개인 권한 설정) .gitignore 추가 - e2e: 워크스페이스(동기화·계정격리) + 매뉴얼(계정·단축키·검색) 케이스 보강 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
74 lines
3.3 KiB
PHP
74 lines
3.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Config;
|
|
|
|
use CodeIgniter\Config\BaseConfig;
|
|
|
|
/**
|
|
* 사용자 매뉴얼(설명서) 목차 정의.
|
|
*
|
|
* - 배열 순서가 곧 목차(사이드바) 노출 순서입니다.
|
|
* - slug 는 URL 세그먼트이자 화이트리스트입니다. 여기에 없는 slug 는 404 입니다.
|
|
* - file 은 $dir 하위의 실제 마크다운 파일명입니다(사용자 입력으로 조합하지 않음).
|
|
*/
|
|
class Manual extends BaseConfig
|
|
{
|
|
/** 마크다운 콘텐츠 디렉터리 (웹 루트 밖). */
|
|
public string $dir = APPPATH . 'Docs/manual/';
|
|
|
|
/**
|
|
* @var array<string, array{title: string, file: string}>
|
|
*/
|
|
public array $pages = [
|
|
'overview' => ['title' => '시작하기·시스템 개요', 'file' => '00_overview.md'],
|
|
'account' => ['title' => '로그인·회원가입·계정', 'file' => '01_account.md'],
|
|
'workspace' => ['title' => '화면 구성·워크스페이스·단축키', 'file' => '05_workspace.md'],
|
|
'flow' => ['title' => '핵심 업무 흐름', 'file' => '10_workflow.md'],
|
|
'order' => ['title' => '발주·입고', 'file' => '20_order_receiving.md'],
|
|
'inventory' => ['title' => '재고·실사', 'file' => '30_inventory.md'],
|
|
'sales' => ['title' => '판매·반품·불출·주문', 'file' => '40_sales_issue.md'],
|
|
'reports' => ['title' => '현황·리포트·수불', 'file' => '50_reports.md'],
|
|
'basic' => ['title' => '기본정보(판매소·단가·코드)', 'file' => '60_basic_info.md'],
|
|
'codes' => ['title' => '봉투·LOT·바코드 코드체계', 'file' => '90_code_system.md'],
|
|
'faq' => ['title' => '자주 묻는 질문·문의', 'file' => '99_faq.md'],
|
|
];
|
|
|
|
/**
|
|
* 화면 경로(접두) → 그 화면을 설명하는 매뉴얼 slug.
|
|
* "이 화면 설명" 버튼이 현재 경로로 알맞은 매뉴얼 페이지를 연다.
|
|
* 더 긴(구체적) 접두가 우선하도록 길이 내림차순으로 매칭한다.
|
|
*
|
|
* @var array<string, string>
|
|
*/
|
|
public array $screenHelp = [
|
|
'bag/order/phone' => 'sales',
|
|
'bag/order' => 'order',
|
|
'bag/bag-orders' => 'order',
|
|
'bag/receiving' => 'order',
|
|
'bag/bag-receivings' => 'order',
|
|
'bag/inventory' => 'inventory',
|
|
'bag/sale' => 'sales',
|
|
'bag/sales' => 'sales',
|
|
'bag/issue' => 'sales',
|
|
'bag/bag-issues' => 'sales',
|
|
'bag/bag-sales' => 'sales',
|
|
'bag/shop-orders' => 'sales',
|
|
'bag/flow' => 'reports',
|
|
'bag/reports' => 'reports',
|
|
'bag/analytics' => 'reports',
|
|
'bag/designated-shops' => 'basic',
|
|
'bag/bag-prices' => 'basic',
|
|
'bag/prices' => 'basic',
|
|
'bag/packaging-units' => 'basic',
|
|
'bag/code-kinds' => 'basic',
|
|
'bag/code-details' => 'basic',
|
|
'bag/managers' => 'basic',
|
|
'bag/companies' => 'basic',
|
|
'bag/sales-agencies' => 'basic',
|
|
'bag/free-recipients' => 'basic',
|
|
'bag/number-lookup' => 'codes',
|
|
];
|
|
}
|