diff --git a/apps/dafa-web/src/app/data/models/staff.model.ts b/apps/dafa-web/src/app/data/models/employee.model.ts similarity index 82% rename from apps/dafa-web/src/app/data/models/staff.model.ts rename to apps/dafa-web/src/app/data/models/employee.model.ts index dd776f9..a5be300 100644 --- a/apps/dafa-web/src/app/data/models/staff.model.ts +++ b/apps/dafa-web/src/app/data/models/employee.model.ts @@ -1,9 +1,9 @@ import { Agency } from '@dafa-models/agency.model'; import { Participant } from './participant.model'; -export interface Staff { +export interface Employee { id: string; - staffId: string; + employeeId: string; firstName: string; lastName: string; utforandeverksamhet: string; @@ -12,7 +12,7 @@ export interface Staff { fullName?: string; } -export interface StaffDetail extends Staff { +export interface EmployeeDetail extends Employee { languages: string[]; outOfOffice: { start: Date; diff --git a/apps/dafa-web/src/app/data/models/sort-by.model.ts b/apps/dafa-web/src/app/data/models/sort-by.model.ts index 86ca23f..ea280b3 100644 --- a/apps/dafa-web/src/app/data/models/sort-by.model.ts +++ b/apps/dafa-web/src/app/data/models/sort-by.model.ts @@ -1,7 +1,7 @@ +import { Employee } from './employee.model'; import { Participant } from './participant.model'; -import { Staff } from './staff.model'; export interface SortBy { - key: keyof Participant | keyof Staff; + key: keyof Participant | keyof Employee; reverse: boolean; } diff --git a/apps/dafa-web/src/app/pages/administration/administration-routing.module.ts b/apps/dafa-web/src/app/pages/administration/administration-routing.module.ts index 52845bd..c7cebca 100644 --- a/apps/dafa-web/src/app/pages/administration/administration-routing.module.ts +++ b/apps/dafa-web/src/app/pages/administration/administration-routing.module.ts @@ -11,11 +11,11 @@ const routes: Routes = [ }, { path: 'personal', - loadChildren: () => import('./pages/staff/staff.module').then(m => m.StaffModule), + loadChildren: () => import('./pages/employees/employees.module').then(m => m.EmployeesModule), }, { path: 'personal/:id', - loadChildren: () => import('./pages/staff-card/staff-card.module').then(m => m.StaffCardModule), + loadChildren: () => import('./pages/employee-card/employee-card.module').then(m => m.EmployeeCardModule), }, { path: 'skapa-konto', diff --git a/apps/dafa-web/src/app/pages/administration/pages/create-account/create-account.component.ts b/apps/dafa-web/src/app/pages/administration/pages/create-account/create-account.component.ts index 7cd6da6..0d58e22 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/create-account/create-account.component.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/create-account/create-account.component.ts @@ -1,12 +1,9 @@ -import { RadiobuttonModel } from '@af/digi-ng/_form/form-radiobutton-group'; import { FormSelectBaseItem } from '@af/digi-ng/_form/form-select-base'; -import { PopoverDirection, PopoverOrientation } from '@af/digi-ng/_popover/popover'; import { ChangeDetectionStrategy, Component } from '@angular/core'; import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms'; import { Router } from '@angular/router'; import { Service } from '@dafa-enums/service.enum'; -import { OutOfOfficeDate } from '@dafa-models/out-of-office-date.model'; -import { StaffService } from '@dafa-services/api/staff.service'; +import { EmployeeService } from '@dafa-services/api/employee.service'; import { RequiredValidator } from '@dafa-validators/required.validator'; import { SocialSecurityNumberValidator } from '@dafa-validators/social-security-number.validator'; import { BehaviorSubject } from 'rxjs'; @@ -38,12 +35,12 @@ export class CreateAccountComponent { }, ]; - constructor(private formBuilder: FormBuilder, private staffService: StaffService, private router: Router) { + constructor(private formBuilder: FormBuilder, private employeeService: EmployeeService, private router: Router) { this.formGroup = this.formBuilder.group({ firstName: this.formBuilder.control('', [RequiredValidator('Förnamn')]), lastName: this.formBuilder.control('', [RequiredValidator('Efternamn')]), ssn: this.formBuilder.control('', [RequiredValidator('Personnummer'), SocialSecurityNumberValidator()]), - staffId: this.formBuilder.control('', [RequiredValidator('Personal-ID')]), + employeeId: this.formBuilder.control('', [RequiredValidator('Personal-ID')]), service: this.formBuilder.control(''), permissions: this.formBuilder.control(false), participant: this.formBuilder.control(false), @@ -104,7 +101,7 @@ export class CreateAccountComponent { delete submittableValues.outOfOfficeStart; delete submittableValues.outOfOfficeEnd; - const post = this.staffService.createAccount(submittableValues).subscribe({ + const post = this.employeeService.createAccount(submittableValues).subscribe({ next: id => { this.router.navigate(['/administration', 'personal', id]); }, diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.html b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.html similarity index 59% rename from apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.html rename to apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.html index a974ff4..0235f02 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.html +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.html @@ -1,6 +1,6 @@ -
- -

{{ detailedStaffData.fullName }}

+
+ +

{{ detailedEmployeeData.fullName }}

Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus accusantium sit, reprehenderit, esse suscipit quis similique harum est eum eveniet aspernatur delectus magni asperiores porro aliquam voluptate! Architecto, @@ -13,16 +13,16 @@

Personnummer
-
{{ detailedStaffData.ssn || '' }}
+
{{ detailedEmployeeData.ssn || '' }}
Personal-ID
-
{{ detailedStaffData.staffId || '' }}
+
{{ detailedEmployeeData.employeeId || '' }}
Telefon arbete
-
- {{ detailedStaffData.phone }} +
+ {{ detailedEmployeeData.phone }}
Mailadress arbete
-
- {{ detailedStaffData.email }} +
+ {{ detailedEmployeeData.email }}
@@ -32,31 +32,31 @@
Behörighet
- -
+ +
{{ item }}
Aktivt i arbete
-
{{ detailedStaffData.active ? 'Ja' : 'Nej' }}
+
{{ detailedEmployeeData.active ? 'Ja' : 'Nej' }}
Frånvaroperiod
- -
+ +
{{ date.start | localDate }} - {{ date.end | localDate }}
Tjänst
-
{{ detailedStaffData.service || '' }}
+
{{ detailedEmployeeData.service || '' }}
Språk
-
{{ detailedStaffData.languages?.join(', ') }}
+
{{ detailedEmployeeData.languages?.join(', ') }}

Utförande verksamhet

-
    -
  • +
      +
    • {{ agency.name }}

      KA-nummer
      @@ -72,23 +72,23 @@

      - Tilldelade deltagare ({{ detailedStaffData.participants?.length || 0 }}) + Tilldelade deltagare ({{ detailedEmployeeData.participants?.length || 0 }})

      - +
        -
      • +
      • -
      • +
      - Byt handledare + Byt handledare
      -

      Inga deltagare har kopplats till {{ detailedStaffData.fullName }}.

      +

      Inga deltagare har kopplats till {{ detailedEmployeeData.fullName }}.

      diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.scss b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.scss similarity index 98% rename from apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.scss rename to apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.scss index abe9cb7..1a55362 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.scss +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.scss @@ -1,7 +1,7 @@ @import 'variables/gutters'; @import 'mixins/list'; -.staff-card { +.employee-card { &__contents { display: flex; flex-direction: column; diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.spec.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.spec.ts similarity index 60% rename from apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.spec.ts rename to apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.spec.ts index 6a31771..5597a54 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.spec.ts @@ -1,22 +1,22 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { StaffCardComponent } from './staff-card.component'; +import { EmployeeCardComponent } from './employee-card.component'; -describe('StaffCardComponent', () => { - let component: StaffCardComponent; - let fixture: ComponentFixture; +describe('EmployeeCardComponent', () => { + let component: EmployeeCardComponent; + let fixture: ComponentFixture; beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [StaffCardComponent], + declarations: [EmployeeCardComponent], imports: [RouterTestingModule], }).compileComponents(); }) ); beforeEach(() => { - fixture = TestBed.createComponent(StaffCardComponent); + fixture = TestBed.createComponent(EmployeeCardComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts similarity index 67% rename from apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.ts rename to apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts index 987d181..0ce8506 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.component.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts @@ -1,28 +1,28 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { UnsubscribeDirective } from '@dafa-directives/unsubscribe.directive'; +import { Employee } from '@dafa-models/employee.model'; import { Participant } from '@dafa-models/participant.model'; -import { Staff } from '@dafa-models/staff.model'; -import { StaffService } from '@dafa-services/api/staff.service'; +import { EmployeeService } from '@dafa-services/api/employee.service'; import { BehaviorSubject, Observable } from 'rxjs'; @Component({ - selector: 'dafa-staff-card', - templateUrl: './staff-card.component.html', - styleUrls: ['./staff-card.component.scss'], + selector: 'dafa-employee-card', + templateUrl: './employee-card.component.html', + styleUrls: ['./employee-card.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class StaffCardComponent extends UnsubscribeDirective { - detailedStaffData$: Observable; +export class EmployeeCardComponent extends UnsubscribeDirective { + detailedEmployeeData$: Observable; private _pendingSelectedParticipants$ = new BehaviorSubject([]); - constructor(private activatedRoute: ActivatedRoute, private staffService: StaffService) { + constructor(private activatedRoute: ActivatedRoute, private employeeService: EmployeeService) { super(); super.unsubscribeOnDestroy( this.activatedRoute.params.subscribe(({ id }) => { console.log(id); - this.detailedStaffData$ = this.staffService.getDetailedStaffData(id); + this.detailedEmployeeData$ = this.employeeService.getDetailedEmployeeData(id); }), this._pendingSelectedParticipants$.subscribe(ids => console.log(ids)) ); @@ -32,8 +32,8 @@ export class StaffCardComponent extends UnsubscribeDirective { return this._pendingSelectedParticipants$.getValue(); } - handleChangeStaff(): void { - console.log('change staff: ', this.pendingSelectedParticipants); + handleChangeEmployee(): void { + console.log('change employee: ', this.pendingSelectedParticipants); } handleChangeParticipant(id: string, checked: boolean): void { diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.module.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.module.ts similarity index 73% rename from apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.module.ts rename to apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.module.ts index ab6aa83..ae246e2 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff-card/staff-card.module.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.module.ts @@ -4,17 +4,17 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { LocalDatePipeModule } from '@dafa-shared/pipes/local-date/local-date.module'; -import { StaffCardComponent } from './staff-card.component'; +import { EmployeeCardComponent } from './employee-card.component'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], - declarations: [StaffCardComponent], + declarations: [EmployeeCardComponent], imports: [ CommonModule, - RouterModule.forChild([{ path: '', component: StaffCardComponent }]), + RouterModule.forChild([{ path: '', component: EmployeeCardComponent }]), DigiNgSkeletonBaseModule, DigiNgLayoutExpansionPanelModule, LocalDatePipeModule, ], }) -export class StaffCardModule {} +export class EmployeeCardModule {} diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html new file mode 100644 index 0000000..11ccb9f --- /dev/null +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html @@ -0,0 +1,58 @@ +
      + + + + + + + + + + + + + + + + +
      + + + + + +
      + {{ employees.fullName }} + {{ employees.service }}{{ employees.kommun }}
      +
      + + + +
      diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.scss b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.scss similarity index 97% rename from apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.scss rename to apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.scss index 305fd90..bdbea07 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.scss +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.scss @@ -1,6 +1,6 @@ @import 'variables/gutters'; -.staff-list { +.employees-list { &__column-head { padding: 0; } diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.spec.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.spec.ts similarity index 60% rename from apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.spec.ts rename to apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.spec.ts index 3116fd7..5125fb7 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.spec.ts @@ -1,23 +1,23 @@ import { DigiNgTableModule } from '@af/digi-ng/_table/table'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { StaffListComponent } from './staff-list.component'; +import { EmployeesListComponent } from './employees-list.component'; -describe('StaffListComponent', () => { - let component: StaffListComponent; - let fixture: ComponentFixture; +describe('EmployeesListComponent', () => { + let component: EmployeesListComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [StaffListComponent], + declarations: [EmployeesListComponent], imports: [RouterTestingModule, DigiNgTableModule], }).compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(StaffListComponent); + fixture = TestBed.createComponent(EmployeesListComponent); component = fixture.componentInstance; - component.staff = []; + component.employees = []; fixture.detectChanges(); }); diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts similarity index 50% rename from apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.ts rename to apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts index bea5fda..7404aea 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts @@ -1,21 +1,21 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { Employee } from '@dafa-models/employee.model'; import { SortBy } from '@dafa-models/sort-by.model'; -import { Staff } from '@dafa-models/staff.model'; import { BehaviorSubject } from 'rxjs'; @Component({ - selector: 'dafa-staff-list', - templateUrl: './staff-list.component.html', - styleUrls: ['./staff-list.component.scss'], + selector: 'dafa-employees-list', + templateUrl: './employees-list.component.html', + styleUrls: ['./employees-list.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class StaffListComponent { - @Input() staff: Staff[]; +export class EmployeesListComponent { + @Input() employees: Employee[]; @Input() sortBy: SortBy | null; - @Output() sorted = new EventEmitter(); + @Output() sorted = new EventEmitter(); private _currentPage$ = new BehaviorSubject(1); - private _staffPerPage = 10; + private _employeesPerPage = 10; private _searchValue$ = new BehaviorSubject(''); @@ -24,22 +24,22 @@ export class StaffListComponent { } get totalPages(): number { - return Math.ceil(this.staff.length / this._staffPerPage); + return Math.ceil(this.employees.length / this._employeesPerPage); } - get pagedStaff(): Staff[] { - return [...this.staff].slice(this.currentResultStart - 1, this.currentResultEnd - 1); + get pagedEmployees(): Employee[] { + return [...this.employees].slice(this.currentResultStart - 1, this.currentResultEnd - 1); } get currentResultStart(): number { - return (this.currentPage - 1) * this._staffPerPage + 1; + return (this.currentPage - 1) * this._employeesPerPage + 1; } get currentResultEnd(): number { - return this.currentResultStart + this._staffPerPage; + return this.currentResultStart + this._employeesPerPage; } - handleSort(key: keyof Staff): void { + handleSort(key: keyof Employee): void { this.sorted.emit(key); } diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.module.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts similarity index 64% rename from apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.module.ts rename to apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts index 69ba915..7795946 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.module.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts @@ -2,13 +2,12 @@ import { DigiNgTableModule } from '@af/digi-ng/_table/table'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { StaffListComponent } from './staff-list.component'; - +import { EmployeesListComponent } from './employees-list.component'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], - declarations: [StaffListComponent], + declarations: [EmployeesListComponent], imports: [CommonModule, RouterModule, DigiNgTableModule], - exports: [StaffListComponent], + exports: [EmployeesListComponent], }) -export class StaffListModule {} +export class EmployeesListModule {} diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.html b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.html similarity index 70% rename from apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.html rename to apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.html index 36ce7d4..ed02b9d 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.html +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.html @@ -1,4 +1,4 @@ -
      +

      Personal

      @@ -7,13 +7,13 @@ leo quis ante porttitor tincidunt. Nam tincidunt imperdiet tortor eu suscipit. Maecenas ut dui est.

      -
      +

      Personallista

      -
      +
      - + diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.scss b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.scss similarity index 95% rename from apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.scss rename to apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.scss index f819d31..e1a4195 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.scss +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.scss @@ -1,5 +1,6 @@ @import 'variables/gutters'; -.staff { + +.employees { &__cta-wrapper { margin-top: var(--digi--layout--gutter); } diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.spec.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.spec.ts similarity index 62% rename from apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.spec.ts rename to apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.spec.ts index 46c5424..7bdbd19 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.spec.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.spec.ts @@ -1,22 +1,22 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { StaffComponent } from './staff.component'; +import { EmployeesComponent } from './employees.component'; -describe('StaffComponent', () => { - let component: StaffComponent; - let fixture: ComponentFixture; +describe('EmployeesComponent', () => { + let component: EmployeesComponent; + let fixture: ComponentFixture; beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [StaffComponent], + declarations: [EmployeesComponent], imports: [RouterTestingModule], }).compileComponents(); }) ); beforeEach(() => { - fixture = TestBed.createComponent(StaffComponent); + fixture = TestBed.createComponent(EmployeesComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts new file mode 100644 index 0000000..4189f63 --- /dev/null +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts @@ -0,0 +1,37 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { IconType } from '@dafa-enums/icon-type.enum'; +import { Employee } from '@dafa-models/employee.model'; +import { SortBy } from '@dafa-models/sort-by.model'; +import { EmployeeService } from '@dafa-services/api/employee.service'; +import { BehaviorSubject, Observable } from 'rxjs'; + +@Component({ + selector: 'dafa-employees', + templateUrl: './employees.component.html', + styleUrls: ['./employees.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EmployeesComponent { + private _searchValue$ = new BehaviorSubject(''); + filteredEmployees$: Observable = this.employeeService.filteredEmployees$; + employeesSortBy$: Observable = this.employeeService.employeesSortBy$; + iconType = IconType; + + constructor(private employeeService: EmployeeService) {} + + get searchValue(): string { + return this._searchValue$.getValue(); + } + + handleSearchSubmit(): void { + this.employeeService.setSearchFilter(this.searchValue); + } + + handleSearchInput($event: CustomEvent): void { + this._searchValue$.next($event.detail.target.value); + } + + handleEmployeesSort(key: keyof Employee): void { + this.employeeService.setEmployeesSortKey(key); + } +} diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.module.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.module.ts similarity index 66% rename from apps/dafa-web/src/app/pages/administration/pages/staff/staff.module.ts rename to apps/dafa-web/src/app/pages/administration/pages/employees/employees.module.ts index 58075a6..3a8f871 100644 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.module.ts +++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.module.ts @@ -1,24 +1,24 @@ +import { DigiNgLinkButtonModule } from '@af/digi-ng/_link/link-button'; import { DigiNgLinkInternalModule } from '@af/digi-ng/_link/link-internal'; import { DigiNgSkeletonBaseModule } from '@af/digi-ng/_skeleton/skeleton-base'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { StaffListModule } from './components/staff-list/staff-list.module'; -import { StaffComponent } from './staff.component'; -import { DigiNgLinkButtonModule } from '@af/digi-ng/_link/link-button'; import { FormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; +import { EmployeesListModule } from './components/employees-list/employees-list.module'; +import { EmployeesComponent } from './employees.component'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], - declarations: [StaffComponent], + declarations: [EmployeesComponent], imports: [ CommonModule, - RouterModule.forChild([{ path: '', component: StaffComponent }]), + RouterModule.forChild([{ path: '', component: EmployeesComponent }]), DigiNgLinkInternalModule, DigiNgSkeletonBaseModule, - StaffListModule, + EmployeesListModule, DigiNgLinkButtonModule, FormsModule, ], }) -export class StaffModule {} +export class EmployeesModule {} diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.html b/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.html deleted file mode 100644 index e0895ed..0000000 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/components/staff-list/staff-list.component.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - -
      - - - - - -
      - {{ staff.fullName }} - {{ staff.service }}{{ staff.kommun }}
      -
      - - - diff --git a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.ts b/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.ts deleted file mode 100644 index 6a64e09..0000000 --- a/apps/dafa-web/src/app/pages/administration/pages/staff/staff.component.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { IconType } from '@dafa-enums/icon-type.enum'; -import { SortBy } from '@dafa-models/sort-by.model'; -import { Staff } from '@dafa-models/staff.model'; -import { StaffService } from '@dafa-services/api/staff.service'; -import { BehaviorSubject, Observable } from 'rxjs'; - -@Component({ - selector: 'dafa-staff', - templateUrl: './staff.component.html', - styleUrls: ['./staff.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, -}) -export class StaffComponent { - private _searchValue$ = new BehaviorSubject(''); - filteredStaff$: Observable = this.staffService.filteredStaff$; - staffSortBy$: Observable = this.staffService.staffSortBy$; - iconType = IconType; - - constructor(private staffService: StaffService) {} - - get searchValue(): string { - return this._searchValue$.getValue(); - } - - handleSearchSubmit(): void { - this.staffService.setSearchFilter(this.searchValue); - } - - handleSearchInput($event: CustomEvent): void { - this._searchValue$.next($event.detail.target.value); - } - - handleStaffSort(key: keyof Staff): void { - this.staffService.setStaffSortKey(key); - } -} diff --git a/apps/dafa-web/src/app/services/api/employee.service.ts b/apps/dafa-web/src/app/services/api/employee.service.ts new file mode 100644 index 0000000..38e298b --- /dev/null +++ b/apps/dafa-web/src/app/services/api/employee.service.ts @@ -0,0 +1,69 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { environment } from '@dafa-environment'; +import { Employee, EmployeeDetail } from '@dafa-models/employee.model'; +import { SortBy } from '@dafa-models/sort-by.model'; +import { sort } from '@dafa-utils/sort.util'; +import { BehaviorSubject, combineLatest, Observable, throwError } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; + +function filterEmployees(employees: Employee[], searchFilter: string): Employee[] { + return employees.filter(person => { + const searchValueExistsInName = person.fullName.toLowerCase().includes(searchFilter.toLowerCase()); + + return searchValueExistsInName; + }); +} + +@Injectable({ + providedIn: 'root', +}) +export class EmployeeService { + private _employeesApiUrl = `${environment.apiBase}/employees`; + private _allEmployees$: Observable = this.httpClient.get(this._employeesApiUrl, { + params: { _embed: 'participants' }, + }); + + private _employeesSortBy$ = new BehaviorSubject({ key: 'fullName', reverse: false }); + public employeesSortBy$: Observable = this._employeesSortBy$.asObservable(); + private _searchFilter$ = new BehaviorSubject(''); + public searchFilter$: Observable = this._searchFilter$.asObservable(); + + private _filteredEmployees$: Observable = combineLatest([this._allEmployees$, this._searchFilter$]).pipe( + map(([employees, searchFilter]) => filterEmployees(employees, searchFilter)) + ); + + public filteredEmployees$: Observable = combineLatest([ + this._filteredEmployees$, + this._employeesSortBy$, + ]).pipe( + map(([employees, sortBy]) => { + return sortBy ? sort(employees, sortBy) : employees; + }) + ); + + constructor(private httpClient: HttpClient) {} + + public getDetailedEmployeeData(id: string): Observable { + return this.httpClient.get(`${this._employeesApiUrl}/${id}`, { params: { _embed: 'participants' } }); + } + + public setSearchFilter(value: string) { + this._searchFilter$.next(value); + } + + public setEmployeesSortKey(key: keyof Employee) { + const currentSortBy = this._employeesSortBy$.getValue(); + const reverse = currentSortBy?.key === key ? !currentSortBy.reverse : false; + this._employeesSortBy$.next({ key, reverse }); + } + + public createAccount(employeesData: EmployeeDetail): Observable { + return this.httpClient.post(this._employeesApiUrl, employeesData).pipe( + map(data => data.id), + catchError(error => { + return throwError(error); + }) + ); + } +} diff --git a/apps/dafa-web/src/app/services/api/staff.service.ts b/apps/dafa-web/src/app/services/api/staff.service.ts deleted file mode 100644 index dfdb173..0000000 --- a/apps/dafa-web/src/app/services/api/staff.service.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; -import { environment } from '@dafa-environment'; -import { SortBy } from '@dafa-models/sort-by.model'; -import { Staff, StaffDetail } from '@dafa-models/staff.model'; -import { sort } from '@dafa-utils/sort.util'; -import { BehaviorSubject, combineLatest, Observable, throwError } from 'rxjs'; -import { catchError, map } from 'rxjs/operators'; - -function filterStaff(staff: Staff[], searchFilter: string): Staff[] { - return staff.filter(person => { - const searchValueExistsInName = person.fullName.toLowerCase().includes(searchFilter.toLowerCase()); - - return searchValueExistsInName; - }); -} - -@Injectable({ - providedIn: 'root', -}) -export class StaffService { - private _staffApiUrl = `${environment.apiBase}/staff`; - private _allStaff$: Observable = this.httpClient.get(this._staffApiUrl, { - params: { _embed: 'participants' }, - }); - - private _staffSortBy$ = new BehaviorSubject({ key: 'fullName', reverse: false }); - public staffSortBy$: Observable = this._staffSortBy$.asObservable(); - private _searchFilter$ = new BehaviorSubject(''); - public searchFilter$: Observable = this._searchFilter$.asObservable(); - - private _filteredStaff$: Observable = combineLatest([this._allStaff$, this._searchFilter$]).pipe( - map(([staff, searchFilter]) => filterStaff(staff, searchFilter)) - ); - - public filteredStaff$: Observable = combineLatest([this._filteredStaff$, this._staffSortBy$]).pipe( - map(([staff, sortBy]) => { - return sortBy ? sort(staff, sortBy) : staff; - }) - ); - - constructor(private httpClient: HttpClient) {} - - public getDetailedStaffData(id: string): Observable { - return this.httpClient.get(`${this._staffApiUrl}/${id}`, { params: { _embed: 'participants' } }); - } - - public setSearchFilter(value: string) { - this._searchFilter$.next(value); - } - - public setStaffSortKey(key: keyof Staff) { - const currentSortBy = this._staffSortBy$.getValue(); - const reverse = currentSortBy?.key === key ? !currentSortBy.reverse : false; - this._staffSortBy$.next({ key, reverse }); - } - - public createAccount(staffData: StaffDetail): Observable { - return this.httpClient.post(this._staffApiUrl, staffData).pipe( - map(data => data.id), - catchError(error => { - return throwError(error); - }) - ); - } -} diff --git a/apps/dafa-web/src/app/utils/map-paths-to-breadcrumbs.util.ts b/apps/dafa-web/src/app/utils/map-paths-to-breadcrumbs.util.ts index 5c233e1..5c076ee 100644 --- a/apps/dafa-web/src/app/utils/map-paths-to-breadcrumbs.util.ts +++ b/apps/dafa-web/src/app/utils/map-paths-to-breadcrumbs.util.ts @@ -13,13 +13,13 @@ export function mapPathsToBreadcrumbs( })), ]; - if (isStaffCardRoute(paths)) { + if (isEmployeeCardRoute(paths)) { breadcrumbs[breadcrumbs.length - 1].text = 'Personalkort'; } return breadcrumbs; } -function isStaffCardRoute(paths: string[]): boolean { +function isEmployeeCardRoute(paths: string[]): boolean { return paths.length === 3 && paths[1] === 'personal'; } diff --git a/mock-api/dafa-web/routes.json b/mock-api/dafa-web/routes.json index f6a73f3..11f3596 100644 --- a/mock-api/dafa-web/routes.json +++ b/mock-api/dafa-web/routes.json @@ -1,5 +1,5 @@ { "/api/*": "/$1", - "/participants": "/participants?_embed=staff", - "/participant/:id": "/participants/:id?_embed=staff" + "/participants": "/participants?_embed=employees", + "/participant/:id": "/participants/:id?_embed=employees" } diff --git a/mock-api/dafa-web/scripts/staff.js b/mock-api/dafa-web/scripts/employees.js similarity index 86% rename from mock-api/dafa-web/scripts/staff.js rename to mock-api/dafa-web/scripts/employees.js index 5b8839c..928843b 100644 --- a/mock-api/dafa-web/scripts/staff.js +++ b/mock-api/dafa-web/scripts/employees.js @@ -14,13 +14,13 @@ const STATUSES = [true, false]; const LANGUAGES = languages.generate(); const AUTHORISATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ekonomi']; -function generateStaff(amount = 10) { - const staff = []; +function generateEmployees(amount = 10) { + const employees = []; for (let i = 1; i <= amount; ++i) { const person = { id: faker.datatype.uuid(), - staffId: faker.datatype.number(), + employeeId: faker.datatype.number(), firstName: faker.name.firstName(), lastName: faker.name.lastName(), kommun: KOMMUN[Math.floor(Math.random() * KOMMUN.length)].kommun, @@ -50,13 +50,13 @@ function generateStaff(amount = 10) { agencies: chooseRandom(AGENCIES, faker.datatype.number(3)), }; - staff.push({ ...person, fullName: `${person.firstName} ${person.lastName}` }); + employees.push({ ...person, fullName: `${person.firstName} ${person.lastName}` }); } - console.info('Staff generated...'); - return staff; + console.info('Employees generated...'); + return employees; } export default { - generate: generateStaff, + generate: generateEmployees, }; diff --git a/mock-api/dafa-web/scripts/generate-api.js b/mock-api/dafa-web/scripts/generate-api.js index 471535e..2fe9144 100644 --- a/mock-api/dafa-web/scripts/generate-api.js +++ b/mock-api/dafa-web/scripts/generate-api.js @@ -1,22 +1,22 @@ import fs from 'fs'; import agencies from './agencies.js'; +import employees from './employees.js'; import kommuner from './kommuner.js'; import languages from './languages.js'; import participants from './participants.js'; import services from './services.js'; -import staff from './staff.js'; -const generatedStaff = staff.generate(5); +const generatedEmployees = employees.generate(5); const apiData = { services: services.generate(), languages: languages.generate(), - staff: generatedStaff, + employees: generatedEmployees, kommuner: kommuner.generate(), agencies: agencies.generate(), participants: participants.generate(50).map(participant => ({ ...participant, - staffId: generatedStaff[Math.floor(Math.random() * generatedStaff.length)].id, + employeeId: generatedEmployees[Math.floor(Math.random() * generatedEmployees.length)].id, })), };