Files
jongryangje/app/Controllers/Home.php

166 lines
4.6 KiB
PHP
Raw Normal View History

<?php
namespace App\Controllers;
use App\Models\LocalGovernmentModel;
class Home extends BaseController
{
public function index()
{
if (session()->get('logged_in')) {
// 메인(/) 본문은 「요약(simple)」 대시보드로 노출한다.
// 종래의 「종합·그래프(blend)」 본문은 /dashboard (또는 /dashboard/blend)로 이동.
return $this->dashboardSimple();
}
return view('welcome_message');
}
/**
* 로그인 메인 site 메뉴 레이아웃 + 종합·그래프(blend) 본문
*/
public function dashboard()
{
return view('bag/layout/main', [
'title' => '업무 현황 · 종합·그래프',
'content' => view('bag/dashboard_blend_inner', [
'lgLabel' => $this->resolveLgLabel(),
]),
]);
}
/**
* 로그인 메인 단순형 요약 대시보드. URL: /dashboard/simple
* 기존 /dashboard 화면이 복잡하다는 피드백용으로, 핵심 지표·링크만 노출.
*/
public function dashboardSimple()
{
return view('bag/layout/main', [
'title' => '업무 현황 · 요약',
'content' => view('bag/lg_dashboard_simple', [
'lgLabel' => $this->resolveLgLabel(),
]),
]);
}
/**
* 로그인 메인 중간 밀도 대시보드. URL: /dashboard/compact
* /dashboard 보다 단순하지만 simple 보다 정보량을 늘린 화면.
*/
public function dashboardCompact()
{
return view('bag/layout/main', [
'title' => '업무 현황 · 컴팩트',
'content' => view('bag/lg_dashboard_compact', [
'lgLabel' => $this->resolveLgLabel(),
]),
]);
}
/**
* 디자인 시안(기존 /dashboard 연결 화면)
*/
public function dashboardClassicMock()
{
return $this->renderDashboard();
}
/**
* 로그인 메인 모던형(세로 사이드바) 레이아웃. URL: /dashboard/modern
*/
public function dashboardModern()
{
return view('bag/lg_dashboard_modern', [
'lgLabel' => $this->resolveLgLabel(),
]);
}
/**
* 로그인 메인 정보 집약형 종합 현황. URL: /dashboard/dense
*/
public function dashboardDense()
{
return view('bag/lg_dashboard_dense', [
'lgLabel' => $this->resolveLgLabel(),
]);
}
/**
* 로그인 메인 그래프 중심(Chart.js). URL: /dashboard/charts
*/
public function dashboardCharts()
{
return view('bag/lg_dashboard_charts', [
'lgLabel' => $this->resolveLgLabel(),
]);
}
/**
* /dashboard 동일 본문(호환 URL)
*/
public function dashboardBlend()
{
return $this->dashboard();
}
/**
* 로그인 메인 라이트(축약) 대시보드. URL: /dashboard/lite
* dashboard_blend 일부 KPI//차트만 남긴 단순화 화면.
*/
public function dashboardLite()
{
return view('bag/layout/main', [
'title' => '업무 현황 · 라이트',
'content' => view('bag/dashboard_blend_lite_inner', [
'lgLabel' => $this->resolveLgLabel(),
]),
]);
}
/**
* 재고 조회(수불) 화면 (목업)
*/
public function inventoryInquiry()
{
return view('bag/inventory_inquiry');
}
/**
* 종량제 수불 그리드 (엔터프라이즈형 목업, 상단 가로 메뉴 + 병합 헤더 )
*/
public function wasteSuibalEnterprise()
{
return view('bag/waste_suibal_enterprise');
}
protected function renderDashboard()
{
return view('bag/lg_dashboard', [
'lgLabel' => $this->resolveLgLabel(),
]);
}
/**
* 세션 mb_lg_idx 기준 지자체명 (DB 없거나 실패 데모용 문구)
*/
protected function resolveLgLabel(): string
{
try {
$idx = session()->get('mb_lg_idx');
if ($idx === null || $idx === '') {
return '로그인 지자체 (미지정)';
}
$row = model(LocalGovernmentModel::class)->find((int) $idx);
if ($row && isset($row->lg_name) && $row->lg_name !== '') {
return (string) $row->lg_name;
}
} catch (\Throwable $e) {
// 테이블 미생성 등
}
return '북구 (데모)';
}
}