Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
portal-apps-manage
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
angular
portal-apps-manage
Commits
f629f997
Commit
f629f997
authored
Sep 14, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
หห
parent
3140f8f1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
402 additions
and
100 deletions
+402
-100
dashboard-management.module.ts
...anage/dashboard-management/dashboard-management.module.ts
+214
-2
widget-management.module.ts
...-management/widget-management/widget-management.module.ts
+0
-31
portal-manage.routes.ts
src/app/portal-manage/portal-manage.routes.ts
+16
-32
sidebar.component.ts
src/app/shared/components/sidebar/sidebar.component.ts
+42
-8
nav.service.ts
src/app/shared/services/nav.service.ts
+130
-27
No files found.
src/app/portal-manage/dashboard-management/dashboard-management.module.ts
View file @
f629f997
...
...
@@ -5,11 +5,189 @@ import { RouterModule, Routes } from '@angular/router';
import
{
DashboardManagementComponent
}
from
'./dashboard-management.component'
;
import
{
DatasetPickerComponent
}
from
'./dataset-picker.component'
;
import
{
WidgetConfigComponent
}
from
'./widget-config/widget-config.component'
;
import
{
DashboardViewerComponent
}
from
'./dashboard-viewer/dashboard-viewer.component'
;
import
{
WidgetListComponent
}
from
'./widget-management/widget-list.component'
;
import
{
WidgetFormComponent
}
from
'./widget-management/widget-form.component'
;
import
{
DatasetWidgetLinkerComponent
}
from
'./widget-management/dataset-widget-linker.component'
;
// Import widget components
import
{
AreaChartWidgetComponent
}
from
'./widgets/area-chart-widget/area-chart-widget.component'
;
import
{
AttendanceOverviewWidgetComponent
}
from
'./widgets/attendance-overview-widget.component'
;
import
{
BarChartWidgetComponent
}
from
'./widgets/bar-chart-widget/bar-chart-widget.component'
;
import
{
ChartWidgetComponent
}
from
'./widgets/chart-widget/chart-widget.component'
;
import
{
ComboChartWidgetComponent
}
from
'./widgets/combo-chart-widget/combo-chart-widget.component'
;
import
{
CompanyInfoWidgetComponent
}
from
'./widgets/company-info-widget.component'
;
import
{
DoughnutChartWidgetComponent
}
from
'./widgets/doughnut-chart-widget/doughnut-chart-widget.component'
;
import
{
DataTableWidgetComponent
}
from
'./widgets/dynamic-widgets/data-table-widget.component'
;
import
{
EmployeeDirectoryWidgetComponent
}
from
'./widgets/employee-directory-widget.component'
;
import
{
FilledMapWidgetComponent
}
from
'./widgets/filled-map-widget/filled-map-widget.component'
;
import
{
FunnelChartWidgetComponent
}
from
'./widgets/funnel-chart-widget/funnel-chart-widget.component'
;
import
{
GaugeChartWidgetComponent
}
from
'./widgets/gauge-chart-widget/gauge-chart-widget.component'
;
import
{
HeadcountWidgetComponent
}
from
'./widgets/headcount-widget.component'
;
import
{
KpiWidgetComponent
}
from
'./widgets/kpi-widget/kpi-widget.component'
;
import
{
MatrixWidgetComponent
}
from
'./widgets/matrix-widget/matrix-widget.component'
;
import
{
MultiRowCardWidgetComponent
}
from
'./widgets/multi-row-card-widget/multi-row-card-widget.component'
;
import
{
PayrollSummaryWidgetComponent
}
from
'./widgets/payroll-summary-widget.component'
;
import
{
PieChartWidgetComponent
}
from
'./widgets/pie-chart-widget/pie-chart-widget.component'
;
import
{
QuickLinksWidgetComponent
}
from
'./widgets/quick-links-widget/quick-links-widget.component'
;
import
{
ScatterBubbleChartWidgetComponent
}
from
'./widgets/scatter-bubble-chart-widget/scatter-bubble-chart-widget.component'
;
import
{
SimpleKpiWidgetComponent
}
from
'./widgets/simple-kpi-widget/simple-kpi-widget.component'
;
import
{
SimpleTableWidgetComponent
}
from
'./widgets/simple-table-widget/simple-table-widget.component'
;
import
{
SlicerWidgetComponent
}
from
'./widgets/slicer-widget/slicer-widget.component'
;
import
{
SyncfusionChartWidgetComponent
}
from
'./widgets/syncfusion-chart-widget/syncfusion-chart-widget.component'
;
import
{
SyncfusionDatagridWidgetComponent
}
from
'./widgets/syncfusion-datagrid-widget/syncfusion-datagrid-widget.component'
;
import
{
SyncfusionPivotWidgetComponent
}
from
'./widgets/syncfusion-pivot-widget/syncfusion-pivot-widget.component'
;
import
{
TreemapWidgetComponent
}
from
'./widgets/treemap-widget/treemap-widget.component'
;
import
{
WaterfallChartWidgetComponent
}
from
'./widgets/waterfall-chart-widget/waterfall-chart-widget.component'
;
import
{
WelcomeWidgetComponent
}
from
'./widgets/welcome-widget/welcome-widget.component'
;
export
const
routes
:
Routes
=
[
{
path
:
''
,
component
:
DashboardManagementComponent
component
:
DashboardManagementComponent
,
children
:
[
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
},
{
path
:
'dashboard'
,
component
:
DashboardManagementComponent
,
title
:
'แดชบอร์ดหลัก'
},
{
path
:
'viewer/:dashboardId'
,
component
:
DashboardViewerComponent
,
title
:
'ดูแดชบอร์ด'
},
{
path
:
'widget-management'
,
children
:
[
{
path
:
''
,
component
:
WidgetListComponent
,
title
:
'รายการวิดเจ็ต'
},
{
path
:
'edit/:widgetId'
,
component
:
WidgetFormComponent
,
title
:
'แก้ไขวิดเจ็ต'
},
{
path
:
'linker'
,
component
:
DatasetWidgetLinkerComponent
,
title
:
'เชื่อมโยงข้อมูลกับวิดเจ็ต'
}
]
},
{
path
:
'widget-config'
,
component
:
WidgetConfigComponent
,
title
:
'ตั้งค่าวิดเจ็ต'
},
{
path
:
'dataset-picker'
,
component
:
DatasetPickerComponent
,
title
:
'เลือกชุดข้อมูล'
},
// Widget preview routes
{
path
:
'widget-preview/:widgetType'
,
component
:
DashboardViewerComponent
,
title
:
'ตัวอย่างวิดเจ็ต'
}
]
},
// Routes for dynamic app-based routing
{
path
:
':appName/dashboard-management'
,
component
:
DashboardManagementComponent
,
children
:
[
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
},
{
path
:
'dashboard'
,
component
:
DashboardManagementComponent
,
title
:
'แดชบอร์ดหลัก'
},
{
path
:
'viewer/:dashboardId'
,
component
:
DashboardViewerComponent
,
title
:
'ดูแดชบอร์ด'
},
{
path
:
'widget-management'
,
children
:
[
{
path
:
''
,
component
:
WidgetListComponent
,
title
:
'รายการวิดเจ็ต'
},
{
path
:
'edit/:widgetId'
,
component
:
WidgetFormComponent
,
title
:
'แก้ไขวิดเจ็ต'
},
{
path
:
'linker'
,
component
:
DatasetWidgetLinkerComponent
,
title
:
'เชื่อมโยงข้อมูลกับวิดเจ็ต'
}
]
},
{
path
:
'widget-config'
,
component
:
WidgetConfigComponent
,
title
:
'ตั้งค่าวิดเจ็ต'
},
{
path
:
'dataset-picker'
,
component
:
DatasetPickerComponent
,
title
:
'เลือกชุดข้อมูล'
},
// Widget preview routes
{
path
:
'widget-preview/:widgetType'
,
component
:
DashboardViewerComponent
,
title
:
'ตัวอย่างวิดเจ็ต'
}
]
},
// Routes for widget warehouse
{
path
:
':appName/widget-warehouse'
,
children
:
[
{
path
:
''
,
component
:
WidgetListComponent
,
title
:
'คลังวิดเจ็ต'
},
{
path
:
'edit/:widgetId'
,
component
:
WidgetFormComponent
,
title
:
'แก้ไขวิดเจ็ต'
},
{
path
:
'preview/:widgetType'
,
component
:
DashboardViewerComponent
,
title
:
'ตัวอย่างวิดเจ็ต'
}
]
},
{
path
:
':appName/widget-linker'
,
component
:
DatasetWidgetLinkerComponent
,
title
:
'เชื่อมโยงข้อมูลกับวิดเจ็ต'
},
// Direct dashboard viewer route
{
path
:
'dashboard-viewer/:dashboardId'
,
component
:
DashboardViewerComponent
,
title
:
'ดูแดชบอร์ด'
}
];
...
...
@@ -20,7 +198,41 @@ export const routes: Routes = [
RouterModule
.
forChild
(
routes
),
DashboardManagementComponent
,
DatasetPickerComponent
,
WidgetConfigComponent
WidgetConfigComponent
,
DashboardViewerComponent
,
WidgetListComponent
,
WidgetFormComponent
,
DatasetWidgetLinkerComponent
,
// Widget components
AreaChartWidgetComponent
,
AttendanceOverviewWidgetComponent
,
BarChartWidgetComponent
,
ChartWidgetComponent
,
ComboChartWidgetComponent
,
CompanyInfoWidgetComponent
,
DoughnutChartWidgetComponent
,
DataTableWidgetComponent
,
EmployeeDirectoryWidgetComponent
,
FilledMapWidgetComponent
,
FunnelChartWidgetComponent
,
GaugeChartWidgetComponent
,
HeadcountWidgetComponent
,
KpiWidgetComponent
,
MatrixWidgetComponent
,
MultiRowCardWidgetComponent
,
PayrollSummaryWidgetComponent
,
PieChartWidgetComponent
,
QuickLinksWidgetComponent
,
ScatterBubbleChartWidgetComponent
,
SimpleKpiWidgetComponent
,
SimpleTableWidgetComponent
,
SlicerWidgetComponent
,
SyncfusionChartWidgetComponent
,
SyncfusionDatagridWidgetComponent
,
SyncfusionPivotWidgetComponent
,
TreemapWidgetComponent
,
WaterfallChartWidgetComponent
,
WelcomeWidgetComponent
],
exports
:
[]
})
...
...
src/app/portal-manage/dashboard-management/widget-management/widget-management.module.ts
deleted
100644 → 0
View file @
3140f8f1
import
{
NgModule
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
import
{
RouterModule
,
Routes
}
from
'@angular/router'
;
import
{
WidgetListComponent
}
from
'./widget-list.component'
;
import
{
WidgetFormComponent
}
from
'./widget-form.component'
;
export
const
routes
:
Routes
=
[
{
path
:
''
,
component
:
WidgetListComponent
},
{
path
:
'edit/:widgetId'
,
component
:
WidgetFormComponent
}
];
@
NgModule
({
declarations
:
[],
imports
:
[
CommonModule
,
RouterModule
.
forChild
(
routes
),
WidgetListComponent
,
WidgetFormComponent
],
exports
:
[]
})
export
class
WidgetManagementModule
{
static
routes
=
routes
;
}
src/app/portal-manage/portal-manage.routes.ts
View file @
f629f997
import
{
Routes
}
from
'@angular/router'
;
import
{
DashboardManagementComponent
}
from
'./dashboard-management/dashboard-management.component'
;
import
{
DashboardViewerComponent
}
from
'./dashboard-management/dashboard-viewer/dashboard-viewer.component'
;
import
{
WidgetListComponent
}
from
'./dashboard-management/widget-management/widget-list.component'
;
import
{
WidgetFormComponent
}
from
'./dashboard-management/widget-management/widget-form.component'
;
import
{
moduleAccessGuard
}
from
'../core/guards/module-access.guard'
;
import
{
DatasetWidgetLinkerComponent
}
from
'./dashboard-management/widget-management/dataset-widget-linker.component'
;
import
{
HomeComponent
}
from
'./home/home.component'
;
import
{
MeetingBookingComponent
}
from
'./meeting-booking/meeting-booking.component'
;
import
{
MenuPermissionManagementComponent
}
from
'./menu-permission-management/menu-permission-management.component'
;
...
...
@@ -65,7 +60,14 @@ export const portalManageRoutes: Routes = [
// === การบริการ ===
// Dashboard
// Dashboard Management (รวม widget management)
{
path
:
'dashboard-management'
,
canActivate
:
[
moduleAccessGuard
],
loadChildren
:
()
=>
import
(
'./dashboard-management/dashboard-management.module'
).
then
(
m
=>
m
.
DashboardManagementModule
)
},
// Dashboard (alias สำหรับ backward compatibility)
{
path
:
'dashboard'
,
canActivate
:
[
moduleAccessGuard
],
...
...
@@ -95,20 +97,6 @@ export const portalManageRoutes: Routes = [
canActivate
:
[
moduleAccessGuard
]
},
// Widget Management
{
path
:
'widget-management'
,
canActivate
:
[
moduleAccessGuard
],
loadChildren
:
()
=>
import
(
'./dashboard-management/widget-management/widget-management.module'
).
then
(
m
=>
m
.
WidgetManagementModule
)
},
// Dashboard Management
{
path
:
'dashboard-management'
,
component
:
DashboardManagementComponent
,
canActivate
:
[
moduleAccessGuard
]
},
// my-Portal Module
{
path
:
'my-portal'
,
...
...
@@ -122,31 +110,27 @@ export const portalManageRoutes: Routes = [
// Dynamic route for dashboard management per application
{
path
:
':appName/dashboard-management'
,
c
omponent
:
DashboardManagementComponent
,
canActivate
:
[
moduleAccessGuard
]
c
anActivate
:
[
moduleAccessGuard
]
,
loadChildren
:
()
=>
import
(
'./dashboard-management/dashboard-management.module'
).
then
(
m
=>
m
.
DashboardManagementModule
)
},
// Dynamic routes for widget warehouse per application
{
path
:
':appName/widget-warehouse'
,
component
:
WidgetListComponent
,
canActivate
:
[
moduleAccessGuard
]
},
{
path
:
':appName/widget-warehouse/edit/:widgetId'
,
component
:
WidgetFormComponent
,
canActivate
:
[
moduleAccessGuard
]
canActivate
:
[
moduleAccessGuard
],
loadChildren
:
()
=>
import
(
'./dashboard-management/dashboard-management.module'
).
then
(
m
=>
m
.
DashboardManagementModule
)
},
{
path
:
':appName/widget-linker'
,
c
omponent
:
DatasetWidgetLinkerComponent
,
canActivate
:
[
moduleAccessGuard
]
c
anActivate
:
[
moduleAccessGuard
]
,
loadChildren
:
()
=>
import
(
'./dashboard-management/dashboard-management.module'
).
then
(
m
=>
m
.
DashboardManagementModule
)
},
// Route for viewing a specific dashboard
{
path
:
'dashboard-viewer/:dashboardId'
,
component
:
DashboardViewerComponent
canActivate
:
[
moduleAccessGuard
],
loadChildren
:
()
=>
import
(
'./dashboard-management/dashboard-management.module'
).
then
(
m
=>
m
.
DashboardManagementModule
)
},
// Redirect for unknown routes
...
...
src/app/shared/components/sidebar/sidebar.component.ts
View file @
f629f997
...
...
@@ -80,8 +80,9 @@ export class SidebarComponent {
isDashboardManagementRoute
:
boolean
=
false
;
isPermissionManagementRoute
:
boolean
=
false
;
isMenuPermissionManagementRoute
:
boolean
=
false
;
isWidgetManagementRoute
:
boolean
=
false
;
isMeetingBookingRoute
:
boolean
=
false
;
isWidgetWarehouseRoute
:
boolean
=
false
;
isWidgetLinkerRoute
:
boolean
=
false
;
previousUrl
:
string
=
''
;
currentUrl
:
string
=
''
;
...
...
@@ -131,8 +132,9 @@ export class SidebarComponent {
this
.
isDashboardManagementRoute
=
this
.
currentUrl
.
includes
(
'/dashboard-management'
);
this
.
isPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/permission-management'
);
this
.
isMenuPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/menu-permission-management'
);
this
.
isWidgetManagementRoute
=
this
.
currentUrl
.
includes
(
'/widget-management'
);
this
.
isMeetingBookingRoute
=
this
.
currentUrl
.
includes
(
'/meeting-booking'
);
this
.
isWidgetWarehouseRoute
=
this
.
currentUrl
.
includes
(
'/widget-warehouse'
);
this
.
isWidgetLinkerRoute
=
this
.
currentUrl
.
includes
(
'/widget-linker'
);
this
.
menuitemsSubscribe$
=
this
.
navServices
.
items
.
subscribe
((
items
)
=>
{
this
.
changeMenu
()
});
...
...
@@ -172,8 +174,9 @@ export class SidebarComponent {
this
.
isDashboardManagementRoute
=
this
.
currentUrl
.
includes
(
'/dashboard-management'
);
this
.
isPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/permission-management'
);
this
.
isMenuPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/menu-permission-management'
);
this
.
isWidgetManagementRoute
=
this
.
currentUrl
.
includes
(
'/widget-management'
);
this
.
isMeetingBookingRoute
=
this
.
currentUrl
.
includes
(
'/meeting-booking'
);
this
.
isWidgetWarehouseRoute
=
this
.
currentUrl
.
includes
(
'/widget-warehouse'
);
this
.
isWidgetLinkerRoute
=
this
.
currentUrl
.
includes
(
'/widget-linker'
);
this
.
checkUrlChanges
()
// Log to console for verification
console
.
log
(
'Initial URL:'
,
this
.
currentUrl
);
...
...
@@ -189,8 +192,9 @@ export class SidebarComponent {
console
.
log
(
'dashboard-management routes'
,
this
.
isDashboardManagementRoute
);
console
.
log
(
'permission-management routes'
,
this
.
isPermissionManagementRoute
);
console
.
log
(
'menu-permission-management routes'
,
this
.
isMenuPermissionManagementRoute
);
console
.
log
(
'widget-management routes'
,
this
.
isWidgetManagementRoute
);
console
.
log
(
'meeting-booking routes'
,
this
.
isMeetingBookingRoute
);
console
.
log
(
'widget-warehouse routes'
,
this
.
isWidgetWarehouseRoute
);
console
.
log
(
'widget-linker routes'
,
this
.
isWidgetLinkerRoute
);
}
...
...
@@ -232,8 +236,9 @@ export class SidebarComponent {
this
.
isDashboardManagementRoute
=
this
.
currentUrl
.
includes
(
'/dashboard-management'
);
this
.
isPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/permission-management'
);
this
.
isMenuPermissionManagementRoute
=
this
.
currentUrl
.
includes
(
'/menu-permission-management'
);
this
.
isWidgetManagementRoute
=
this
.
currentUrl
.
includes
(
'/widget-management'
);
this
.
isMeetingBookingRoute
=
this
.
currentUrl
.
includes
(
'/meeting-booking'
);
this
.
isWidgetWarehouseRoute
=
this
.
currentUrl
.
includes
(
'/widget-warehouse'
);
this
.
isWidgetLinkerRoute
=
this
.
currentUrl
.
includes
(
'/widget-linker'
);
// Log to console for verification
console
.
log
(
'Current URL:'
,
this
.
currentUrl
);
...
...
@@ -254,6 +259,13 @@ export class SidebarComponent {
});
}
// Helper method เพื่อดึงชื่อแอปจาก URL
private
extractAppNameFromUrl
(
url
:
string
):
string
|
null
{
// ตรวจสอบ URL patterns เช่น /portal-manage/myhr-plus/widget-warehouse
const
match
=
url
.
match
(
/
\/
portal-manage
\/([^\/]
+
)\/(
widget-warehouse|widget-linker
)
/
);
return
match
?
match
[
1
]
:
null
;
}
changeMenu
()
{
// กำหนดเมนูพื้นฐาน (Common หรือ Installer)
if
(
this
.
isInstallerRoute
)
{
...
...
@@ -275,15 +287,21 @@ export class SidebarComponent {
}
else
if
(
this
.
isMyhrPlusRoute
){
this
.
menuItems
=
this
.
navServices
.
getMyhrPlusMenu
();
}
else
if
(
this
.
isDashboardManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
get
System
ManagementMenu
();
this
.
menuItems
=
this
.
navServices
.
get
Dashboard
ManagementMenu
();
}
else
if
(
this
.
isPermissionManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isMenuPermissionManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isWidgetManagementRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isMeetingBookingRoute
){
this
.
menuItems
=
this
.
navServices
.
getSystemManagementMenu
();
}
else
if
(
this
.
isWidgetWarehouseRoute
||
this
.
isWidgetLinkerRoute
){
// สำหรับ widget-warehouse และ widget-linker ใช้เมนูตามแอปที่อยู่ใน URL
const
appName
=
this
.
extractAppNameFromUrl
(
this
.
currentUrl
);
if
(
appName
)
{
this
.
menuItems
=
this
.
navServices
.
getMenuByAppId
(
appName
);
}
else
{
this
.
menuItems
=
this
.
navServices
.
getDashboardManagementMenu
();
}
}
// เพิ่มรายการรายงาน Excel เข้าไปในเมนู หากมีข้อมูลและยังไม่ได้เพิ่ม
...
...
@@ -430,6 +448,13 @@ export class SidebarComponent {
element
.
active
=
true
;
element
.
selected
=
true
;
}
// ตรวจสอบ path สำหรับ widget routes
if
((
this
.
isWidgetWarehouseRoute
||
this
.
isWidgetLinkerRoute
)
&&
ele
.
path
&&
this
.
currentUrl
.
startsWith
(
ele
.
path
.
split
(
'?'
)[
0
]))
{
element
.
active
=
true
;
element
.
selected
=
true
;
ele
.
active
=
true
;
ele
.
selected
=
true
;
}
// ตรวจสอบ path สำหรับ Excel Report ที่มี query parameters
if
((
this
.
isMyportalRoute
||
this
.
isMyPortalRoute
||
this
.
isInstallerRoute
)
&&
ele
.
path
&&
this
.
currentUrl
.
startsWith
(
ele
.
path
.
split
(
'?'
)[
0
]))
{
const
currentUrlBase
=
this
.
currentUrl
.
split
(
'?'
)[
0
];
...
...
@@ -451,6 +476,15 @@ export class SidebarComponent {
ele
.
active
=
true
;
ele
.
selected
=
true
;
}
// ตรวจสอบ path สำหรับ widget routes ในระดับที่ 3
if
((
this
.
isWidgetWarehouseRoute
||
this
.
isWidgetLinkerRoute
)
&&
child1
.
path
&&
this
.
currentUrl
.
startsWith
(
child1
.
path
.
split
(
'?'
)[
0
]))
{
element
.
active
=
true
;
element
.
selected
=
true
;
ele
.
active
=
true
;
ele
.
selected
=
true
;
child1
.
active
=
true
;
child1
.
selected
=
true
;
}
// ตรวจสอบ path สำหรับ Excel Report ที่มี query parameters ในระดับที่ 3
if
((
this
.
isMyportalRoute
||
this
.
isMyPortalRoute
||
this
.
isInstallerRoute
)
&&
child1
.
path
&&
this
.
currentUrl
.
startsWith
(
child1
.
path
.
split
(
'?'
)[
0
]))
{
const
currentUrlBase
=
this
.
currentUrl
.
split
(
'?'
)[
0
];
...
...
src/app/shared/services/nav.service.ts
View file @
f629f997
...
...
@@ -99,21 +99,25 @@ export class NavService implements OnDestroy {
active
:
false
,
children
:
[
{
path
:
`/portal-manage/
${
appName
}
/dashboard-management`
,
title
:
'จัดเรียงแดชบอร์ด'
,
path
:
`/portal-manage/
${
appName
}
/dashboard-management/dashboard`
,
title
:
'แดชบอร์ดหลัก'
,
type
:
'link'
},
{
path
:
`/portal-manage/
${
appName
}
/dashboard-management/widget-management`
,
title
:
'จัดการวิดเจ็ต'
,
type
:
'link'
},
{
path
:
`/portal-manage/
${
appName
}
/widget-warehouse`
,
title
:
'คลังวิดเจ็ต'
,
type
:
'link'
},
{
path
:
`/portal-manage/
${
appName
}
/widget-linker`
,
title
:
'เชื่อมโยงวิดเจ็ตกับชุดข้อมูล'
,
type
:
'link'
},
// {
// path: `/portal-manage/${appName}/widget-warehouse`,
// title: 'คลังวิดเจ็ต',
// type: 'link'
// },
// {
// path: `/portal-manage/${appName}/widget-linker`,
// title: 'เชื่อมโยงวิดเจ็ตกับชุดข้อมูล',
// icon: 'link',
// type: 'link'
// },
]
};
}
...
...
@@ -549,38 +553,138 @@ export class NavService implements OnDestroy {
],
},
{
title
:
'จัดการแดชบอร์ดและวิดเจ็ต'
,
icon
:
'dashboard'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/dashboard-management/dashboard'
,
title
:
'แดชบอร์ดหลัก'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/widget-management'
,
title
:
'จัดการวิดเจ็ต'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/widget-config'
,
title
:
'ตั้งค่าวิดเจ็ต'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/dataset-picker'
,
title
:
'เลือกชุดข้อมูล'
,
type
:
'link'
},
],
},
{
title
:
'การบริการ'
,
icon
:
'service'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/meeting-booking'
,
title
:
'จองห้องประชุม'
,
type
:
'link'
},
],
}
];
}
// เมนูสำหรับ Dashboard Management
getDashboardManagementMenu
()
{
return
[
{
headTitle
:
'จัดการแดชบอร์ด'
},
{
title
:
'แดชบอร์ดหลัก'
,
icon
:
'dashboard'
,
path
:
'/portal-manage/dashboard-management/dashboard'
,
type
:
'link'
,
},
{
title
:
'จัดการวิดเจ็ต'
,
icon
:
'widget'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/widget-management'
,
title
:
'จัดการวิดเจ็ต'
,
type
:
'link'
},
{
path
:
'/portal-manage/widget-stock'
,
title
:
'คลังวิดเจ็ต'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/widget-management'
,
title
:
'รายการวิดเจ็ต'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/widget-management/edit'
,
title
:
'เพิ่มวิดเจ็ตใหม่'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/widget-management/linker'
,
title
:
'เชื่อมโยงข้อมูล'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/widget-config'
,
title
:
'ตั้งค่าวิดเจ็ต'
,
type
:
'link'
},
],
},
{
title
:
'
จัดการแดชบอร์ด
'
,
icon
:
'
dashboard
'
,
title
:
'
คลังวิดเจ็ตแอป
'
,
icon
:
'
package
'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/dashboard-management'
,
title
:
'จัดการแดชบอร์ด'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-viewer'
,
title
:
'ดูแดชบอร์ด'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-plus/widget-warehouse'
,
title
:
'คลังวิดเจ็ต myHR-Plus'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/widget-warehouse'
,
title
:
'คลังวิดเจ็ต myHR-Lite'
,
type
:
'link'
},
{
path
:
'/portal-manage/myjob/widget-warehouse'
,
title
:
'คลังวิดเจ็ต MyJob'
,
type
:
'link'
},
{
path
:
'/portal-manage/mylearn/widget-warehouse'
,
title
:
'คลังวิดเจ็ต MyLearn'
,
type
:
'link'
},
],
},
{
title
:
'
การบริการ
'
,
icon
:
'
servic
e'
,
title
:
'
จัดการข้อมูล
'
,
icon
:
'
databas
e'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/meeting-booking'
,
title
:
'จองห้องประชุม'
,
type
:
'link'
},
{
path
:
'/portal-manage/dashboard-management/dataset-picker'
,
title
:
'เลือกชุดข้อมูล'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-plus/widget-linker'
,
title
:
'เชื่อมโยงข้อมูล myHR-Plus'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/widget-linker'
,
title
:
'เชื่อมโยงข้อมูล myHR-Lite'
,
type
:
'link'
},
{
path
:
'/portal-manage/myjob/widget-linker'
,
title
:
'เชื่อมโยงข้อมูล MyJob'
,
type
:
'link'
},
{
path
:
'/portal-manage/mylearn/widget-linker'
,
title
:
'เชื่อมโยงข้อมูล MyLearn'
,
type
:
'link'
},
],
},
{
title
:
'ดูแดชบอร์ด'
,
icon
:
'eye'
,
path
:
'/portal-manage/dashboard-management/viewer'
,
type
:
'link'
,
}
];
}
// เมนูสำหรับ Dashboard
// เมนูสำหรับ Dashboard
(เก่า - เก็บไว้เพื่อความเข้ากันได้)
getDashboardMenu
()
{
return
[
{
headTitle
:
'แดชบอร์ด'
},
...
...
@@ -626,13 +730,13 @@ export class NavService implements OnDestroy {
return
this
.
getCompanyMenu
();
case
'dashboard'
:
return
this
.
getDashboardMenu
();
case
'dashboard-management'
:
return
this
.
getDashboardManagementMenu
();
case
'meeting-booking'
:
return
this
.
getSystemManagementMenu
();
case
'permission-management'
:
case
'menu-permission-management'
:
case
'user-role-management'
:
case
'widget-management'
:
case
'dashboard-management'
:
return
this
.
getSystemManagementMenu
();
default
:
return
[];
...
...
@@ -652,12 +756,11 @@ export class NavService implements OnDestroy {
'my-portal'
:
this
.
getMyPortalMenu
(),
'company-management'
:
this
.
getCompanyMenu
(),
'dashboard'
:
this
.
getDashboardMenu
(),
'dashboard-management'
:
this
.
getDashboardManagementMenu
(),
'meeting-booking'
:
this
.
getSystemManagementMenu
(),
'permission-management'
:
this
.
getSystemManagementMenu
(),
'menu-permission-management'
:
this
.
getSystemManagementMenu
(),
'user-role-management'
:
this
.
getSystemManagementMenu
(),
'widget-management'
:
this
.
getSystemManagementMenu
(),
'dashboard-management'
:
this
.
getSystemManagementMenu
(),
};
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment