Browse Source

🚸 add loader

jmacura 4 năm trước cách đây
mục cha
commit
4e46f3c1ab

+ 9 - 0
src/adjuster/adjuster-event.service.ts

@@ -0,0 +1,9 @@
+import {Injectable} from '@angular/core';
+import {Subject} from 'rxjs';
+
+@Injectable({providedIn: 'root'})
+export class AdjusterEventService {
+  loaded: Subject<{success: boolean; type: string; err?}> = new Subject();
+  methodChanged: Subject<string> = new Subject();
+  constructor() {}
+}

+ 23 - 0
src/adjuster/adjuster-loader.component.ts

@@ -0,0 +1,23 @@
+import {Component, Input, ViewRef} from '@angular/core';
+
+import {HsDialogComponent} from 'hslayers-ng/components/layout/dialogs/dialog-component.interface';
+import {HsDialogContainerService} from 'hslayers-ng/components/layout/dialogs/dialog-container.service';
+
+import {AdjusterService} from './adjuster.service';
+
+@Component({
+  selector: 'pra-adjuster-loader',
+  template: require('./adjuster-loader.directive.html'),
+})
+export class AdjusterLoaderComponent implements HsDialogComponent {
+  @Input() data;
+  viewRef: ViewRef;
+  constructor(
+    public hsDialogContainerService: HsDialogContainerService,
+    public adjusterService: AdjusterService
+  ) {
+    /*this.adjusterEventService.loaded.subscribe(() => {
+      this.hsDialogContainerService.destroy(this);
+    });*/
+  }
+}

+ 8 - 0
src/adjuster/adjuster-loader.directive.html

@@ -0,0 +1,8 @@
+<div class="loader-splash" *ngIf="adjusterService.isInProcess()">
+  <div class="center-block">
+    <h1>Calculating clusters</h1>
+    <div class="spinner-border spinner" role="status">
+      <span class="sr-only">Loading...</span>
+    </div>
+  </div>
+</div>

+ 4 - 1
src/adjuster/adjuster.component.ts

@@ -1,9 +1,11 @@
 import {Component, ViewRef} from '@angular/core';
 
+import {HsDialogContainerService} from 'hslayers-ng/components/layout/dialogs/dialog-container.service';
 import {HsLayoutService} from 'hslayers-ng/components/layout/layout.service';
 import {HsPanelComponent} from 'hslayers-ng/components/layout/panels/panel-component.interface';
 
 //import {AdjusterEventService} from './adjuster-event.service';
+import {AdjusterLoaderComponent} from './adjuster-loader.component';
 import {AdjusterService} from './adjuster.service';
 
 @Component({
@@ -19,7 +21,7 @@ export class AdjusterComponent implements HsPanelComponent {
 
   constructor(
     public adjusterService: AdjusterService,
-    //public adjusterEventService: AdjusterEventService,
+    public hsDialogContainerService: HsDialogContainerService,
     public hsLayoutService: HsLayoutService
   ) {
     this.descriptionVisible = false;
@@ -33,6 +35,7 @@ export class AdjusterComponent implements HsPanelComponent {
 
   ngOnInit(): void {
     this.adjusterService.init();
+    this.hsDialogContainerService.create(AdjusterLoaderComponent, {});
   }
 
   isVisible(): boolean {

+ 5 - 5
src/adjuster/adjuster.module.ts

@@ -7,8 +7,8 @@ import {TranslateModule} from '@ngx-translate/core';
 import {HsPanelHelpersModule} from 'hslayers-ng/components/layout/panels/panel-helpers.module';
 
 import {AdjusterComponent} from './adjuster.component';
-//import {AdjusterEventService} from './adjuster-event.service';
-//import {AdjusterLoaderComponent} from './adjuster-loader.component';
+import {AdjusterEventService} from './adjuster-event.service';
+import {AdjusterLoaderComponent} from './adjuster-loader.component';
 import {AdjusterService} from './adjuster.service';
 
 @NgModule({
@@ -21,8 +21,8 @@ import {AdjusterService} from './adjuster.service';
     TranslateModule,
   ],
   exports: [AdjusterComponent],
-  declarations: [AdjusterComponent, /*AdjusterLoaderComponent*/],
-  entryComponents: [AdjusterComponent, /*AdjusterLoaderComponent*/],
-  providers: [AdjusterService, /*AdjusterEventService*/],
+  declarations: [AdjusterComponent, AdjusterLoaderComponent],
+  entryComponents: [AdjusterComponent, AdjusterLoaderComponent],
+  providers: [AdjusterService, AdjusterEventService],
 })
 export class AdjusterModule {}

+ 1 - 0
src/adjuster/adjuster.service.ts

@@ -1,6 +1,7 @@
 import {HttpClient} from '@angular/common/http';
 import {Injectable} from '@angular/core';
 
+import {HsDialogContainerService} from 'hslayers-ng/components/layout/dialogs/dialog-container.service';
 import {HsLayerManagerService} from 'hslayers-ng/components/layermanager';
 import {HsUtilsService} from 'hslayers-ng/components/utils/utils.service';