From 0f06229fa6a112b5299ac5182d938adb7ef39bde Mon Sep 17 00:00:00 2001 From: Sonja Galovic Date: Wed, 16 Mar 2022 20:05:41 +0100 Subject: Gotove stranica za dodavanje datasetova/modela i komponenta dataset-load. (dizajn + funkcionalnost) --- frontend/src/app/_data/Model.ts | 2 +- .../dataset-load/dataset-load.component.html | 94 +++---- .../app/_pages/add-model/add-model.component.css | 6 +- .../app/_pages/add-model/add-model.component.html | 276 +++++++++++++-------- .../app/_pages/add-model/add-model.component.ts | 23 +- frontend/src/app/_services/models.service.ts | 7 +- 6 files changed, 255 insertions(+), 153 deletions(-) (limited to 'frontend') diff --git a/frontend/src/app/_data/Model.ts b/frontend/src/app/_data/Model.ts index 43342fb0..c0bc339d 100644 --- a/frontend/src/app/_data/Model.ts +++ b/frontend/src/app/_data/Model.ts @@ -4,7 +4,7 @@ export default class Model { public description: string = '', public dateCreated: Date = new Date(), public lastUpdated: Date = new Date(), - public datasetId?: number, + public datasetId: string = '', // Test set settings public inputColumns: string[] = [], diff --git a/frontend/src/app/_elements/dataset-load/dataset-load.component.html b/frontend/src/app/_elements/dataset-load/dataset-load.component.html index 2a611a96..fcec6ec3 100644 --- a/frontend/src/app/_elements/dataset-load/dataset-load.component.html +++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.html @@ -1,57 +1,61 @@
-
- - +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + +
+ +
- -
- -
- - -
- - - -      - -      - +
+ + + + + + + + + + + +
{{item}}
{{col}}
+ + + + + + + +
{{col}}
- - - - - - - - - - - - -
{{item}}
{{col}}
- - - - - - - -
{{col}}
. . .
{{rowsNumber}} x {{colsNumber}}
- -
\ No newline at end of file diff --git a/frontend/src/app/_pages/add-model/add-model.component.css b/frontend/src/app/_pages/add-model/add-model.component.css index 5184733d..4bf569cc 100644 --- a/frontend/src/app/_pages/add-model/add-model.component.css +++ b/frontend/src/app/_pages/add-model/add-model.component.css @@ -1,6 +1,6 @@ #header { background-color: #003459; - padding-top: 25px; + padding-top: 30px; padding-bottom: 20px; } #header h1 { @@ -11,4 +11,8 @@ #container { border-radius: 8px; +} + +#wrapper { + color: #003459; } \ No newline at end of file diff --git a/frontend/src/app/_pages/add-model/add-model.component.html b/frontend/src/app/_pages/add-model/add-model.component.html index f5270127..004f308b 100644 --- a/frontend/src/app/_pages/add-model/add-model.component.html +++ b/frontend/src/app/_pages/add-model/add-model.component.html @@ -6,38 +6,36 @@
-
-

Nov model:

-
-
+
+

Nov model:

+
-
-
-    - -
-
+
+
+    + +
-
+

Izvor podataka:

-
+

Izaberite ulazne kolone:

-
+

@@ -50,7 +48,7 @@

Izaberite izlaznu kolonu:

-
+

@@ -62,50 +60,117 @@
-
+
+ -

Parametri treniranja:

+ +

Parametri treniranja:

-
-
- - +
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
-
- - + +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
-
- - + +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
-
- - + +
+
+
+
+ +
+
+ +
+
+
+
+ + +
+
+
-
- -
+
+
+
+      + test + + + trening +
+
+
-
- - - -
-
- - + +
+
+
+
+
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - +
+
+
+
+ +
+
+ +
+
+
+
+
+

-
-
- -
+
+
+ +
+ +
+ + diff --git a/frontend/src/app/_pages/add-model/add-model.component.ts b/frontend/src/app/_pages/add-model/add-model.component.ts index c18ad324..01e8ade9 100644 --- a/frontend/src/app/_pages/add-model/add-model.component.ts +++ b/frontend/src/app/_pages/add-model/add-model.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit, ViewChild } from '@angular/core'; +import { Observable, of } from 'rxjs'; import Model from 'src/app/_data/Model'; import { ANNType, Encoding, ActivationFunction, LossFunction, Optimizer } from 'src/app/_data/Model'; import { DatasetLoadComponent } from 'src/app/_elements/dataset-load/dataset-load.component'; @@ -32,14 +33,24 @@ export class AddModelComponent implements OnInit { } addModel() { + this.saveModel(false); //trajno cuvanje + } + trainModel() { + this.saveModel(true).subscribe((modelId : any) => { + if (modelId) + this.models.trainModel(modelId); + }); //privremeno cuvanje modela => vraca id sacuvanog modela koji cemo da treniramo sad + } + saveModel(temporary: boolean) : any { if (this.datasetLoadComponent) - this.models.addDataset(this.datasetLoadComponent?.dataset); + this.models.addDataset(this.datasetLoadComponent?.dataset).subscribe((response) => {//id dataseta je response + this.newModel.datasetId = response; - this.getCheckedInputCols(); - this.getCheckedOutputCol(); - if (this.validationInputsOutput()) - this.models.addModel(this.newModel).subscribe((response) => { - console.log(response); + this.getCheckedInputCols(); + this.getCheckedOutputCol(); + if (this.validationInputsOutput()) + return this.models.addModel(this.newModel); //id modela + return of(null); }); } diff --git a/frontend/src/app/_services/models.service.ts b/frontend/src/app/_services/models.service.ts index f85ca44e..80dc1ae3 100644 --- a/frontend/src/app/_services/models.service.ts +++ b/frontend/src/app/_services/models.service.ts @@ -14,9 +14,12 @@ export class ModelsService { constructor(private http: HttpClient, private authService: AuthService) { } addModel(model: Model) { - return this.http.post(`${API_SETTINGS.apiURL}/model/sendModel`, model, { headers: this.authService.authHeader(), responseType: 'text' }); + return this.http.post(`${API_SETTINGS.apiURL}/model/add`, model, { headers: this.authService.authHeader(), responseType: 'text' }); } addDataset(dataset: Dataset) { - return this.http.post(`${API_SETTINGS.apiURL}/model/uploadDataset`, dataset, { headers: this.authService.authHeader(), responseType: 'text' }); + return this.http.post(`${API_SETTINGS.apiURL}/dataset/add`, dataset, { headers: this.authService.authHeader(), responseType: 'text' }); + } + trainModel(modelId: string) { + return this.http.post(`${API_SETTINGS.apiURL}/model/train`, modelId, { headers: this.authService.authHeader(), responseType: 'text' }); } } -- cgit v1.2.3