Commit e0532566 by Nattana Chaiyamat

การจัดการรายละเอียดงาน แปลภาษา

parent 1de53efd
import { Component, Renderer2 } from '@angular/core'; import { Component, Renderer2 } from '@angular/core';
import { TranslationService } from './shared/services/translation.service'; import { L10n } from '@syncfusion/ej2-base';
L10n.load({
'en-US': {
'pager': {
'currentPageInfo': '',
'totalItemInfo': '{0} Item',
'pagerDropDown': 'Items',
'totalItemsInfo': '{0} Items',
}
},
'th-TH': {
'grid': {
'EmptyRecord': 'ไม่มีข้อมูลที่จะแสดง',
'Item': '1 รายการ',
'Items': '{0} รายการ'
},
'pager': {
'All': 'ทั้งหมด',
'pagerAllDropDown': 'รายการ',
'currentPageInfo': '',
'totalItemsInfo': '{0} รายการ',
'totalItemInfo': '{0} รายการ',
'totalRecordsInfo': '{0} รายการ',
'firstPageTooltip': 'หน้าแรก',
'lastPageTooltip': 'หน้าสุดท้าย',
'nextPageTooltip': 'ถัดไป',
'previousPageTooltip': 'ก่อนหน้า',
'nextPagerTooltip': 'ถัดไป',
'previousPagerTooltip': 'ก่อนหน้า',
'pageInput': '{0}',
'page': 'หน้า',
'pagerDropDown': 'รายการ',
'pagerAll': 'ทั้งหมด',
'pageSize': 'รายการต่อหน้า',
'pageSizeAll': 'ทั้งหมด',
'pageCount': 'จำนวนหน้า',
'pageCountAll': 'ทั้งหมด'
}
}
});
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
templateUrl: './app.component.html', templateUrl: './app.component.html',
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
</div> </div>
<div class="block-main-content"> <div class="block-main-content">
<div class="text-lg font-bold py-2 px-8 text-primary"> <div class="text-lg font-bold py-2 px-8 text-primary">
ตั้งค่าผู้ใช้งาน {{'menu.UserSetting' |translate}}
</div> </div>
<div class="page"> <div class="page">
<div class="border-b border-gray-200 dark:border-white/10 px-8"> <div class="border-b border-gray-200 dark:border-white/10 px-8">
...@@ -11,20 +11,20 @@ ...@@ -11,20 +11,20 @@
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active"
href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1" href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1"
aria-controls="underline-1" aria-controls="underline-1"
(click)="currentPage =1 ;pathTitle = ['การจัดการข้อมูลองค์กร', 'ตั้งค่าผู้ใช้งาน','สร้างชื่อผู้ใช้งาน']"> (click)="currentPage =1 ;pathTitle = ['menu.Organization', 'menu.UserSetting','CreateUsername']">
สร้างชื่อผู้ใช้งาน {{'CreateUsername' | translate}}
</a> </a>
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary"
href="javascript:void(0);" id="underline-item-2" data-hs-tab="#underline-2" href="javascript:void(0);" id="underline-item-2" data-hs-tab="#underline-2"
aria-controls="underline-2" aria-controls="underline-2"
(click)="currentPage =2 ;pathTitle = ['การจัดการข้อมูลองค์กร', 'ตั้งค่าผู้ใช้งาน','กำหนดรหัสผ่าน']"> (click)="currentPage =2 ;pathTitle = ['menu.Organization', 'menu.UserSetting','SetPassword']">
กำหนดรหัสผ่าน {{'SetPassword' | translate}}
</a> </a>
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary"
href="javascript:void(0);" id="underline-item-3" data-hs-tab="#underline-3" href="javascript:void(0);" id="underline-item-3" data-hs-tab="#underline-3"
aria-controls="underline-3" aria-controls="underline-3"
(click)="currentPage =3 ;pathTitle = ['การจัดการข้อมูลองค์กร', 'ตั้งค่าผู้ใช้งาน','จัดการผู้ใช้งาน']"> (click)="currentPage =3 ;pathTitle = ['menu.Organization', 'menu.UserSetting','ManageUsers']">
จัดการผู้ใช้งาน {{'ManageUsers' | translate}}
</a> </a>
</nav> </nav>
</div> </div>
......
...@@ -6,6 +6,6 @@ import { Component } from '@angular/core'; ...@@ -6,6 +6,6 @@ import { Component } from '@angular/core';
styleUrls: ['./account-settings.component.scss'] styleUrls: ['./account-settings.component.scss']
}) })
export class AccountSettingsComponent { export class AccountSettingsComponent {
pathTitle = ['การจัดการข้อมูลองค์กร', 'ตั้งค่าผู้ใช้งาน', 'สร้างชื่อผู้ใช้งาน'] pathTitle = ['menu.Organization', 'menu.UserSetting', 'CreateUsername']
currentPage = 1 currentPage = 1
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
......
...@@ -33,28 +33,28 @@ export class ManageUserComponent { ...@@ -33,28 +33,28 @@ export class ManageUserComponent {
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "usernameId", field: "usernameId",
headerText: "ชื่อล็อกอิน", headerText: "LoginName",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "empId", field: "empId",
headerText: "รหัสพนักงาน", headerText: "EmployeeCode",
type: "string" type: "string"
}, },
{ {
field: "employee.fname", field: "employee.fname",
headerText: "ชื่อ", headerText: "FirstName",
type: "string" type: "string"
}, },
{ {
field: "employee.lname", field: "employee.lname",
headerText: "นามสกุล", headerText: "LastName",
type: "string" type: "string"
}, },
{ {
field: "status", field: "status",
headerText: "สถานะ", headerText: "Status",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
</div> </div>
<div class="block-main-content"> <div class="block-main-content">
<div class="text-lg font-bold py-2 px-8 text-primary"> <div class="text-lg font-bold py-2 px-8 text-primary">
กำหนดสิทธิการเข้าใช้งาน {{'menu.AccessPermissions' | translate}}
</div> </div>
<div class="page"> <div class="page">
<div class="border-b border-gray-200 dark:border-white/10 px-8"> <div class="border-b border-gray-200 dark:border-white/10 px-8">
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active"
href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1" href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1"
aria-controls="underline-1"> aria-controls="underline-1">
กำหนดสิทธิการเข้าใช้งาน {{'menu.AccessPermissions' | translate}}
</a> </a>
</nav> </nav>
</div> </div>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -43,14 +43,14 @@ ...@@ -43,14 +43,14 @@
data-hs-overlay="#role-permission-config-modal" data-hs-overlay="#role-permission-config-modal"
(click)="currentModal='add';selectConfigPermission()"> (click)="currentModal='add';selectConfigPermission()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md"
data-hs-overlay="#role-permission-config-alert-modal" (click)="currentModal='delete'"> data-hs-overlay="#role-permission-config-alert-modal" (click)="currentModal='delete'">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
......
...@@ -11,7 +11,7 @@ import { NavService } from 'src/app/shared/services/navservice'; ...@@ -11,7 +11,7 @@ import { NavService } from 'src/app/shared/services/navservice';
styleUrls: ['./role-permission-config.component.scss'] styleUrls: ['./role-permission-config.component.scss']
}) })
export class RolePermissionConfigComponent { export class RolePermissionConfigComponent {
pathTitle = ['การจัดการข้อมูลองค์กร', 'กำหนดสิทธิการเข้าใช้งาน'] pathTitle = ['menu.Organization', 'menu.AccessPermissions']
search = "" search = ""
...@@ -26,18 +26,18 @@ export class RolePermissionConfigComponent { ...@@ -26,18 +26,18 @@ export class RolePermissionConfigComponent {
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "userLevel", field: "userLevel",
headerText: "ระดับ", headerText: "Level",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "tdesc", field: "tdesc",
headerText: "รายละเอียด (ไทย)", headerText: "DescriptionThai",
type: "string" type: "string"
}, },
{ {
field: "edesc", field: "edesc",
headerText: "รายละเอียด (อังกฤษ)", headerText: "DescriptionEng",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
......
...@@ -35,28 +35,28 @@ export class SetAPasswordComponent { ...@@ -35,28 +35,28 @@ export class SetAPasswordComponent {
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "usernameId", field: "usernameId",
headerText: "ชื่อล็อกอิน", headerText: "LoginName",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "empId", field: "empId",
headerText: "รหัสพนักงาน", headerText: "EmployeeCode",
type: "string" type: "string"
}, },
{ {
field: "employee.fname", field: "employee.fname",
headerText: "ชื่อ", headerText: "FirstName",
type: "string" type: "string"
}, },
{ {
field: "employee.lname", field: "employee.lname",
headerText: "นามสกุล", headerText: "LastName",
type: "string" type: "string"
}, },
{ {
field: "status", field: "status",
headerText: "สถานะ", headerText: "Status",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -16,21 +16,21 @@ ...@@ -16,21 +16,21 @@
data-hs-overlay="#user-setting-upload-modal" data-hs-overlay="#user-setting-upload-modal"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'">
<i class="ti ti-file-plus"></i> <i class="ti ti-file-plus"></i>
import {{'Import' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
data-hs-overlay="#user-setting-modal" (click)="currentModal='add';selectUser()"> data-hs-overlay="#user-setting-modal" (click)="currentModal='add';selectUser()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md"
data-hs-overlay="#user-setting-alert-modal" (click)="currentModal='delete'"> data-hs-overlay="#user-setting-alert-modal" (click)="currentModal='delete'">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
...@@ -187,7 +187,7 @@ ...@@ -187,7 +187,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="modal.search"
(ngModelChange)="searchModalChange(employeeListFilter())"> (ngModelChange)="searchModalChange(employeeListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -326,7 +326,7 @@ ...@@ -326,7 +326,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="modal.search"
(ngModelChange)="searchModalChange(roleListFilter())"> (ngModelChange)="searchModalChange(roleListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -462,7 +462,7 @@ ...@@ -462,7 +462,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="modal.search"
(ngModelChange)="searchModalChange(levelListFilter())"> (ngModelChange)="searchModalChange(levelListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -37,28 +37,28 @@ export class UserSettingsComponent { ...@@ -37,28 +37,28 @@ export class UserSettingsComponent {
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "usernameId", field: "usernameId",
headerText: "ชื่อล็อกอิน", headerText: "LoginName",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "empId", field: "empId",
headerText: "รหัสพนักงาน", headerText: "EmployeeCode",
type: "string" type: "string"
}, },
{ {
field: "employee.fname", field: "employee.fname",
headerText: "ชื่อ", headerText: "FirstName",
type: "string" type: "string"
}, },
{ {
field: "employee.lname", field: "employee.lname",
headerText: "นามสกุล", headerText: "LastName",
type: "string" type: "string"
}, },
{ {
field: "status", field: "status",
headerText: "สถานะ", headerText: "Status",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
<div class="font-size-16px font-weight-600 pt-2rem pb-1rem text-primary"> <div class="font-size-16px font-weight-600 pt-2rem pb-1rem text-primary">
รายละเอียดหน่วยธุรกิจ {{'BusinessUnitDetails' | translate}}
</div> </div>
<div class="page"> <div class="page">
<nav class="flex rtl:space-x-reverse space-x-2"> <nav class="flex rtl:space-x-reverse space-x-2">
<a (click)="onSendPathTitle('ทะเบียนฝ่าย');currentTab=1" <a (click)="onSendPathTitle('Division');currentTab=1"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900 active" class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900 active"
href="javascript:void(0);" id="card-type-item-1" data-hs-tab="#card-type-1" aria-controls="card-type-1"> href="javascript:void(0);" id="card-type-item-1" data-hs-tab="#card-type-1" aria-controls="card-type-1">
ทะเบียนฝ่าย {{'Division' | translate}}
</a> </a>
<a (click)="onSendPathTitle('ทะเบียนแผนก');currentTab=2" <a (click)="onSendPathTitle('Department');currentTab=2"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900" class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href="javascript:void(0);" id="card-type-item-2" data-hs-tab="#card-type-2" aria-controls="card-type-2"> href="javascript:void(0);" id="card-type-item-2" data-hs-tab="#card-type-2" aria-controls="card-type-2">
ทะเบียนแผนก {{'Department' | translate}}
</a> </a>
<a (click)="onSendPathTitle('ทะเบียนส่วน');currentTab=3" <a (click)="onSendPathTitle('Section');currentTab=3"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900" class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href="javascript:void(0);" id="card-type-item-3" data-hs-tab="#card-type-3" aria-controls="card-type-3"> href="javascript:void(0);" id="card-type-item-3" data-hs-tab="#card-type-3" aria-controls="card-type-3">
ทะเบียนส่วน {{'Section' | translate}}
</a> </a>
<a (click)="onSendPathTitle('ส่วนย่อย1');currentTab=4" <a (click)="onSendPathTitle('SubSection 1');currentTab=4"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900" class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href="javascript:void(0);" id="card-type-item-4" data-hs-tab="#card-type-4" aria-controls="card-type-4"> href="javascript:void(0);" id="card-type-item-4" data-hs-tab="#card-type-4" aria-controls="card-type-4">
ส่วนย่อย1 {{ 'SubSection 1' | translate }}
</a> </a>
<a (click)="onSendPathTitle('ส่วนย่อย2');currentTab=5" <a (click)="onSendPathTitle('SubSection 2');currentTab=5"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900" class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href="javascript:void(0);" id="card-type-item-5" data-hs-tab="#card-type-5" aria-controls="card-type-5"> href="javascript:void(0);" id="card-type-item-5" data-hs-tab="#card-type-5" aria-controls="card-type-5">
ส่วนย่อย2 {{ 'SubSection 2' | translate }}
</a> </a>
<a (click)="onSendPathTitle('ส่วนย่อย3');currentTab=6" <a (click)="onSendPathTitle('SubSection 3');currentTab=6"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900" class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href="javascript:void(0);" id="card-type-item-6" data-hs-tab="#card-type-6" aria-controls="card-type-6"> href="javascript:void(0);" id="card-type-item-6" data-hs-tab="#card-type-6" aria-controls="card-type-6">
ส่วนย่อย3 {{ 'SubSection 3' | translate }}
</a> </a>
<a (click)="onSendPathTitle('ส่วนย่อย4');currentTab=7" <a (click)="onSendPathTitle('SubSection 4');currentTab=7"
class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900" class="border w-32 justify-center rounded-4px hs-tab-active:!bg-primary hs-tab-active:border-primary hs-tab-active:!text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center text-gray-600 hover:text-gray-900"
href="javascript:void(0);" id="card-type-item-7" data-hs-tab="#card-type-7" aria-controls="card-type-7"> href="javascript:void(0);" id="card-type-item-7" data-hs-tab="#card-type-7" aria-controls="card-type-7">
ส่วนย่อย4 {{ 'SubSectio 4' | translate }}
</a> </a>
</nav> </nav>
<div class="pt-50px"> <div class="pt-50px">
......
...@@ -6,12 +6,12 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; ...@@ -6,12 +6,12 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
styleUrls: ['./branch-business-unit.component.scss'] styleUrls: ['./branch-business-unit.component.scss']
}) })
export class BranchBusinessUnitComponent { export class BranchBusinessUnitComponent {
@Input() pathTitle = ['การจัดการข้อมูลองค์กร', 'ทะเบียนบริษัท', 'หน่วยธุรกิจ', 'ทะเบียนฝ่าย'] @Input() pathTitle = ['menu.Organization', 'menu.Company', 'BusinessUnit', 'Division']
@Output() sendPathTitle: EventEmitter<string[]> = new EventEmitter<string[]>(); @Output() sendPathTitle: EventEmitter<string[]> = new EventEmitter<string[]>();
currentTab = 1 currentTab = 1
onSendPathTitle(pathTitle: string) { onSendPathTitle(pathTitle: string) {
this.sendPathTitle.emit(['การจัดการข้อมูลองค์กร', 'ทะเบียนบริษัท', 'หน่วยธุรกิจ', pathTitle]) this.sendPathTitle.emit(['menu.Organization', 'menu.Company', 'BusinessUnit', pathTitle])
} }
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="bu1Modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="bu1Modal.search"
(ngModelChange)="onBu1ModalSearchChange()"> (ngModelChange)="onBu1ModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -34,21 +34,21 @@ ...@@ -34,21 +34,21 @@
data-hs-overlay="#department-register-upload-modal" data-hs-overlay="#department-register-upload-modal"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'">
<i class="ti ti-file-plus"></i> <i class="ti ti-file-plus"></i>
import {{'Import' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
(click)="currentModal='add';selectBu1()" (click)="openDialog()"> (click)="currentModal='add';selectBu1()" (click)="openDialog()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button href="javascript:void(0);" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md" <button href="javascript:void(0);" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md"
(click)="currentModal='delete';deleteBu1()"> (click)="currentModal='delete';deleteBu1()">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
......
...@@ -24,18 +24,18 @@ export class DepartmentRegisterComponent implements OnInit { ...@@ -24,18 +24,18 @@ export class DepartmentRegisterComponent implements OnInit {
bu1: { loading: boolean, select: Bu1Model, dataList: Bu1Model[] } = { loading: false, select: new MyBu1Model(), dataList: [] } bu1: { loading: boolean, select: Bu1Model, dataList: Bu1Model[] } = { loading: false, select: new MyBu1Model(), dataList: [] }
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "bu1id", field: "bu1id",
headerText: "รหัสฝ่าย", headerText: "CompanyCode",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "tdesc", field: "tdesc",
headerText: "รายละเอียดฝ่าย (ไทย)", headerText: "CompanyDescThai",
type: "string" type: "string"
}, },
{ {
field: "edesc", field: "edesc",
headerText: "รายละเอียดฝ่าย (อังกฤษ)", headerText: "CompanyDescEng",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="bu2Modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="bu2Modal.search"
(ngModelChange)="onBu2ModalSearchChange()"> (ngModelChange)="onBu2ModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -125,7 +125,7 @@ ...@@ -125,7 +125,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="bu6Modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="bu6Modal.search"
(ngModelChange)="onBu6ModalSearchChange()"> (ngModelChange)="onBu6ModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="bu3Modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="bu3Modal.search"
(ngModelChange)="onBu3ModalSearchChange()"> (ngModelChange)="onBu3ModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="bu5Modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="bu5Modal.search"
(ngModelChange)="onBu5ModalSearchChange()"> (ngModelChange)="onBu5ModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="bu4Modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="bu4Modal.search"
(ngModelChange)="onBu4ModalSearchChange()"> (ngModelChange)="onBu4ModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -11,14 +11,14 @@ ...@@ -11,14 +11,14 @@
<a class="font-size-16px font-weight-500 hs-tab-active:font-weight-700 hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 hover:text-secondary active" <a class="font-size-16px font-weight-500 hs-tab-active:font-weight-700 hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 hover:text-secondary active"
href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1" href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1"
aria-controls="underline-1" aria-controls="underline-1"
(click)="pathTitle = ['การจัดการข้อมูลองค์กร', 'ทะเบียนบริษัท','ทะเบียนบริษัท'];currentPath=1"> (click)="pathTitle = ['menu.Organization', 'menu.Company','menu.Company'];currentPath=1">
{{'menu.Company' | translate}} {{'menu.Company' | translate}}
</a> </a>
<a class="font-size-16px font-weight-500 hs-tab-active:font-weight-700 hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 hover:text-secondary" <a class="font-size-16px font-weight-500 hs-tab-active:font-weight-700 hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 hover:text-secondary"
href="javascript:void(0);" id="underline-item-2" data-hs-tab="#underline-2" href="javascript:void(0);" id="underline-item-2" data-hs-tab="#underline-2"
aria-controls="underline-2" aria-controls="underline-2"
(click)="pathTitle = ['การจัดการข้อมูลองค์กร', 'ทะเบียนบริษัท','หน่วยธุรกิจ' ,'ทะเบียนฝ่าย'];currentPath=2"> (click)="pathTitle = ['menu.Organization', 'menu.Company','BusinessUnit' ,'Division'];currentPath=2">
หน่วยธุรกิจ {{'BusinessUnit' | translate}}
</a> </a>
</nav> </nav>
</div> </div>
......
...@@ -6,6 +6,6 @@ import { Component } from '@angular/core'; ...@@ -6,6 +6,6 @@ import { Component } from '@angular/core';
styleUrls: ['./company-registration.component.scss'] styleUrls: ['./company-registration.component.scss']
}) })
export class CompanyRegistrationComponent { export class CompanyRegistrationComponent {
pathTitle = ['การจัดการข้อมูลองค์กร', 'ทะเบียนบริษัท', 'ทะเบียนบริษัท'] pathTitle = ['menu.Organization', 'menu.Company', 'menu.Company']
currentPath = 1 currentPath = 1
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
</div> </div>
<div class="block-main-content"> <div class="block-main-content">
<div class="text-lg font-bold py-2 px-8 text-primary"> <div class="text-lg font-bold py-2 px-8 text-primary">
ทะเบียนประเภทวัน {{'menu.LeaveType' | translate}}
</div> </div>
<div class="page"> <div class="page">
<div class="border-b border-gray-200 dark:border-white/10 px-8"> <div class="border-b border-gray-200 dark:border-white/10 px-8">
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active"
href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1" href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1"
aria-controls="underline-1" aria-controls="underline-1"
(click)="pathTitle = ['การจัดการข้อมูลองค์กร', 'ทะเบียนประเภทวัน', 'ข้อมูลประเภทวัน']"> (click)="pathTitle = ['menu.Organization', 'menu.LeaveType', 'LeaveInfo']">
ข้อมูลประเภทวัน {{'LeaveInfo' | translate}}
</a> </a>
</nav> </nav>
</div> </div>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<input type="checkbox" class="ti-form-checkbox pointer-events-none" <input type="checkbox" class="ti-form-checkbox pointer-events-none"
id="hs-default-checkbox" [(ngModel)]="isDataListChecked"> id="hs-default-checkbox" [(ngModel)]="isDataListChecked">
<label for="hs-default-checkbox" class="text-sm text-gray-500 mx-2 pointer-events-none"> <label for="hs-default-checkbox" class="text-sm text-gray-500 mx-2 pointer-events-none">
{{numDataListChecked}} Selected</label> {{numDataListChecked}} {{'Selected_ed' | translate}}</label>
</div> </div>
<div class="mx-1 flex items-center"> <div class="mx-1 flex items-center">
<button (click)="isDataListCheckedAll = !isDataListCheckedAll;dataListCheckAll()" <button (click)="isDataListCheckedAll = !isDataListCheckedAll;dataListCheckAll()"
...@@ -34,7 +34,8 @@ ...@@ -34,7 +34,8 @@
<i class="fs-l transition-all duration-200" <i class="fs-l transition-all duration-200"
[ngClass]="{'ri-checkbox-multiple-line text-gray-500': !isDataListCheckedAll, 'ri-checkbox-multiple-fill text-primary': isDataListCheckedAll}"></i> [ngClass]="{'ri-checkbox-multiple-line text-gray-500': !isDataListCheckedAll, 'ri-checkbox-multiple-fill text-primary': isDataListCheckedAll}"></i>
</button> </button>
<label class="text-sm text-gray-500 ml-2" for="check-boxall">Select All</label> <label class="text-sm text-gray-500 ml-2" for="check-boxall">
{{'SelectAll' | translate}}</label>
</div> </div>
</div> </div>
</div> </div>
...@@ -43,13 +44,13 @@ ...@@ -43,13 +44,13 @@
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-secondary h-20px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-secondary h-20px m-0 shadow-md"
data-hs-overlay="#day-type-registry-upload-modal" data-hs-overlay="#day-type-registry-upload-modal"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'PleaseSelectFile'">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
นำเข้าข้อมูล {{'ImportData' | translate}}
</button> </button>
<a class="mx-2 justify-center -mb-px inline-flex items-center gap-2 font-weight-500 font-size-12px text-center text-secondary border-secondary border-b-2 align-items-end" <a class="mx-2 justify-center -mb-px inline-flex items-center gap-2 font-weight-500 font-size-12px text-center text-secondary border-secondary border-b-2 align-items-end"
href="javascript:void(0);" (click)="downloadFile()"> href="javascript:void(0);" (click)="downloadFile()">
ดาวน์โหลดตัวอย่างไฟล์ {{'DownloadSampleFile' | translate}}
</a> </a>
</div> </div>
</div> </div>
...@@ -58,8 +59,8 @@ ...@@ -58,8 +59,8 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" style="height: 40px;" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" style="height: 40px;"
(ngModelChange)="searchChange()"> [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -70,7 +71,7 @@ ...@@ -70,7 +71,7 @@
<button type="button" class="ti-btn ti-btn-soft-secondary h-20px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-secondary h-20px m-0 shadow-md"
data-hs-overlay="#day-type-registry-modal" (click)="modalStatus='add';setData()"> data-hs-overlay="#day-type-registry-modal" (click)="modalStatus='add';setData()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate }}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
...@@ -79,7 +80,7 @@ ...@@ -79,7 +80,7 @@
data-hs-overlay="#day-type-registry-alert-modal" data-hs-overlay="#day-type-registry-alert-modal"
(click)="modalStatus='deleteGroup';setData()"> (click)="modalStatus='deleteGroup';setData()">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate }}
</button> </button>
</div> </div>
<!-- <div class="px-1"> <!-- <div class="px-1">
...@@ -99,10 +100,10 @@ ...@@ -99,10 +100,10 @@
<thead> <thead>
<tr> <tr>
<ng-container <ng-container
*ngFor="let item of ['','ประเภทวัน','รายละเอียด(ไทย) ','รายละเอียด(อังกฤษ)','การจัดการ']; let f = first; let l = last; let i = index"> *ngFor="let item of ['','LeaveCode','DescriptionThai','DescriptionEng','Action']; let f = first; let l = last; let i = index">
<th scope="col" <th scope="col"
class="relative px-10px py-10px bg-soft-secondary text-primary !text-center"> class="relative px-10px py-10px bg-soft-secondary text-primary !text-center">
<span class="font-size-12px font-weight-700">{{ item }}</span> <span class="font-size-12px font-weight-700">{{ item | translate}}</span>
<div class="absolute top-1/2 transform -translate-y-1/2 right-0" <div class="absolute top-1/2 transform -translate-y-1/2 right-0"
*ngIf="!l&&!f"> *ngIf="!l&&!f">
<i class="ti ti-dots-vertical fs-l"></i> <i class="ti ti-dots-vertical fs-l"></i>
...@@ -190,10 +191,10 @@ ...@@ -190,10 +191,10 @@
</li> </li>
</ul> </ul>
<ul class="nav-tabs mt-3"> <ul class="nav-tabs mt-3">
<span>Show {{((currentPage-1) * 10)+1}} to {{eventgrpListFilter().length<10 <span>{{'Show' | translate}} {{((currentPage-1) * 10)+1}} to {{eventgrpListFilter().length
?eventgrpListFilter().length: (currentPage==page.length ? ((currentPage * 10) - <10 ?eventgrpListFilter().length: (currentPage==page.length ? ((currentPage * 10) -
((currentPage * 10) - eventgrpListFilter().length) ) :(currentPage * 10) ) }} of ((currentPage * 10) - eventgrpListFilter().length) ) :(currentPage * 10) ) }} of
{{eventgrpListFilter().length}} items</span> {{eventgrpListFilter().length}} {{'Items' | translate}}</span>
</ul> </ul>
</nav> </nav>
</div> </div>
...@@ -361,7 +362,8 @@ ...@@ -361,7 +362,8 @@
ย้อนกลับ ย้อนกลับ
</button> </button>
<a class="ti-btn ti-btn-danger" href="javascript:void(0);" <a class="ti-btn ti-btn-danger" href="javascript:void(0);"
data-hs-overlay="#day-type-registry-alert-modal" (click)="deleteEventgrp()" *ngIf="numDataListChecked"> data-hs-overlay="#day-type-registry-alert-modal" (click)="deleteEventgrp()"
*ngIf="numDataListChecked">
ลบข้อมูล ลบข้อมูล
</a> </a>
</ng-container> </ng-container>
...@@ -375,15 +377,15 @@ ...@@ -375,15 +377,15 @@
<div class="hs-overlay-open:mt-7 ti-modal-box mt-0 ease-out rounded-md"> <div class="hs-overlay-open:mt-7 ti-modal-box mt-0 ease-out rounded-md">
<div class="ti-modal-header bg-primary !rounded-none !rounded-t-sm"> <div class="ti-modal-header bg-primary !rounded-none !rounded-t-sm">
<h5 class="text-xxl font-bold text-white"> <h5 class="text-xxl font-bold text-white">
นำเข้าข้อมูลประเภทวัน {{'ImportLeaveType' | translate}}
</h5> </h5>
</div> </div>
<div class="ti-modal-body max-h-full overflow-hidden ti-modal-content !rounded-t-none !rounded-b-sm"> <div class="ti-modal-body max-h-full overflow-hidden ti-modal-content !rounded-t-none !rounded-b-sm">
<h1 class="mt-2" style="text-align: center;">ไฟล์</h1> <h1 class="mt-2" style="text-align: center;">{{'File' | translate}}</h1>
<div class="mt-2 p-2"> <div class="mt-2 p-2">
<div class="flex rounded-md"> <div class="flex rounded-md">
<input #fileInput id="fileInput" type="file" (change)="onFileSelected($event)" hidden> <input #fileInput id="fileInput" type="file" (change)="onFileSelected($event)" hidden>
<input type="text" [value]="selectedFileName" readonly (click)="fileInput.click()" <input type="text" [value]="selectedFileName | translate" readonly (click)="fileInput.click()"
class="ti-form-input rounded-none ltr:rounded-l-md rtl:rounded-r-md focus:z-10 cursor-pointer"> class="ti-form-input rounded-none ltr:rounded-l-md rtl:rounded-r-md focus:z-10 cursor-pointer">
<button type="button" (click)="fileInput.click()" <button type="button" (click)="fileInput.click()"
class="inline-flex flex-shrink-0 justify-center items-center h-[2.875rem] w-[2.875rem] ltr:rounded-r-md rtl:rounded-l-md border border-transparent font-semibold bg-secondary text-white hover:bg-secondary focus:z-10 focus:outline-none focus:ring-0 focus:ring-secondary transition-all text-sm"> class="inline-flex flex-shrink-0 justify-center items-center h-[2.875rem] w-[2.875rem] ltr:rounded-r-md rtl:rounded-l-md border border-transparent font-semibold bg-secondary text-white hover:bg-secondary focus:z-10 focus:outline-none focus:ring-0 focus:ring-secondary transition-all text-sm">
...@@ -394,7 +396,7 @@ ...@@ -394,7 +396,7 @@
<button type="submit" class="ti-btn ti-btn-secondary" <button type="submit" class="ti-btn ti-btn-secondary"
data-hs-overlay="#day-type-registry-upload-modal" [class.ti-btn-disabled]="!selectedFile" data-hs-overlay="#day-type-registry-upload-modal" [class.ti-btn-disabled]="!selectedFile"
(click)="uploadFile()" [disabled]="!selectedFile" [disabled]="!selectedFile"> (click)="uploadFile()" [disabled]="!selectedFile" [disabled]="!selectedFile">
อัปโหลด {{'Upload' | translate}}
</button> </button>
</div> </div>
</div> </div>
......
...@@ -9,12 +9,12 @@ import { FileService } from 'src/app/shared/services/file.service'; ...@@ -9,12 +9,12 @@ import { FileService } from 'src/app/shared/services/file.service';
styleUrls: ['./day-type-registry.component.scss'] styleUrls: ['./day-type-registry.component.scss']
}) })
export class DayTypeRegistryComponent { export class DayTypeRegistryComponent {
pathTitle = ['การจัดการข้อมูลองค์กร', 'ทะเบียนประเภทวัน', 'ข้อมูลประเภทวัน'] pathTitle = ['menu.Organization', 'menu.LeaveType', 'LeaveInfo']
currentPage = 1 currentPage = 1
selectedItems: string[] = []; selectedItems: string[] = [];
search = "" search = ""
selectedFile: File | null = null; selectedFile: File | null = null;
selectedFileName: string = 'กรุณาเลือกไฟล์'; selectedFileName: string = 'selectedFileName';
modalStatus: 'add' | 'edit' | 'delete' | 'deleteGroup' = 'add' modalStatus: 'add' | 'edit' | 'delete' | 'deleteGroup' = 'add'
page = Array.from({ length: 1 }, (_, i) => i + 1); page = Array.from({ length: 1 }, (_, i) => i + 1);
numDataListChecked = 0 numDataListChecked = 0
......
...@@ -3,15 +3,16 @@ ...@@ -3,15 +3,16 @@
</div> </div>
<div class="block-main-content"> <div class="block-main-content">
<div class="text-lg font-bold py-2 px-8 text-primary"> <div class="text-lg font-bold py-2 px-8 text-primary">
ทะเบียนพนักงาน {{'menu.Employee' | translate}}
</div> </div>
<div class="page"> <div class="page">
<div class="border-b border-gray-200 dark:border-white/10 px-8"> <div class="border-b border-gray-200 dark:border-white/10 px-8">
<nav class="-mb-0.5 flex space-x-6 rtl:space-x-reverse"> <nav class="-mb-0.5 flex space-x-6 rtl:space-x-reverse">
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active"
href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1" href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1"
aria-controls="underline-1" (click)="pathTitle = ['การจัดการข้อมูลองค์กร','ทะเบียนพนักงาน', 'ทะเบียนพนักงาน']"> aria-controls="underline-1"
ทะเบียนพนักงาน (click)="pathTitle = ['menu.Organization','menu.Employee', 'menu.Employee']">
{{'menu.Employee' | translate}}
</a> </a>
</nav> </nav>
</div> </div>
......
...@@ -6,5 +6,5 @@ import { Component } from '@angular/core'; ...@@ -6,5 +6,5 @@ import { Component } from '@angular/core';
styleUrls: ['./employee-registration.component.scss'] styleUrls: ['./employee-registration.component.scss']
}) })
export class EmployeeRegistrationComponent { export class EmployeeRegistrationComponent {
pathTitle = ['การจัดการข้อมูลองค์กร','ทะเบียนพนักงาน', 'ทะเบียนพนักงาน'] pathTitle = ['menu.Organization', 'menu.Employee', 'menu.Employee']
} }
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="flex justify-end"> <div class="flex justify-end">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
[(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -16,20 +16,21 @@ ...@@ -16,20 +16,21 @@
data-hs-overlay="#sub-employee-registration-modal-upload" data-hs-overlay="#sub-employee-registration-modal-upload"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'">
<i class="ti ti-file-plus"></i> <i class="ti ti-file-plus"></i>
import {{'Import' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md" (click)="currentModal='add';selectEmployee();openDialog()"> <button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
(click)="currentModal='add';selectEmployee();openDialog()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md" <button class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md"
(click)="currentModal='delete';selectEmployee();updateEmployeeList('delete')"> (click)="currentModal='delete';selectEmployee();updateEmployeeList('delete')">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
...@@ -38,7 +39,8 @@ ...@@ -38,7 +39,8 @@
<div class="page px-rem"> <div class="page px-rem">
<app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="employee.dataList" <app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="employee.dataList"
[columns]="columns" [selectedItems]="selectedItems" modalName="#sub-employee-registration-modal" [showImg]="true" [columns]="columns" [selectedItems]="selectedItems" modalName="#sub-employee-registration-modal" [showImg]="true"
(sendSelectData)="currentModal='update';selectEmployee($event);openDialog()" (sendSelectedItems)="onSelectItemChange($event)"> (sendSelectData)="currentModal='update';selectEmployee($event);openDialog()"
(sendSelectedItems)="onSelectItemChange($event)">
</app-datagrid-syncfution> </app-datagrid-syncfution>
</div> </div>
<ng-template #employeeRegistrationModal let-modal> <ng-template #employeeRegistrationModal let-modal>
...@@ -68,9 +70,9 @@ ...@@ -68,9 +70,9 @@
<span class="sr-only">Loading...</span> <span class="sr-only">Loading...</span>
</div> </div>
<img *ngIf="!imgLoading" <img *ngIf="!imgLoading"
[src]="employee.select.picture?getImg(employee.select.picture):'./assets/img/users/defaultperson.jpg'" (error)="onImageError($event)" [src]="employee.select.picture?getImg(employee.select.picture):'./assets/img/users/defaultperson.jpg'"
class="rounded-full ring-4 ring-white/10 mx-auto object-cover" id="profile-img" alt="profile-img" (error)="onImageError($event)" class="rounded-full ring-4 ring-white/10 mx-auto object-cover"
style="height: 10rem;width: 10rem;"> id="profile-img" alt="profile-img" style="height: 10rem;width: 10rem;">
</div> </div>
<div *ngIf="!imgLoading" class="relative" style="margin-left:-30px"> <div *ngIf="!imgLoading" class="relative" style="margin-left:-30px">
<i class="ri ri-pencil-line cursor-pointer" (click)="fileImg.click()"></i> <i class="ri ri-pencil-line cursor-pointer" (click)="fileImg.click()"></i>
...@@ -169,11 +171,9 @@ ...@@ -169,11 +171,9 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" style="padding-right: 3.5rem;" [value]="employee.select.boss.fname+' '+employee.select.boss.lname">
[value]="employee.select.boss.fname+' '+employee.select.boss.lname"> <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<div
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" <button type="button" class="flex items-center text-red-500"
(click)="employee.select.boss.employee='';employee.select.boss.fname='';employee.select.boss.lname=''"> (click)="employee.select.boss.employee='';employee.select.boss.fname='';employee.select.boss.lname=''">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -194,10 +194,9 @@ ...@@ -194,10 +194,9 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu1.tdesc"> style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu1.tdesc">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" (click)="selectBu1()"> <button type="button" class="flex items-center text-red-500" (click)="selectBu1()">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
</button> </button>
...@@ -216,11 +215,10 @@ ...@@ -216,11 +215,10 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [class.!bg-input-readonly]="!employee.select.bu1.bu1id" style="padding-right: 3.5rem;" [class.!bg-input-readonly]="!employee.select.bu1.bu1id"
[(ngModel)]="employee.select.bu2.tdesc"> [(ngModel)]="employee.select.bu2.tdesc">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" (click)="selectBu2()" <button type="button" class="flex items-center text-red-500" (click)="selectBu2()"
*ngIf="employee.select.bu1.bu1id"> *ngIf="employee.select.bu1.bu1id">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -241,11 +239,10 @@ ...@@ -241,11 +239,10 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu3.tdesc" style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu3.tdesc"
[class.!bg-input-readonly]="!employee.select.bu2.bu2id"> [class.!bg-input-readonly]="!employee.select.bu2.bu2id">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" (click)="selectBu3()" <button type="button" class="flex items-center text-red-500" (click)="selectBu3()"
*ngIf="employee.select.bu2.bu2id"> *ngIf="employee.select.bu2.bu2id">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -266,11 +263,10 @@ ...@@ -266,11 +263,10 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu4.tdesc" style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu4.tdesc"
[class.!bg-input-readonly]="!employee.select.bu3.bu3id"> [class.!bg-input-readonly]="!employee.select.bu3.bu3id">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" (click)="selectBu4()" <button type="button" class="flex items-center text-red-500" (click)="selectBu4()"
*ngIf="employee.select.bu3.bu3id"> *ngIf="employee.select.bu3.bu3id">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -291,11 +287,10 @@ ...@@ -291,11 +287,10 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu5.tdesc" style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu5.tdesc"
[class.!bg-input-readonly]="!employee.select.bu4.bu4id"> [class.!bg-input-readonly]="!employee.select.bu4.bu4id">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" (click)="selectBu5()" <button type="button" class="flex items-center text-red-500" (click)="selectBu5()"
*ngIf="employee.select.bu4.bu4id"> *ngIf="employee.select.bu4.bu4id">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -315,11 +310,10 @@ ...@@ -315,11 +310,10 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu6.tdesc" style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu6.tdesc"
[class.!bg-input-readonly]="!employee.select.bu5.bu5id"> [class.!bg-input-readonly]="!employee.select.bu5.bu5id">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" (click)="selectBu6()" <button type="button" class="flex items-center text-red-500" (click)="selectBu6()"
*ngIf="employee.select.bu5.bu5id"> *ngIf="employee.select.bu5.bu5id">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -339,11 +333,10 @@ ...@@ -339,11 +333,10 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu7.tdesc" style="padding-right: 3.5rem;" [(ngModel)]="employee.select.bu7.tdesc"
[class.!bg-input-readonly]="!employee.select.bu6.bu6id"> [class.!bg-input-readonly]="!employee.select.bu6.bu6id">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" (click)="selectBu7()" <button type="button" class="flex items-center text-red-500" (click)="selectBu7()"
*ngIf="employee.select.bu6.bu6id"> *ngIf="employee.select.bu6.bu6id">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -364,10 +357,9 @@ ...@@ -364,10 +357,9 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.position.tdesc"> style="padding-right: 3.5rem;" [(ngModel)]="employee.select.position.tdesc">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" <button type="button" class="flex items-center text-red-500"
(click)="employee.select.position.positionId='';employee.select.position.tdesc=''"> (click)="employee.select.position.positionId='';employee.select.position.tdesc=''">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -388,10 +380,9 @@ ...@@ -388,10 +380,9 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.jobCode.tdesc"> style="padding-right: 3.5rem;" [(ngModel)]="employee.select.jobCode.tdesc">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" <button type="button" class="flex items-center text-red-500"
(click)="employee.select.jobCode.jobcodeId='';employee.select.jobCode.tdesc=''"> (click)="employee.select.jobCode.jobcodeId='';employee.select.jobCode.tdesc=''">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -411,10 +402,9 @@ ...@@ -411,10 +402,9 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.branch.tdesc"> style="padding-right: 3.5rem;" [(ngModel)]="employee.select.branch.tdesc">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" <button type="button" class="flex items-center text-red-500"
(click)="employee.select.branch.branchId='';employee.select.branch.tdesc=''"> (click)="employee.select.branch.branchId='';employee.select.branch.tdesc=''">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -435,10 +425,9 @@ ...@@ -435,10 +425,9 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.empType.tdesc"> style="padding-right: 3.5rem;" [(ngModel)]="employee.select.empType.tdesc">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" <button type="button" class="flex items-center text-red-500"
(click)="employee.select.empType.codeId='';employee.select.empType.tdesc=''"> (click)="employee.select.empType.codeId='';employee.select.empType.tdesc=''">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -459,10 +448,9 @@ ...@@ -459,10 +448,9 @@
<div class="col-span-6 sm:col-span-6 "> <div class="col-span-6 sm:col-span-6 ">
<div class="flex"> <div class="flex">
<div class="relative flex rounded-md"> <div class="relative flex rounded-md">
<input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" <input type="text" class="ti-form-input rounded-sm ltr:rounded-r-sm rtl:rounded-l-sm focus:z-10" readonly
readonly style="padding-right: 3.5rem;" [(ngModel)]="employee.select.personalLevel.tdesc"> style="padding-right: 3.5rem;" [(ngModel)]="employee.select.personalLevel.tdesc">
<div <div class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
class="absolute inset-y-0 ltr:right-0 rtl:left-0 flex items-center z-20 ltr:pr-4 rtl:pl-4 space-x-2">
<button type="button" class="flex items-center text-red-500" <button type="button" class="flex items-center text-red-500"
(click)="employee.select.personalLevel.plId='';employee.select.personalLevel.tdesc=''"> (click)="employee.select.personalLevel.plId='';employee.select.personalLevel.tdesc=''">
<i class="ti ti-circle-x cursor-pointer"></i> <i class="ti ti-circle-x cursor-pointer"></i>
...@@ -493,7 +481,7 @@ ...@@ -493,7 +481,7 @@
[disabled]="checkEmployeeModel()||(currentModal=='add'&&checkPrimary())"> [disabled]="checkEmployeeModel()||(currentModal=='add'&&checkPrimary())">
บันทึกข้อมูล บันทึกข้อมูล
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
...@@ -555,16 +543,16 @@ ...@@ -555,16 +543,16 @@
ยืนยันการบันทึกข้อมูลหรือไม่ ยืนยันการบันทึกข้อมูลหรือไม่
</p> </p>
<ng-template #empGroupModal let-modal> <ng-template #empGroupModal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลกลุ่มพนักงาน ข้อมูลกลุ่มพนักงาน
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(empGroupListFilter())"> (ngModelChange)="searchModalChange(empGroupListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -609,7 +597,8 @@ ...@@ -609,7 +597,8 @@
<tbody *ngIf="!empGroup.loading&&empGroupListFilter().length"> <tbody *ngIf="!empGroup.loading&&empGroupListFilter().length">
<tr <tr
*ngFor="let item of empGroupListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index" *ngFor="let item of empGroupListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index"
class="cursor-pointer" (click)="selectDataModal(this.employee.select,'empGroup',item);closeEmpGroupDialog()"> class="cursor-pointer"
(click)="selectDataModal(this.employee.select,'empGroup',item);closeEmpGroupDialog()">
<td class="flex justify-center"> <td class="flex justify-center">
{{((currentPage-1) * pageSize)+(i+1)}} {{((currentPage-1) * pageSize)+(i+1)}}
</td> </td>
...@@ -621,27 +610,26 @@ ...@@ -621,27 +610,26 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="empGroupListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="empGroupListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #employeeListModal let-modal> <ng-template #employeeListModal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลพนักงาน ข้อมูลพนักงาน
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchModalChange(employeeModalListFilter())"> [(ngModel)]="search" (ngModelChange)="searchModalChange(employeeModalListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -709,21 +697,21 @@ ...@@ -709,21 +697,21 @@
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #bu1Modal let-modal> <ng-template #bu1Modal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลทะเบียนฝ่าย ข้อมูลทะเบียนฝ่าย
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(bu1ListFilter())"> (ngModelChange)="searchModalChange(bu1ListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -780,27 +768,26 @@ ...@@ -780,27 +768,26 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="bu1ListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="bu1ListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #bu2Modal let-modal> <ng-template #bu2Modal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลทะเบียนแผนก ข้อมูลทะเบียนแผนก
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(bu2ListFilter())"> (ngModelChange)="searchModalChange(bu2ListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -857,27 +844,26 @@ ...@@ -857,27 +844,26 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="bu2ListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="bu2ListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #bu3Modal let-modal> <ng-template #bu3Modal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลทะเบียนส่วน ข้อมูลทะเบียนส่วน
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(bu3ListFilter())"> (ngModelChange)="searchModalChange(bu3ListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -934,27 +920,26 @@ ...@@ -934,27 +920,26 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="bu3ListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="bu3ListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #bu4Modal let-modal> <ng-template #bu4Modal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลส่วนย่อย1 ข้อมูลส่วนย่อย1
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(bu4ListFilter())"> (ngModelChange)="searchModalChange(bu4ListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -1011,28 +996,27 @@ ...@@ -1011,28 +996,27 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="bu4ListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="bu4ListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #bu5Modal let-modal> <ng-template #bu5Modal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลส่วนย่อย2 ข้อมูลส่วนย่อย2
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(bu5ListFilter())"> (ngModelChange)="searchModalChange(bu5ListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -1089,27 +1073,26 @@ ...@@ -1089,27 +1073,26 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="bu5ListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="bu5ListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #bu6Modal let-modal> <ng-template #bu6Modal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลส่วนย่อย3 ข้อมูลส่วนย่อย3
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(bu6ListFilter())"> (ngModelChange)="searchModalChange(bu6ListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -1166,27 +1149,26 @@ ...@@ -1166,27 +1149,26 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="bu6ListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="bu6ListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #bu7Modal let-modal> <ng-template #bu7Modal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลส่วนย่อย4 ข้อมูลส่วนย่อย4
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(bu7ListFilter())"> (ngModelChange)="searchModalChange(bu7ListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -1243,29 +1225,28 @@ ...@@ -1243,29 +1225,28 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="bu7ListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="bu7ListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #positionModal let-modal> <ng-template #positionModal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลตำแหน่ง ข้อมูลตำแหน่ง
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(positionListFilter())"> (ngModelChange)="searchModalChange(positionListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -1310,7 +1291,8 @@ ...@@ -1310,7 +1291,8 @@
<tbody *ngIf="!position.loading&&positionListFilter().length"> <tbody *ngIf="!position.loading&&positionListFilter().length">
<tr <tr
*ngFor="let item of positionListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index" *ngFor="let item of positionListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index"
class="cursor-pointer" (click)="selectDataModal(this.employee.select,'position',item);closePositionDialog()" > class="cursor-pointer"
(click)="selectDataModal(this.employee.select,'position',item);closePositionDialog()">
<td class="flex justify-center"> <td class="flex justify-center">
{{((currentPage-1) * pageSize)+(i+1)}} {{((currentPage-1) * pageSize)+(i+1)}}
</td> </td>
...@@ -1322,28 +1304,27 @@ ...@@ -1322,28 +1304,27 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="positionListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="positionListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #jobcodeModal let-modal> <ng-template #jobcodeModal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลลักษณะงาน ข้อมูลลักษณะงาน
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(jobcodeListFilter())"> (ngModelChange)="searchModalChange(jobcodeListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -1388,7 +1369,8 @@ ...@@ -1388,7 +1369,8 @@
<tbody *ngIf="!jobcode.loading&&jobcodeListFilter().length"> <tbody *ngIf="!jobcode.loading&&jobcodeListFilter().length">
<tr <tr
*ngFor="let item of jobcodeListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index" *ngFor="let item of jobcodeListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index"
class="cursor-pointer" (click)="selectDataModal(this.employee.select,'jobCode',item);closeJobcodeDialog()"> class="cursor-pointer"
(click)="selectDataModal(this.employee.select,'jobCode',item);closeJobcodeDialog()">
<td class="flex justify-center"> <td class="flex justify-center">
{{((currentPage-1) * pageSize)+(i+1)}} {{((currentPage-1) * pageSize)+(i+1)}}
</td> </td>
...@@ -1400,27 +1382,27 @@ ...@@ -1400,27 +1382,27 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="jobcodeListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="jobcodeListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #branchModal let-modal> <ng-template #branchModal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลสาขา ข้อมูลสาขา
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" (ngModelChange)="searchModalChange(branchListFilter())"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(branchListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -1464,7 +1446,8 @@ ...@@ -1464,7 +1446,8 @@
<tbody *ngIf="!branch.loading&&branchListFilter().length"> <tbody *ngIf="!branch.loading&&branchListFilter().length">
<tr <tr
*ngFor="let item of branchListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index" *ngFor="let item of branchListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index"
class="cursor-pointer" (click)="selectDataModal(this.employee.select,'branch',item);closeBranchDialog()"> class="cursor-pointer"
(click)="selectDataModal(this.employee.select,'branch',item);closeBranchDialog()">
<td class="flex justify-center"> <td class="flex justify-center">
{{((currentPage-1) * pageSize)+(i+1)}} {{((currentPage-1) * pageSize)+(i+1)}}
</td> </td>
...@@ -1476,28 +1459,28 @@ ...@@ -1476,28 +1459,28 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="branchListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="branchListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #employeeTypeModal let-modal> <ng-template #employeeTypeModal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลประเภทพนักงาน ข้อมูลประเภทพนักงาน
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" (ngModelChange)="searchModalChange(empTypeListFilter())"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(empTypeListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -1541,7 +1524,8 @@ ...@@ -1541,7 +1524,8 @@
<tbody *ngIf="!empType.loading&&empTypeListFilter().length"> <tbody *ngIf="!empType.loading&&empTypeListFilter().length">
<tr <tr
*ngFor="let item of empTypeListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index" *ngFor="let item of empTypeListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index"
class="cursor-pointer" (click)="selectDataModal(this.employee.select,'empType',item);closeEmployeeTypeDialog()"> class="cursor-pointer"
(click)="selectDataModal(this.employee.select,'empType',item);closeEmployeeTypeDialog()">
<td class="flex justify-center"> <td class="flex justify-center">
{{((currentPage-1) * pageSize)+(i+1)}} {{((currentPage-1) * pageSize)+(i+1)}}
</td> </td>
...@@ -1553,29 +1537,29 @@ ...@@ -1553,29 +1537,29 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="empTypeListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="empTypeListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
<ng-template #employeePlModal let-modal> <ng-template #employeePlModal let-modal>
<h3 mat-dialog-title> <h3 mat-dialog-title>
ข้อมูลระดับพนักงาน (JL) ข้อมูลระดับพนักงาน (JL)
</h3> </h3>
<mat-dialog-content> <mat-dialog-content>
<div class="flex justify-end pb-1rem"> <div class="flex justify-end pb-1rem">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" (ngModelChange)="searchModalChange(plListFilter())"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchModalChange(plListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -1619,7 +1603,8 @@ ...@@ -1619,7 +1603,8 @@
<tbody *ngIf="!empType.loading&&plListFilter().length"> <tbody *ngIf="!empType.loading&&plListFilter().length">
<tr <tr
*ngFor="let item of plListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index" *ngFor="let item of plListFilter() | slice:((currentPage-1) * pageSize) : (((currentPage-1) * pageSize) + pageSize);let i = index"
class="cursor-pointer" (click)="selectDataModal(this.employee.select,'personalLevel',item);closeEmployeePlDialog()"> class="cursor-pointer"
(click)="selectDataModal(this.employee.select,'personalLevel',item);closeEmployeePlDialog()">
<td class="flex justify-center"> <td class="flex justify-center">
{{((currentPage-1) * pageSize)+(i+1)}} {{((currentPage-1) * pageSize)+(i+1)}}
</td> </td>
...@@ -1631,14 +1616,12 @@ ...@@ -1631,14 +1616,12 @@
</table> </table>
</div> </div>
<app-pagination [totalItems]="plListFilter().length" [pageSize]="pageSize" <app-pagination [totalItems]="plListFilter().length" [pageSize]="pageSize"
(pageChange)="currentPage = $event" (pageChange)="currentPage = $event" (pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
(pageSizeChange)="pageSize = $event;currentPage = 1"></app-pagination>
</mat-dialog-content> </mat-dialog-content>
<mat-dialog-actions align="end"> <mat-dialog-actions align="end">
<button type="button" mat-button [mat-dialog-close] <button type="button" mat-button [mat-dialog-close]
class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10"> class="hs-dropdown-toggle ti-btn ti-border font-medium bg-white text-gray-700 shadow-sm align-middle hover:bg-gray-50 focus:ring-offset-white focus:ring-primary dark:bg-bgdark dark:hover:bg-black/20 dark:border-white/10 dark:text-white/70 dark:hover:text-white dark:focus:ring-offset-white/10">
ย้อนกลับ ย้อนกลับ
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
\ No newline at end of file
...@@ -60,23 +60,23 @@ export class SubEmployeeRegistrationComponent { ...@@ -60,23 +60,23 @@ export class SubEmployeeRegistrationComponent {
type: "string", type: "string",
}, { }, {
field: "employeeId", field: "employeeId",
headerText: "รหัสพนักงาน", headerText: "EmployeeCode",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "fname", field: "fname",
headerText: "ชื่อ", headerText: "FirstName",
type: "string" type: "string"
}, },
{ {
field: "lname", field: "lname",
headerText: "นามสกุล", headerText: "LastName",
type: "string" type: "string"
}, },
{ {
field: "position.tdesc", field: "position.tdesc",
headerText: "ตำแหน่ง", headerText: "Position",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -16,13 +16,14 @@ ...@@ -16,13 +16,14 @@
data-hs-overlay="#employee-categories-upload-modal" data-hs-overlay="#employee-categories-upload-modal"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'">
<i class="ti ti-file-plus"></i> <i class="ti ti-file-plus"></i>
import {{'Import' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md" (click)="currentModal='add';selectEmp_type();openDialog()"> <button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
(click)="currentModal='add';selectEmp_type();openDialog()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
...@@ -30,7 +31,7 @@ ...@@ -30,7 +31,7 @@
data-hs-overlay="#employee-categories-page-alert-modal" data-hs-overlay="#employee-categories-page-alert-modal"
(click)="currentModal='delete';selectEmp_type();deleteEmp_type()"> (click)="currentModal='delete';selectEmp_type();deleteEmp_type()">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
...@@ -39,7 +40,8 @@ ...@@ -39,7 +40,8 @@
<div class="page px-rem"> <div class="page px-rem">
<app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="emp_type.dataList" <app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="emp_type.dataList"
[columns]="columns" [selectedItems]="selectedItems" [columns]="columns" [selectedItems]="selectedItems"
(sendSelectData)="currentModal='edit';selectEmp_type($event);openDialog()" (sendSelectedItems)="onSelectItemChange($event)"> (sendSelectData)="currentModal='edit';selectEmp_type($event);openDialog()"
(sendSelectedItems)="onSelectItemChange($event)">
</app-datagrid-syncfution> </app-datagrid-syncfution>
</div> </div>
...@@ -67,8 +69,8 @@ ...@@ -67,8 +69,8 @@
</span></label> </span></label>
<input type="text" id="input-label" class="ti-form-input w-1/2" <input type="text" id="input-label" class="ti-form-input w-1/2"
[class.!border-red]="currentModal=='add'&&checkPrimary()" [class.!border-red]="currentModal=='add'&&checkPrimary()"
[ngClass]="{'bg-input-readonly':currentModal=='edit'}" [readonly]="currentModal=='edit'" [ngClass]="{'bg-input-readonly':currentModal=='edit'}" [readonly]="currentModal=='edit'" [maxLength]="5"
[maxLength]="5" [(ngModel)]="emp_type.select.codeId"> [(ngModel)]="emp_type.select.codeId">
<label for="detail_th" class="ti-form-label mt-2rem">รายละเอียดประเภทพนักงาน (ไทย)<span <label for="detail_th" class="ti-form-label mt-2rem">รายละเอียดประเภทพนักงาน (ไทย)<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" id="detail_th" class="ti-form-input h-16" [(ngModel)]="emp_type.select.tdesc"> <input type="text" id="detail_th" class="ti-form-input h-16" [(ngModel)]="emp_type.select.tdesc">
...@@ -85,7 +87,7 @@ ...@@ -85,7 +87,7 @@
[disabled]="!emp_type.select.codeId||!emp_type.select.tdesc||(currentModal=='add'&&checkPrimary())"> [disabled]="!emp_type.select.codeId||!emp_type.select.tdesc||(currentModal=='add'&&checkPrimary())">
บันทึกข้อมูล บันทึกข้อมูล
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
......
...@@ -22,18 +22,18 @@ export class EmployeeCategories { ...@@ -22,18 +22,18 @@ export class EmployeeCategories {
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "codeId", field: "codeId",
headerText: "รหัสประเภทพนักงาน", headerText: "EmploymentTypeCode",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "tdesc", field: "tdesc",
headerText: "รายละเอียดประเภทพนักงาน (ไทย)", headerText: "EmploymentTypeDescThai",
type: "string" type: "string"
}, },
{ {
field: "edesc", field: "edesc",
headerText: "รายละเอียดประเภทพนักงาน (อังกฤษ)", headerText: "EmploymentTypeDescEng",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
data-hs-overlay="#employee-group-unit-component-upload-modal" data-hs-overlay="#employee-group-unit-component-upload-modal"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'">
<i class="ti ti-file-plus"></i> <i class="ti ti-file-plus"></i>
import {{'Import' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
data-hs-overlay="#employee-group-unit-component-page-modal" data-hs-overlay="#employee-group-unit-component-page-modal"
(click)="currentModal='add';selectEmp_group();openDialog()"> (click)="currentModal='add';selectEmp_group();openDialog()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
data-hs-overlay="#employee-group-unit-component-page-alert-modal" data-hs-overlay="#employee-group-unit-component-page-alert-modal"
(click)="currentModal='delete';selectEmp_group();deleteEmp_group()"> (click)="currentModal='delete';selectEmp_group();deleteEmp_group()">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
...@@ -40,7 +40,8 @@ ...@@ -40,7 +40,8 @@
<div class="page px-rem"> <div class="page px-rem">
<app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="emp_group.dataList" <app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="emp_group.dataList"
[columns]="columns" [selectedItems]="selectedItems" [columns]="columns" [selectedItems]="selectedItems"
(sendSelectData)="currentModal='edit';selectEmp_group($event);openDialog()" (sendSelectedItems)="onSelectItemChange($event)"> (sendSelectData)="currentModal='edit';selectEmp_group($event);openDialog()"
(sendSelectedItems)="onSelectItemChange($event)">
</app-datagrid-syncfution> </app-datagrid-syncfution>
</div> </div>
...@@ -52,7 +53,8 @@ ...@@ -52,7 +53,8 @@
<div class="w-full flex justify-end mb-1rem"> <div class="w-full flex justify-end mb-1rem">
<div class="absolute flex"> <div class="absolute flex">
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-indigo h-45px m-0 shadow-md" (click)="selectEmp_group()"> <button type="button" class="ti-btn ti-btn-soft-indigo h-45px m-0 shadow-md"
(click)="selectEmp_group()">
<i class="ti ti-eraser text-base"></i> <i class="ti ti-eraser text-base"></i>
Clear Clear
</button> </button>
...@@ -88,7 +90,7 @@ ...@@ -88,7 +90,7 @@
[disabled]="!emp_group.select.groupId||!emp_group.select.tdesc||(currentModal=='add'&&checkPrimary())"> [disabled]="!emp_group.select.groupId||!emp_group.select.tdesc||(currentModal=='add'&&checkPrimary())">
บันทึกข้อมูล บันทึกข้อมูล
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
......
...@@ -27,18 +27,18 @@ export class EmployeeGroupUnit implements OnInit { ...@@ -27,18 +27,18 @@ export class EmployeeGroupUnit implements OnInit {
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "groupId", field: "groupId",
headerText: "รหัสกลุ่มพนักงาน", headerText: "EmployeeGroupCode",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "tdesc", field: "tdesc",
headerText: "รายละเอียดกลุ่มพนักงาน (ไทย)", headerText: "EmployeeGroupDescThai",
type: "string" type: "string"
}, },
{ {
field: "edesc", field: "edesc",
headerText: "รายละเอียดกลุ่มพนักงาน (อังกฤษ)", headerText: "EmployeeGroupDescEng",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="flex justify-end"> <div class="flex justify-end">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
[(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -16,21 +16,21 @@ ...@@ -16,21 +16,21 @@
data-hs-overlay="#employee-level-upload-modal" data-hs-overlay="#employee-level-upload-modal"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'">
<i class="ti ti-file-plus"></i> <i class="ti ti-file-plus"></i>
import {{'Import' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
data-hs-overlay="#employee-level-page-modal" (click)="currentModal='add';selectPl();openDialog()"> data-hs-overlay="#employee-level-page-modal" (click)="currentModal='add';selectPl();openDialog()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button href="javascript:void(0);" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md" <button href="javascript:void(0);" class="ti-btn ti-btn-soft-danger h-45px m-0 shadow-md"
data-hs-overlay="#employee-level-page-alert-modal" (click)="currentModal='delete';selectPl();deletePL();"> data-hs-overlay="#employee-level-page-alert-modal" (click)="currentModal='delete';selectPl();deletePL();">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
...@@ -39,7 +39,8 @@ ...@@ -39,7 +39,8 @@
<div class="page px-rem"> <div class="page px-rem">
<app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="pl.dataList" <app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="pl.dataList"
[columns]="columns" [selectedItems]="selectedItems" [columns]="columns" [selectedItems]="selectedItems"
(sendSelectData)="currentModal='edit';selectPl($event);openDialog()" (sendSelectedItems)="onSelectItemChange($event)"> (sendSelectData)="currentModal='edit';selectPl($event);openDialog()"
(sendSelectedItems)="onSelectItemChange($event)">
</app-datagrid-syncfution> </app-datagrid-syncfution>
</div> </div>
...@@ -67,9 +68,8 @@ ...@@ -67,9 +68,8 @@
</span> </span>
</label> </label>
<input type="text" id="input-label" class="ti-form-input w-1/2" <input type="text" id="input-label" class="ti-form-input w-1/2"
[class.!border-red]="currentModal=='add'&&checkPrimary()" [class.!border-red]="currentModal=='add'&&checkPrimary()" [ngClass]="{'bg-input-readonly':currentModal=='edit'}"
[ngClass]="{'bg-input-readonly':currentModal=='edit'}" [readonly]="currentModal=='edit'" [readonly]="currentModal=='edit'" [(ngModel)]="pl.select.plId">
[(ngModel)]="pl.select.plId">
<label for="detail_th" class="ti-form-label mt-2rem">รายละเอียดระดับพนักงาน(JL) (ไทย)<span <label for="detail_th" class="ti-form-label mt-2rem">รายละเอียดระดับพนักงาน(JL) (ไทย)<span
class="text-danger">*</span></label> class="text-danger">*</span></label>
<input type="text" id="detail_th" class="ti-form-input h-16" [(ngModel)]="pl.select.tdesc"> <input type="text" id="detail_th" class="ti-form-input h-16" [(ngModel)]="pl.select.tdesc">
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
[disabled]="!pl.select.plId||!pl.select.tdesc||(currentModal=='add'&&checkPrimary())"> [disabled]="!pl.select.plId||!pl.select.tdesc||(currentModal=='add'&&checkPrimary())">
บันทึกข้อมูล บันทึกข้อมูล
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
......
...@@ -23,18 +23,18 @@ export class EmployeeLevel implements OnInit { ...@@ -23,18 +23,18 @@ export class EmployeeLevel implements OnInit {
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "plId", field: "plId",
headerText: "รหัสระดับพนักงาน", headerText: "JobLevelCode",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "tdesc", field: "tdesc",
headerText: "รายละเอียดระดับพนักงาน (ไทย)", headerText: "JobLevelDescThai",
type: "string" type: "string"
}, },
{ {
field: "edesc", field: "edesc",
headerText: "รายละเอียดระดับพนักงาน (อังกฤษ)", headerText: "JobLevelDescEng",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
</div> </div>
<div class="block-main-content"> <div class="block-main-content">
<div class="text-lg font-bold py-2 text-primary px-8"> <div class="text-lg font-bold py-2 text-primary px-8">
ข้อมูลลักษณะงาน {{'menu.JobDescription' | translate}}
</div> </div>
<div class="page"> <div class="page">
<div class="border-b border-gray-200 dark:border-white/10 px-8"> <div class="border-b border-gray-200 dark:border-white/10 px-8">
...@@ -11,32 +11,32 @@ ...@@ -11,32 +11,32 @@
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary active"
href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1" href="javascript:void(0);" id="underline-item-1" data-hs-tab="#underline-1"
aria-controls="underline-1" aria-controls="underline-1"
(click)="currentPath = 1;pathTitle = ['การจัดการข้อมูลองค์กร','ข้อมูลลักษณะงาน','กลุ่มพนักงาน']"> (click)="currentPath = 1;pathTitle = ['menu.Organization','menu.JobDescription','EmployeeGroup']">
กลุ่มพนักงาน {{'EmployeeGroup' | translate}}
</a> </a>
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary"
href="javascript:void(0);" id="underline-item-2" data-hs-tab="#underline-2" href="javascript:void(0);" id="underline-item-2" data-hs-tab="#underline-2"
aria-controls="underline-2" aria-controls="underline-2"
(click)="currentPath = 2;pathTitle = ['การจัดการข้อมูลองค์กร','ข้อมูลลักษณะงาน','ตำเเหน่ง']"> (click)="currentPath = 2;pathTitle = ['menu.Organization','menu.JobDescription','Position']">
ตำเเหน่ง {{'Position' | translate}}
</a> </a>
<!-- <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary" <!-- <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary"
href="javascript:void(0);" id="underline-item-3" data-hs-tab="#underline-3" href="javascript:void(0);" id="underline-item-3" data-hs-tab="#underline-3"
aria-controls="underline-3" aria-controls="underline-3"
(click)="currentPath = 3;pathTitle = ['การจัดการข้อมูลองค์กร','ข้อมูลลักษณะงาน','ลักษณะงาน']"> (click)="currentPath = 3;pathTitle = ['menu.Organization','menu.JobDescription','ลักษณะงาน']">
ลักษณะงาน ลักษณะงาน
</a> --> </a> -->
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary"
href="javascript:void(0);" id="underline-item-4" data-hs-tab="#underline-4" href="javascript:void(0);" id="underline-item-4" data-hs-tab="#underline-4"
aria-controls="underline-4" aria-controls="underline-4"
(click)="currentPath = 4;pathTitle = ['การจัดการข้อมูลองค์กร','ข้อมูลลักษณะงาน','ประเภทพนักงาน']"> (click)="currentPath = 4;pathTitle = ['menu.Organization','menu.JobDescription','EmploymentType']">
ประเภทพนักงาน {{'EmploymentType' | translate}}
</a> </a>
<a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary" <a class="text-base font-medium hs-tab-active:text-lg hs-tab-active:font-bold hs-tab-active:border-secondary hs-tab-active:text-secondary pb-3 px-1 inline-flex items-center gap-2 border-b-[3px] border-transparent whitespace-nowrap text-gray-500 dark:text-white/70 hover:text-secondary"
href="javascript:void(0);" id="underline-item-5" data-hs-tab="#underline-5" href="javascript:void(0);" id="underline-item-5" data-hs-tab="#underline-5"
aria-controls="underline-5" aria-controls="underline-5"
(click)="currentPath = 5;pathTitle = ['การจัดการข้อมูลองค์กร','ข้อมูลลักษณะงาน','ระดับพนักงาน (JL)']"> (click)="currentPath = 5;pathTitle = ['menu.Organization','menu.JobDescription','JobLevelJL']">
ระดับพนักงาน (JL) {{'JobLevelJL' | translate}}
</a> </a>
</nav> </nav>
</div> </div>
......
...@@ -6,6 +6,6 @@ import { Component } from '@angular/core'; ...@@ -6,6 +6,6 @@ import { Component } from '@angular/core';
styleUrls: ['./job-description.component.scss'] styleUrls: ['./job-description.component.scss']
}) })
export class JobDescriptionComponent { export class JobDescriptionComponent {
pathTitle = ['การจัดการข้อมูลองค์กร', 'ข้อมูลลักษณะงาน', 'กลุ่มพนักงาน'] pathTitle = ['menu.Organization', 'menu.JobDescription', 'EmployeeGroup']
currentPath = 1 currentPath = 1
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -16,14 +16,15 @@ ...@@ -16,14 +16,15 @@
data-hs-overlay="#position-unit-component-upload-modal" data-hs-overlay="#position-unit-component-upload-modal"
(click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'"> (click)="fileInput.value = '';selectedFile=null;selectedFileName = 'กรุณาเลือกไฟล์'">
<i class="ti ti-file-plus"></i> <i class="ti ti-file-plus"></i>
import {{'Import' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
<button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md" <button type="button" class="ti-btn ti-btn-soft-secondary h-45px m-0 shadow-md"
data-hs-overlay="#position-unit-component-page-modal" (click)="currentModal='add';selectPosition();openDialog()"> data-hs-overlay="#position-unit-component-page-modal"
(click)="currentModal='add';selectPosition();openDialog()">
<i class="ri-add-line"></i> <i class="ri-add-line"></i>
Add {{'Add' | translate}}
</button> </button>
</div> </div>
<div class="px-1"> <div class="px-1">
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
data-hs-overlay="#position-unit-component-page-alert-modal" data-hs-overlay="#position-unit-component-page-alert-modal"
(click)="currentModal='delete';selectPosition();deletePosition()"> (click)="currentModal='delete';selectPosition();deletePosition()">
<i class="ri-delete-bin-6-line"></i> <i class="ri-delete-bin-6-line"></i>
Delete {{'Delete' | translate}}
</button> </button>
</div> </div>
</div> </div>
...@@ -40,7 +41,8 @@ ...@@ -40,7 +41,8 @@
<div class="page px-rem"> <div class="page px-rem">
<app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="position.dataList" <app-datagrid-syncfution [searchSettings]="searchSettings" [searchText]="search" [dataSource]="position.dataList"
[columns]="columns" [selectedItems]="selectedItems" [columns]="columns" [selectedItems]="selectedItems"
(sendSelectData)="currentModal='edit';selectPosition($event);openDialog()" (sendSelectedItems)="onSelectItemChange($event)"> (sendSelectData)="currentModal='edit';selectPosition($event);openDialog()"
(sendSelectedItems)="onSelectItemChange($event)">
</app-datagrid-syncfution> </app-datagrid-syncfution>
</div> </div>
<ng-template #positionUnitModal let-modal> <ng-template #positionUnitModal let-modal>
...@@ -85,7 +87,7 @@ ...@@ -85,7 +87,7 @@
[disabled]="!position.select.positionId||!position.select.tdesc||(currentModal=='add'&&checkPrimary())"> [disabled]="!position.select.positionId||!position.select.tdesc||(currentModal=='add'&&checkPrimary())">
บันทึกข้อมูล บันทึกข้อมูล
</button> </button>
</mat-dialog-actions> </mat-dialog-actions>
</ng-template> </ng-template>
......
...@@ -18,19 +18,19 @@ export class PositionUnitComponent implements OnInit { ...@@ -18,19 +18,19 @@ export class PositionUnitComponent implements OnInit {
position: { loading: boolean, select: PositionModel, dataList: PositionModel[] } = { loading: false, select: new MyPositionModel(), dataList: [] } position: { loading: boolean, select: PositionModel, dataList: PositionModel[] } = { loading: false, select: new MyPositionModel(), dataList: [] }
columns: ColumnModel[] = [{ columns: ColumnModel[] = [{
field: "positionId", field: "PositionCode",
headerText: "รหัสตำเเหน่ง", headerText: "รหัสตำเเหน่ง",
type: "string", type: "string",
isPrimaryKey: true, isPrimaryKey: true,
}, },
{ {
field: "tdesc", field: "tdesc",
headerText: "รายละเอียดตำเเหน่ง (ไทย)", headerText: "PositionDescThai",
type: "string" type: "string"
}, },
{ {
field: "edesc", field: "edesc",
headerText: "รายละเอียดตำเเหน่ง (อังกฤษ)", headerText: "PositionDescEng",
type: "string" type: "string"
}] }]
searchSettings = { searchSettings = {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchChange()"> [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()"> style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -239,7 +239,7 @@ ...@@ -239,7 +239,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="searchModal" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="searchModal"
(ngModelChange)="searchModalChange()"> (ngModelChange)="searchModalChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="searchModal" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="searchModal"
(ngModelChange)="assessmentToolsModalSearchChange()"> (ngModelChange)="assessmentToolsModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -360,7 +360,7 @@ ...@@ -360,7 +360,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="searchModal" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="searchModal"
(ngModelChange)="curriculumModalSearchChange()"> (ngModelChange)="curriculumModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="flex justify-end"> <div class="flex justify-end">
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -181,7 +181,7 @@ ...@@ -181,7 +181,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchEMP()"> [(ngModel)]="search" (ngModelChange)="searchEMP()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" style="height: 40px;"> [(ngModel)]="search" style="height: 40px;">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchChange()"> [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()"> style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="PLsearchmodal.search" (ngModelChange)="onPLModalSearchChange()"> [(ngModel)]="PLsearchmodal.search" (ngModelChange)="onPLModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -679,7 +679,7 @@ ...@@ -679,7 +679,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="modal.search"
(ngModelChange)="searchModalChange(plListFilter())"> (ngModelChange)="searchModalChange(plListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()"> style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()"> style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<!-- <div class="px-1"> <!-- <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" style="height: 40px;"> class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate" style="height: 40px;">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" style="height: 40px;"> [(ngModel)]="search" style="height: 40px;">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="typeModal.search" (ngModelChange)="searchCompetencytypeChange()"> [(ngModel)]="typeModal.search" (ngModelChange)="searchCompetencytypeChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" style="height: 40px;"> [(ngModel)]="search" style="height: 40px;">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" style="height: 40px;"> [(ngModel)]="search" style="height: 40px;">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -85,7 +85,7 @@ const routes: Routes = [ ...@@ -85,7 +85,7 @@ const routes: Routes = [
{ path: "ess/self-evaluation", title: 'ประเมินตนเอง', component: SelfEvaluationComponent }, { path: "ess/self-evaluation", title: 'ประเมินตนเอง', component: SelfEvaluationComponent },
{ path: "ess/self-evaluation/:part", title: 'ประเมินตนเอง', component: SelfEvaluationComponent }, { path: "ess/self-evaluation/:part", title: 'ประเมินตนเอง', component: SelfEvaluationComponent },
{ path: "admin/day-type-registry", title: 'ประเมินตนเอง', component: DayTypeRegistryComponent }, { path: "admin/day-type-registry", title: 'ประเมินตนเอง', component: DayTypeRegistryComponent },
{ path: "admin/company-registration", title: 'ทะเบียนบริษัท', component: CompanyRegistrationComponent }, { path: "admin/company-registration", title: 'menu.Company', component: CompanyRegistrationComponent },
{ path: "admin/job-description", title: 'ข้อมูลลักษณะงาน', component: JobDescriptionComponent }, { path: "admin/job-description", title: 'ข้อมูลลักษณะงาน', component: JobDescriptionComponent },
{ path: "admin/account-settings", title: 'ตั้งค่าผู้ใช้งาน', component: AccountSettingsComponent }, { path: "admin/account-settings", title: 'ตั้งค่าผู้ใช้งาน', component: AccountSettingsComponent },
{ path: "admin/name-registration", title: 'ทะเบียนกำหนดชื่อ', component: NameRegistrationComponent }, { path: "admin/name-registration", title: 'ทะเบียนกำหนดชื่อ', component: NameRegistrationComponent },
......
...@@ -36,52 +36,12 @@ import { ...@@ -36,52 +36,12 @@ import {
} from '@syncfusion/ej2-angular-grids'; } from '@syncfusion/ej2-angular-grids';
import { GroupSettingsModel, FilterSettingsModel, ColumnModel } from '@syncfusion/ej2-angular-grids'; import { GroupSettingsModel, FilterSettingsModel, ColumnModel } from '@syncfusion/ej2-angular-grids';
import { DataManager, Query } from '@syncfusion/ej2-data'; import { DataManager, Query } from '@syncfusion/ej2-data';
import { L10n, setCulture } from '@syncfusion/ej2-base'; import { setCulture } from '@syncfusion/ej2-base';
import { Status } from '../../shared/model/evaluation-form.modal'; import { Status } from '../../shared/model/evaluation-form.modal';
import { FileService } from 'src/app/shared/services/file.service'; import { FileService } from 'src/app/shared/services/file.service';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
L10n.load({
'en-US': {
'pager': {
'currentPageInfo': '',
'totalItemsInfo': '{1} to {2} of {0}',
},
'grid': {
'pagerInfo': 'Total {0} items',
'pageCountMsg': 'Total {0} items'
}
},
'th-TH': {
'grid': {
'EmptyRecord': 'ไม่มีข้อมูลที่จะแสดง',
'Item': '1 รายการ',
'Items': '{0} รายการ'
},
'pager': {
'All': 'ทั้งหมด',
'pagerAllDropDown': 'รายการ',
'currentPageInfo': '',
'totalItemsInfo': '{0} รายการ',
'totalItemInfo': '{0} รายการ',
'totalRecordsInfo': '{0} รายการ',
'firstPageTooltip': 'หน้าแรก',
'lastPageTooltip': 'หน้าสุดท้าย',
'nextPageTooltip': 'ถัดไป',
'previousPageTooltip': 'ก่อนหน้า',
'nextPagerTooltip': 'ถัดไป',
'previousPagerTooltip': 'ก่อนหน้า',
'pageInput': '{0}',
'page': 'หน้า',
'pagerDropDown': 'รายการ',
'pagerAll': 'ทั้งหมด',
'pageSize': 'รายการต่อหน้า',
'pageSizeAll': 'ทั้งหมด',
'pageCount': 'จำนวนหน้า',
'pageCountAll': 'ทั้งหมด'
}
}
});
@Component({ @Component({
selector: 'app-datagrid-syncfution', selector: 'app-datagrid-syncfution',
templateUrl: './datagrid-syncfution.component.html', templateUrl: './datagrid-syncfution.component.html',
...@@ -177,6 +137,7 @@ export class DatagridSyncfutionComponent implements OnInit { ...@@ -177,6 +137,7 @@ export class DatagridSyncfutionComponent implements OnInit {
private fileService: FileService, private fileService: FileService,
private translateService: TranslateService, private translateService: TranslateService,
) { ) {
this.locale = this.translateService.getCurrentLang() == 'th' ? 'th-TH' : 'en-US'
} }
ngOnInit(): void { ngOnInit(): void {
// this.query = new Query().addParams('dataCount', '1000'); // this.query = new Query().addParams('dataCount', '1000');
...@@ -186,10 +147,8 @@ export class DatagridSyncfutionComponent implements OnInit { ...@@ -186,10 +147,8 @@ export class DatagridSyncfutionComponent implements OnInit {
this.toolbarOptions = [ this.toolbarOptions = [
{ text: this.translateService.instant('Print'), prefixIcon: 'e-print', id: 'Print' }, { text: this.translateService.instant('Print'), prefixIcon: 'e-print', id: 'Print' },
{ text: this.translateService.instant('ExcelExport'), prefixIcon: 'e-excelexport', id: 'ExcelExport' }, { text: this.translateService.instant('ExcelExport'), prefixIcon: 'e-excelexport', id: 'ExcelExport' },
{ text: this.translateService.instant('CsvExport'), prefixIcon: 'e-csvexport', id: 'CsvExport' } { text: this.translateService.instant('CSVExport'), prefixIcon: 'e-csvexport', id: 'CsvExport' }
]; ];
// setCulture('en-US');
// setCulture('th-TH');
this.translateService.onLangChange.subscribe((event) => { this.translateService.onLangChange.subscribe((event) => {
if (event.lang === 'th') { if (event.lang === 'th') {
setCulture('th-TH'); setCulture('th-TH');
...@@ -201,7 +160,7 @@ export class DatagridSyncfutionComponent implements OnInit { ...@@ -201,7 +160,7 @@ export class DatagridSyncfutionComponent implements OnInit {
this.toolbarOptions = [ this.toolbarOptions = [
{ text: this.translateService.instant('Print'), prefixIcon: 'e-print', id: 'Print' }, { text: this.translateService.instant('Print'), prefixIcon: 'e-print', id: 'Print' },
{ text: this.translateService.instant('ExcelExport'), prefixIcon: 'e-excelexport', id: 'ExcelExport' }, { text: this.translateService.instant('ExcelExport'), prefixIcon: 'e-excelexport', id: 'ExcelExport' },
{ text: this.translateService.instant('CsvExport'), prefixIcon: 'e-csvexport', id: 'CsvExport' } { text: this.translateService.instant('CSVExport'), prefixIcon: 'e-csvexport', id: 'CsvExport' }
]; ];
}); });
......
...@@ -135,7 +135,7 @@ ...@@ -135,7 +135,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="searchModal" (ngModelChange)="currentPage=1"> [(ngModel)]="searchModal" (ngModelChange)="currentPage=1">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchChange()"> [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
......
...@@ -1536,7 +1536,7 @@ ...@@ -1536,7 +1536,7 @@
<input <input
type="search" [class.active]="isActive" type="search" [class.active]="isActive"
class="search-chat-input focus-visible:outline-0 border-0 focus:border-0 focus:shadow-none focus:ring-0 bg-transparent py-0 leading-[0]" class="search-chat-input focus-visible:outline-0 border-0 focus:border-0 focus:shadow-none focus:ring-0 bg-transparent py-0 leading-[0]"
placeholder="Search by No. or Name" [placeholder]="'SearchByNoOrName' | translate"
/> />
<i (click)="searchclick()" class="text-base leading-none ti ti-search"></i> <i (click)="searchclick()" class="text-base leading-none ti ti-search"></i>
</div> </div>
......
...@@ -9,6 +9,7 @@ import { SharedModule } from 'src/app/shared/sharedmodule'; ...@@ -9,6 +9,7 @@ import { SharedModule } from 'src/app/shared/sharedmodule';
import { NgSelectModule } from '@ng-select/ng-select'; import { NgSelectModule } from '@ng-select/ng-select';
import { SwiperModule } from 'swiper/angular'; import { SwiperModule } from 'swiper/angular';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -17,6 +18,7 @@ import { FormsModule } from '@angular/forms'; ...@@ -17,6 +18,7 @@ import { FormsModule } from '@angular/forms';
MailSettingsComponent MailSettingsComponent
], ],
imports: [ imports: [
TranslateModule,
CommonModule, CommonModule,
MailRoutingModule, MailRoutingModule,
SharedModule, SharedModule,
......
...@@ -398,7 +398,7 @@ ...@@ -398,7 +398,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="competencycourseTable.search" (ngModelChange)="onCompetencycourseSearch()"> [(ngModel)]="competencycourseTable.search" (ngModelChange)="onCompetencycourseSearch()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -170,7 +170,7 @@ ...@@ -170,7 +170,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search"
(ngModelChange)="searchDataGrid(search)"> (ngModelChange)="searchDataGrid(search)">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -44,43 +44,6 @@ import { GroupSettingsModel, FilterSettingsModel, ColumnModel } from '@syncfusio ...@@ -44,43 +44,6 @@ import { GroupSettingsModel, FilterSettingsModel, ColumnModel } from '@syncfusio
import { DataManager, Query } from '@syncfusion/ej2-data'; import { DataManager, Query } from '@syncfusion/ej2-data';
import { L10n, setCulture } from '@syncfusion/ej2-base'; import { L10n, setCulture } from '@syncfusion/ej2-base';
setCulture('th-TH'); setCulture('th-TH');
L10n.load({
'en-US': {
'pager': {
'currentPageInfo': '',
'totalItemsInfo': '{1} to {2} of {0}',
}
},
'th-TH': {
'grid': {
'EmptyRecord': 'ไม่มีข้อมูลที่จะแสดง',
'Item': '1 รายการ',
'Items': '{0} รายการ'
},
'pager': {
'All': 'ทั้งหมด',
'pagerAllDropDown': 'รายการ',
'currentPageInfo': '',
'totalItemsInfo': '{0} รายการ',
'totalItemInfo': '{0} รายการ',
'totalRecordsInfo': '{0} รายการ',
'firstPageTooltip': 'หน้าแรก',
'lastPageTooltip': 'หน้าสุดท้าย',
'nextPageTooltip': 'ถัดไป',
'previousPageTooltip': 'ก่อนหน้า',
'nextPagerTooltip': 'ถัดไป',
'previousPagerTooltip': 'ก่อนหน้า',
'pageInput': '{0}',
'page': 'หน้า',
'pagerDropDown': 'รายการ',
'pagerAll': 'ทั้งหมด',
'pageSize': 'รายการต่อหน้า',
'pageSizeAll': 'ทั้งหมด',
'pageCount': 'จำนวนหน้า',
'pageCountAll': 'ทั้งหมด'
}
}
});
@Component({ @Component({
selector: 'app-supervisor-evaluation', selector: 'app-supervisor-evaluation',
templateUrl: './supervisor-evaluation.component.html', templateUrl: './supervisor-evaluation.component.html',
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchEMP()"> [(ngModel)]="search" (ngModelChange)="searchEMP()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -286,7 +286,7 @@ ...@@ -286,7 +286,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="employeeModal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="employeeModal.search"
(ngModelChange)="searchEMP()"> (ngModelChange)="searchEMP()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()"> style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -233,7 +233,7 @@ ...@@ -233,7 +233,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="modal.search"
(ngModelChange)="searchModalChange(pmstopicListFilter())"> (ngModelChange)="searchModalChange(pmstopicListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchChange()"> [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search"> style="height: 40px;" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -216,7 +216,7 @@ ...@@ -216,7 +216,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="PLsearchmodal.search" (ngModelChange)="onPLModalSearchChange()"> [(ngModel)]="PLsearchmodal.search" (ngModelChange)="onPLModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -660,7 +660,7 @@ ...@@ -660,7 +660,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="modal.search"
(ngModelChange)="searchModalChange(plListFilter())"> (ngModelChange)="searchModalChange(plListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchChange()"> [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" (ngModelChange)="searchChange()" style="height: 40px;"> [(ngModel)]="search" (ngModelChange)="searchChange()" style="height: 40px;">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -292,7 +292,7 @@ ...@@ -292,7 +292,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="pmstypemodal.search" (ngModelChange)="modalSearchChange(pmstypeListFilter())"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="pmstypemodal.search" (ngModelChange)="modalSearchChange(pmstypeListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="modal.search" (ngModelChange)="modalSearchChange(pmstypeListFilter())"> [(ngModel)]="modal.search" (ngModelChange)="modalSearchChange(pmstypeListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search" style="height: 40px;"> [(ngModel)]="search" style="height: 40px;">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()"> style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()"> style="height: 40px;" [(ngModel)]="search" (ngModelChange)="searchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" style="height: 40px;" [(ngModel)]="search" [placeholder]="'SearchByNoOrName' | translate" style="height: 40px;" [(ngModel)]="search"
> >
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="search"> [(ngModel)]="search">
<div <div
...@@ -388,7 +388,7 @@ ...@@ -388,7 +388,7 @@
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="eventgrpmodal.search" (ngModelChange)="oneventgrpModalSearchChange()"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="eventgrpmodal.search" (ngModelChange)="oneventgrpModalSearchChange()">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
...@@ -754,7 +754,7 @@ ...@@ -754,7 +754,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="modal.search" [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="modal.search"
(ngModelChange)="modalSearchChange(eventgrpListFilter())"> (ngModelChange)="modalSearchChange(eventgrpListFilter())">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " <input type="text" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 "
placeholder="Search by No. or Name" [(ngModel)]="search"> [placeholder]="'SearchByNoOrName' | translate" [(ngModel)]="search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
<i class="ri-search-line text-gray"></i> <i class="ri-search-line text-gray"></i>
......
...@@ -397,7 +397,7 @@ ...@@ -397,7 +397,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="modalData.search"> [(ngModel)]="modalData.search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
...@@ -555,7 +555,7 @@ ...@@ -555,7 +555,7 @@
<div class="px-1"> <div class="px-1">
<div class="relative shadow-md"> <div class="relative shadow-md">
<input type="text" id="hs-leading-icon" name="hs-leading-icon" <input type="text" id="hs-leading-icon" name="hs-leading-icon"
class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " placeholder="Search by No. or Name" class="ti-form-input ltr:pl-11 rtl:pr-11 focus:z-10 " [placeholder]="'SearchByNoOrName' | translate"
[(ngModel)]="modalData.search"> [(ngModel)]="modalData.search">
<div <div
class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4"> class="absolute inset-y-0 ltr:left-0 rtl:right-0 flex items-center pointer-events-none z-20 ltr:pl-4 rtl:pr-4">
......
...@@ -56,9 +56,9 @@ ...@@ -56,9 +56,9 @@
<button id="dropdown-flag" type="button" <button id="dropdown-flag" type="button"
class="hs-dropdown-toggle ti-dropdown-toggle p-0 flex-shrink-0 h-[2.375rem] w-[2.375rem] border-0 rounded-full shadow-none focus:ring-gray-400 text-xs dark:focus:ring-white/10"> class="hs-dropdown-toggle ti-dropdown-toggle p-0 flex-shrink-0 h-[2.375rem] w-[2.375rem] border-0 rounded-full shadow-none focus:ring-gray-400 text-xs dark:focus:ring-white/10">
<i class="flag-icon flag-icon-active flag-icon-th h-[1.375rem] w-[1.375rem]" <i class="flag-icon flag-icon-active flag-icon-th h-[1.375rem] w-[1.375rem]"
[class.active]="translationService.getCurrentLang()=='th'"></i> [class.active]="translateService.getCurrentLang()=='th'"></i>
<i class="flag-icon flag-icon-active flag-icon-us h-[1.375rem] w-[1.375rem]" <i class="flag-icon flag-icon-active flag-icon-us h-[1.375rem] w-[1.375rem]"
[class.active]="translationService.getCurrentLang()=='en'"></i> [class.active]="translateService.getCurrentLang()=='en'"></i>
</button> </button>
<div class="hs-dropdown-menu ti-dropdown-menu min-w-[10rem]" aria-labelledby="dropdown-flag"> <div class="hs-dropdown-menu ti-dropdown-menu min-w-[10rem]" aria-labelledby="dropdown-flag">
<div class="ti-dropdown-divider divide-y divide-gray-200 dark:divide-white/10"> <div class="ti-dropdown-divider divide-y divide-gray-200 dark:divide-white/10">
...@@ -770,7 +770,7 @@ ...@@ -770,7 +770,7 @@
<i class="ri ri-search-2-line search-btn-icon"></i> <i class="ri ri-search-2-line search-btn-icon"></i>
</div> </div>
<input type="text" id="icon" name="icon" class="py-2 ltr:pl-11 rtl:pr-11 ti-form-input focus:z-10" <input type="text" id="icon" name="icon" class="py-2 ltr:pl-11 rtl:pr-11 ti-form-input focus:z-10"
placeholder="Search by No. or Name" /> [placeholder]="'SearchByNoOrName' | translate" />
<div class="voice-search"> <div class="voice-search">
<i class="ri ri-mic-2-line voice-btn-icon"></i> <i class="ri ri-mic-2-line voice-btn-icon"></i>
</div> </div>
......
...@@ -9,7 +9,7 @@ import { ActivatedRoute, Router } from '@angular/router'; ...@@ -9,7 +9,7 @@ import { ActivatedRoute, Router } from '@angular/router';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { FileService } from '../../services/file.service'; import { FileService } from '../../services/file.service';
import { TranslationService } from '../../services/translation.service'; import { TranslateService } from '@ngx-translate/core';
@Component({ @Component({
selector: 'app-header', selector: 'app-header',
...@@ -29,11 +29,13 @@ export class HeaderComponent { ...@@ -29,11 +29,13 @@ export class HeaderComponent {
private fileService: FileService, private fileService: FileService,
private navService: NavService, private navService: NavService,
private http: HttpClient, private http: HttpClient,
public translationService: TranslationService) { public translateService: TranslateService) {
this.getEvaluatee(); this.getEvaluatee();
const lang = localStorage.getItem('Lang') ?? (() => {
this.translationService.setDefaultLang('th'); localStorage.setItem('Lang', 'th');
this.translationService.useLang('th'); return 'th';
})();
this.translateService.use(lang);
} }
imageUrl = '' imageUrl = ''
...@@ -170,6 +172,7 @@ export class HeaderComponent { ...@@ -170,6 +172,7 @@ export class HeaderComponent {
} }
switchLang(lang: string) { switchLang(lang: string) {
this.translationService.useLang(lang); localStorage.setItem('Lang', lang);
this.translateService.use(lang);
} }
} }
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<ol class="flex items-center whitespace-nowrap min-w-0"> <ol class="flex items-center whitespace-nowrap min-w-0">
<li class="text-sm" *ngFor="let item of pathTitle;let l = last"> <li class="text-sm" *ngFor="let item of pathTitle;let l = last">
<a class="flex items-center text-gray-500 hover:text-primary dark:text-white" href="javascript:void(0);"> <a class="flex items-center text-gray-500 hover:text-primary dark:text-white" href="javascript:void(0);">
{{item}} {{item | translate}}
<svg *ngIf="!l" <svg *ngIf="!l"
class="flex-shrink-0 mx-3 overflow-visible h-2.5 w-2.5 text-gray-300 dark:text-white/10 rtl:rotate-180" class="flex-shrink-0 mx-3 overflow-visible h-2.5 w-2.5 text-gray-300 dark:text-white/10 rtl:rotate-180"
width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
...@@ -26,20 +26,20 @@ ...@@ -26,20 +26,20 @@
<!-- Page Header Original --> <!-- Page Header Original -->
<div class="block justify-between page-header sm:flex"> <div class="block justify-between page-header sm:flex">
<div> <div>
<h3 class="text-gray-700 hover:text-gray-900 dark:text-white dark:hover:text-white text-2xl font-medium">{{title}} <h3 class="text-gray-700 hover:text-gray-900 dark:text-white dark:hover:text-white text-2xl font-medium">{{title | translate}}
</h3> </h3>
</div> </div>
<ol class="flex items-center whitespace-nowrap min-w-0"> <ol class="flex items-center whitespace-nowrap min-w-0">
<li class="text-sm"> <li class="text-sm">
<a class="flex items-center font-semibold text-primary hover:text-primary dark:text-primary truncate" <a class="flex items-center font-semibold text-primary hover:text-primary dark:text-primary truncate"
href="javascript:void(0);"> href="javascript:void(0);">
{{activeitem}} {{activeitem | translate}}
<i <i
class="ti ti-chevrons-right flex-shrink-0 mx-3 overflow-visible text-gray-300 dark:text-gray-300 rtl:rotate-180"></i> class="ti ti-chevrons-right flex-shrink-0 mx-3 overflow-visible text-gray-300 dark:text-gray-300 rtl:rotate-180"></i>
</a> </a>
</li> </li>
<li class="text-sm text-gray-500 hover:text-primary dark:text-white/70 " aria-current="page"> <li class="text-sm text-gray-500 hover:text-primary dark:text-white/70 " aria-current="page">
{{title1}} {{title1| translate}}
</li> </li>
</ol> </ol>
</div> </div>
......
...@@ -189,7 +189,7 @@ export class NavService implements OnDestroy { ...@@ -189,7 +189,7 @@ export class NavService implements OnDestroy {
], ],
}, },
{ {
title: 'จัดการรายละเอียดงาน', title: 'menu.JobDescriptionJD',
type: 'sub', type: 'sub',
selected: false, selected: false,
active: false, active: false,
...@@ -198,12 +198,12 @@ export class NavService implements OnDestroy { ...@@ -198,12 +198,12 @@ export class NavService implements OnDestroy {
show: true, show: true,
icon: 'assets/img/icons-menu/job-detail-management.png', icon: 'assets/img/icons-menu/job-detail-management.png',
children: [ children: [
{ id: 'm31', path: 'admin/job-detail-management', title: 'ข้อมูลทั่วไป', type: 'link', show: true }, { id: 'm31', path: 'admin/job-detail-management', title: 'menu.GeneralInformation', type: 'link', show: true },
{ id: 'm32', path: 'admin/command-structure', title: 'โครงสร้างสายการบังคับบัญชา', type: 'link', show: true }, { id: 'm32', path: 'admin/command-structure', title: 'menu.OrganizationChart', type: 'link', show: true },
{ id: 'm33', path: 'admin/job-detail', title: 'รายละเอียดของงาน', type: 'link', show: true }, { id: 'm33', path: 'admin/job-detail', title: 'menu.JobDetail', type: 'link', show: true },
{ id: 'm34', path: 'admin/job-qualifications', title: 'คุณสมบัติที่จำเป็น', type: 'link', show: true }, { id: 'm34', path: 'admin/job-qualifications', title: 'menu.JobSpecification', type: 'link', show: true },
{ id: 'm35', path: 'admin/job-competency', title: 'ความสามารถในตำเเหน่งงาน', type: 'link', show: true }, { id: 'm35', path: 'admin/job-competency', title: 'menu.JobCompetency', type: 'link', show: true },
{ id: 'm36', path: 'admin/job-position-indicators', title: 'ตัวชี้วัดของตำแหน่งงาน', type: 'link', show: true }, { id: 'm36', path: 'admin/job-position-indicators', title: 'menu.KeyPerformanceIndicators', type: 'link', show: true },
], ],
}, },
......
import { Injectable } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
@Injectable({
providedIn: 'root'
})
export class TranslationService {
constructor(private translate: TranslateService) { }
setDefaultLang(lang: string) {
this.translate.setDefaultLang(lang);
}
useLang(lang: string) {
this.translate.use(lang);
}
get(key: string) {
return this.translate.get(key);
}
getCurrentLang() {
return this.translate.getCurrentLang()
}
}
...@@ -9,7 +9,14 @@ ...@@ -9,7 +9,14 @@
"Employee": "Employee", "Employee": "Employee",
"LeaveType": "LeaveType", "LeaveType": "LeaveType",
"UserSetting": "UserSetting", "UserSetting": "UserSetting",
"AccessPermissions": "AccessPermissions" "AccessPermissions": "AccessPermissions",
"JobDescriptionJD": "Job Description (JD)",
"GeneralInformation": "General Information",
"OrganizationChart": "Organization Chart",
"JobDetail": "Job Detail",
"JobSpecification": "Job Specification",
"JobCompetency": "Job Competency",
"KeyPerformanceIndicators": "Key Performance Indicators: KPIs"
}, },
"SearchByNoOrName": "Search by No. or Name", "SearchByNoOrName": "Search by No. or Name",
"Import": "Import", "Import": "Import",
...@@ -17,11 +24,56 @@ ...@@ -17,11 +24,56 @@
"Delete": "Delete", "Delete": "Delete",
"Print": "Print", "Print": "Print",
"ExcelExport": "Excel Export", "ExcelExport": "Excel Export",
"CsvExport": "CSV Export", "CSVExport": "CSV Export",
"Selected": "Selected", "Selected": "Selected",
"CompanyCode": "Company Code", "CompanyCode": "Company Code",
"CompanyDescThai": "Company Desc. (Thai)", "CompanyDescThai": "Company Desc. (Thai)",
"CompanyDescEng": "Company Desc. (Eng)", "CompanyDescEng": "Company Desc. (Eng)",
"Action": "Action", "Action": "Action",
"Item": "Item" "Item": "Item",
"BusinessUnit": "Business Unit",
"BusinessUnitDetails": "Business Unit Details",
"Division": "Division",
"Department": "Department",
"Section": "Section",
"SubSection": "Sub Section {{n}}",
"Items": "Items",
"EmployeeGroup": "Employee Group",
"Position": "Position",
"EmploymentType": "Employment Type",
"JobLevelJL": "Job Level (JL)",
"EmployeeGroupCode": "Employee Group Code",
"EmployeeGroupDescThai": "Employee Group Desc. (Thai)",
"EmployeeGroupDescEng": "Employee Group Desc. (Eng)",
"PositionCode": "Position Code",
"PositionDescThai": "Position Desc. (Thai)",
"PositionDescEng": "Position Desc. (Eng)",
"EmploymentTypeCode": "Employment Type Code",
"EmploymentTypeDescThai": "Employment Type Desc. (Thai)",
"EmploymentTypeDescEng": "Employment Type Desc. (Eng)",
"JobLevelCode": "Job Level Code",
"JobLevelDescThai": "Job Level Desc. (Thai)",
"JobLevelDescEng": "Job Level Desc. (Eng)",
"EmployeeCode": "Employee Code",
"FirstName": "First Name",
"LastName": "Last Name",
"LeaveInfo": "Leave Info.",
"Selected_ed": "Selected",
"SelectAll": "Select All",
"ImportData": "Import Data",
"DownloadSampleFile": "Download Sample File",
"LeaveCode": "Leave Code",
"DescriptionThai": "Description (Thai)",
"DescriptionEng": "Description (Eng)",
"Show": "Show",
"ImportLeaveType": "Import Leave Type",
"File": "File",
"PleaseSelectFile": "Please select a file.",
"Upload": "Upload",
"CreateUsername": "Create Username",
"SetPassword": "Set Password",
"ManageUsers": "Manage Users",
"LoginName": "Login Name",
"Status": "Status",
"Level": "Level"
} }
\ No newline at end of file
...@@ -9,7 +9,14 @@ ...@@ -9,7 +9,14 @@
"Employee": "ทะเบียนพนักงาน", "Employee": "ทะเบียนพนักงาน",
"LeaveType": "ทะเบียนประเภทวัน", "LeaveType": "ทะเบียนประเภทวัน",
"UserSetting": "ตั้งค่าผู้ใช้งาน", "UserSetting": "ตั้งค่าผู้ใช้งาน",
"AccessPermissions": "กำหนดสิทธิการเข้าใช้งาน" "AccessPermissions": "กำหนดสิทธิการเข้าใช้งาน",
"JobDescriptionJD": "จัดการรายละเอียดงาน",
"GeneralInformation": "ข้อมูลทั่วไป",
"OrganizationChart": "โครงสร้างสายการบังคับบัญชา",
"JobDetail": "รายละเอียดของงาน",
"JobSpecification": "คุณสมบัติที่จำเป็น",
"JobCompetency": "ความสามารถในตำแหน่งงาน",
"KeyPerformanceIndicators": "ตัวชี้วัดของตำแหน่งงาน"
}, },
"SearchByNoOrName": "ค้นหาตามรหัสหรือชื่อ", "SearchByNoOrName": "ค้นหาตามรหัสหรือชื่อ",
"Import": "นำเข้า", "Import": "นำเข้า",
...@@ -17,11 +24,59 @@ ...@@ -17,11 +24,59 @@
"Delete": "ลบ", "Delete": "ลบ",
"Print": "พิมพ์", "Print": "พิมพ์",
"ExcelExport": "ส่งออก Excel", "ExcelExport": "ส่งออก Excel",
"CsvExport": "ส่งออก CSV", "CSVExport": "ส่งออก CSV",
"Selected": "เลือก", "Selected": "เลือก",
"CompanyCode": "รหัสบริษัท", "CompanyCode": "รหัสบริษัท",
"CompanyDescThai": "รายละเอียดบริษัท (ไทย)", "CompanyDescThai": "รายละเอียดบริษัท (ไทย)",
"CompanyDescEng": "รายละเอียดบริษัท (อังกฤษ)", "CompanyDescEng": "รายละเอียดบริษัท (อังกฤษ)",
"Action": "การจัดการ", "Action": "การจัดการ",
"Item": "รายการ" "Item": "รายการ",
"BusinessUnit": "หน่วยธุรกิจ",
"BusinessUnitDetails": "รายละเอียดหน่วยธุรกิจ",
"Division": "ทะเบียนฝ่าย",
"Department": "ทะเบียนแผนก",
"Section": "ทะเบียนส่วน",
"SubSection 1": "ทะเบียนส่วนย่อย 1",
"SubSection 2": "ทะเบียนส่วนย่อย 2",
"SubSection 3": "ทะเบียนส่วนย่อย 3",
"SubSection 4": "ทะเบียนส่วนย่อย 4",
"Items": "รายการ",
"EmployeeGroup": "กลุ่มพนักงาน",
"Position": "ตำแหน่ง",
"EmploymentType": "ประเภทพนักงาน",
"JobLevelJL": "ระดับพนักงาน (JL)",
"EmployeeGroupCode": "รหัสกลุ่มพนักงาน",
"EmployeeGroupDescThai": "รายละเอียดกลุ่มพนักงาน (ไทย)",
"EmployeeGroupDescEng": "รายละเอียดกลุ่มพนักงาน (อังกฤษ)",
"PositionCode": "รหัสตำแหน่ง",
"PositionDescThai": "รายละเอียดตำแหน่ง (ไทย)",
"PositionDescEng": "รายละเอียดตำแหน่ง (อังกฤษ)",
"EmploymentTypeCode": "รหัสประเภทพนักงาน",
"EmploymentTypeDescThai": "รายละเอียดประเภทพนักงาน (ไทย)",
"EmploymentTypeDescEng": "รายละเอียดประเภทพนักงาน (อังกฤษ)",
"JobLevelCode": "รหัสระดับพนักงาน",
"JobLevelDescThai": "รายละเอียดระดับพนักงาน (ไทย)",
"JobLevelDescEng": "รายละเอียดระดับพนักงาน (อังกฤษ)",
"EmployeeCode": "รหัสพนักงาน",
"FirstName": "ชื่อ",
"LastName": "นามสกุล",
"LeaveInfo": "ข้อมูลประเภทวัน",
"Selected_ed": "เลือกแล้ว",
"SelectAll": "เลือกทั้งหมด",
"ImportData": "นำเข้าข้อมูล",
"DownloadSampleFile": "ดาวน์โหลดตัวอย่างไฟล์",
"LeaveCode": "รหัสประเภทวัน",
"DescriptionThai": "รายละเอียด (ไทย)",
"DescriptionEng": "รายละเอียด (อังกฤษ)",
"Show": "แสดง",
"ImportLeaveType": "นำเข้าข้อมูลประเภทวัน",
"File": "ไฟล์",
"PleaseSelectFile": "กรุณาเลือกไฟล์",
"Upload": "อัปโหลด",
"CreateUsername": "สร้างชื่อผู้ใช้งาน",
"SetPassword": "กำหนดรหัสผ่าน",
"ManageUsers": "จัดการผู้ใช้งาน",
"LoginName": "ชื่อล็อคอิน",
"Status": "สถานะ",
"Level": "ระดับ"
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment