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
42950945
Commit
42950945
authored
Sep 18, 2025
by
sawit
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
routes myhr-plus, myhr-lite
parent
092a1e90
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
241 additions
and
479 deletions
+241
-479
attendance-reports.component.ts
...r-lite/attendance-reports/attendance-reports.component.ts
+0
-9
company-settings.component.ts
.../myhr-lite/company-settings/company-settings.component.ts
+0
-9
myhr-lite-dashboard.component.ts
...nage/myhr-lite/dashboard/myhr-lite-dashboard.component.ts
+0
-35
department-settings.component.ts
...lite/department-settings/department-settings.component.ts
+0
-9
employee-documents.component.ts
...r-lite/employee-documents/employee-documents.component.ts
+0
-9
employee-profile.component.ts
.../myhr-lite/employee-profile/employee-profile.component.ts
+0
-9
employee-reports.component.ts
.../myhr-lite/employee-reports/employee-reports.component.ts
+0
-9
myhr-lite-employee.component.ts
...manage/myhr-lite/employee/myhr-lite-employee.component.ts
+0
-23
myhr-lite.module.ts
src/app/portal-manage/myhr-lite/myhr-lite.module.ts
+1
-6
myhr-lite.routes.ts
src/app/portal-manage/myhr-lite/myhr-lite.routes.ts
+104
-23
position-settings.component.ts
...yhr-lite/position-settings/position-settings.component.ts
+0
-9
myhr-lite-reports.component.ts
...l-manage/myhr-lite/reports/myhr-lite-reports.component.ts
+0
-32
myhr-plus-attendance.component.ts
...ge/myhr-plus/attendance/myhr-plus-attendance.component.ts
+0
-11
myhr-plus-create-category.component.ts
...myhr-plus/category/myhr-plus-create-category.component.ts
+0
-35
myhr-plus-department.component.ts
...ge/myhr-plus/department/myhr-plus-department.component.ts
+0
-11
myhr-plus-employee.component.ts
...manage/myhr-plus/employee/myhr-plus-employee.component.ts
+0
-11
hr-dashboard.component.ts
src/app/portal-manage/myhr-plus/hr-dashboard.component.ts
+0
-38
myhr-plus-leave.component.ts
...ortal-manage/myhr-plus/leave/myhr-plus-leave.component.ts
+0
-11
myhr-plus.module.ts
src/app/portal-manage/myhr-plus/myhr-plus.module.ts
+0
-2
myhr-plus.routes.ts
src/app/portal-manage/myhr-plus/myhr-plus.routes.ts
+124
-47
myhr-plus-org-chart.component.ts
...nage/myhr-plus/org-chart/myhr-plus-org-chart.component.ts
+0
-11
myhr-plus-payroll.component.ts
...l-manage/myhr-plus/payroll/myhr-plus-payroll.component.ts
+0
-11
myhr-plus-position.component.ts
...manage/myhr-plus/position/myhr-plus-position.component.ts
+0
-11
myhr-plus-excel-report.component.ts
...age/myhr-plus/reports/myhr-plus-excel-report.component.ts
+0
-53
nav.service.ts
src/app/shared/services/nav.service.ts
+12
-45
No files found.
src/app/portal-manage/myhr-lite/attendance-reports/attendance-reports.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-attendance-reports'
,
template
:
'<p>attendance-reports works!</p>'
,
standalone
:
true
})
export
class
AttendanceReportsComponent
{
}
src/app/portal-manage/myhr-lite/company-settings/company-settings.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-company-settings'
,
template
:
'<p>company-settings works!</p>'
,
standalone
:
true
})
export
class
CompanySettingsComponent
{
}
src/app/portal-manage/myhr-lite/dashboard/myhr-lite-dashboard.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-myhr-lite-dashboard'
,
standalone
:
true
,
template
:
`
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">myHR-Lite Dashboard</h4>
</div>
<div class="card-body">
<p>ยินดีต้อนรับสู่ระบบ myHR-Lite</p>
<p>ระบบจัดการทรัพยากรบุคคลพื้นฐาน</p>
</div>
</div>
</div>
</div>
</div>
`
,
styles
:
[
`
.card {
margin: 20px 0;
}
.card-header {
background-color: #f8f9fa;
border-bottom: 1px solid #dee2e6;
}
`
]
})
export
class
MyhrLiteDashboardComponent
{
constructor
()
{
}
}
src/app/portal-manage/myhr-lite/department-settings/department-settings.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-department-settings'
,
template
:
'<p>department-settings works!</p>'
,
standalone
:
true
})
export
class
DepartmentSettingsComponent
{
}
src/app/portal-manage/myhr-lite/employee-documents/employee-documents.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-employee-documents'
,
template
:
'<p>employee-documents works!</p>'
,
standalone
:
true
})
export
class
EmployeeDocumentsComponent
{
}
src/app/portal-manage/myhr-lite/employee-profile/employee-profile.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-employee-profile'
,
template
:
'<p>employee-profile works!</p>'
,
standalone
:
true
})
export
class
EmployeeProfileComponent
{
}
src/app/portal-manage/myhr-lite/employee-reports/employee-reports.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-employee-reports'
,
template
:
'<p>employee-reports works!</p>'
,
standalone
:
true
})
export
class
EmployeeReportsComponent
{
}
src/app/portal-manage/myhr-lite/employee/myhr-lite-employee.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-lite-employee'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`
<div class="p-4">
<h1 class="text-2xl font-bold mb-4">จัดการพนักงาน</h1>
<div class="bg-white rounded-lg shadow p-6">
<p>ระบบจัดการข้อมูลพนักงานสำหรับ MyHR-Lite</p>
<div class="mt-4">
<button class="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded">
เพิ่มพนักงาน
</button>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
MyhrLiteEmployeeComponent
{
}
src/app/portal-manage/myhr-lite/myhr-lite.module.ts
View file @
42950945
...
...
@@ -12,13 +12,8 @@ export const routes: Routes = [
children
:
[
{
path
:
'dashboard'
,
loadComponent
:
()
=>
import
(
'./dashboard/
myhr-lite-dashboard.component'
).
then
(
m
=>
m
.
MyhrLite
DashboardComponent
)
loadComponent
:
()
=>
import
(
'./dashboard/
dashboard.component'
).
then
(
m
=>
m
.
DashboardComponent
)
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
}
]
}
];
...
...
src/app/portal-manage/myhr-lite/myhr-lite.routes.ts
View file @
42950945
import
{
Routes
}
from
'@angular/router'
;
import
{
MyhrLiteComponent
}
from
'./myhr-lite.component'
;
import
{
MyhrLiteDashboardComponent
}
from
'./dashboard/myhr-lite-
dashboard.component'
;
import
{
DashboardComponent
}
from
'./dashboard/
dashboard.component'
;
export
const
MYHR_LITE_ROUTES
:
Routes
=
[
{
...
...
@@ -9,48 +9,129 @@ export const MYHR_LITE_ROUTES: Routes = [
children
:
[
{
path
:
'dashboard'
,
component
:
MyhrLite
DashboardComponent
component
:
DashboardComponent
},
// -- portal -- //
{
path
:
'employee'
,
loadComponent
:
()
=>
import
(
'./employee/myhr-lite-employee.component'
).
then
(
m
=>
m
.
MyhrLiteEmployeeComponent
)
path
:
'category-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/category-list.component'
).
then
((
m
)
=>
m
.
CategorylistComponent
),
},
{
path
:
'reports'
,
loadComponent
:
()
=>
import
(
'./reports/myhr-lite-reports.component'
).
then
(
m
=>
m
.
MyhrLiteReportsComponent
)
path
:
'view-list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-excel/view-list-excel.component'
).
then
((
m
)
=>
m
.
ViewListExcelComponent
),
},
{
path
:
'employee-profile'
,
loadComponent
:
()
=>
import
(
'./employee-profile/employee-profile.component'
).
then
(
m
=>
m
.
EmployeeProfileComponent
)
path
:
'view-list-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-doc/view-list-doc.component'
).
then
((
m
)
=>
m
.
ViewListDocComponent
),
},
{
path
:
'employee-documents'
,
loadComponent
:
()
=>
import
(
'./employee-documents/employee-documents.component'
).
then
(
m
=>
m
.
EmployeeDocumentsComponent
)
path
:
'view-list-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-course/view-list-course.component'
).
then
((
m
)
=>
m
.
ViewListCourseComponent
),
},
{
path
:
'company-settings'
,
loadComponent
:
()
=>
import
(
'./company-settings/company-settings.component'
).
then
(
m
=>
m
.
CompanySettingsComponent
)
path
:
'create-category'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/create-category.component'
).
then
((
m
)
=>
m
.
CreateCategoryComponent
),
},
{
path
:
'department-settings'
,
loadComponent
:
()
=>
import
(
'./department-settings/department-settings.component'
).
then
(
m
=>
m
.
DepartmentSettingsComponent
)
path
:
'list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/list-excel/list-excel.component'
).
then
((
m
)
=>
m
.
ListExcelComponent
),
},
{
path
:
'position-settings'
,
loadComponent
:
()
=>
import
(
'./position-settings/position-settings.component'
).
then
(
m
=>
m
.
PositionSettingsComponent
)
path
:
'list-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/list-doc/list-doc.component'
).
then
((
m
)
=>
m
.
ListDocComponent
),
},
{
path
:
'employee-reports'
,
loadComponent
:
()
=>
import
(
'./employee-reports/employee-reports.component'
).
then
(
m
=>
m
.
EmployeeReportsComponent
)
path
:
'list-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/list-course/list-course.component'
).
then
((
m
)
=>
m
.
ListCourseComponent
),
},
{
path
:
'attendance-reports'
,
loadComponent
:
()
=>
import
(
'./attendance-reports/attendance-reports.component'
).
then
(
m
=>
m
.
AttendanceReportsComponent
)
path
:
'category-list-approve'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/category-list-approve.component'
).
then
((
m
)
=>
m
.
CategoryListApproveComponent
),
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
path
:
'approve-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/approve-excel/approve-excel.component'
).
then
((
m
)
=>
m
.
ApproveExcelComponent
),
},
{
path
:
'approve-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/approve-doc/approve-doc.component'
).
then
((
m
)
=>
m
.
ApproveDocComponent
),
},
{
path
:
'approve-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/approve-course/approve-course.component'
).
then
((
m
)
=>
m
.
ApproveCourseComponent
),
},
{
path
:
'approved-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/approved-list.component'
).
then
((
m
)
=>
m
.
ApprovedListComponent
),
},
{
path
:
'view-list-excel/:type'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/view-list-excel/view-list-excel.component'
).
then
((
m
)
=>
m
.
ViewListExcelComponent
),
},
{
path
:
'view-list-doc/:type'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/view-list-doc/view-list-doc.component'
).
then
((
m
)
=>
m
.
ViewListDocComponent
),
},
{
path
:
'view-list-course/:type'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/view-list-course/view-list-course.component'
).
then
((
m
)
=>
m
.
ViewListCourseComponent
),
},
{
path
:
'excel-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/excel-list/excel-list.component'
).
then
((
m
)
=>
m
.
ExcelListComponent
),
},
{
path
:
'excel-report-toggle'
,
loadComponent
:
()
=>
import
(
'../my-portal/excel-report-toggle/excel-report-toggle.component'
).
then
((
m
)
=>
m
.
ExcelReportToggleComponent
),
},
{
path
:
'datasource-table'
,
loadComponent
:
()
=>
import
(
'../my-portal/datasource-table/datasource-table.component'
).
then
((
m
)
=>
m
.
DatasourceTableComponent
),
},
{
path
:
'excel-report'
,
loadComponent
:
()
=>
import
(
'../my-portal/excel-report/excel-report.component'
).
then
((
m
)
=>
m
.
ExcelReportComponent
),
},
// -- widget -- //
{
path
:
'dashboard-home'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/dashboard-management.component'
).
then
((
m
)
=>
m
.
DashboardManagementComponent
),
},
{
path
:
'widget-list'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/widget-management/widget-list.component'
).
then
((
m
)
=>
m
.
WidgetListComponent
),
},
{
path
:
'dataset-widget-linker'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/widget-management/dataset-widget-linker.component'
).
then
((
m
)
=>
m
.
DatasetWidgetLinkerComponent
),
},
{
path
:
'dashboard-viewer'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/dashboard-viewer/dashboard-viewer.component'
).
then
((
m
)
=>
m
.
DashboardViewerComponent
),
}
]
}
...
...
src/app/portal-manage/myhr-lite/position-settings/position-settings.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-position-settings'
,
template
:
'<p>position-settings works!</p>'
,
standalone
:
true
})
export
class
PositionSettingsComponent
{
}
src/app/portal-manage/myhr-lite/reports/myhr-lite-reports.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-lite-reports'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`
<div class="p-4">
<h1 class="text-2xl font-bold mb-4">รายงาน</h1>
<div class="bg-white rounded-lg shadow p-6">
<p>ระบบรายงานสำหรับ MyHR-Lite</p>
<div class="mt-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
<div class="bg-blue-50 p-4 rounded-lg">
<h3 class="font-semibold text-blue-800">รายงานพนักงาน</h3>
<p class="text-sm text-blue-600">ข้อมูลพนักงานทั้งหมด</p>
</div>
<div class="bg-green-50 p-4 rounded-lg">
<h3 class="font-semibold text-green-800">รายงานการลา</h3>
<p class="text-sm text-green-600">สถิติการลาของพนักงาน</p>
</div>
<div class="bg-purple-50 p-4 rounded-lg">
<h3 class="font-semibold text-purple-800">รายงานเงินเดือน</h3>
<p class="text-sm text-purple-600">ข้อมูลเงินเดือนพนักงาน</p>
</div>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
MyhrLiteReportsComponent
{
}
src/app/portal-manage/myhr-plus/attendance/myhr-plus-attendance.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-plus-attendance'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`<div class="p-4"><h1 class="text-2xl font-bold mb-4">ระบบลงเวลา</h1><div class="bg-white rounded-lg shadow p-6"><p>ระบบลงเวลาสำหรับ MyHR-Plus</p></div></div>`
,
styles
:
[]
})
export
class
MyhrPlusAttendanceComponent
{
}
src/app/portal-manage/myhr-plus/category/myhr-plus-create-category.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-myhr-plus-create-category'
,
standalone
:
true
,
template
:
`
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">Create Category</h4>
</div>
<div class="card-body">
<p>ยินดีต้อนรับสู่หน้าสร้างหมวดหมู่</p>
<p>ระบบจัดการหมวดหมู่สำหรับ myHR-Plus</p>
</div>
</div>
</div>
</div>
</div>
`
,
styles
:
[
`
.card {
margin: 20px 0;
}
.card-header {
background-color: #f8f9fa;
border-bottom: 1px solid #dee2e6;
}
`
]
})
export
class
MyhrPlusCreateCategoryComponent
{
constructor
()
{
}
}
src/app/portal-manage/myhr-plus/department/myhr-plus-department.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-plus-department'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`<div class="p-4"><h1 class="text-2xl font-bold mb-4">จัดการแผนก</h1><div class="bg-white rounded-lg shadow p-6"><p>ระบบจัดการแผนกสำหรับ MyHR-Plus</p></div></div>`
,
styles
:
[]
})
export
class
MyhrPlusDepartmentComponent
{
}
src/app/portal-manage/myhr-plus/employee/myhr-plus-employee.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-plus-employee'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`<div class="p-4"><h1 class="text-2xl font-bold mb-4">จัดการข้อมูลพนักงาน</h1><div class="bg-white rounded-lg shadow p-6"><p>ระบบจัดการข้อมูลพนักงานสำหรับ MyHR-Plus</p></div></div>`
,
styles
:
[]
})
export
class
MyhrPlusEmployeeComponent
{
}
src/app/portal-manage/myhr-plus/hr-dashboard.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
MyHrPermissionService
}
from
'./services/myhr-permission.service'
;
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
import
{
Observable
}
from
'rxjs'
;
@
Component
({
selector
:
'app-hr-dashboard'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`
<div class="p-4">
<h1 class="text-2xl font-bold">MyHR+ Dashboard</h1>
<p>This is a dedicated component for the MyHR+ module.</p>
<div class="mt-4 p-4 border rounded-lg bg-gray-50">
<h2 class="text-lg font-semibold">HR Permissions Check</h2>
<p>Checking permissions using the module-specific <strong>MyHrPermissionService</strong>:</p>
<ul>
<li>Can view salary? <strong [class.text-green-600]="canViewSalary$ | async" [class.text-red-600]="!(canViewSalary$ | async)">{{ canViewSalary$ | async }}</strong></li>
<li>Can approve leave? <strong [class.text-green-600]="canApproveLeave$ | async" [class.text-red-600]="!(canApproveLeave$ | async)">{{ canApproveLeave$ | async }}</strong></li>
</ul>
<p class="text-sm text-gray-500 mt-2">This demonstrates that the component is correctly injecting and using its own scoped service.</p>
</div>
</div>
`
,
})
export
class
HrDashboardComponent
implements
OnInit
{
canViewSalary$
!
:
Observable
<
boolean
>
;
canApproveLeave$
!
:
Observable
<
boolean
>
;
constructor
(
private
hrPermissions
:
MyHrPermissionService
)
{}
ngOnInit
():
void
{
this
.
canViewSalary$
=
this
.
hrPermissions
.
canViewSalary
();
this
.
canApproveLeave$
=
this
.
hrPermissions
.
canApproveLeave
();
}
}
src/app/portal-manage/myhr-plus/leave/myhr-plus-leave.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-plus-leave'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`<div class="p-4"><h1 class="text-2xl font-bold mb-4">จัดการการลา</h1><div class="bg-white rounded-lg shadow p-6"><p>ระบบจัดการการลาสำหรับ MyHR-Plus</p></div></div>`
,
styles
:
[]
})
export
class
MyhrPlusLeaveComponent
{
}
src/app/portal-manage/myhr-plus/myhr-plus.module.ts
View file @
42950945
...
...
@@ -3,14 +3,12 @@ import { CommonModule } from '@angular/common';
import
{
RouterModule
}
from
'@angular/router'
;
import
{
MYHR_PLUS_ROUTES
}
from
'./myhr-plus.routes'
;
import
{
HrDashboardComponent
}
from
'./hr-dashboard.component'
;
@
NgModule
({
declarations
:
[],
imports
:
[
CommonModule
,
RouterModule
.
forChild
(
MYHR_PLUS_ROUTES
),
HrDashboardComponent
],
exports
:
[]
})
...
...
src/app/portal-manage/myhr-plus/myhr-plus.routes.ts
View file @
42950945
import
{
Routes
}
from
'@angular/router'
;
import
{
MyHrPermissionService
}
from
'./services/myhr-permission.service'
;
import
{
HrDashboardComponent
}
from
'./hr-dashboard.component'
;
import
{
MyhrPlusComponent
}
from
'./myhr-plus.component'
;
import
{
DashboardComponent
}
from
'./dashboard/dashboard.component'
;
export
const
MYHR_PLUS_ROUTES
:
Routes
=
[
{
...
...
@@ -13,53 +13,130 @@ export const MYHR_PLUS_ROUTES: Routes = [
children
:
[
{
path
:
'dashboard'
,
component
:
Hr
DashboardComponent
component
:
DashboardComponent
},
{
path
:
'employee-management'
,
loadComponent
:
()
=>
import
(
'./employee/myhr-plus-employee.component'
).
then
(
m
=>
m
.
MyhrPlusEmployeeComponent
)
},
{
path
:
'attendance'
,
loadComponent
:
()
=>
import
(
'./attendance/myhr-plus-attendance.component'
).
then
(
m
=>
m
.
MyhrPlusAttendanceComponent
)
},
{
path
:
'leave-management'
,
loadComponent
:
()
=>
import
(
'./leave/myhr-plus-leave.component'
).
then
(
m
=>
m
.
MyhrPlusLeaveComponent
)
},
{
path
:
'payroll'
,
loadComponent
:
()
=>
import
(
'./payroll/myhr-plus-payroll.component'
).
then
(
m
=>
m
.
MyhrPlusPayrollComponent
)
},
{
path
:
'department'
,
loadComponent
:
()
=>
import
(
'./department/myhr-plus-department.component'
).
then
(
m
=>
m
.
MyhrPlusDepartmentComponent
)
},
{
path
:
'position'
,
loadComponent
:
()
=>
import
(
'./position/myhr-plus-position.component'
).
then
(
m
=>
m
.
MyhrPlusPositionComponent
)
},
{
path
:
'org-chart'
,
loadComponent
:
()
=>
import
(
'./org-chart/myhr-plus-org-chart.component'
).
then
(
m
=>
m
.
MyhrPlusOrgChartComponent
)
},
{
path
:
'create-category'
,
loadComponent
:
()
=>
import
(
'./category/myhr-plus-create-category.component'
).
then
(
m
=>
m
.
MyhrPlusCreateCategoryComponent
)
},
{
path
:
'excel-report'
,
loadComponent
:
()
=>
import
(
'./reports/myhr-plus-excel-report.component'
).
then
(
m
=>
m
.
MyhrPlusExcelReportComponent
)
},
{
path
:
'widget-warehouse'
,
loadChildren
:
()
=>
import
(
'../dashboard-management/dashboard-management.module'
).
then
(
m
=>
m
.
DashboardManagementModule
)
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
}
// -- portal -- //
{
path
:
'category-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/category-list.component'
).
then
((
m
)
=>
m
.
CategorylistComponent
),
},
{
path
:
'view-list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-excel/view-list-excel.component'
).
then
((
m
)
=>
m
.
ViewListExcelComponent
),
},
{
path
:
'view-list-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-doc/view-list-doc.component'
).
then
((
m
)
=>
m
.
ViewListDocComponent
),
},
{
path
:
'view-list-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-course/view-list-course.component'
).
then
((
m
)
=>
m
.
ViewListCourseComponent
),
},
{
path
:
'create-category'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/create-category.component'
).
then
((
m
)
=>
m
.
CreateCategoryComponent
),
},
{
path
:
'list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/list-excel/list-excel.component'
).
then
((
m
)
=>
m
.
ListExcelComponent
),
},
{
path
:
'list-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/list-doc/list-doc.component'
).
then
((
m
)
=>
m
.
ListDocComponent
),
},
{
path
:
'list-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/list-course/list-course.component'
).
then
((
m
)
=>
m
.
ListCourseComponent
),
},
{
path
:
'category-list-approve'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/category-list-approve.component'
).
then
((
m
)
=>
m
.
CategoryListApproveComponent
),
},
{
path
:
'approve-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/approve-excel/approve-excel.component'
).
then
((
m
)
=>
m
.
ApproveExcelComponent
),
},
{
path
:
'approve-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/approve-doc/approve-doc.component'
).
then
((
m
)
=>
m
.
ApproveDocComponent
),
},
{
path
:
'approve-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list-approve/approve-course/approve-course.component'
).
then
((
m
)
=>
m
.
ApproveCourseComponent
),
},
{
path
:
'approved-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/approved-list.component'
).
then
((
m
)
=>
m
.
ApprovedListComponent
),
},
{
path
:
'view-list-excel/:type'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/view-list-excel/view-list-excel.component'
).
then
((
m
)
=>
m
.
ViewListExcelComponent
),
},
{
path
:
'view-list-doc/:type'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/view-list-doc/view-list-doc.component'
).
then
((
m
)
=>
m
.
ViewListDocComponent
),
},
{
path
:
'view-list-course/:type'
,
loadComponent
:
()
=>
import
(
'../my-portal/approved-list/view-list-course/view-list-course.component'
).
then
((
m
)
=>
m
.
ViewListCourseComponent
),
},
{
path
:
'excel-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/excel-list/excel-list.component'
).
then
((
m
)
=>
m
.
ExcelListComponent
),
},
{
path
:
'excel-report-toggle'
,
loadComponent
:
()
=>
import
(
'../my-portal/excel-report-toggle/excel-report-toggle.component'
).
then
((
m
)
=>
m
.
ExcelReportToggleComponent
),
},
{
path
:
'datasource-table'
,
loadComponent
:
()
=>
import
(
'../my-portal/datasource-table/datasource-table.component'
).
then
((
m
)
=>
m
.
DatasourceTableComponent
),
},
{
path
:
'excel-report'
,
loadComponent
:
()
=>
import
(
'../my-portal/excel-report/excel-report.component'
).
then
((
m
)
=>
m
.
ExcelReportComponent
),
},
// -- widget -- //
{
path
:
'dashboard-home'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/dashboard-management.component'
).
then
((
m
)
=>
m
.
DashboardManagementComponent
),
},
{
path
:
'widget-list'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/widget-management/widget-list.component'
).
then
((
m
)
=>
m
.
WidgetListComponent
),
},
{
path
:
'dataset-widget-linker'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/widget-management/dataset-widget-linker.component'
).
then
((
m
)
=>
m
.
DatasetWidgetLinkerComponent
),
},
{
path
:
'dashboard-viewer'
,
loadComponent
:
()
=>
import
(
'../dashboard-management/dashboard-viewer/dashboard-viewer.component'
).
then
((
m
)
=>
m
.
DashboardViewerComponent
),
}
]
}
];
src/app/portal-manage/myhr-plus/org-chart/myhr-plus-org-chart.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-plus-org-chart'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`<div class="p-4"><h1 class="text-2xl font-bold mb-4">แผนภูมิองค์กร</h1><div class="bg-white rounded-lg shadow p-6"><p>ระบบแผนภูมิองค์กรสำหรับ MyHR-Plus</p></div></div>`
,
styles
:
[]
})
export
class
MyhrPlusOrgChartComponent
{
}
src/app/portal-manage/myhr-plus/payroll/myhr-plus-payroll.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-plus-payroll'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`<div class="p-4"><h1 class="text-2xl font-bold mb-4">ระบบเงินเดือน</h1><div class="bg-white rounded-lg shadow p-6"><p>ระบบเงินเดือนสำหรับ MyHR-Plus</p></div></div>`
,
styles
:
[]
})
export
class
MyhrPlusPayrollComponent
{
}
src/app/portal-manage/myhr-plus/position/myhr-plus-position.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myhr-plus-position'
,
standalone
:
true
,
imports
:
[
CommonModule
],
template
:
`<div class="p-4"><h1 class="text-2xl font-bold mb-4">จัดการตำแหน่ง</h1><div class="bg-white rounded-lg shadow p-6"><p>ระบบจัดการตำแหน่งสำหรับ MyHR-Plus</p></div></div>`
,
styles
:
[]
})
export
class
MyhrPlusPositionComponent
{
}
src/app/portal-manage/myhr-plus/reports/myhr-plus-excel-report.component.ts
deleted
100644 → 0
View file @
092a1e90
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-myhr-plus-excel-report'
,
standalone
:
true
,
template
:
`
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h4 class="card-title">Excel Report</h4>
</div>
<div class="card-body">
<p>ยินดีต้อนรับสู่หน้า Excel Report</p>
<p>ระบบสร้างรายงาน Excel สำหรับ myHR-Plus</p>
<div class="mt-3">
<button class="btn btn-primary me-2">สร้างรายงาน</button>
<button class="btn btn-secondary">ดาวน์โหลด Template</button>
</div>
</div>
</div>
</div>
</div>
</div>
`
,
styles
:
[
`
.card {
margin: 20px 0;
}
.card-header {
background-color: #f8f9fa;
border-bottom: 1px solid #dee2e6;
}
.btn {
padding: 8px 16px;
border: none;
border-radius: 4px;
cursor: pointer;
}
.btn-primary {
background-color: #007bff;
color: white;
}
.btn-secondary {
background-color: #6c757d;
color: white;
}
`
]
})
export
class
MyhrPlusExcelReportComponent
{
constructor
()
{
}
}
src/app/shared/services/nav.service.ts
View file @
42950945
...
...
@@ -408,45 +408,12 @@ export class NavService implements OnDestroy {
// myHR-Lite
{
headTitle
:
'myHR-Lite'
},
this
.
createDashboardMenu
(
'myhr-lite'
),
{
title
:
'แดชบอร์ด'
,
icon
:
'dashboard'
,
path
:
'/portal-manage/myhr-lite/dashboard'
,
type
:
'link'
,
},
{
title
:
'จัดการพนักงาน'
,
icon
:
'user'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myhr-lite/employee'
,
title
:
'ข้อมูลพนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/employee-profile'
,
title
:
'โปรไฟล์พนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/employee-documents'
,
title
:
'เอกสารพนักงาน'
,
type
:
'link'
},
],
},
{
title
:
'จัดการระบบ'
,
icon
:
'settings'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myhr-lite/company-settings'
,
title
:
'ตั้งค่าบริษัท'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/department-settings'
,
title
:
'ตั้งค่าแผนก'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/position-settings'
,
title
:
'ตั้งค่าตำแหน่ง'
,
type
:
'link'
},
],
},
{
title
:
'รายงาน'
,
icon
:
'chart-bar'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myhr-lite/reports'
,
title
:
'รายงานทั่วไป'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/employee-reports'
,
title
:
'รายงานพนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/myhr-lite/attendance-reports'
,
title
:
'รายงานการลงเวลา'
,
type
:
'link'
},
],
},
// {
// title: 'แดชบอร์ด',
// icon: 'dashboard',
// path: '/portal-manage/myhr-lite/dashboard',
// type: 'link',
// },
...
this
.
createPortalMenu
(
'myhr-lite'
)
];
}
...
...
@@ -555,13 +522,13 @@ export class NavService implements OnDestroy {
return
[
// myHR-Plus
{
headTitle
:
'myHR-Plus'
},
{
title
:
'แดชบอร์ด'
,
icon
:
'dashboard'
,
path
:
'/portal-manage/myhr-plus/dashboard'
,
type
:
'link'
,
},
this
.
createDashboardMenu
(
'myhr-plus'
),
// {
// title: 'แดชบอร์ด',
// icon: 'dashboard',
// path: '/portal-manage/myhr-plus/dashboard',
// type: 'link',
// },
...
this
.
createPortalMenu
(
'myhr-plus'
)
];
}
...
...
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