build: Add build process for newgui (#7351)
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
import { Component, OnInit, AfterViewInit, ViewChild, AfterViewChecked } from '@angular/core';
|
||||
import {
|
||||
trigger,
|
||||
state,
|
||||
style,
|
||||
animate,
|
||||
transition,
|
||||
} from '@angular/animations';
|
||||
import { SystemConfigService } from '../services/system-config.service';
|
||||
import { StType } from '../type';
|
||||
import { FilterService } from '../services/filter.service';
|
||||
import { ProgressService } from '../services/progress.service';
|
||||
import { MatProgressBar } from '@angular/material/progress-bar';
|
||||
import { MessageService } from '../services/message.service';
|
||||
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
||||
import { DialogComponent } from '../dialog/dialog.component';
|
||||
import { FolderService } from '../services/folder.service';
|
||||
import { DeviceService } from '../services/device.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dashboard',
|
||||
templateUrl: './dashboard.component.html',
|
||||
styleUrls: ['./dashboard.component.scss'],
|
||||
providers: [FilterService],
|
||||
animations: [
|
||||
trigger('loading', [
|
||||
state('start', style({
|
||||
marginTop: '20px',
|
||||
})),
|
||||
state('done', style({
|
||||
marginTop: '0px',
|
||||
})),
|
||||
transition('start => done', [
|
||||
animate('0.2s 0.2s')
|
||||
]),
|
||||
transition('done => start', [
|
||||
animate('0.2s 0.2s')
|
||||
]),
|
||||
]),
|
||||
trigger('progressBar', [
|
||||
state('start', style({
|
||||
opacity: 100,
|
||||
visibility: 'visible'
|
||||
})),
|
||||
state('done', style({
|
||||
opacity: 0,
|
||||
visibility: 'hidden'
|
||||
})),
|
||||
transition('start => done', [
|
||||
animate('0.35s')
|
||||
]),
|
||||
transition('done => start', [
|
||||
animate('0.35s')
|
||||
]),
|
||||
]),
|
||||
]
|
||||
})
|
||||
export class DashboardComponent implements OnInit, AfterViewInit {
|
||||
@ViewChild(MatProgressBar) progressBar: MatProgressBar;
|
||||
folderChart: StType = StType.Folder;
|
||||
deviceChart: StType = StType.Device;
|
||||
progressValue: number = 0;
|
||||
isLoading = true;
|
||||
private dialogRef: MatDialogRef<DialogComponent>;
|
||||
|
||||
|
||||
constructor(
|
||||
private systemConfigService: SystemConfigService,
|
||||
private folderService: FolderService,
|
||||
private deviceService: DeviceService,
|
||||
private progressService: ProgressService,
|
||||
private messageService: MessageService,
|
||||
public dialog: MatDialog
|
||||
) { }
|
||||
|
||||
ngOnInit() {
|
||||
// Request data from Rest API
|
||||
this.systemConfigService.getSystemConfig().subscribe(
|
||||
_ => {
|
||||
// Request devices and folders for charts and lists
|
||||
this.folderService.requestFolders();
|
||||
this.deviceService.requestDevices();
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
ngAfterViewInit() {
|
||||
this.isLoading = true;
|
||||
|
||||
// Listen for progress service changes
|
||||
let t = setInterval(() => {
|
||||
if (this.progressService.isComplete()) {
|
||||
clearInterval(t);
|
||||
this.progressValue = 100;
|
||||
this.isLoading = false;
|
||||
}
|
||||
this.progressValue = this.progressService.percentValue;
|
||||
}, 100);
|
||||
|
||||
// Listen for messages from other services/components
|
||||
this.messageService.messageAdded$
|
||||
.subscribe(
|
||||
_ => {
|
||||
// Open dialog
|
||||
if (!this.dialogRef)
|
||||
this.dialogRef = this.dialog.open(DialogComponent);
|
||||
|
||||
this.dialogRef.afterClosed().subscribe(
|
||||
_ => {
|
||||
this.dialogRef = null;
|
||||
this.messageService.clear();
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user