aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_pages/add-model
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/app/_pages/add-model')
-rw-r--r--frontend/src/app/_pages/add-model/add-model.component.css9
-rw-r--r--frontend/src/app/_pages/add-model/add-model.component.html36
-rw-r--r--frontend/src/app/_pages/add-model/add-model.component.ts58
3 files changed, 39 insertions, 64 deletions
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 6d961287..7f05af0f 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.css
+++ b/frontend/src/app/_pages/add-model/add-model.component.css
@@ -32,4 +32,11 @@
}
ul li:hover {
background-color: lightblue;
-} \ No newline at end of file
+}
+
+#divInputs {
+ margin-left: 20px;
+}
+#divOutputs {
+ margin-left: 20px;
+}
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 3d5fd7b1..179e9aea 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.html
+++ b/frontend/src/app/_pages/add-model/add-model.component.html
@@ -25,42 +25,8 @@
<div class="py-3 pr-5 justify-content-center">
- <div class="col-12 d-flex my-5">
- <h2 class="">Izvor podataka:</h2>
- <div class="col-1">
- </div>
- <button type="button" id="btnMyDataset" class="btn" (click)="viewMyDatasetsForm()"
- [ngClass]="{'btnType1': showMyDatasets, 'btnType2': !showMyDatasets}">
- Izaberite dataset iz kolekcije
- </button>
- <h3 class="mt-3 mx-3">ili</h3>
- <button type="button" id="btnNewDataset" class="btn" (click)="viewNewDatasetForm()"
- [ngClass]="{'btnType1': !showMyDatasets, 'btnType2': showMyDatasets}">
- Dodajte novi dataset
- </button>
- </div>
- <div class="px-5 my-2">
- <input *ngIf="showMyDatasets" type="text" class="form-control" placeholder="Pretraga"
- [(ngModel)]="term">
- </div>
- <div class="px-5">
- <div *ngIf="showMyDatasets" class="overflow-auto" style="max-height: 500px;">
- <ul class="list-group">
- <li class="list-group-item p-3" *ngFor="let dataset of myDatasets|filter:term"
- [ngClass]="{'selectedDatasetClass': this.selectedDataset == dataset}">
- <app-item-dataset name="usersDataset" [dataset]="dataset"
- (click)="selectThisDataset(dataset);"></app-item-dataset>
- </li>
- </ul>
- </div>
- </div>
+ <app-dataset-load (selectedDatasetChangeEvent)="datasetHasChanged($event)"></app-dataset-load>
- <app-dataset-load [style]="(showMyDatasets)?'display:none;visibility:hidden;':''" id="dataset"
- (loaded)="scrollToNextForm(); datasetLoaded = true; selectedDataset = datasetLoadComponent?.dataset; datasetFile = datasetLoadComponent?.csvRecords; datasetHasHeader = datasetLoadComponent?.dataset!.hasHeader">
- </app-dataset-load>
- <div class="px-5 mt-5">
- <app-datatable [data]="datasetFile" [hasHeader]="datasetHasHeader"></app-datatable>
- </div>
</div>
<span id="selectInAndOuts"></span>
<div
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 d47b24e6..ba8f7d01 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.ts
+++ b/frontend/src/app/_pages/add-model/add-model.component.ts
@@ -5,9 +5,7 @@ import { DatasetLoadComponent } from 'src/app/_elements/dataset-load/dataset-loa
import { ModelsService } from 'src/app/_services/models.service';
import shared from 'src/app/Shared';
import Dataset from 'src/app/_data/Dataset';
-import { DatatableComponent } from 'src/app/_elements/datatable/datatable.component';
import { DatasetsService } from 'src/app/_services/datasets.service';
-import { NgxCsvParser } from 'ngx-csv-parser';
import { CsvParseService } from 'src/app/_services/csv-parse.service';
@@ -18,11 +16,6 @@ import { CsvParseService } from 'src/app/_services/csv-parse.service';
})
export class AddModelComponent implements OnInit {
- @ViewChild(DatasetLoadComponent) datasetLoadComponent?: DatasetLoadComponent;
- @ViewChild(DatatableComponent) datatable?: DatatableComponent;
- datasetLoaded: boolean = false;
- selectedDatasetLoaded: boolean = false;
-
newModel: Model;
ProblemType = ProblemType;
@@ -71,8 +64,13 @@ export class AddModelComponent implements OnInit {
(<HTMLInputElement>document.getElementById("btnMyDataset")).focus();
}
+ datasetHasChanged(selectedDataset: Dataset) {
+ this.selectedDataset = selectedDataset;
+ this.resetCbsAndRbs();
+ this.refreshThreeNullValueRadioOptions();
+ }
- viewMyDatasetsForm() {
+ /*viewMyDatasetsForm() {
this.showMyDatasets = true;
this.resetSelectedDataset();
//this.datasetLoaded = false;
@@ -82,7 +80,7 @@ export class AddModelComponent implements OnInit {
this.showMyDatasets = false;
this.resetSelectedDataset();
this.resetCbsAndRbs();
- }
+ }*/
addModel() {
if (!this.showMyDatasets)
@@ -174,7 +172,7 @@ export class AddModelComponent implements OnInit {
this.models.addModel(this.newModel).subscribe((response) => {
callback(response);
}, (error) => {
- alert("Model sa unetim nazivom već postoji u Vašoj kolekciji.\nPromenite naziv modela i nastavite sa kreiranim datasetom.");
+ shared.openDialog("Neuspeo pokušaj!", "Model sa unetim nazivom već postoji u Vašoj kolekciji. Promenite naziv modela i nastavite sa kreiranim datasetom.");
});
}
}
@@ -217,47 +215,47 @@ export class AddModelComponent implements OnInit {
return false;
}
else if (this.newModel.inputColumns.length == 0) {
- alert("Molimo Vas da izaberete ulaznu kolonu/kolone za mrežu.");
+ shared.openDialog("Neuspeo pokušaj!", "Molimo Vas da izaberete ulaznu kolonu/kolone za mrežu.");
return false;
}
else if (this.newModel.columnToPredict == '') {
- alert("Molimo Vas da izaberete izlaznu kolonu za mrežu.");
+ shared.openDialog("Neuspeo pokušaj!", "Molimo Vas da izaberete izlaznu kolonu za mrežu.");
return false;
}
for (let i = 0; i < this.newModel.inputColumns.length; i++) {
if (this.newModel.inputColumns[i] == this.newModel.columnToPredict) {
let colName = this.newModel.columnToPredict;
- alert("Izabrali ste istu kolonu (" + colName + ") kao ulaznu i izlaznu iz mreže. Korigujte izbor.");
+ shared.openDialog("Neuspeo pokušaj!", "Izabrali ste istu kolonu (" + colName + ") kao ulaznu i izlaznu iz mreže. Korigujte izbor.");
return false;
}
}
return true;*/
}
- selectThisDataset(dataset: Dataset) {
+ /*selectThisDataset(dataset: Dataset) {
this.selectedDataset = dataset;
- this.selectedDatasetLoaded = false;
+ //this.selectedDatasetLoaded = false;
this.existingDatasetSelected = true;
this.datasetHasHeader = this.selectedDataset.hasHeader;
this.datasets.getDatasetFile(dataset.fileId).subscribe((file: string | undefined) => {
if (file) {
this.datasetFile = this.csv.csvToArray(file, (dataset.delimiter == "razmak") ? " " : (dataset.delimiter == "") ? "," : dataset.delimiter);
- /*for (let i = this.datasetFile.length - 1; i >= 0; i--) { //moguce da je vise redova na kraju fajla prazno i sl.
- if (this.datasetFile[i].length != this.datasetFile[0].length)
- this.datasetFile[i].pop();
- else
- break; //nema potrebe dalje
- }*/
+ //for (let i = this.datasetFile.length - 1; i >= 0; i--) { //moguce da je vise redova na kraju fajla prazno i sl.
+ //if (this.datasetFile[i].length != this.datasetFile[0].length)
+ //this.datasetFile[i].pop();
+ //else
+ // break; //nema potrebe dalje
+ //}
//console.log(this.datasetFile);
this.resetCbsAndRbs();
this.refreshThreeNullValueRadioOptions();
- this.selectedDatasetLoaded = true;
+ //this.selectedDatasetLoaded = true;
this.scrollToNextForm();
}
});
//this.datasetHasHeader = false;
- }
+ }*/
scrollToNextForm() {
(<HTMLSelectElement>document.getElementById("selectInAndOuts")).scrollIntoView({
@@ -267,7 +265,7 @@ export class AddModelComponent implements OnInit {
});
}
- resetSelectedDataset(): boolean {
+ /*resetSelectedDataset(): boolean {
const temp = this.selectedDataset;
this.selectedDataset = this.otherDataset;
this.otherDataset = temp;
@@ -275,7 +273,7 @@ export class AddModelComponent implements OnInit {
this.datasetFile = this.otherDatasetFile;
this.otherDatasetFile = tempFile;
return true;
- }
+ }*/
resetCbsAndRbs(): boolean {
this.uncheckRbs();
this.checkAllCbs();
@@ -345,7 +343,7 @@ export class AddModelComponent implements OnInit {
let colIndex = this.findColIndexByName(colName);
let sumOfNulls = 0;
- let startValue = (this.datasetLoadComponent?.dataset.hasHeader) ? 1 : 0;
+ let startValue = (this.selectedDataset!.hasHeader) ? 1 : 0;
for (let i = startValue; i < this.datasetFile.length; i++) {
if (this.datasetFile[i][colIndex] == "" || this.datasetFile[i][colIndex] == undefined)
++sumOfNulls;
@@ -360,7 +358,7 @@ export class AddModelComponent implements OnInit {
let sum = 0;
let n = 0;
- let startValue = (this.datasetLoadComponent?.dataset.hasHeader) ? 1 : 0;
+ let startValue = (this.selectedDataset!.hasHeader) ? 1 : 0;
for (let i = startValue; i < this.datasetFile.length; i++)
if (this.datasetFile[i][colIndex] != '') {
sum += Number(this.datasetFile[i][colIndex]);
@@ -467,9 +465,13 @@ export class AddModelComponent implements OnInit {
arrayColumn = (arr: any[][], n: number) => [...this.dropEmptyString(new Set(arr.map(x => x[n])))];
- dropEmptyString(set: Set<string>): Set<string> {
+ dropEmptyString(set: Set<any>): Set<string> {
if (set.has(""))
set.delete("");
+ if (set.has(null))
+ set.delete(null);
+ if (set.has(undefined))
+ set.delete(undefined);
return set;
}