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
a6a50aed
Commit
a6a50aed
authored
Sep 18, 2025
by
sawit
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
routes zeeme myface myskill-x
parent
42950945
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
358 additions
and
545 deletions
+358
-545
attendance-location.component.ts
...face/attendance-location/attendance-location.component.ts
+0
-9
attendance-settings.component.ts
...face/attendance-settings/attendance-settings.component.ts
+0
-9
myface-attendance.component.ts
...l-manage/myface/attendance/myface-attendance.component.ts
+0
-23
myface-dashboard.component.ts
...tal-manage/myface/dashboard/myface-dashboard.component.ts
+0
-35
face-enrollment.component.ts
...anage/myface/face-enrollment/face-enrollment.component.ts
+0
-9
myface-face-management.component.ts
...yface/face-management/myface-face-management.component.ts
+0
-26
myface-face-recognition.component.ts
...ace/face-recognition/myface-face-recognition.component.ts
+0
-23
face-verification.component.ts
...e/myface/face-verification/face-verification.component.ts
+0
-9
myface.module.ts
src/app/portal-manage/myface/myface.module.ts
+1
-6
myface.routes.ts
src/app/portal-manage/myface/myface.routes.ts
+112
-15
myface-attendance-report.component.ts
...nage/myface/reports/myface-attendance-report.component.ts
+0
-23
myface-face-report.component.ts
...tal-manage/myface/reports/myface-face-report.component.ts
+0
-23
security-report.component.ts
...anage/myface/security-report/security-report.component.ts
+0
-9
admin-manage.component.ts
...l-manage/myskill-x/admin-manage/admin-manage.component.ts
+0
-9
myskill-x.module.ts
src/app/portal-manage/myskill-x/myskill-x.module.ts
+0
-5
myskill-x.routes.ts
src/app/portal-manage/myskill-x/myskill-x.routes.ts
+116
-7
user-management.component.ts
...ge/myskill-x/user-management/user-management.component.ts
+0
-9
zeeme-attendance.component.ts
...tal-manage/zeeme/attendance/zeeme-attendance.component.ts
+0
-28
zeeme-dashboard.component.ts
...ortal-manage/zeeme/dashboard/zeeme-dashboard.component.ts
+0
-35
zeeme-overtime.component.ts
.../portal-manage/zeeme/overtime/zeeme-overtime.component.ts
+0
-23
zeeme-attendance-report.component.ts
...manage/zeeme/reports/zeeme-attendance-report.component.ts
+0
-23
zeeme-overtime-report.component.ts
...l-manage/zeeme/reports/zeeme-overtime-report.component.ts
+0
-23
zeeme-summary-report.component.ts
...al-manage/zeeme/reports/zeeme-summary-report.component.ts
+0
-23
zeeme-time-tracking.component.ts
...nage/zeeme/time-tracking/zeeme-time-tracking.component.ts
+0
-26
zeeme.module.ts
src/app/portal-manage/zeeme/zeeme.module.ts
+1
-6
zeeme.routes.ts
src/app/portal-manage/zeeme/zeeme.routes.ts
+110
-17
nav.service.ts
src/app/shared/services/nav.service.ts
+18
-92
No files found.
src/app/portal-manage/myface/attendance-location/attendance-location.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-attendance-location'
,
template
:
'<p>attendance-location works!</p>'
,
standalone
:
true
})
export
class
AttendanceLocationComponent
{
}
src/app/portal-manage/myface/attendance-settings/attendance-settings.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-attendance-settings'
,
template
:
'<p>attendance-settings works!</p>'
,
standalone
:
true
})
export
class
AttendanceSettingsComponent
{
}
src/app/portal-manage/myface/attendance/myface-attendance.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myface-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>ระบบลงเวลาด้วยใบหน้าสำหรับ MyFace</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
MyfaceAttendanceComponent
{
}
src/app/portal-manage/myface/dashboard/myface-dashboard.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-myface-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">myFace Dashboard</h4>
</div>
<div class="card-body">
<p>ยินดีต้อนรับสู่ระบบ myFace</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
MyfaceDashboardComponent
{
constructor
()
{
}
}
src/app/portal-manage/myface/face-enrollment/face-enrollment.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-face-enrollment'
,
template
:
'<p>face-enrollment works!</p>'
,
standalone
:
true
})
export
class
FaceEnrollmentComponent
{
}
src/app/portal-manage/myface/face-management/myface-face-management.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myface-face-management'
,
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>ระบบจัดการข้อมูลใบหน้าสำหรับ MyFace</p>
<div class="mt-4">
<button class="bg-green-500 hover:bg-green-600 text-white px-4 py-2 rounded mr-2">
เพิ่มใบหน้า
</button>
<button class="bg-red-500 hover:bg-red-600 text-white px-4 py-2 rounded">
ลบใบหน้า
</button>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
MyfaceFaceManagementComponent
{
}
src/app/portal-manage/myface/face-recognition/myface-face-recognition.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myface-face-recognition'
,
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>ระบบจดจำใบหน้าสำหรับ MyFace</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
MyfaceFaceRecognitionComponent
{
}
src/app/portal-manage/myface/face-verification/face-verification.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-face-verification'
,
template
:
'<p>face-verification works!</p>'
,
standalone
:
true
})
export
class
FaceVerificationComponent
{
}
src/app/portal-manage/myface/myface.module.ts
View file @
a6a50aed
...
...
@@ -12,13 +12,8 @@ export const routes: Routes = [
children
:
[
{
path
:
'dashboard'
,
loadComponent
:
()
=>
import
(
'./dashboard/
myface-dashboard.component'
).
then
(
m
=>
m
.
Myface
DashboardComponent
)
loadComponent
:
()
=>
import
(
'./dashboard/
dashboard.component'
).
then
(
m
=>
m
.
DashboardComponent
)
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
}
]
}
];
...
...
src/app/portal-manage/myface/myface.routes.ts
View file @
a6a50aed
import
{
Routes
}
from
'@angular/router'
;
import
{
MyfaceComponent
}
from
'./myface.component'
;
import
{
MyfaceDashboardComponent
}
from
'./dashboard/myface-
dashboard.component'
;
import
{
DashboardComponent
}
from
'./dashboard/
dashboard.component'
;
export
const
MYFACE_ROUTES
:
Routes
=
[
{
...
...
@@ -9,32 +9,129 @@ export const MYFACE_ROUTES: Routes = [
children
:
[
{
path
:
'dashboard'
,
component
:
Myface
DashboardComponent
component
:
DashboardComponent
},
// -- portal -- //
{
path
:
'face-recognition'
,
loadComponent
:
()
=>
import
(
'./face-recognition/myface-face-recognition.component'
).
then
(
m
=>
m
.
MyfaceFaceRecognitionComponent
)
path
:
'category-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/category-list.component'
).
then
((
m
)
=>
m
.
CategorylistComponent
),
},
{
path
:
'face-management'
,
loadComponent
:
()
=>
import
(
'./face-management/myface-face-management.component'
).
then
(
m
=>
m
.
MyfaceFaceManagementComponent
)
path
:
'view-list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-excel/view-list-excel.component'
).
then
((
m
)
=>
m
.
ViewListExcelComponent
),
},
{
path
:
'attendance'
,
loadComponent
:
()
=>
import
(
'./attendance/myface-attendance.component'
).
then
(
m
=>
m
.
MyfaceAttendanceComponent
)
path
:
'view-list-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-doc/view-list-doc.component'
).
then
((
m
)
=>
m
.
ViewListDocComponent
),
},
{
path
:
'attendance-report'
,
loadComponent
:
()
=>
import
(
'./reports/myface-attendance-report.component'
).
then
(
m
=>
m
.
MyfaceAttendanceReportComponent
)
path
:
'view-list-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-course/view-list-course.component'
).
then
((
m
)
=>
m
.
ViewListCourseComponent
),
},
{
path
:
'face-report'
,
loadComponent
:
()
=>
import
(
'./reports/myface-face-report.component'
).
then
(
m
=>
m
.
MyfaceFaceReportComponent
)
path
:
'create-category'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/create-category.component'
).
then
((
m
)
=>
m
.
CreateCategoryComponent
),
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
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/myface/reports/myface-attendance-report.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myface-attendance-report'
,
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>รายงานการลงเวลาด้วยใบหน้าสำหรับ MyFace</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
MyfaceAttendanceReportComponent
{
}
src/app/portal-manage/myface/reports/myface-face-report.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-myface-face-report'
,
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>รายงานการจดจำใบหน้าสำหรับ MyFace</p>
<div class="mt-4">
<button class="bg-purple-500 hover:bg-purple-600 text-white px-4 py-2 rounded">
ส่งออกรายงาน
</button>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
MyfaceFaceReportComponent
{
}
src/app/portal-manage/myface/security-report/security-report.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-security-report'
,
template
:
'<p>security-report works!</p>'
,
standalone
:
true
})
export
class
SecurityReportComponent
{
}
src/app/portal-manage/myskill-x/admin-manage/admin-manage.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-admin-manage'
,
template
:
'<p>admin-manage works!</p>'
,
standalone
:
true
})
export
class
AdminManageComponent
{
}
src/app/portal-manage/myskill-x/myskill-x.module.ts
View file @
a6a50aed
...
...
@@ -14,11 +14,6 @@ export const routes: Routes = [
path
:
'dashboard'
,
loadComponent
:
()
=>
import
(
'./dashboard/myskill-x-dashboard.component'
).
then
(
m
=>
m
.
MyskillXDashboardComponent
)
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
}
]
}
];
...
...
src/app/portal-manage/myskill-x/myskill-x.routes.ts
View file @
a6a50aed
...
...
@@ -11,18 +11,127 @@ export const MYSKILL_X_ROUTES: Routes = [
path
:
'dashboard'
,
component
:
MyskillXDashboardComponent
},
// -- portal -- //
{
path
:
'admin-manage'
,
loadComponent
:
()
=>
import
(
'./admin-manage/admin-manage.component'
).
then
(
m
=>
m
.
AdminManageComponent
)
path
:
'category-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/category-list.component'
).
then
((
m
)
=>
m
.
CategorylistComponent
),
},
{
path
:
'user-management'
,
loadComponent
:
()
=>
import
(
'./user-management/user-management.component'
).
then
(
m
=>
m
.
UserManagementComponent
)
path
:
'view-list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-excel/view-list-excel.component'
).
then
((
m
)
=>
m
.
ViewListExcelComponent
),
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
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/myskill-x/user-management/user-management.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-user-management'
,
template
:
'<p>user-management works!</p>'
,
standalone
:
true
})
export
class
UserManagementComponent
{
}
src/app/portal-manage/zeeme/attendance/zeeme-attendance.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-zeeme-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>ระบบลงเวลาทำงานสำหรับ Zeeme</p>
<div class="mt-4 grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="bg-green-50 p-4 rounded-lg">
<h3 class="font-semibold text-green-800">เข้างาน</h3>
<p class="text-sm text-green-600">เวลา: 08:00</p>
</div>
<div class="bg-red-50 p-4 rounded-lg">
<h3 class="font-semibold text-red-800">ออกงาน</h3>
<p class="text-sm text-red-600">เวลา: 17:00</p>
</div>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
ZeemeAttendanceComponent
{
}
src/app/portal-manage/zeeme/dashboard/zeeme-dashboard.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
@
Component
({
selector
:
'app-zeeme-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">Zeeme Plus Dashboard</h4>
</div>
<div class="card-body">
<p>ยินดีต้อนรับสู่ระบบ Zeeme Plus</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
ZeemeDashboardComponent
{
constructor
()
{
}
}
src/app/portal-manage/zeeme/overtime/zeeme-overtime.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-zeeme-overtime'
,
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>ระบบจัดการการทำงานล่วงเวลาสำหรับ Zeeme</p>
<div class="mt-4">
<button class="bg-orange-500 hover:bg-orange-600 text-white px-4 py-2 rounded">
ขอทำงานล่วงเวลา
</button>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
ZeemeOvertimeComponent
{
}
src/app/portal-manage/zeeme/reports/zeeme-attendance-report.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-zeeme-attendance-report'
,
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>รายงานการลงเวลาทำงานสำหรับ Zeeme</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
ZeemeAttendanceReportComponent
{
}
src/app/portal-manage/zeeme/reports/zeeme-overtime-report.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-zeeme-overtime-report'
,
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>รายงานการทำงานล่วงเวลาสำหรับ Zeeme</p>
<div class="mt-4">
<button class="bg-orange-500 hover:bg-orange-600 text-white px-4 py-2 rounded">
ส่งออกรายงาน
</button>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
ZeemeOvertimeReportComponent
{
}
src/app/portal-manage/zeeme/reports/zeeme-summary-report.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-zeeme-summary-report'
,
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>รายงานสรุปข้อมูลการทำงานสำหรับ Zeeme</p>
<div class="mt-4">
<button class="bg-purple-500 hover:bg-purple-600 text-white px-4 py-2 rounded">
ส่งออกรายงาน
</button>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
ZeemeSummaryReportComponent
{
}
src/app/portal-manage/zeeme/time-tracking/zeeme-time-tracking.component.ts
deleted
100644 → 0
View file @
42950945
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
@
Component
({
selector
:
'app-zeeme-time-tracking'
,
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>ระบบติดตามเวลาทำงานสำหรับ Zeeme</p>
<div class="mt-4">
<button class="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded mr-2">
เริ่มงาน
</button>
<button class="bg-red-500 hover:bg-red-600 text-white px-4 py-2 rounded">
หยุดงาน
</button>
</div>
</div>
</div>
`
,
styles
:
[]
})
export
class
ZeemeTimeTrackingComponent
{
}
src/app/portal-manage/zeeme/zeeme.module.ts
View file @
a6a50aed
...
...
@@ -12,13 +12,8 @@ export const routes: Routes = [
children
:
[
{
path
:
'dashboard'
,
loadComponent
:
()
=>
import
(
'./dashboard/
zeeme-dashboard.component'
).
then
(
m
=>
m
.
Zeeme
DashboardComponent
)
loadComponent
:
()
=>
import
(
'./dashboard/
dashboard.component'
).
then
(
m
=>
m
.
DashboardComponent
)
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
}
]
}
];
...
...
src/app/portal-manage/zeeme/zeeme.routes.ts
View file @
a6a50aed
import
{
Routes
}
from
'@angular/router'
;
import
{
ZeemeComponent
}
from
'./zeeme.component'
;
import
{
ZeemeDashboardComponent
}
from
'./dashboard/zeeme-
dashboard.component'
;
import
{
DashboardComponent
}
from
'./dashboard/
dashboard.component'
;
export
const
ZEEME_ROUTES
:
Routes
=
[
{
...
...
@@ -9,36 +9,129 @@ export const ZEEME_ROUTES: Routes = [
children
:
[
{
path
:
'dashboard'
,
component
:
Zeeme
DashboardComponent
component
:
DashboardComponent
},
// -- portal -- //
{
path
:
'time-tracking'
,
loadComponent
:
()
=>
import
(
'./time-tracking/zeeme-time-tracking.component'
).
then
(
m
=>
m
.
ZeemeTimeTrackingComponent
)
path
:
'category-list'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/category-list.component'
).
then
((
m
)
=>
m
.
CategorylistComponent
),
},
{
path
:
'attendance'
,
loadComponent
:
()
=>
import
(
'./attendance/zeeme-attendance.component'
).
then
(
m
=>
m
.
ZeemeAttendanceComponent
)
path
:
'view-list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-excel/view-list-excel.component'
).
then
((
m
)
=>
m
.
ViewListExcelComponent
),
},
{
path
:
'overtime'
,
loadComponent
:
()
=>
import
(
'./overtime/zeeme-overtime.component'
).
then
(
m
=>
m
.
ZeemeOvertimeComponent
)
path
:
'view-list-doc'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-doc/view-list-doc.component'
).
then
((
m
)
=>
m
.
ViewListDocComponent
),
},
{
path
:
'attendance-report'
,
loadComponent
:
()
=>
import
(
'./reports/zeeme-attendance-report.component'
).
then
(
m
=>
m
.
ZeemeAttendanceReportComponent
)
path
:
'view-list-course'
,
loadComponent
:
()
=>
import
(
'../my-portal/category-list/view-list-course/view-list-course.component'
).
then
((
m
)
=>
m
.
ViewListCourseComponent
),
},
{
path
:
'overtime-report'
,
loadComponent
:
()
=>
import
(
'./reports/zeeme-overtime-report.component'
).
then
(
m
=>
m
.
ZeemeOvertimeReportComponent
)
path
:
'create-category'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/create-category.component'
).
then
((
m
)
=>
m
.
CreateCategoryComponent
),
},
{
path
:
'summary-report'
,
loadComponent
:
()
=>
import
(
'./reports/zeeme-summary-report.component'
).
then
(
m
=>
m
.
ZeemeSummaryReportComponent
)
path
:
'list-excel'
,
loadComponent
:
()
=>
import
(
'../my-portal/create-category/list-excel/list-excel.component'
).
then
((
m
)
=>
m
.
ListExcelComponent
),
},
{
path
:
''
,
redirectTo
:
'dashboard'
,
pathMatch
:
'full'
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/shared/services/nav.service.ts
View file @
a6a50aed
...
...
@@ -302,17 +302,13 @@ export class NavService implements OnDestroy {
// MyPortal
{
headTitle
:
'MyPortal'
},
this
.
createDashboardMenu
(
'myskill-x'
),
// {
// title: 'แดชบอร์ด',
// icon: 'dashboard',
// path: '/portal-manage/myskill-x/dashboard',
// type: 'link',
// },
...
this
.
createPortalMenu
(
'myskill-x'
),
{
title
:
'จัดการระบบ'
,
icon
:
'settings'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myskill-x/admin-manage'
,
title
:
'จัดการผู้ดูแลระบบ'
,
type
:
'link'
},
{
path
:
'/portal-manage/myskill-x/user-management'
,
title
:
'จัดการผู้ใช้'
,
type
:
'link'
},
],
}
];
}
...
...
@@ -423,46 +419,12 @@ export class NavService implements OnDestroy {
// myFace
{
headTitle
:
'myFace'
},
this
.
createDashboardMenu
(
'myface'
),
{
title
:
'แดชบอร์ด'
,
icon
:
'dashboard'
,
path
:
'/portal-manage/myface/dashboard'
,
type
:
'link'
,
},
{
title
:
'จัดการใบหน้า'
,
icon
:
'user-check'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myface/face-recognition'
,
title
:
'ระบบจดจำใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-management'
,
title
:
'จัดการข้อมูลใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-enrollment'
,
title
:
'ลงทะเบียนใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-verification'
,
title
:
'ตรวจสอบใบหน้า'
,
type
:
'link'
},
],
},
{
title
:
'ระบบลงเวลา'
,
icon
:
'time'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myface/attendance'
,
title
:
'ลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/attendance-settings'
,
title
:
'ตั้งค่าระบบลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/attendance-location'
,
title
:
'สถานที่ลงเวลา'
,
type
:
'link'
},
],
},
{
title
:
'รายงาน'
,
icon
:
'chart-bar'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/myface/attendance-report'
,
title
:
'รายงานการลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/face-report'
,
title
:
'รายงานการจดจำใบหน้า'
,
type
:
'link'
},
{
path
:
'/portal-manage/myface/security-report'
,
title
:
'รายงานความปลอดภัย'
,
type
:
'link'
},
],
},
// {
// title: 'แดชบอร์ด',
// icon: 'dashboard',
// path: '/portal-manage/myface/dashboard',
// type: 'link',
// },
...
this
.
createPortalMenu
(
'myface'
)
];
}
...
...
@@ -472,48 +434,12 @@ export class NavService implements OnDestroy {
// Zeeme Plus
{
headTitle
:
'Zeeme Plus'
},
this
.
createDashboardMenu
(
'zeeme'
),
{
title
:
'แดชบอร์ด'
,
icon
:
'dashboard'
,
path
:
'/portal-manage/zeeme/dashboard'
,
type
:
'link'
,
},
{
title
:
'จัดการเวลา'
,
icon
:
'time'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/zeeme/time-tracking'
,
title
:
'ติดตามเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/attendance'
,
title
:
'ระบบลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/overtime'
,
title
:
'การทำงานล่วงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/break-time'
,
title
:
'เวลาพัก'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/shift-management'
,
title
:
'จัดการกะงาน'
,
type
:
'link'
},
],
},
{
title
:
'จัดการพนักงาน'
,
icon
:
'user'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/zeeme/employee-schedule'
,
title
:
'ตารางงานพนักงาน'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/leave-management'
,
title
:
'จัดการการลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/approval-workflow'
,
title
:
'อนุมัติการลา'
,
type
:
'link'
},
],
},
{
title
:
'รายงาน'
,
icon
:
'chart-bar'
,
type
:
'sub'
,
active
:
false
,
children
:
[
{
path
:
'/portal-manage/zeeme/attendance-report'
,
title
:
'รายงานการลงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/overtime-report'
,
title
:
'รายงานการทำงานล่วงเวลา'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/summary-report'
,
title
:
'รายงานสรุป'
,
type
:
'link'
},
{
path
:
'/portal-manage/zeeme/leave-report'
,
title
:
'รายงานการลา'
,
type
:
'link'
},
],
},
// {
// title: 'แดชบอร์ด',
// icon: 'dashboard',
// path: '/portal-manage/zeeme/dashboard',
// type: 'link',
// },
...
this
.
createPortalMenu
(
'zeeme'
)
];
}
...
...
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