From e6ef814ddf9185c1dc1130dbcfe9b9fd7aa9071e Mon Sep 17 00:00:00 2001 From: Danijel Anđelković Date: Thu, 12 May 2022 13:38:52 +0200 Subject: Dodao prikaz treniranih modela u listi experimenta za svaki model. --- .../src/app/_elements/folder/folder.component.ts | 113 +++++++++++++-------- 1 file changed, 72 insertions(+), 41 deletions(-) (limited to 'frontend/src/app/_elements/folder/folder.component.ts') diff --git a/frontend/src/app/_elements/folder/folder.component.ts b/frontend/src/app/_elements/folder/folder.component.ts index dbbc55e7..665659a8 100644 --- a/frontend/src/app/_elements/folder/folder.component.ts +++ b/frontend/src/app/_elements/folder/folder.component.ts @@ -32,7 +32,7 @@ export class FolderComponent implements AfterViewInit { @Input() type: FolderType = FolderType.Dataset; @Input() forExperiment!: Experiment; @Input() startingTab!: TabType; - + @Input() archive: boolean = false; newFileSelected: boolean = true; selectedFileIndex: number = -1; @@ -136,44 +136,28 @@ export class FolderComponent implements AfterViewInit { this.folders[tab] = []; }); - switch (this.type) { - case FolderType.Dataset: - this.datasetsService.getMyDatasets().subscribe((datasets) => { - this.folders[TabType.MyDatasets] = datasets; - if (selectedDatasetId) { - this.selectFile(datasets.filter(x => x._id == selectedDatasetId)[0]); - } - }); - this.datasetsService.getPublicDatasets().subscribe((datasets) => { - this.folders[TabType.PublicDatasets] = datasets; - }); - break; - - case FolderType.Model: - this.modelsService.getMyModels().subscribe((models) => { - this.folders[TabType.MyModels] = models; - if (selectedModelId) { - this.selectFile(models.filter(x => x._id == selectedModelId)[0]); - } - }); - /*this.modelsService.getMyModels().subscribe((models) => { - this.folders[TabType.PublicModels] = models; - });*/ - this.folders[TabType.PublicModels] = []; - break; - - case FolderType.Experiment: - this.experimentsService.getMyExperiments().subscribe((experiments) => { - this.folders[TabType.MyExperiments] = experiments; - }); - this.predictorsService.getMyPredictors().subscribe((predictors) => { - this.predictors = predictors; - console.log(predictors); - }); - break; - default: - console.error("Bad folder type."); - break; + if (this.archive) { + this.refreshDatasets(selectedDatasetId); + this.refreshModels(selectedModelId); + this.refreshExperiments(); + } else { + switch (this.type) { + case FolderType.Dataset: + this.refreshDatasets(selectedDatasetId); + break; + + case FolderType.Model: + this.refreshModels(selectedModelId); + break; + + case FolderType.Experiment: + this.refreshExperiments(); + break; + + default: + console.error("Bad folder type."); + break; + } } if (!this._initialized) { @@ -182,11 +166,56 @@ export class FolderComponent implements AfterViewInit { this.selectTab(this.startingTab); this._initialized = true; } + } - this.searchTermsChanged(); + refreshModels(selectedModelId: string | null) { + this.modelsService.getMyModels().subscribe((models) => { + this.folders[TabType.MyModels] = models; + if (selectedModelId) { + this.selectFile(models.filter(x => x._id == selectedModelId)[0]); + } + this.searchTermsChanged(); + }); + /*this.modelsService.getMyModels().subscribe((models) => { + this.folders[TabType.PublicModels] = models; + this.searchTermsChanged(); + });*/ + this.folders[TabType.PublicModels] = []; + } + + refreshDatasets(selectedDatasetId: string | null) { + this.datasetsService.getMyDatasets().subscribe((datasets) => { + this.folders[TabType.MyDatasets] = datasets; + if (selectedDatasetId) { + this.selectFile(datasets.filter(x => x._id == selectedDatasetId)[0]); + } + this.searchTermsChanged(); + }); + this.datasetsService.getPublicDatasets().subscribe((datasets) => { + this.folders[TabType.PublicDatasets] = datasets; + this.searchTermsChanged(); + }); } - predictors: Predictor[] = []; + refreshExperiments() { + this.experimentsService.getMyExperiments().subscribe((experiments) => { + this.folders[TabType.MyExperiments] = experiments; + this.predictorsService.getMyPredictors().subscribe((predictors) => { + this.predictorsForExp = {}; + experiments.forEach(exp => { + this.predictorsForExp[exp._id] = predictors.filter(pred => pred.experimentId == exp._id); + /* TODO IZMENI OVO DA SE SETUJE NA BACKU AUTOMATSKI */ + this.predictorsForExp[exp._id].forEach(pred => { + const model = this.folders[TabType.MyModels].find(model => model._id == pred.modelId); + pred.name = model?.name!; + pred.lastUpdated = model?.lastUpdated!; + }) + /* ------------------------------------------------ */ + this.searchTermsChanged(); + }) + }); + }); + } saveNewFile() { switch (this.type) { @@ -212,6 +241,8 @@ export class FolderComponent implements AfterViewInit { } } + predictorsForExp: { [expId: string]: Predictor[] } = {} + clearSearchTerm() { this.searchTerm = ''; this.searchTermsChanged(); -- cgit v1.2.3