From 545ce7b8d919579e710139d64cde05363cf446b0 Mon Sep 17 00:00:00 2001 From: Sonja Galovic Date: Mon, 11 Apr 2022 17:00:39 +0200 Subject: Sredjeno komplet cuvanje eksperimenta, zamena nedostajucih vrednosti, prikaz samo onih kolona koje imaju nedostajucih vrednosti za zamenu, izmenjena logika odabira ulaznih/izlaznih kolona --- .../src/app/experiment/experiment.component.html | 23 +++-- .../src/app/experiment/experiment.component.ts | 111 ++++++++++++++------- 2 files changed, 94 insertions(+), 40 deletions(-) (limited to 'frontend/src/app/experiment') diff --git a/frontend/src/app/experiment/experiment.component.html b/frontend/src/app/experiment/experiment.component.html index 25d1b3e3..7746b13e 100644 --- a/frontend/src/app/experiment/experiment.component.html +++ b/frontend/src/app/experiment/experiment.component.html @@ -21,7 +21,8 @@   + [disabled]="this.selectedOutputColumnVal == item.columnName" + (click)="checkedColumnsChanged(item, 0)">  @@ -36,7 +37,8 @@   + (change)="this.selectedOutputColumnVal = item.columnName" + (click)="checkedColumnsChanged(item, 1);">  @@ -66,9 +68,18 @@
+
+ +
-
-
+
+
{{column.columnName}} ({{column.numNulls}} null) @@ -97,7 +108,7 @@
+ (change)="replace($event, column); checkFillColRadio(column.columnName);"> diff --git a/frontend/src/app/experiment/experiment.component.ts b/frontend/src/app/experiment/experiment.component.ts index 047963b5..7ccca528 100644 --- a/frontend/src/app/experiment/experiment.component.ts +++ b/frontend/src/app/experiment/experiment.component.ts @@ -22,7 +22,9 @@ export class ExperimentComponent implements OnInit { ReplaceWith = ReplaceWith; Object = Object; + selectedColumnsInfoArray: ColumnInfo[] = []; selectedOutputColumnVal: string = ''; + selectedNullColumnsArray: string[] = []; constructor(private modelsService: ModelsService, private experimentsService: ExperimentsService) { } @@ -32,6 +34,9 @@ export class ExperimentComponent implements OnInit { updateDataset(dataset: Dataset) { //console.log(dataset); this.selectedDataset = dataset; + this.selectedColumnsInfoArray = this.selectedDataset.columnInfo; + this.selectedNullColumnsArray = []; + console.log("array:", this.selectedColumnsInfoArray); } updateModel(model: Model) { @@ -63,6 +68,21 @@ export class ExperimentComponent implements OnInit { (document.getElementById("fillCol_" + colName)).checked = true; } + checkedColumnsChanged(checkedColumnInfo: ColumnInfo, buttonType: number) { //0-input,1-output + let col = this.selectedColumnsInfoArray.find(x => x.columnName == checkedColumnInfo.columnName); + if (buttonType == 0) { //inputCol + if (col == undefined) + this.selectedColumnsInfoArray.push(checkedColumnInfo); + else + this.selectedColumnsInfoArray = this.selectedColumnsInfoArray.filter(x => x.columnName != checkedColumnInfo.columnName); + } + else { //outputCol + if (col == undefined) //ako je vec cekiran neki output, samo dodaj sad ovaj, a taj output postaje input i ostaje u nizu + this.selectedColumnsInfoArray.push(checkedColumnInfo); + } + //console.log(this.selectedColumnsInfoArray); + } + replace(event: Event, column: ColumnInfo) { let option = (event.target).value; @@ -89,45 +109,52 @@ export class ExperimentComponent implements OnInit { } } - getNullValuesReplacersArray()/*: NullValReplacer[]*/ { + getSelectedNullColumnsArray(): string[] { + let colNames: string[] = []; + + for (let i = 0; i < this.selectedColumnsInfoArray.length; i++) { + let oneColInfo = this.selectedColumnsInfoArray[i]; + if (oneColInfo.numNulls == 0) + colNames.push(oneColInfo.columnName); + } + return colNames; + } + + getNullValuesReplacersArray(): NullValReplacer[] { let array: NullValReplacer[] = []; - // TODO ispravi - /*if (this.datasetFile) { - - if (this.newModel.nullValues == NullValueOptions.Replace) { - - for (let i = 0; i < this.datasetFile[0].length; i++) { - let column = this.datasetFile[0][i]; - - if (this.calculateSumOfNullValuesInCol(column) > 0) { //ako kolona nema null vrednosti, ne dodajemo je u niz - if ((document.getElementById("delCol_" + column)).checked) { - array.push({ - column: column, - option: NullValueOptions.DeleteColumns, - value: "" - }); - } - else if ((document.getElementById("delRows_" + column)).checked) { - array.push({ - column: column, - option: NullValueOptions.DeleteRows, - value: "" - }); - } - else if (((document.getElementById("fillCol_" + column)).checked)) { - array.push({ - column: column, - option: NullValueOptions.Replace, - value: (document.getElementById("fillText_" + column)).value - }); - } + if (this.experiment.nullValues == NullValueOptions.Replace) { + + for (let i = 0; i < this.selectedColumnsInfoArray.length; i++) { + let oneColInfo = this.selectedColumnsInfoArray[i]; + + if (oneColInfo.numNulls > 0) { //ako kolona nema null vrednosti, ne dodajemo je u niz + if ((document.getElementById("delCol_" + oneColInfo.columnName)).checked) { + array.push({ + column: oneColInfo.columnName, + option: NullValueOptions.DeleteColumns, + value: "" + }); + } + else if ((document.getElementById("delRows_" + oneColInfo.columnName)).checked) { + array.push({ + column: oneColInfo.columnName, + option: NullValueOptions.DeleteRows, + value: "" + }); + } + else if (((document.getElementById("fillCol_" + oneColInfo.columnName)).checked)) { + array.push({ + column: oneColInfo.columnName, + option: NullValueOptions.Replace, + value: (document.getElementById("fillText_" + oneColInfo.columnName)).value + }); } } } } //console.log(array); - return array;*/ + return array; } saveExperiment() { @@ -135,19 +162,35 @@ export class ExperimentComponent implements OnInit { Shared.openDialog("Greška", "Izvor podataka nije izabran!"); return; } - //ispitivanje da li ima ulazne kolone TODO - if (this.experiment.outputColumn == '') { Shared.openDialog("Greška", "Molimo Vas da izaberete izlaznu kolonu."); return; } + if (this.selectedColumnsInfoArray.length <= 1) { //jer izlazna je izabrana + Shared.openDialog("Greška", "Molimo Vas da izaberete ulazne kolone."); + return; + } this.experiment._id = ''; this.experiment.uploaderId = ''; this.experiment.datasetId = this.selectedDataset._id; + + let pom = this.selectedColumnsInfoArray.filter(x => x.columnName != this.experiment.outputColumn); + for (let i = 0; i < pom.length; i++) + this.experiment.inputColumns.push(pom[i].columnName); + + this.selectedColumnsInfoArray = this.selectedColumnsInfoArray.filter(x => x.numNulls > 0); + //TREBAJU MI NULLVALUESREPLACERI + this.experiment.nullValuesReplacers = this.getNullValuesReplacersArray(); + + console.log("Eksperiment:", this.experiment); this.experimentsService.addExperiment(this.experiment).subscribe((response) => { this.experiment = response; + + this.selectedColumnsInfoArray = []; + this.selectedNullColumnsArray = []; + Shared.openDialog("Obaveštenje", "Eksperiment je uspešno kreiran."); }, (error) => { -- cgit v1.2.3