From 57f235fc814473f5be947e2b31e7d57f83fcbdd8 Mon Sep 17 00:00:00 2001 From: Danijel Anđelković Date: Sun, 17 Apr 2022 21:52:27 +0200 Subject: Sredio komponentu za notifikacije, tako da moze da se skroluje ako ima puno notifikacija i da mogu da se obrisu notifikacije. Ako stigne notifikacija treniranja za isti model iz prethodne notifikacije, prethodna se prepisuje. --- .../notifications/notifications.component.ts | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'frontend/src/app/_elements/notifications/notifications.component.ts') diff --git a/frontend/src/app/_elements/notifications/notifications.component.ts b/frontend/src/app/_elements/notifications/notifications.component.ts index e199f70a..9b460240 100644 --- a/frontend/src/app/_elements/notifications/notifications.component.ts +++ b/frontend/src/app/_elements/notifications/notifications.component.ts @@ -21,13 +21,33 @@ export class NotificationsComponent implements OnInit { this.notifications.push(new Notification(`Obrađen izvor podataka: ${dName}`, dId, 1.0, false)); }); - this.signalRService.hubConnection.on("NotifyEpoch", (epoch: string, mName: string, mId: string, numEpochs) => { - //todo epoch - this.notifications.push(new Notification(`Treniranje modela: ${mName}`, mId, 0.5)); + this.signalRService.hubConnection.on("NotifyEpoch", (mName: string, mId: string, stat: string, totalEpochs: number, currentEpoch: number) => { + const existingNotification = this.notifications.find(x => x.id === mId) + const progress = ((currentEpoch + 1) / totalEpochs); + console.log("Ukupno epoha", totalEpochs, "Trenutna epoha:", currentEpoch); + if (!existingNotification) + this.notifications.push(new Notification(`Treniranje modela: ${mName}`, mId, progress, true)); + else { + existingNotification.progress = progress; + } + }); + + this.signalRService.hubConnection.on("NotifyModel", (mName: string, mId: string, stat: string, totalEpochs: number, currentEpoch: number) => { + const existingNotification = this.notifications.find(x => x.id === mId) + const progress = ((currentEpoch + 1) / totalEpochs); + if (!existingNotification) + this.notifications.push(new Notification(`Treniranje modela: ${mName}`, mId, progress, true)); + else { + existingNotification.progress = progress; + } }); } else { console.warn("Notifications: No connection!"); } } + removeNotification(notification: Notification) { + this.notifications.splice(this.notifications.indexOf(notification), 1); + } + } -- cgit v1.2.3 From 314e7ff51cdbb49e5d30c6a67bcfa80a42736948 Mon Sep 17 00:00:00 2001 From: Sonja Galovic Date: Wed, 20 Apr 2022 01:13:38 +0200 Subject: Dugme za treniranje se disable-uje dok traje treniranje. Podesene strelice za navigaciju i linkovi kod pravljenja eksperimenta. Obrisani/zakomentarisani console.logovi na frontu. --- .../src/app/_elements/metric-view/metric-view.component.ts | 6 +++--- .../src/app/_elements/model-load/model-load.component.ts | 2 +- .../app/_elements/notifications/notifications.component.ts | 2 +- frontend/src/app/_services/signal-r.service.ts | 6 +++--- frontend/src/app/app.component.ts | 1 - frontend/src/app/experiment/experiment.component.css | 5 +++++ frontend/src/app/experiment/experiment.component.html | 14 +++++++------- frontend/src/app/experiment/experiment.component.ts | 12 +++++++++++- frontend/src/app/training/training.component.html | 2 +- frontend/src/app/training/training.component.ts | 7 +++++-- 10 files changed, 37 insertions(+), 20 deletions(-) (limited to 'frontend/src/app/_elements/notifications/notifications.component.ts') diff --git a/frontend/src/app/_elements/metric-view/metric-view.component.ts b/frontend/src/app/_elements/metric-view/metric-view.component.ts index 76dd7d20..18b0d1ad 100644 --- a/frontend/src/app/_elements/metric-view/metric-view.component.ts +++ b/frontend/src/app/_elements/metric-view/metric-view.component.ts @@ -16,13 +16,13 @@ export class MetricViewComponent implements OnInit { if(this.signalRService.hubConnection) { this.signalRService.hubConnection.on("NotifyEpoch", (mName: string, mId: string, stat: string, totalEpochs: number, currentEpoch: number) => { - console.log(stat) - console.log(totalEpochs) + //console.log(stat) + //console.log(totalEpochs) const data=JSON.parse(stat) for (let key in data) { let value = data[key]; - console.log(value) + //console.log(value) } }); diff --git a/frontend/src/app/_elements/model-load/model-load.component.ts b/frontend/src/app/_elements/model-load/model-load.component.ts index 8bf8fd93..8fe864b7 100644 --- a/frontend/src/app/_elements/model-load/model-load.component.ts +++ b/frontend/src/app/_elements/model-load/model-load.component.ts @@ -57,7 +57,7 @@ export class ModelLoadComponent implements OnInit { else { this.modelsService.getMyModelsByType(ProblemType.Regression).subscribe((models) => { this.myModels = models; - console.log("modeli po tipu: ", this.myModels); + //console.log("modeli po tipu: ", this.myModels); }); }*/ } diff --git a/frontend/src/app/_elements/notifications/notifications.component.ts b/frontend/src/app/_elements/notifications/notifications.component.ts index 9b460240..f324662a 100644 --- a/frontend/src/app/_elements/notifications/notifications.component.ts +++ b/frontend/src/app/_elements/notifications/notifications.component.ts @@ -24,7 +24,7 @@ export class NotificationsComponent implements OnInit { this.signalRService.hubConnection.on("NotifyEpoch", (mName: string, mId: string, stat: string, totalEpochs: number, currentEpoch: number) => { const existingNotification = this.notifications.find(x => x.id === mId) const progress = ((currentEpoch + 1) / totalEpochs); - console.log("Ukupno epoha", totalEpochs, "Trenutna epoha:", currentEpoch); + //console.log("Ukupno epoha", totalEpochs, "Trenutna epoha:", currentEpoch); if (!existingNotification) this.notifications.push(new Notification(`Treniranje modela: ${mName}`, mId, progress, true)); else { diff --git a/frontend/src/app/_services/signal-r.service.ts b/frontend/src/app/_services/signal-r.service.ts index b279b5ca..109fc9e5 100644 --- a/frontend/src/app/_services/signal-r.service.ts +++ b/frontend/src/app/_services/signal-r.service.ts @@ -16,13 +16,13 @@ export class SignalRService { }).build(); this.hubConnection.on("Notify", (message: string) => { - console.log(" " + message); + //console.log(" " + message); }); this.hubConnection .start() - .then(() => console.log("con Started")) - .catch(err => console.log("Error" + err)) + .then(() => {}) + .catch(err => {}) } constructor(private cookie: CookieService) { } } diff --git a/frontend/src/app/app.component.ts b/frontend/src/app/app.component.ts index 59f247ed..54c18bec 100644 --- a/frontend/src/app/app.component.ts +++ b/frontend/src/app/app.component.ts @@ -50,7 +50,6 @@ export class AppComponent implements OnInit { private startHttpRequest = () => { this.http.get('http://localhost:5283/chatHub') .subscribe(res => { - console.log(res); }) } diff --git a/frontend/src/app/experiment/experiment.component.css b/frontend/src/app/experiment/experiment.component.css index 4a3d7741..d84a897e 100644 --- a/frontend/src/app/experiment/experiment.component.css +++ b/frontend/src/app/experiment/experiment.component.css @@ -40,4 +40,9 @@ ul li:hover { h2 { color: #003459; +} + +.boldClass { + font-weight: bold; + font-size: 125%; } \ No newline at end of file diff --git a/frontend/src/app/experiment/experiment.component.html b/frontend/src/app/experiment/experiment.component.html index ffc1db9d..4675236c 100644 --- a/frontend/src/app/experiment/experiment.component.html +++ b/frontend/src/app/experiment/experiment.component.html @@ -4,12 +4,12 @@
-
- Izvor podataka + -
- -
diff --git a/frontend/src/app/experiment/experiment.component.ts b/frontend/src/app/experiment/experiment.component.ts index 75c8e0d8..1533ceb3 100644 --- a/frontend/src/app/experiment/experiment.component.ts +++ b/frontend/src/app/experiment/experiment.component.ts @@ -8,7 +8,7 @@ import { ExperimentsService } from '../_services/experiments.service'; import { ColumnEncoding } from '../_data/Experiment'; import { Router } from '@angular/router'; import { TrainingComponent } from '../training/training.component'; -import { retryWhen } from 'rxjs'; +import { NEVER, retryWhen } from 'rxjs'; @Component({ selector: 'app-experiment', @@ -32,6 +32,7 @@ export class ExperimentComponent implements OnInit { selectedNotNullColumnsArray: string[] = []; tempTestSetDistribution = 90; + carouselIndex: number = 0; constructor(private experimentsService: ExperimentsService, private router: Router) { } @@ -219,4 +220,13 @@ export class ExperimentComponent implements OnInit { } return counter; } + + updateCarouselIndex(newIndex: number) { + if (newIndex > 2) + newIndex = 2; + else if (newIndex < 0) + newIndex = 0; + + this.carouselIndex = newIndex; + } } diff --git a/frontend/src/app/training/training.component.html b/frontend/src/app/training/training.component.html index 2bee3b12..0849d0c3 100644 --- a/frontend/src/app/training/training.component.html +++ b/frontend/src/app/training/training.component.html @@ -26,7 +26,7 @@

3. Treniranje modela

-
diff --git a/frontend/src/app/training/training.component.ts b/frontend/src/app/training/training.component.ts index 4c38f166..bff3304f 100644 --- a/frontend/src/app/training/training.component.ts +++ b/frontend/src/app/training/training.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; +import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import Shared from '../Shared'; import Experiment from '../_data/Experiment'; @@ -17,6 +17,8 @@ import { SignalRService } from '../_services/signal-r.service'; export class TrainingComponent implements OnInit { @ViewChild(ModelLoadComponent) modelLoadComponent?: ModelLoadComponent; + @ViewChild("trainButton") trainButtonRef!: ElementRef; + myExperiments?: Experiment[]; selectedExperiment?: Experiment; @@ -55,7 +57,6 @@ export class TrainingComponent implements OnInit { this.myExperiments = experiments; this.selectedExperiment = this.myExperiments.filter(x => x._id == andSelectWithId)[0]; - console.log("selektovan exp u training comp: ", this.selectedExperiment); }); } @@ -80,8 +81,10 @@ export class TrainingComponent implements OnInit { Shared.openDialog("Greška", "Molimo Vas da izaberete model."); return; } + this.trainButtonRef.nativeElement.disabled = true; this.modelsService.trainModel(this.selectedModel._id, this.selectedExperiment._id).subscribe((response: any) => { //console.log('Train model complete!', response); + this.trainButtonRef.nativeElement.disabled = false; Shared.openDialog("Obaveštenje", "Treniranje modela je uspešno završeno!"); this.trainingResult = response; }); -- cgit v1.2.3