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
b67f5495
Commit
b67f5495
authored
Sep 14, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
หห
parent
264a7c6c
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
288 additions
and
76 deletions
+288
-76
app.routes.ts
src/app/app.routes.ts
+1
-1
simple-login.component.ts
src/app/authentication/login/simple-login.component.ts
+100
-0
module-access.guard.ts
src/app/core/guards/module-access.guard.ts
+16
-3
core-permission.service.ts
src/app/core/services/core-permission.service.ts
+7
-3
home.component.ts
src/app/portal-manage/home/home.component.ts
+26
-29
myface-dashboard.component.ts
...tal-manage/myface/dashboard/myface-dashboard.component.ts
+1
-0
myface.component.ts
src/app/portal-manage/myface/myface.component.ts
+3
-0
myhr-lite-dashboard.component.ts
...nage/myhr-lite/dashboard/myhr-lite-dashboard.component.ts
+1
-0
myhr-lite.component.ts
src/app/portal-manage/myhr-lite/myhr-lite.component.ts
+3
-0
myjob-dashboard.component.ts
...ortal-manage/myjob/dashboard/myjob-dashboard.component.ts
+1
-0
myjob.component.ts
src/app/portal-manage/myjob/myjob.component.ts
+3
-0
mylearn-dashboard.component.ts
...l-manage/mylearn/dashboard/mylearn-dashboard.component.ts
+1
-0
mylearn.component.ts
src/app/portal-manage/mylearn/mylearn.component.ts
+3
-0
myskill-x-dashboard.component.ts
...nage/myskill-x/dashboard/myskill-x-dashboard.component.ts
+1
-0
myskill-x.component.ts
src/app/portal-manage/myskill-x/myskill-x.component.ts
+3
-0
zeeme-dashboard.component.ts
...ortal-manage/zeeme/dashboard/zeeme-dashboard.component.ts
+1
-0
zeeme.component.ts
src/app/portal-manage/zeeme/zeeme.component.ts
+3
-0
header.component.html
src/app/shared/components/header/header.component.html
+108
-38
header.component.ts
src/app/shared/components/header/header.component.ts
+6
-2
No files found.
src/app/app.routes.ts
View file @
b67f5495
...
@@ -48,5 +48,5 @@ export const App_Route: Route[] = [
...
@@ -48,5 +48,5 @@ export const App_Route: Route[] = [
path
:
'unauthorized'
,
path
:
'unauthorized'
,
component
:
UnauthorizedComponent
component
:
UnauthorizedComponent
},
},
{
path
:
''
,
component
:
ContentLayoutComponent
,
children
:
content
},
{
path
:
''
,
redirectTo
:
'/auth/login'
,
pathMatch
:
'full'
},
]
]
src/app/authentication/login/simple-login.component.ts
0 → 100644
View file @
b67f5495
import
{
Component
}
from
'@angular/core'
;
import
{
CommonModule
}
from
'@angular/common'
;
import
{
FormsModule
}
from
'@angular/forms'
;
import
{
Router
}
from
'@angular/router'
;
import
{
AuthService
}
from
'../../core/services/auth.service'
;
@
Component
({
selector
:
'app-simple-login'
,
standalone
:
true
,
imports
:
[
CommonModule
,
FormsModule
],
template
:
`
<div class="min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
<div class="max-w-md w-full space-y-8">
<div>
<h2 class="mt-6 text-center text-3xl font-extrabold text-gray-900">
เข้าสู่ระบบ
</h2>
</div>
<form class="mt-8 space-y-6" (ngSubmit)="onLogin()">
<div class="rounded-md shadow-sm -space-y-px">
<div>
<label for="username" class="sr-only">Username</label>
<input id="username" name="username" type="text"
[(ngModel)]="username" required
class="appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-t-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm"
placeholder="Username">
</div>
<div>
<label for="password" class="sr-only">Password</label>
<input id="password" name="password" type="password"
[(ngModel)]="password" required
class="appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm"
placeholder="Password">
</div>
</div>
<div>
<button type="submit"
[disabled]="isLoading"
class="group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 disabled:opacity-50">
<span *ngIf="!isLoading">เข้าสู่ระบบ</span>
<span *ngIf="isLoading">กำลังเข้าสู่ระบบ...</span>
</button>
</div>
<div *ngIf="errorMessage" class="text-red-600 text-sm text-center">
{{ errorMessage }}
</div>
</form>
</div>
</div>
`
,
styles
:
[]
})
export
class
SimpleLoginComponent
{
username
=
''
;
password
=
''
;
isLoading
=
false
;
errorMessage
=
''
;
constructor
(
private
router
:
Router
,
private
authService
:
AuthService
)
{}
onLogin
()
{
if
(
!
this
.
username
||
!
this
.
password
)
{
this
.
errorMessage
=
'กรุณากรอก username และ password'
;
return
;
}
this
.
isLoading
=
true
;
this
.
errorMessage
=
''
;
// จำลองการ login
setTimeout
(()
=>
{
// บันทึก token ลง localStorage
localStorage
.
setItem
(
'authToken'
,
'dummy-token-'
+
Date
.
now
());
// อัปเดตสถานะ login ใน AuthService
this
.
authService
.
login
().
subscribe
(()
=>
{
this
.
isLoading
=
false
;
// ไปหน้า home
console
.
log
(
'Navigating to /home...'
);
this
.
router
.
navigate
([
'/home'
]).
then
(
success
=>
{
console
.
log
(
'Navigation success:'
,
success
);
if
(
!
success
)
{
console
.
log
(
'Navigation failed, trying alternative...'
);
this
.
router
.
navigateByUrl
(
'/home'
);
}
}).
catch
(
error
=>
{
console
.
error
(
'Navigation error:'
,
error
);
// ลองใช้ window.location
window
.
location
.
href
=
'/home'
;
});
});
},
1000
);
}
}
src/app/core/guards/module-access.guard.ts
View file @
b67f5495
...
@@ -7,12 +7,25 @@ export const moduleAccessGuard: CanActivateFn = (route: ActivatedRouteSnapshot,
...
@@ -7,12 +7,25 @@ export const moduleAccessGuard: CanActivateFn = (route: ActivatedRouteSnapshot,
const
permissionService
=
inject
(
CorePermissionService
);
const
permissionService
=
inject
(
CorePermissionService
);
const
router
=
inject
(
Router
);
const
router
=
inject
(
Router
);
// Get the module name from the route parameter :appName
// Get the module name from the route parameter :appName or from the route path
const
moduleName
=
route
.
params
[
'appName'
];
let
moduleName
=
route
.
params
[
'appName'
];
// If no appName parameter, extract module name from the route path
if
(
!
moduleName
)
{
const
pathSegments
=
state
.
url
.
split
(
'/'
).
filter
(
segment
=>
segment
);
// For portal-manage routes, get the module name after 'portal-manage'
const
portalIndex
=
pathSegments
.
indexOf
(
'portal-manage'
);
if
(
portalIndex
!==
-
1
&&
pathSegments
[
portalIndex
+
1
])
{
moduleName
=
pathSegments
[
portalIndex
+
1
];
}
else
if
(
pathSegments
.
length
>
0
)
{
// For direct routes, use the first segment
moduleName
=
pathSegments
[
0
];
}
}
if
(
!
moduleName
)
{
if
(
!
moduleName
)
{
// If the path is not defined, deny access and redirect
// If the path is not defined, deny access and redirect
return
router
.
parseUrl
(
'/unauthorized'
);
// Or to a default error page
return
router
.
parseUrl
(
'/unauthorized'
);
}
}
return
permissionService
.
canAccessModule
(
moduleName
).
pipe
(
return
permissionService
.
canAccessModule
(
moduleName
).
pipe
(
...
...
src/app/core/services/core-permission.service.ts
View file @
b67f5495
...
@@ -36,9 +36,13 @@ export class CorePermissionService {
...
@@ -36,9 +36,13 @@ export class CorePermissionService {
* @param moduleName The name of the module (e.g., from the route path).
* @param moduleName The name of the module (e.g., from the route path).
*/
*/
canAccessModule
(
moduleName
:
string
):
Observable
<
boolean
>
{
canAccessModule
(
moduleName
:
string
):
Observable
<
boolean
>
{
return
this
.
getAccessibleModules
().
pipe
(
// Temporarily allow access to all modules
map
(
modules
=>
modules
.
includes
(
moduleName
))
return
of
(
true
);
);
// Original implementation (commented out for now):
// return this.getAccessibleModules().pipe(
// map(modules => modules.includes(moduleName))
// );
}
}
/**
/**
...
...
src/app/portal-manage/home/home.component.ts
View file @
b67f5495
...
@@ -214,10 +214,10 @@ export class HomeComponent implements OnInit {
...
@@ -214,10 +214,10 @@ export class HomeComponent implements OnInit {
displayName
:
'myHR-Plus'
,
displayName
:
'myHR-Plus'
,
description
:
'ระบบจัดการทรัพยากรบุคคลขั้นสูง'
,
description
:
'ระบบจัดการทรัพยากรบุคคลขั้นสูง'
,
icon
:
'./assets/images/logoallHR/myhr-plus.jpg'
,
icon
:
'./assets/images/logoallHR/myhr-plus.jpg'
,
path
:
'/myhr-plus'
,
path
:
'/
portal-manage/
myhr-plus'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'applications'
,
category
:
'applications'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'myhr-lite'
,
id
:
'myhr-lite'
,
...
@@ -225,10 +225,10 @@ export class HomeComponent implements OnInit {
...
@@ -225,10 +225,10 @@ export class HomeComponent implements OnInit {
displayName
:
'myHR-Lite'
,
displayName
:
'myHR-Lite'
,
description
:
'ระบบจัดการทรัพยากรบุคคลพื้นฐาน'
,
description
:
'ระบบจัดการทรัพยากรบุคคลพื้นฐาน'
,
icon
:
'./assets/images/logoallHR/myHR-Lite-logo-new.png'
,
icon
:
'./assets/images/logoallHR/myHR-Lite-logo-new.png'
,
path
:
'/myhr-lite'
,
path
:
'/
portal-manage/
myhr-lite'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'applications'
,
category
:
'applications'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'zeeme'
,
id
:
'zeeme'
,
...
@@ -236,10 +236,10 @@ export class HomeComponent implements OnInit {
...
@@ -236,10 +236,10 @@ export class HomeComponent implements OnInit {
displayName
:
'Zeeme Plus'
,
displayName
:
'Zeeme Plus'
,
description
:
'ระบบจัดการเวลาและลงเวลา'
,
description
:
'ระบบจัดการเวลาและลงเวลา'
,
icon
:
'./assets/images/logoallHR/zeemePlus.png'
,
icon
:
'./assets/images/logoallHR/zeemePlus.png'
,
path
:
'/zeeme'
,
path
:
'/
portal-manage/
zeeme'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'applications'
,
category
:
'applications'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'myface'
,
id
:
'myface'
,
...
@@ -247,10 +247,10 @@ export class HomeComponent implements OnInit {
...
@@ -247,10 +247,10 @@ export class HomeComponent implements OnInit {
displayName
:
'myFace'
,
displayName
:
'myFace'
,
description
:
'ระบบจัดการใบหน้าและความปลอดภัย'
,
description
:
'ระบบจัดการใบหน้าและความปลอดภัย'
,
icon
:
'./assets/images/logoallHR/logo_myface.png'
,
icon
:
'./assets/images/logoallHR/logo_myface.png'
,
path
:
'/myface'
,
path
:
'/
portal-manage/
myface'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'applications'
,
category
:
'applications'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'mylearn'
,
id
:
'mylearn'
,
...
@@ -258,10 +258,10 @@ export class HomeComponent implements OnInit {
...
@@ -258,10 +258,10 @@ export class HomeComponent implements OnInit {
displayName
:
'myLearn'
,
displayName
:
'myLearn'
,
description
:
'ระบบจัดการการเรียนรู้และฝึกอบรม'
,
description
:
'ระบบจัดการการเรียนรู้และฝึกอบรม'
,
icon
:
'./assets/images/logoallHR/mylearn-logo.png'
,
icon
:
'./assets/images/logoallHR/mylearn-logo.png'
,
path
:
'/mylearn'
,
path
:
'/
portal-manage/
mylearn'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'applications'
,
category
:
'applications'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'myjob'
,
id
:
'myjob'
,
...
@@ -269,10 +269,10 @@ export class HomeComponent implements OnInit {
...
@@ -269,10 +269,10 @@ export class HomeComponent implements OnInit {
displayName
:
'myJob'
,
displayName
:
'myJob'
,
description
:
'ระบบจัดการงานและโครงการ'
,
description
:
'ระบบจัดการงานและโครงการ'
,
icon
:
'./assets/images/logoallHR/logo_myjob.png'
,
icon
:
'./assets/images/logoallHR/logo_myjob.png'
,
path
:
'/myjob'
,
path
:
'/
portal-manage/
myjob'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'applications'
,
category
:
'applications'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'myskill-x'
,
id
:
'myskill-x'
,
...
@@ -280,10 +280,10 @@ export class HomeComponent implements OnInit {
...
@@ -280,10 +280,10 @@ export class HomeComponent implements OnInit {
displayName
:
'mySkill-X'
,
displayName
:
'mySkill-X'
,
description
:
'ระบบจัดการทักษะและความสามารถ'
,
description
:
'ระบบจัดการทักษะและความสามารถ'
,
icon
:
'./assets/images/logoallHR/mySkill-x.png'
,
icon
:
'./assets/images/logoallHR/mySkill-x.png'
,
path
:
'/myskill-x'
,
path
:
'/
portal-manage/
myskill-x'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'applications'
,
category
:
'applications'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
// การบริการ
// การบริการ
{
{
...
@@ -292,10 +292,10 @@ export class HomeComponent implements OnInit {
...
@@ -292,10 +292,10 @@ export class HomeComponent implements OnInit {
displayName
:
'Dashboard'
,
displayName
:
'Dashboard'
,
description
:
'แดชบอร์ดหลัก'
,
description
:
'แดชบอร์ดหลัก'
,
icon
:
'./assets/images/icons/dashboard.png'
,
icon
:
'./assets/images/icons/dashboard.png'
,
path
:
'/dashboard'
,
path
:
'/
portal-manage/
dashboard'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'services'
,
category
:
'services'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'meetingBooking'
,
id
:
'meetingBooking'
,
...
@@ -306,7 +306,7 @@ export class HomeComponent implements OnInit {
...
@@ -306,7 +306,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/meeting-booking'
,
path
:
'/portal-manage/meeting-booking'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'services'
,
category
:
'services'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
// การตั้งค่าระบบ
// การตั้งค่าระบบ
{
{
...
@@ -318,7 +318,7 @@ export class HomeComponent implements OnInit {
...
@@ -318,7 +318,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/permission-management'
,
path
:
'/portal-manage/permission-management'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'system'
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'roleManagement'
,
id
:
'roleManagement'
,
...
@@ -329,7 +329,7 @@ export class HomeComponent implements OnInit {
...
@@ -329,7 +329,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/role-management'
,
path
:
'/portal-manage/role-management'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'system'
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'menuPermissionManagement'
,
id
:
'menuPermissionManagement'
,
...
@@ -340,7 +340,7 @@ export class HomeComponent implements OnInit {
...
@@ -340,7 +340,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/menu-permission-management'
,
path
:
'/portal-manage/menu-permission-management'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'system'
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'userManagement'
,
id
:
'userManagement'
,
...
@@ -351,7 +351,7 @@ export class HomeComponent implements OnInit {
...
@@ -351,7 +351,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/user-role-management'
,
path
:
'/portal-manage/user-role-management'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'system'
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'companyManagement'
,
id
:
'companyManagement'
,
...
@@ -362,7 +362,7 @@ export class HomeComponent implements OnInit {
...
@@ -362,7 +362,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/company-management'
,
path
:
'/portal-manage/company-management'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'system'
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'widgetManagement'
,
id
:
'widgetManagement'
,
...
@@ -373,7 +373,7 @@ export class HomeComponent implements OnInit {
...
@@ -373,7 +373,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/widget-management'
,
path
:
'/portal-manage/widget-management'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'system'
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
},
},
{
{
id
:
'dashboardManagement'
,
id
:
'dashboardManagement'
,
...
@@ -384,7 +384,7 @@ export class HomeComponent implements OnInit {
...
@@ -384,7 +384,7 @@ export class HomeComponent implements OnInit {
path
:
'/portal-manage/dashboard-management'
,
path
:
'/portal-manage/dashboard-management'
,
isVisible
:
true
,
isVisible
:
true
,
category
:
'system'
,
category
:
'system'
,
permissions
:
{
view
:
true
,
create
:
false
,
edit
:
false
,
delete
:
false
,
export
:
false
,
import
:
fals
e
}
permissions
:
{
view
:
true
,
create
:
true
,
edit
:
true
,
delete
:
true
,
export
:
true
,
import
:
tru
e
}
}
}
];
];
}
}
...
@@ -413,11 +413,8 @@ export class HomeComponent implements OnInit {
...
@@ -413,11 +413,8 @@ export class HomeComponent implements OnInit {
}
}
navigateToApp
(
app
:
AppModule
)
{
navigateToApp
(
app
:
AppModule
)
{
if
(
app
.
path
.
startsWith
(
'/portal-manage'
))
{
// เนื่องจากทุก path ตอนนี้เริ่มด้วย /portal-manage แล้ว
this
.
router
.
navigate
([
app
.
path
]);
this
.
router
.
navigate
([
app
.
path
]);
}
else
{
this
.
checkAppToken
(
app
.
id
);
}
}
}
getAppCardClass
(
app
:
AppModule
):
string
{
getAppCardClass
(
app
:
AppModule
):
string
{
...
...
src/app/portal-manage/myface/dashboard/myface-dashboard.component.ts
View file @
b67f5495
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
@
Component
({
@
Component
({
selector
:
'app-myface-dashboard'
,
selector
:
'app-myface-dashboard'
,
standalone
:
true
,
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/myface/myface.component.ts
View file @
b67f5495
import
{
Component
}
from
'@angular/core'
;
import
{
Component
}
from
'@angular/core'
;
import
{
RouterOutlet
}
from
'@angular/router'
;
@
Component
({
@
Component
({
selector
:
'app-myface'
,
selector
:
'app-myface'
,
standalone
:
true
,
imports
:
[
RouterOutlet
],
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/myhr-lite/dashboard/myhr-lite-dashboard.component.ts
View file @
b67f5495
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
@
Component
({
@
Component
({
selector
:
'app-myhr-lite-dashboard'
,
selector
:
'app-myhr-lite-dashboard'
,
standalone
:
true
,
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/myhr-lite/myhr-lite.component.ts
View file @
b67f5495
import
{
Component
}
from
'@angular/core'
;
import
{
Component
}
from
'@angular/core'
;
import
{
RouterOutlet
}
from
'@angular/router'
;
@
Component
({
@
Component
({
selector
:
'app-myhr-lite'
,
selector
:
'app-myhr-lite'
,
standalone
:
true
,
imports
:
[
RouterOutlet
],
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/myjob/dashboard/myjob-dashboard.component.ts
View file @
b67f5495
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
@
Component
({
@
Component
({
selector
:
'app-myjob-dashboard'
,
selector
:
'app-myjob-dashboard'
,
standalone
:
true
,
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/myjob/myjob.component.ts
View file @
b67f5495
import
{
Component
}
from
'@angular/core'
;
import
{
Component
}
from
'@angular/core'
;
import
{
RouterOutlet
}
from
'@angular/router'
;
@
Component
({
@
Component
({
selector
:
'app-myjob'
,
selector
:
'app-myjob'
,
standalone
:
true
,
imports
:
[
RouterOutlet
],
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/mylearn/dashboard/mylearn-dashboard.component.ts
View file @
b67f5495
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
@
Component
({
@
Component
({
selector
:
'app-mylearn-dashboard'
,
selector
:
'app-mylearn-dashboard'
,
standalone
:
true
,
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/mylearn/mylearn.component.ts
View file @
b67f5495
import
{
Component
}
from
'@angular/core'
;
import
{
Component
}
from
'@angular/core'
;
import
{
RouterOutlet
}
from
'@angular/router'
;
@
Component
({
@
Component
({
selector
:
'app-mylearn'
,
selector
:
'app-mylearn'
,
standalone
:
true
,
imports
:
[
RouterOutlet
],
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/myskill-x/dashboard/myskill-x-dashboard.component.ts
View file @
b67f5495
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
@
Component
({
@
Component
({
selector
:
'app-myskill-x-dashboard'
,
selector
:
'app-myskill-x-dashboard'
,
standalone
:
true
,
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/myskill-x/myskill-x.component.ts
View file @
b67f5495
import
{
Component
}
from
'@angular/core'
;
import
{
Component
}
from
'@angular/core'
;
import
{
RouterOutlet
}
from
'@angular/router'
;
@
Component
({
@
Component
({
selector
:
'app-myskill-x'
,
selector
:
'app-myskill-x'
,
standalone
:
true
,
imports
:
[
RouterOutlet
],
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/zeeme/dashboard/zeeme-dashboard.component.ts
View file @
b67f5495
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
...
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
@
Component
({
@
Component
({
selector
:
'app-zeeme-dashboard'
,
selector
:
'app-zeeme-dashboard'
,
standalone
:
true
,
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/portal-manage/zeeme/zeeme.component.ts
View file @
b67f5495
import
{
Component
}
from
'@angular/core'
;
import
{
Component
}
from
'@angular/core'
;
import
{
RouterOutlet
}
from
'@angular/router'
;
@
Component
({
@
Component
({
selector
:
'app-zeeme'
,
selector
:
'app-zeeme'
,
standalone
:
true
,
imports
:
[
RouterOutlet
],
template
:
`
template
:
`
<div class="container-fluid">
<div class="container-fluid">
<div class="row">
<div class="row">
...
...
src/app/shared/components/header/header.component.html
View file @
b67f5495
...
@@ -301,82 +301,153 @@
...
@@ -301,82 +301,153 @@
<div
class=
"dropdown-divider mb-0"
></div>
<div
class=
"dropdown-divider mb-0"
></div>
<div
class=
"ti-dropdown-divider divide-y divide-gray-200 dark:divide-white/10 main-header-shortcuts p-2"
<div
class=
"ti-dropdown-divider divide-y divide-gray-200 dark:divide-white/10 main-header-shortcuts p-2"
id=
"header-shortcut-scroll"
>
id=
"header-shortcut-scroll"
>
<!-- Home Button -->
<div
class=
"mb-3"
>
<a
(
click
)="
goToHome
()"
class=
"w-full p-3 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20 border border-primary/20 bg-primary/5 cursor-pointer"
>
<i
class=
"ri-home-4-line text-[1.5rem] text-primary mb-1"
></i>
<div
class=
"text-[0.75rem] text-primary font-medium"
>
Home
</div>
</a>
</div>
<!-- Applications Grid -->
<div
class=
"grid grid-cols-3 gap-2"
>
<div
class=
"grid grid-cols-3 gap-2"
>
<div
class=
""
>
<div
class=
""
>
<!-- <a routerLink="/myhr-plus/dashboard" -->
<a
(
click
)="
checkAppToken
('
myhr-plus
')"
<a
(
click
)="
checkAppToken
('
myhr-plus
')"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/logoallHR/myhr-plus.jpg"
alt=
"m
iscrosoft
"
<img
src=
"./assets/images/logoallHR/myhr-plus.jpg"
alt=
"m
yHR-Plus
"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<!-- <div class="text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50">myHR-plus
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
myHR-Plus
</div>
</div> -->
</a>
</a>
</div>
</div>
<div
class=
""
>
<div
class=
""
>
<!-- <a routerLink="/myhr-lite/dashboard" -->
<a
(
click
)="
checkAppToken
('
myhr-lite
')"
<a
(
click
)="
checkAppToken
('
myhr-lite
')"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/logoallHR/myHR-Lite-logo-new.png"
alt=
"m
iscrosoft
"
<img
src=
"./assets/images/logoallHR/myHR-Lite-logo-new.png"
alt=
"m
yHR-Lite
"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<!-- <div class="text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50">myHR-lite
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
myHR-Lite
</div>
</div> -->
</a>
</a>
</div>
</div>
<div
class=
""
>
<div
class=
""
>
<!-- <a routerLink="/zeeme/dashboard" -->
<a
(
click
)="
checkAppToken
('
zeeme
')"
<a
(
click
)="
checkAppToken
('
zeeme
')"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/logoallHR/zeemePlus.png"
alt=
"
miscrosoft
"
<img
src=
"./assets/images/logoallHR/zeemePlus.png"
alt=
"
Zeeme Plus
"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<!-- <div class="text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50">zeemePlus
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Zeeme Plus
</div>
</div> -->
</a>
</a>
</div>
</div>
<div
class=
""
>
<div
class=
""
>
<!-- <a routerLink="/myface/dashboard" -->
<a
(
click
)="
checkAppToken
('
myface
')"
<a
(
click
)="
checkAppToken
('
myface
')"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/logoallHR/logo_myface.png"
alt=
"m
iscrosoft
"
<img
src=
"./assets/images/logoallHR/logo_myface.png"
alt=
"m
yFace
"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<!-- <div class="text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50">myFace
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
myFace
</div>
</div> -->
</a>
</a>
</div>
</div>
<div
class=
""
>
<div
class=
""
>
<!-- <a routerLink="/mylearn/mylearn-pdpa-manage" -->
<a
(
click
)="
checkAppToken
('
mylearn
')"
<a
(
click
)="
checkAppToken
('
mylearn
')"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/logoallHR/mylearn-logo.png"
alt=
"m
iscrosoft
"
<img
src=
"./assets/images/logoallHR/mylearn-logo.png"
alt=
"m
yLearn
"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<!-- <div class="text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50">myLearn
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
myLearn
</div>
</div> -->
</a>
</a>
</div>
</div>
<div
class=
""
>
<div
class=
""
>
<!-- <a routerLink="/myjob/pdpa-manage" -->
<a
(
click
)="
checkAppToken
('
myjob
')"
<a
(
click
)="
checkAppToken
('
myjob
')"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/logoallHR/logo_myjob.png"
alt=
"m
iscrosoft
"
<img
src=
"./assets/images/logoallHR/logo_myjob.png"
alt=
"m
yJob
"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<!-- <div class="text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50">myJob
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
myJob
</div>
</div> -->
</a>
</a>
</div>
</div>
<div
class=
""
>
<div
class=
""
>
<!-- <a routerLink="/myskill-x/portal-category-list" -->
<!-- <a routerLink="/myskill-x/portal-category-list" -->
<a
(
click
)="
checkAppToken
('
myskill-x
')"
<a
(
click
)="
checkAppToken
('
myskill-x
')"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/logoallHR/mySkill-x.png"
alt=
"miscrosoft"
<img
src=
"./assets/images/logoallHR/mySkill-x.png"
alt=
"mySkill-X"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
mySkill-X
</div>
</a>
</div>
<!-- Dashboard -->
<div
class=
""
>
<a
routerLink=
"/portal-manage/dashboard"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/dashboard.png"
alt=
"Dashboard"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Dashboard
</div>
</a>
</div>
<!-- Meeting Booking -->
<div
class=
""
>
<a
routerLink=
"/portal-manage/meeting-booking"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/calendar.png"
alt=
"Meeting Booking"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Meeting
</div>
</a>
</div>
<!-- System Management -->
<div
class=
""
>
<a
routerLink=
"/portal-manage/permission-management"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/widget.png"
alt=
"Permission Management"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Permission
</div>
</a>
</div>
<div
class=
""
>
<a
routerLink=
"/portal-manage/role-management"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/users.png"
alt=
"Role Management"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Role
</div>
</a>
</div>
<div
class=
""
>
<a
routerLink=
"/portal-manage/company-management"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/building.png"
alt=
"Company Management"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<!-- <div class="text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50">mySkill-X
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Company
</div>
</div> -->
</a>
</div>
<div
class=
""
>
<a
routerLink=
"/portal-manage/widget-management"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/widget.png"
alt=
"Widget Management"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Widget
</div>
</a>
</div>
<div
class=
""
>
<a
routerLink=
"/portal-manage/menu-permission-management"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/menu.png"
alt=
"Menu Permission"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Menu
</div>
</a>
</div>
<div
class=
""
>
<a
routerLink=
"/portal-manage/dashboard-management"
class=
"p-4 items-center related-app block text-center rounded-sm hover:bg-gray-50 dark:hover:bg-black/20"
>
<img
src=
"./assets/images/icons/dashboard.png"
alt=
"Dashboard Management"
class=
"leading-[1.75] text-2xl !h-[1.75rem] align-middle flex justify-center mx-auto"
>
<div
class=
"text-[0.75rem] text-defaulttextcolor dark:text-[#8c9097] dark:text-white/50 mt-1"
>
Dashboard Mgt
</div>
</a>
</a>
</div>
</div>
...
@@ -410,7 +481,7 @@
...
@@ -410,7 +481,7 @@
<div
<div
class=
"header-element md:!px-[0.65rem] px-2 hs-dropdown !items-center ti-dropdown [--placement:bottom-left]"
>
class=
"header-element md:!px-[0.65rem] px-2 hs-dropdown !items-center ti-dropdown [--placement:bottom-left]"
>
<button
id=
"dropdown-profile"
type=
"button"
<button
id=
"dropdown-profile"
type=
"button"
title=
"User Profile"
class=
"hs-dropdown-toggle ti-dropdown-toggle !gap-2 !p-0 flex-shrink-0 sm:me-2 me-0 !rounded-full !shadow-none text-xs align-middle !border-0 !shadow-transparent "
>
class=
"hs-dropdown-toggle ti-dropdown-toggle !gap-2 !p-0 flex-shrink-0 sm:me-2 me-0 !rounded-full !shadow-none text-xs align-middle !border-0 !shadow-transparent "
>
<!-- <img class="inline-block rounded-full " [src]="userModel.getPicture()" width="32" height="32"
<!-- <img class="inline-block rounded-full " [src]="userModel.getPicture()" width="32" height="32"
alt="Image Description"> -->
alt="Image Description"> -->
...
@@ -476,22 +547,22 @@
...
@@ -476,22 +547,22 @@
<div
class=
"ti-modal-body"
>
<div
class=
"ti-modal-body"
>
<div
class=
"input-group border-[2px] border-primary rounded-[0.25rem] w-full flex"
>
<div
class=
"input-group border-[2px] border-primary rounded-[0.25rem] w-full flex"
>
<
a
aria-label=
"anchor"
href=
"javascript:void(0);
"
<
button
aria-label=
"search"
type=
"button"
title=
"Search
"
class=
"input-group-text flex items-center bg-light border-e-[#dee2e6] !py-[0.375rem] !px-[0.75rem] !rounded-none !text-[0.875rem]"
class=
"input-group-text flex items-center bg-light border-e-[#dee2e6] !py-[0.375rem] !px-[0.75rem] !rounded-none !text-[0.875rem]"
id=
"Search-Grid"
><i
class=
"fe fe-search header-link-icon text-[0.875rem]"
></i></
a
>
id=
"Search-Grid"
><i
class=
"fe fe-search header-link-icon text-[0.875rem]"
></i></
button
>
<input
type=
"search"
class=
"form-control border-0 px-2 !text-[0.8rem] w-full focus:ring-transparent"
<input
type=
"search"
class=
"form-control border-0 px-2 !text-[0.8rem] w-full focus:ring-transparent"
placeholder=
"Search"
aria-label=
"Username"
[(
ngModel
)]="
text
"
[
ngModelOptions
]="{
standalone:
true
}"
placeholder=
"Search"
aria-label=
"Username"
[(
ngModel
)]="
text
"
[
ngModelOptions
]="{
standalone:
true
}"
(
keyup
)="
Search
(
text
)"
autocomplete=
"off"
>
(
keyup
)="
Search
(
text
)"
autocomplete=
"off"
>
<
a
aria-label=
"anchor"
href=
"javascript:void(0);
"
<
button
aria-label=
"voice search"
type=
"button"
title=
"Voice Search
"
class=
"flex items-center input-group-text bg-light !py-[0.375rem] !px-[0.75rem]"
id=
"voice-search"
><i
class=
"flex items-center input-group-text bg-light !py-[0.375rem] !px-[0.75rem]"
id=
"voice-search"
><i
class=
"fe fe-mic header-link-icon"
></i></
a
>
class=
"fe fe-mic header-link-icon"
></i></
button
>
<div
class=
"hs-dropdown ti-dropdown"
>
<div
class=
"hs-dropdown ti-dropdown"
>
<a
aria-label=
"anchor"
href=
"javascript:void(0);
"
<button
aria-label=
"more options"
type=
"button"
title=
"More Options
"
class=
"flex items-center hs-dropdown-toggle ti-dropdown-toggle btn btn-light btn-icon !bg-light !py-[0.375rem] !rounded-none !px-[0.75rem] text-[0.95rem] h-[2.413rem] w-[2.313rem]"
>
class=
"flex items-center hs-dropdown-toggle ti-dropdown-toggle btn btn-light btn-icon !bg-light !py-[0.375rem] !rounded-none !px-[0.75rem] text-[0.95rem] h-[2.413rem] w-[2.313rem]"
>
<i
class=
"fe fe-more-vertical"
></i>
<i
class=
"fe fe-more-vertical"
></i>
</
a
>
</
button
>
<ul
class=
"absolute hs-dropdown-menu ti-dropdown-menu !-mt-2 !p-0 hidden"
>
<ul
class=
"absolute hs-dropdown-menu ti-dropdown-menu !-mt-2 !p-0 hidden"
>
<li><a
<li><a
...
@@ -541,7 +612,6 @@
...
@@ -541,7 +612,6 @@
<p
class=
"font-normal text-[#8c9097] dark:text-white/50 text-[0.813rem] mb-2"
>
Recent Search :
</p>
<p
class=
"font-normal text-[#8c9097] dark:text-white/50 text-[0.813rem] mb-2"
>
Recent Search :
</p>
<ul
class=
"list-group mb-3"
>
<ul
class=
"list-group mb-3"
>
@for(menuItem of menuItems | slice:0:5;track $index){
@for(menuItem of menuItems | slice:0:5;track $index){
<li
[
routerLink
]="
menuItem
?.
path
"
class=
"list-group-item header-list-group"
(
click
)="
clearSearch
()"
>
<li
[
routerLink
]="
menuItem
?.
path
"
class=
"list-group-item header-list-group"
(
click
)="
clearSearch
()"
>
<i
class=
"fa fa-angle-double-right me-2"
aria-hidden=
"true"
></i>
{{menuItem?.title}}
<i
class=
"fa fa-angle-double-right me-2"
aria-hidden=
"true"
></i>
{{menuItem?.title}}
</li>
</li>
...
...
src/app/shared/components/header/header.component.ts
View file @
b67f5495
...
@@ -28,7 +28,7 @@ export class HeaderComponent {
...
@@ -28,7 +28,7 @@ export class HeaderComponent {
public
selectedLanguage
=
""
;
public
selectedLanguage
=
""
;
constructor
(
constructor
(
public
navServices
:
NavService
,
public
navServices
:
NavService
,
private
elementRef
:
ElementRef
,
private
elementRef
:
ElementRef
,
private
renderer
:
Renderer2
,
private
renderer
:
Renderer2
,
private
tokenService
:
TokenService
,
private
tokenService
:
TokenService
,
private
translate
:
TranslateService
,
private
translate
:
TranslateService
,
...
@@ -257,6 +257,10 @@ export class HeaderComponent {
...
@@ -257,6 +257,10 @@ export class HeaderComponent {
checkAppToken
(
appmodule
:
string
){
checkAppToken
(
appmodule
:
string
){
this
.
tokenService
.
saveAppToken
(
appmodule
)
this
.
tokenService
.
saveAppToken
(
appmodule
)
this
.
router
.
navigate
([
'/'
+
appmodule
])
this
.
router
.
navigate
([
'/portal-manage/'
+
appmodule
])
}
goToHome
()
{
this
.
router
.
navigate
([
'/home'
])
}
}
}
}
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