aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_elements/folder
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/app/_elements/folder')
-rw-r--r--frontend/src/app/_elements/folder/folder.component.css27
-rw-r--r--frontend/src/app/_elements/folder/folder.component.html65
-rw-r--r--frontend/src/app/_elements/folder/folder.component.ts221
3 files changed, 230 insertions, 83 deletions
diff --git a/frontend/src/app/_elements/folder/folder.component.css b/frontend/src/app/_elements/folder/folder.component.css
index 682fc645..b2363816 100644
--- a/frontend/src/app/_elements/folder/folder.component.css
+++ b/frontend/src/app/_elements/folder/folder.component.css
@@ -1,6 +1,5 @@
#folder {
width: 100%;
-
}
#tabs {
@@ -184,11 +183,18 @@
}
.file-bottom-buttons {
- position: absolute;
- bottom: 5px;
- right: 4%;
+ position: relative;
+ display: flex;
+ flex-direction: row-reverse;
+ height: 0;
+}
+
+.file-bottom-buttons-helper {
+ position: relative;
display: flex;
flex-direction: row-reverse;
+ width: fit-content;
+ height: 45px;
}
.file-button {
@@ -196,10 +202,11 @@
color: var(--offwhite);
border-radius: 4px;
border: 1px solid var(--ns-primary);
+ background-color: var(--ns-bg-dark-50);
margin: 5px;
padding: 5px;
cursor: pointer;
- z-index: 1001;
+ z-index: 801;
display: flex;
flex-direction: row;
align-items: center;
@@ -221,4 +228,14 @@
.highlight-exp {
/*font-size: 16px;*/
font-weight: 700;
+}
+
+.text-overflow {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+.selected-file-tab {
+ max-width: 230px !important;
} \ No newline at end of file
diff --git a/frontend/src/app/_elements/folder/folder.component.html b/frontend/src/app/_elements/folder/folder.component.html
index a557edde..e77e05a3 100644
--- a/frontend/src/app/_elements/folder/folder.component.html
+++ b/frontend/src/app/_elements/folder/folder.component.html
@@ -13,8 +13,8 @@
<a class="m-1 stretched-link tab-link" (click)="selectTab(tab)" (mouseenter)="hoverOverTab(tab)" (mouseleave)="hoverOverTab(TabType.None)">{{tabTitles[tab]}}</a>
</div>
- <div class="folder-tab p-1 rounded-top" *ngIf="selectedFile" [style]="'z-index:' + (selectedTab == TabType.File ? 11 : (tabsToShow.length)) + ' ;'" [ngClass]="{'selected-tab' : selectedTab == TabType.File, 'hover-tab' : hoverTab == TabType.File}">
- <a class="m-1 stretched-link tab-link" (click)="selectTab(TabType.File)" (mouseenter)="hoverOverTab(TabType.File)" (mouseleave)="hoverOverTab(TabType.None)">{{selectedFile.name}}</a>
+ <div class="folder-tab p-1 rounded-top selected-file-tab" *ngIf="selectedFile" [style]="'z-index:' + (selectedTab == TabType.File ? 11 : (tabsToShow.length)) + ' ;'" [ngClass]="{'selected-tab' : selectedTab == TabType.File, 'hover-tab' : hoverTab == TabType.File}">
+ <a class="m-1 stretched-link tab-link text-overflow" (click)="selectTab(TabType.File)" (mouseenter)="hoverOverTab(TabType.File)" (mouseleave)="hoverOverTab(TabType.None)">{{selectedFile.name}}</a>
</div>
</div>
<div id="selected-content" class="rounded-bottom text-offwhite">
@@ -58,19 +58,13 @@
<!--{{fileToDisplay ? fileToDisplay.name : 'No file selected.'}} {{selectedFileIndex}} {{hoveringOverFileIndex}}-->
<div class="folder-inside bg-blur">
<div class="file-content" [ngClass]="{'form-hidden' : listView}">
- <div class="file-bottom-buttons" *ngIf="selectedTab != TabType.NewFile">
- <button *ngIf="this.selectedFile && selectedTab == TabType.File && privacy != Privacy.Public" class="btn-clear file-button" (click)="deleteFile(this.selectedFile, $event)">
- <mat-icon matTooltip="Obriši" matTooltipPosition="right">delete</mat-icon>
- </button>
- <button *ngIf="this.selectedFile && selectedTab==TabType.File && FolderType.Dataset==this.type" class="btn-clear file-button" (click)="downloadFile(this.selectedFile,$event)" style="display: inline-block;">
- <mat-icon matTooltip="Preuzmi" matTooltipPosition="before">download</mat-icon>
- </button>
- <!-- <button class="btn-clear file-button">
- <mat-icon>zoom_out_map</mat-icon>
- </button> -->
- </div>
- <app-form-model [ngClass]="{'form-hidden': type != FolderType.Model}" [forExperiment]="forExperiment" [hideProblemType]="(forExperiment ? true : false)" [forProblemType]="(forExperiment ? forExperiment.type : ProblemType.Regression)" (editEvent)="onFileChange()"></app-form-model>
- <app-form-dataset [ngClass]="{'form-hidden': type != FolderType.Dataset}" [forExperiment]="forExperiment" (editEvent)="onFileChange()"></app-form-dataset>
+ <!-- New File -->
+ <app-form-model #newModel [ngClass]="{'form-hidden': type != FolderType.Model || !newFileSelected}" [forExperiment]="forExperiment" [hideProblemType]="(forExperiment ? true : false)" [forProblemType]="(forExperiment ? forExperiment.type : ProblemType.Regression)"></app-form-model>
+ <app-form-dataset #newDataset [ngClass]="{'form-hidden': type != FolderType.Dataset || !newFileSelected}" [forExperiment]="forExperiment"></app-form-dataset>
+ <!-- Selected File -->
+ <app-form-model #selectedModel [ngClass]="{'form-hidden': type != FolderType.Model || newFileSelected}" [forExperiment]="forExperiment" [hideProblemType]="(forExperiment ? true : false)" [forProblemType]="(forExperiment ? forExperiment.type : ProblemType.Regression)"
+ (editEvent)="onFileChange()"></app-form-model>
+ <app-form-dataset #selectedDataset [ngClass]="{'form-hidden': type != FolderType.Dataset || newFileSelected}" [forExperiment]="forExperiment" (editEvent)="onFileChange()"></app-form-dataset>
</div>
<div [ngClass]="{'form-hidden' : !listView}" class="list-view">
<div *ngFor="let file of filteredFiles; let i = index">
@@ -82,16 +76,19 @@
{{file.lastUpdated | date}}
</div>
<div class="mx-2 hover-show" *ngIf="selectedTab !== TabType.PublicDatasets && selectedTab !== TabType.PublicModels">
- <button *ngIf="selectedTab==TabType.MyDatasets" class="btn-clear file-button" (click)="downloadFile(file,$event)" style="display: inline-block;">
- <mat-icon matTooltip="Preuzmi" matTooltipPosition="before">download</mat-icon>
+ <button *ngIf="selectedTab==TabType.MyDatasets || selectedTab==TabType.MyModels" class="btn-clear file-button" (click)="shareFile(file,$event)" style="display: inline-block;" matTooltip="Podeli" matTooltipPosition="above">
+ <mat-icon>share</mat-icon>
+ </button>
+ <button *ngIf="selectedTab==TabType.MyDatasets" class="btn-clear file-button" (click)="downloadFile(file,$event)" style="display: inline-block;" matTooltip="Preuzmi" matTooltipPosition="above">
+ <mat-icon>download</mat-icon>
</button>
- <button class="btn-clear file-button" (click)="deleteFile(file, $event)" style="display: inline-block;">
- <mat-icon matTooltip="Obriši" matTooltipPosition="right">delete</mat-icon>
+ <button class="btn-clear file-button" (click)="deleteFile(file, $event)" style="display: inline-block;" matTooltip="Obriši" matTooltipPosition="above">
+ <mat-icon>delete</mat-icon>
</button>
</div>
- <div class="mx-2 hover-show" *ngIf="selectedTab == TabType.PublicDatasets || selectedTab == TabType.PublicModels">
+ <div class="mx-2 hover-show" *ngIf="selectedTab == TabType.PublicDatasets || selectedTab == TabType.PublicModels" matTooltip="Uvezi" matTooltipPosition="right">
<button class="btn-clear file-button" (click)="addFile(file, $event)">
- <mat-icon matTooltip="Uvezi" matTooltipPosition="right">note_add</mat-icon>
+ <mat-icon>note_add</mat-icon>
</button>
</div>
</div>
@@ -105,7 +102,7 @@
</div>
</div>
<div class="mx-2 hover-hide">
- {{predictor.lastUpdated | date}}
+ {{predictor.dateCreated| date}}
</div>
<div class="mx-2 hover-show">
<button class="btn-clear file-button" (click)="deleteFile(predictor, $event, true)">
@@ -116,7 +113,7 @@
</div>
</div>
- <div class="list-add" [ngSwitch]="type" *ngIf="privacy != Privacy.Public" >
+ <div class="list-add" [ngSwitch]="type" *ngIf="privacy != Privacy.Public">
<!-- {{privacy == Privacy.Public ? 'javni ' : ' '}} -->
<button mat-raised-button *ngSwitchCase="FolderType.Dataset" (click)="selectNewFile()">Dodaj izvor podataka</button>
<button mat-raised-button *ngSwitchCase="FolderType.Model" (click)="selectNewFile()">Dodaj konfiguraciju neuronske mreže</button>
@@ -125,8 +122,26 @@
</div>
</div>
</div>
+ <div [ngSwitch]="newFileSelected" *ngIf="!listView">
+ <div class="file-bottom-buttons" *ngIf="selectedTab != TabType.NewFile">
+ <div class="file-bottom-buttons-helper">
+ <button *ngIf="this.selectedFile && selectedTab == TabType.File && privacy != Privacy.Public" class="btn-clear file-button" (click)="deleteFile(selectedFile, $event)" matTooltip="Obriši" matTooltipPosition="above">
+ <mat-icon>delete</mat-icon>
+ </button>
+ <button *ngIf="this.selectedFile && selectedTab==TabType.File && FolderType.Dataset==this.type" class="btn-clear file-button" (click)="downloadFile(selectedFile,$event)" style="display: inline-block;" matTooltip="Preuzmi" matTooltipPosition="above">
+ <mat-icon>download</mat-icon>
+ </button>
+ <button *ngIf="this.selectedFile && selectedTab == TabType.File" class="btn-clear file-button" (click)="shareFile(selectedFile,$event)" style="display: inline-block;" matTooltip="Podeli" matTooltipPosition="above">
+ <mat-icon>share</mat-icon>
+ </button>
+ </div>
+ <!-- <button class="btn-clear file-button">
+ <mat-icon>zoom_out_map</mat-icon>
+ </button> -->
+ </div>
+ </div>
<div id="footer" [ngSwitch]="newFileSelected" *ngIf="!listView">
- <button mat-button (click)="saveNewFile()" class="bottom-button text-offwhite rounded-bottom" *ngSwitchCase="true">
+ <button mat-button (click)="saveNewFile()" class="bottom-button text-offwhite rounded-bottom" [disabled]="saveDisabled" *ngSwitchCase="true">
<div class="f-row">
<div>Sačuvaj</div>
<div class="pt-1">
@@ -160,4 +175,6 @@
</button>
</ng-container>
</div>
+
+
</div> \ No newline at end of file
diff --git a/frontend/src/app/_elements/folder/folder.component.ts b/frontend/src/app/_elements/folder/folder.component.ts
index c9252caa..9dfabdb3 100644
--- a/frontend/src/app/_elements/folder/folder.component.ts
+++ b/frontend/src/app/_elements/folder/folder.component.ts
@@ -15,6 +15,8 @@ import { ActivatedRoute, Router } from '@angular/router';
import Predictor from 'src/app/_data/Predictor';
import FileSaver from 'file-saver';
import isEqual from 'lodash.isequal';
+import { ShareDialogComponent } from 'src/app/_modals/share-dialog/share-dialog.component';
+import { MatDialog } from '@angular/material/dialog';
@Component({
selector: 'app-folder',
@@ -23,8 +25,10 @@ import isEqual from 'lodash.isequal';
})
export class FolderComponent implements AfterViewInit {
- @ViewChild(FormDatasetComponent) formDataset!: FormDatasetComponent;
- @ViewChild(FormModelComponent) formModel!: FormModelComponent;
+ @ViewChild('selectedDataset') formDataset!: FormDatasetComponent;
+ @ViewChild('selectedModel') formModel!: FormModelComponent;
+ @ViewChild('newDataset') formNewDataset!: FormDatasetComponent;
+ @ViewChild('newModel') formNewModel!: FormModelComponent;
@Input() folderName: string = 'Moji podaci';
@Input() files!: FolderFile[]
@@ -40,8 +44,7 @@ export class FolderComponent implements AfterViewInit {
selectedFileIndex: number = -1;
selectedFile?: FolderFile;
hoveringOverFileIndex: number = -1;
-
- fileToDisplay?: FolderFile;
+ saveDisabled: boolean = false;
@Output() selectedFileChanged: EventEmitter<FolderFile> = new EventEmitter();
@Output() fileFromRoute: EventEmitter<FolderFile> = new EventEmitter();
@@ -49,7 +52,7 @@ export class FolderComponent implements AfterViewInit {
searchTerm: string = '';
- constructor(private datasetsService: DatasetsService, private experimentsService: ExperimentsService, private modelsService: ModelsService, private predictorsService: PredictorsService, private signalRService: SignalRService, private router: Router, private route: ActivatedRoute) {
+ constructor(private datasetsService: DatasetsService, private experimentsService: ExperimentsService, private modelsService: ModelsService, private predictorsService: PredictorsService, private signalRService: SignalRService, private router: Router, private route: ActivatedRoute, public dialog: MatDialog) {
this.tabsToShow.forEach(tab => this.folders[tab] = []);
}
@@ -60,7 +63,10 @@ export class FolderComponent implements AfterViewInit {
this.signalRService.hubConnection.on("NotifyDataset", (dName: string, dId: string) => {
if (this.type == FolderType.Dataset) {
this.refreshFiles(dId);
+ this.okPressed.emit();
}
+ this.saveDisabled = false;
+ console.log("Notify dataset ", this.saveDisabled);
});
} else {
console.warn("Dataset-Load: No connection!");
@@ -68,59 +74,82 @@ export class FolderComponent implements AfterViewInit {
}
displayFile() {
- if (this.type == FolderType.Dataset) {
- this.formDataset.dataset = <Dataset>this.fileToDisplay;
- this.formDataset.existingFlag = false;
- }
- else if (this.type == FolderType.Model)
- this.formModel.newModel = <Model>this.fileToDisplay;
- }
-
- hoverOverFile(i: number) {
- /*this.hoveringOverFileIndex = i;
- if (i != -1) {
- this.fileToDisplay = this.files[i];
+ if (this.newFileSelected) {
+ if (this.type == FolderType.Dataset) {
+ this.formNewDataset.dataset = <Dataset>this.newFile;
+ this.formNewDataset.existingFlag = false;
+ }
+ else if (this.type == FolderType.Model)
+ this.formNewModel.newModel = <Model>this.newFile;
} else {
- if (this.newFileSelected) {
- this.fileToDisplay = this.newFile;
- } else {
- this.fileToDisplay = this.files[this.selectedFileIndex];
+ if (this.type == FolderType.Dataset) {
+ this.formDataset.dataset = <Dataset>this.selectedFile;
+ this.formDataset.existingFlag = false;
}
+ else if (this.type == FolderType.Model)
+ this.formModel.newModel = <Model>this.selectedFile;
}
- this.displayFile();*/
}
selectNewFile() {
if (!this.newFile) {
this.createNewFile();
}
- this.fileToDisplay = this.newFile;
this.newFileSelected = true;
this.listView = false;
this.displayFile();
+
+ this.selectedTab = TabType.NewFile;
+
if (this.type == FolderType.Dataset) {
- this.formDataset.clear();
+ this.formNewDataset.clear();
}
}
selectFile(file?: FolderFile) {
+ if (this.privacy == Privacy.Public) {
+ if (file) {
+ if (this.type == FolderType.Dataset) {
+ this.router.navigate(['dataset', file?._id]);
+ } else if (this.type == FolderType.Model) {
+ this.router.navigate(['model', file?._id]);
+ }
+ }
+
+ }
+
+
this.formDataset.resetPagging();
this.selectedFile = file;
- Object.assign(this.lastFileData, this.selectedFile);
- this.fileToDisplay = file;
+ this.updateLastFileData(file);
if (this.type == FolderType.Experiment && file) {
this.router.navigate(['/experiment/' + file._id]);
}
this.newFileSelected = false;
this.listView = false;
this.selectedFileChanged.emit(this.selectedFile);
- this.selectTab(TabType.File);
this.displayFile();
+ this.selectedTab = TabType.File;
+
if (this.type == FolderType.Dataset)
this.formDataset.loadExisting();
}
+ updateLastFileData(file: FolderFile | undefined) {
+ if (!file) return;
+
+ Object.assign(this.lastFileData, file);
+ if (this.type == FolderType.Model) {
+ const lastModel = (<Model>this.lastFileData)
+ lastModel.layers = [];
+ (<Model>file).layers.forEach(layer => {
+ const clone = Object.assign({}, layer);
+ lastModel.layers.push(clone);
+ })
+ }
+ }
+
goToExperimentPageWithPredictor(file: FolderFile, predictor: Predictor) {
this.router.navigate(['/experiment/p/' + predictor._id]);
}
@@ -128,6 +157,9 @@ export class FolderComponent implements AfterViewInit {
createNewFile() {
if (this.type == FolderType.Dataset) {
this.newFile = new Dataset();
+ this.formNewDataset.files = [];
+ this.formNewDataset.firstInput = false;
+ this.formNewDataset.filename = "";
} else if (this.type == FolderType.Model) {
this.newFile = new Model();
}
@@ -137,6 +169,22 @@ export class FolderComponent implements AfterViewInit {
this.okPressed.emit();
}
+ fileToShare: FolderFile | undefined = undefined;
+
+ shareFile(file: FolderFile, event: Event) {
+ event.stopPropagation();
+
+ this.fileToShare = file;
+
+ const dialogRef = this.dialog.open(ShareDialogComponent, {
+ width: '550px',
+ data: { file: this.fileToShare, fileType: this.type }
+ });
+ dialogRef.afterClosed().subscribe(experiment => {
+ this.refreshFiles();
+ });
+ }
+
_initialized: boolean = false;
refreshFiles(selectedDatasetId: string | null = null, selectedModelId: string | null = null) {
@@ -172,7 +220,9 @@ export class FolderComponent implements AfterViewInit {
if (!this._initialized) {
this.files = this.folders[this.startingTab];
this.filteredFiles = [];
- this.selectTab(this.startingTab);
+ setTimeout(() => {
+ this.selectTab(this.startingTab);
+ });
this._initialized = true;
}
}
@@ -229,35 +279,47 @@ export class FolderComponent implements AfterViewInit {
})
/* ------------------------------------------------ */
this.searchTermsChanged();
+ if (this.selectedTab == TabType.MyExperiments)
+ this.selectTab(TabType.MyExperiments);
})
});
});
}
saveNewFile() {
+ console.log("USAO U saveDisabled: ", this.saveDisabled);
+ if (this.saveDisabled) {
+ console.log("USAO U IF");
+ return;
+ }
+ this.saveDisabled = true;
this.loadingAction = true;
switch (this.type) {
case FolderType.Dataset:
- this.formDataset!.uploadDataset((dataset: Dataset) => {
+ this.formNewDataset!.uploadDataset((dataset: Dataset) => {
this.newFile = undefined;
this.loadingAction = false;
- this.okPressed.emit();
+ //this.okPressed.emit();
//Shared.openDialog("Obaveštenje", "Uspešno ste dodali novi izvor podataka u kolekciju. Molimo sačekajte par trenutaka da se obradi.");
this.refreshFiles();
+ this.createNewFile();
},
() => {
Shared.openDialog("Neuspeo pokušaj!", "Izvor podataka sa unetim nazivom već postoji u Vašoj kolekciji. Izmenite naziv ili iskoristite postojeći dataset.");
+ this.saveDisabled = false;
});
break;
case FolderType.Model:
- this.formModel.newModel.type = this.formModel.forProblemType;
- this.modelsService.addModel(this.formModel.newModel).subscribe(model => {
+ this.formNewModel.newModel.type = this.formModel.forProblemType;
+ this.modelsService.addModel(this.formNewModel.newModel).subscribe(model => {
this.newFile = undefined;
this.loadingAction = false;
//Shared.openDialog("Obaveštenje", "Uspešno ste dodali novu konfiguraciju neuronske mreže u kolekciju.");
this.refreshFiles(null, model._id); // todo select model
+ this.createNewFile();
}, (err) => {
Shared.openDialog("Neuspeo pokušaj!", "Konfiguracija neuronske mreže sa unetim nazivom već postoji u Vašoj kolekciji. Izmenite naziv ili iskoristite postojeću konfiguraciju.");
+ this.saveDisabled = false;
});
break;
}
@@ -300,10 +362,29 @@ export class FolderComponent implements AfterViewInit {
onFileChange() {
setTimeout(() => {
- this.selectedFileHasChanges = !((this.selectedTab == TabType.NewFile) || isEqual(this.selectedFile, this.lastFileData));
+ this.selectedFileHasChanges = !((this.selectedTab == TabType.NewFile) || this.checkFileDataEqualToLastFileData());
});
}
+ checkFileDataEqualToLastFileData() {
+ if (this.type == FolderType.Model) {
+ let layersEqual = true;
+ const oldModel = (<Model>this.lastFileData);
+ const selectedModel = (<Model>this.selectedFile)
+ const oldLayers = oldModel.layers;
+ oldModel.layers = selectedModel.layers;
+ const objEqual = isEqual(this.selectedFile, oldModel);
+ oldLayers.forEach((layer, index) => {
+ if (!isEqual(layer, selectedModel.layers[index])) {
+ layersEqual = false;
+ }
+ });
+ return objEqual && layersEqual;
+ } else {
+ return isEqual(this.selectedFile, this.lastFileData);
+ }
+ }
+
updateFile() {
const file = this.selectedFile;
this.loadingAction = true;
@@ -324,7 +405,7 @@ export class FolderComponent implements AfterViewInit {
fileUpdatedSuccess() {
this.loadingAction = false;
this.selectedFileHasChanges = false;
- Object.assign(this.lastFileData, this.selectedFile);
+ this.updateLastFileData(this.selectedFile);
this.refreshFiles();
this.selectedFileChanged.emit(this.selectedFile);
}
@@ -336,22 +417,47 @@ export class FolderComponent implements AfterViewInit {
case FolderType.Dataset:
const dataset = <Dataset>file;
Shared.openYesNoDialog("Obriši izvor podataka", "Eksperimenti i trenirani modeli nad ovim izvorom podataka će takođe biti obrisani, da li ste sigurni da želite da obrišete izvor: " + dataset.name + "?", () => {
- this.filteredFiles.splice(this.filteredFiles.indexOf(file), 1);
- this.files.splice(this.files.indexOf(file), 1);
+ if (this.selectedTab == TabType.MyDatasets) {
+ this.filteredFiles.splice(this.filteredFiles.indexOf(file), 1);
+ this.files.splice(this.files.indexOf(file), 1);
+ }
this.loadingAction = true;
this.datasetsService.deleteDataset(dataset).subscribe((response) => {
this.loadingAction = false;
+ if (this.selectedTab == TabType.File) {
+ this.refreshDatasets(null);
+ this.selectedFile = undefined!;
+ setTimeout(() => {
+ this.selectTab(TabType.MyDatasets);
+ });
+ }
+ if (this.archive) {
+ this.refreshExperiments();
+ }
+
});
})
break;
case FolderType.Model:
const model = <Model>file;
Shared.openYesNoDialog("Obriši konfiguraciju neuronske mreže", "Trenirani modeli za ovu konfiguraciju će takođe biti obrisani, da li ste sigurni da želite da obrišete konfiguraciju: " + model.name + "?", () => {
- this.filteredFiles.splice(this.filteredFiles.indexOf(file), 1);
- this.files.splice(this.files.indexOf(file), 1);
+ if (this.selectedTab == TabType.MyModels) {
+ this.filteredFiles.splice(this.filteredFiles.indexOf(file), 1);
+ this.files.splice(this.files.indexOf(file), 1);
+ }
this.loadingAction = true;
this.modelsService.deleteModel(<Model>file).subscribe((response) => {
this.loadingAction = false;
+ if (this.selectedTab == TabType.File) {
+ this.refreshModels(null);
+ this.selectedFile = undefined!;
+ setTimeout(() => {
+ this.selectTab(TabType.MyModels);
+ });
+ }
+ if (this.archive) {
+ this.refreshExperiments();
+ }
});
})
@@ -370,11 +476,20 @@ export class FolderComponent implements AfterViewInit {
} else {
const experiment = <Experiment>file;
Shared.openYesNoDialog("Obriši eksperiment", "Trenirani modeli za ovaj eksperiment će takođe biti obrisani, da li ste sigurni da želite da obrišete eksperiment: " + experiment.name + "?", () => {
- this.filteredFiles.splice(this.filteredFiles.indexOf(file), 1);
- this.files.splice(this.files.indexOf(file), 1);
+ if (this.selectedTab == TabType.MyExperiments) {
+ this.filteredFiles.splice(this.filteredFiles.indexOf(file), 1);
+ this.files.splice(this.files.indexOf(file), 1);
+ }
this.loadingAction = true;
this.experimentsService.deleteExperiment(experiment).subscribe((response) => {
this.loadingAction = false;
+ if (this.selectedTab == TabType.File) {
+ this.refreshExperiments();
+ this.selectedFile = undefined!;
+ setTimeout(() => {
+ this.selectTab(TabType.MyExperiments);
+ });
+ }
});
});
}
@@ -461,21 +576,19 @@ export class FolderComponent implements AfterViewInit {
hoverTab: TabType = TabType.None;
selectTab(tab: TabType) {
- setTimeout(() => {
- if (tab == TabType.NewFile) {
- this.selectNewFile();
- this.selectedFile=undefined!;
- }
-
- this.listView = this.getListView(tab);
- this.type = this.getFolderType(tab);
- this.privacy = this.getPrivacy(tab);
- this.selectedTab = tab;
- this.files = this.folders[tab];
+ if (tab == TabType.NewFile) {
+ this.selectNewFile();
+ } /*else if (tab == TabType.File) {
+ this.selectFile(this.selectedFile);
+ }*/
+ this.listView = this.getListView(tab);
+ this.type = this.getFolderType(tab);
+ this.privacy = this.getPrivacy(tab);
+ this.selectedTab = tab;
+ this.files = this.folders[tab];
- if (tab !== TabType.File && tab !== TabType.NewFile)
- this.searchTermsChanged();
- });
+ if (tab !== TabType.File && tab !== TabType.NewFile)
+ this.searchTermsChanged();
}
getListView(tab: TabType) {