1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
import { Component, OnInit, ViewChild, ViewChildren } from '@angular/core';
import { AddNewDatasetComponent } from '../add-new-dataset/add-new-dataset.component';
import { ModelsService } from 'src/app/_services/models.service';
import shared from 'src/app/Shared';
import Dataset from 'src/app/_data/Dataset';
import { DatatableComponent, TableData } from 'src/app/_elements/datatable/datatable.component';
import { DatasetsService } from 'src/app/_services/datasets.service';
import { CsvParseService } from 'src/app/_services/csv-parse.service';
import { Output, EventEmitter } from '@angular/core';
import { SignalRService } from 'src/app/_services/signal-r.service';
@Component({
selector: 'app-dataset-load',
templateUrl: './dataset-load.component.html',
styleUrls: ['./dataset-load.component.css']
})
export class DatasetLoadComponent implements OnInit {
@Output() selectedDatasetChangeEvent = new EventEmitter<Dataset>();
@ViewChild(AddNewDatasetComponent) addNewDatasetComponent!: AddNewDatasetComponent;
@ViewChild(AddNewDatasetComponent) datatable!: DatatableComponent;
datasetLoaded: boolean = false;
selectedDatasetLoaded: boolean = false;
showMyDatasets: boolean = true;
myDatasets?: Dataset[];
existingDatasetSelected: boolean = false;
selectedDataset?: Dataset;
tableData: TableData = new TableData();
term: string = "";
constructor(private models: ModelsService, private datasets: DatasetsService, private csv: CsvParseService, private signalRService: SignalRService) {
this.datasets.getMyDatasets().subscribe((datasets) => {
this.myDatasets = datasets;
});
}
viewMyDatasetsForm() {
this.showMyDatasets = true;
if (this.selectedDataset != undefined)
this.resetSelectedDataset();
//this.resetCbsAndRbs(); //TREBA DA SE DESI
}
viewNewDatasetForm() {
this.showMyDatasets = false;
if (this.selectedDataset != undefined)
this.resetSelectedDataset();
//this.resetCbsAndRbs(); //TREBA DA SE DESI
}
refreshMyDatasets() {
this.datasets.getMyDatasets().subscribe((datasets) => {
this.myDatasets = datasets;
this.showMyDatasets = true;
});
}
selectThisDataset(dataset: Dataset) {
this.selectedDataset = dataset;
this.selectedDatasetLoaded = false;
this.existingDatasetSelected = true;
this.tableData.hasHeader = this.selectedDataset.hasHeader;
this.tableData.hasInput = true;
this.tableData.loaded = false;
this.datasets.getDatasetFile(dataset.fileId).subscribe((file: string | undefined) => {
if (file) {
this.tableData.loaded = true;
this.tableData.numRows = this.selectedDataset!.rowCount;
this.tableData.numCols = this.selectedDataset!.columnInfo.length;
this.tableData.data = this.csv.csvToArray(file, (dataset.delimiter == "razmak") ? " " : (dataset.delimiter == "") ? "," : dataset.delimiter);
//this.resetCbsAndRbs(); //TREBA DA SE DESI
//this.refreshThreeNullValueRadioOptions(); //TREBA DA SE DESI
this.selectedDatasetLoaded = true;
this.selectedDatasetChangeEvent.emit(this.selectedDataset);
}
});
}
resetSelectedDataset(): boolean {
this.selectedDatasetChangeEvent.emit(this.selectedDataset);
return true;
}
ngOnInit(): void {
if (this.signalRService.hubConnection) {
this.signalRService.hubConnection.on("NotifyDataset", _ => {
this.refreshMyDatasets();
});
} else {
console.warn("Dataset-Load: No connection!");
}
}
}
|