diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
index 021369e..3cfc5de 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
@@ -1,4 +1,5 @@
+
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.scss b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.scss
index a6ab160..a0482f9 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.scss
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.scss
@@ -1,6 +1,7 @@
@import 'variables/gutters';
.employees-list {
+ position: relative;
// &__column-head {
// // padding: 0;
// }
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
index c1b2172..6889ca3 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
@@ -14,6 +14,7 @@ import { Sort } from '@msfa-models/sort.model';
export class EmployeesListComponent {
@Input() employees: EmployeeCompact[];
@Input() paginationMeta: PaginationMeta;
+ @Input() employeesLoading: boolean;
@Input() sort: Sort;
@Output() sorted = new EventEmitter();
@Output() paginated = new EventEmitter();
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts
index 40d0470..ebe1bc9 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts
@@ -1,12 +1,13 @@
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
+import { LoaderModule } from '@msfa-shared/components/loader/loader.module';
import { EmployeesListComponent } from './employees-list.component';
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [EmployeesListComponent],
- imports: [CommonModule, RouterModule],
+ imports: [CommonModule, RouterModule, LoaderModule],
exports: [EmployeesListComponent],
})
export class EmployeesListModule {}
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html
index 44a1bcd..7b8bef2 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html
@@ -39,6 +39,7 @@
*ngIf="employeesData$ | async as employeesData; else loadingRef"
[employees]="employeesData.data"
[paginationMeta]="employeesData.meta"
+ [employeesLoading]="employeesLoading$ | async"
[sort]="sort$ | async"
(sorted)="handleEmployeesSort($event)"
(paginated)="setNewPage($event)"
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts
index 7ab1db0..e258669 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts
@@ -16,6 +16,7 @@ export class EmployeesComponent {
private _searchValue$ = new BehaviorSubject('');
onlyEmployeesWithoutAuthorization$: Observable = this.employeeService.onlyEmployeesWithoutAuthorization$;
employeesData$: Observable = this.employeeService.employeesData$;
+ employeesLoading$: Observable = this.employeeService.employeesLoading$;
sort$: Observable> = this.employeeService.sort$;
iconType = IconType;
diff --git a/apps/mina-sidor-fa/src/app/pages/start/start.component.html b/apps/mina-sidor-fa/src/app/pages/start/start.component.html
index 38efebf..5ac8587 100644
--- a/apps/mina-sidor-fa/src/app/pages/start/start.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/start/start.component.html
@@ -36,7 +36,5 @@
-
-
-
+
diff --git a/apps/mina-sidor-fa/src/app/pages/start/start.module.ts b/apps/mina-sidor-fa/src/app/pages/start/start.module.ts
index ae827f6..e3e79dc 100644
--- a/apps/mina-sidor-fa/src/app/pages/start/start.module.ts
+++ b/apps/mina-sidor-fa/src/app/pages/start/start.module.ts
@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { LayoutModule } from '@msfa-shared/components/layout/layout.module';
+import { LoaderModule } from '@msfa-shared/components/loader/loader.module';
import { StartComponent } from './start.component';
@NgModule({
@@ -13,6 +14,7 @@ import { StartComponent } from './start.component';
RouterModule.forChild([{ path: '', component: StartComponent }]),
LayoutModule,
DigiNgCardModule,
+ LoaderModule,
],
})
export class StartModule {}
diff --git a/apps/mina-sidor-fa/src/app/shared/components/layout/layout.component.html b/apps/mina-sidor-fa/src/app/shared/components/layout/layout.component.html
index 636728e..2851d8d 100644
--- a/apps/mina-sidor-fa/src/app/shared/components/layout/layout.component.html
+++ b/apps/mina-sidor-fa/src/app/shared/components/layout/layout.component.html
@@ -19,9 +19,4 @@
-
-
-
+
diff --git a/apps/mina-sidor-fa/src/app/shared/components/layout/layout.module.ts b/apps/mina-sidor-fa/src/app/shared/components/layout/layout.module.ts
index 9e769bc..6dbf25b 100644
--- a/apps/mina-sidor-fa/src/app/shared/components/layout/layout.module.ts
+++ b/apps/mina-sidor-fa/src/app/shared/components/layout/layout.module.ts
@@ -4,6 +4,7 @@ import { HttpClient } from '@angular/common/http';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { MarkdownModule } from 'ngx-markdown';
+import { LoaderModule } from '../loader/loader.module';
import { FooterModule } from './components/footer/footer.module';
import { NavigationModule } from './components/navigation/navigation.module';
import { SidebarModule } from './components/sidebar/sidebar.module';
@@ -22,6 +23,7 @@ import { LayoutComponent } from './layout.component';
FooterModule,
MarkdownModule.forRoot({ loader: HttpClient }),
DigiNgNavigationBreadcrumbsModule,
+ LoaderModule,
],
exports: [LayoutComponent],
})
diff --git a/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.html b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.html
new file mode 100644
index 0000000..7ff866f
--- /dev/null
+++ b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.scss b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.scss
new file mode 100644
index 0000000..9fc28a8
--- /dev/null
+++ b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.scss
@@ -0,0 +1,22 @@
+@import 'mixins/backdrop';
+
+@keyframes spinning {
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+.loader {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ &--full-screen {
+ @include msfa__backdrop(1000);
+ }
+
+ &__spinner {
+ display: inline-flex;
+ animation: spinning 1s linear infinite;
+ }
+}
diff --git a/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.spec.ts b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.spec.ts
new file mode 100644
index 0000000..d937e0c
--- /dev/null
+++ b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.spec.ts
@@ -0,0 +1,26 @@
+/* tslint:disable:no-unused-variable */
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { LoaderComponent } from './loader.component';
+
+describe('LoaderComponent', () => {
+ let component: LoaderComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ void TestBed.configureTestingModule({
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
+ declarations: [LoaderComponent],
+ }).compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(LoaderComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.ts b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.ts
new file mode 100644
index 0000000..c2c0195
--- /dev/null
+++ b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.component.ts
@@ -0,0 +1,19 @@
+import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
+
+@Component({
+ selector: 'msfa-loader',
+ templateUrl: './loader.component.html',
+ styleUrls: ['./loader.component.scss'],
+ changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class LoaderComponent {
+ private readonly _defaultClass = 'loader';
+ @Input() fullScreen = false;
+
+ get classes(): string {
+ if (this.fullScreen) {
+ return `${this._defaultClass} ${this._defaultClass}--full-screen`;
+ }
+ return this._defaultClass;
+ }
+}
diff --git a/apps/mina-sidor-fa/src/app/shared/components/loader/loader.module.ts b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.module.ts
new file mode 100644
index 0000000..b92c4ff
--- /dev/null
+++ b/apps/mina-sidor-fa/src/app/shared/components/loader/loader.module.ts
@@ -0,0 +1,12 @@
+import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog';
+import { CommonModule } from '@angular/common';
+import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
+import { LoaderComponent } from './loader.component';
+
+@NgModule({
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
+ declarations: [LoaderComponent],
+ imports: [CommonModule, DigiNgDialogModule],
+ exports: [LoaderComponent],
+})
+export class LoaderModule {}
diff --git a/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts b/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts
index 73618bd..f4b0c06 100644
--- a/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts
+++ b/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts
@@ -44,6 +44,8 @@ export class EmployeeService extends UnsubscribeDirective {
public lastDeletedEmployee$: Observable = this._lastDeletedEmployee$.asObservable();
private _employeeToDelete$ = new BehaviorSubject(null);
public employeeToDelete$: Observable = this._employeeToDelete$.asObservable();
+ private _employeesLoading$ = new BehaviorSubject(false);
+ public employeesLoading$: Observable = this._employeesLoading$.asObservable();
constructor(private httpClient: HttpClient, private errorService: ErrorService) {
super();
@@ -110,11 +112,13 @@ export class EmployeeService extends UnsubscribeDirective {
if (onlyEmployeesWithoutAuthorization) {
params.onlyEmployeesWithoutAuthorization = onlyEmployeesWithoutAuthorization?.toString();
}
+ this._employeesLoading$.next(true);
return this.httpClient
.get(this._apiBaseUrl, { params })
.pipe(
map(({ data, meta }) => {
+ this._employeesLoading$.next(false);
return { data: data.map(employee => mapResponseToEmployeeCompact(employee)), meta };
})
);
diff --git a/apps/mina-sidor-fa/src/styles/styles.scss b/apps/mina-sidor-fa/src/styles/styles.scss
index abf4ef6..9577e44 100644
--- a/apps/mina-sidor-fa/src/styles/styles.scss
+++ b/apps/mina-sidor-fa/src/styles/styles.scss
@@ -4,12 +4,6 @@
@import 'mixins/icon';
@import 'mixins/link';
-@keyframes spinning {
- to {
- transform: rotate(360deg);
- }
-}
-
* {
font-family: var(--digi--typography--font-family);
box-sizing: border-box;
@@ -74,20 +68,6 @@ dl {
@include msfa__backdrop;
}
- &__loading-wrapper {
- display: flex;
- align-items: center;
- justify-content: center;
-
- &--full-screen {
- @include msfa__backdrop(1000);
- }
- }
- &__spinner {
- display: inline-flex;
- animation: spinning 1s linear infinite;
- }
-
&__digi-icon {
display: inline-flex;
}