From 588b9528bc39acc04a94ad8d996333bb4e4764e7 Mon Sep 17 00:00:00 2001 From: Sonja Galovic Date: Wed, 6 Apr 2022 23:15:10 +0200 Subject: Dodata funkcionalnost cuvanja dataseta (prvo se cuva pa se bira). Izmenjeni datatable, dataset-load i add-new-dataset-component --- .../add-new-dataset/add-new-dataset.component.ts | 42 +++++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts') diff --git a/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts b/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts index fceb53cf..c5e6558a 100644 --- a/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts +++ b/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts @@ -1,6 +1,10 @@ import { Component, EventEmitter, Output, ViewChild } from '@angular/core'; import { NgxCsvParser, NgxCSVParserError } from 'ngx-csv-parser'; import Dataset from 'src/app/_data/Dataset'; +import { DatasetsService } from 'src/app/_services/datasets.service'; +import { ModelsService } from 'src/app/_services/models.service'; +import shared from 'src/app/Shared'; +import { DatatableComponent } from '../datatable/datatable.component'; @Component({ selector: 'app-add-new-dataset', @@ -9,7 +13,8 @@ import Dataset from 'src/app/_data/Dataset'; }) export class AddNewDatasetComponent { - @Output() loaded = new EventEmitter(); + @Output() newDatasetAdded = new EventEmitter(); + @ViewChild(DatatableComponent) datatable?: DatatableComponent; delimiterOptions: Array = [",", ";", "\t", "razmak", "|"]; //podrazumevano "," @@ -23,7 +28,7 @@ export class AddNewDatasetComponent { dataset: Dataset; //dodaj ! potencijalno - constructor(private ngxCsvParser: NgxCsvParser) { + constructor(private ngxCsvParser: NgxCsvParser, private modelsService: ModelsService, private datasetsService: DatasetsService) { this.dataset = new Dataset(); } @@ -48,6 +53,9 @@ export class AddNewDatasetComponent { if (this.files.length < 1) return; + this.datatable!.loaded = false; + this.datatable!.hasInput = this.hasInput; + this.ngxCsvParser.parse(this.files[0], { header: false, delimiter: (this.dataset.delimiter == "razmak") ? " " : (this.dataset.delimiter == "") ? "," : this.dataset.delimiter }) .pipe().subscribe((result) => { @@ -60,10 +68,12 @@ export class AddNewDatasetComponent { this.rowsNumber = this.csvRecords.length; this.colsNumber = this.csvRecords[0].length; - if (this.dataset.hasHeader) //kasnije dodati opciju kada nema header da korisnik rucno unosi header-e + if (this.dataset.hasHeader) this.dataset.header = this.csvRecords[0]; - - this.loaded.emit("loaded"); + + this.datatable!.data = this.csvRecords; + this.datatable!.hasHeader = this.dataset.hasHeader; + this.datatable!.loaded = true; } }, (error: NgxCSVParserError) => { console.log('Error', error); @@ -75,4 +85,26 @@ export class AddNewDatasetComponent { this.dataset.accessibleByLink = true; } + uploadDataset() { + this.modelsService.uploadData(this.files[0]).subscribe((file) => { + //console.log('ADD MODEL: STEP 2 - ADD DATASET WITH FILE ID ' + file._id); + this.dataset.fileId = file._id; + this.dataset.username = shared.username; + + this.datasetsService.addDataset(this.dataset).subscribe((dataset) => { + + this.newDatasetAdded.emit("added"); + //this.refreshMyDatasetList(); refreshuj dataset listu u ds-load i selektuj taj ds + //this.showMyDatasets = true; + //this.selectThisDataset(dataset); + + shared.openDialog("Obaveštenje", "Uspešno ste dodali novi izvor podataka u kolekciju. Molimo sačekajte par trenutaka da se procesira."); + }, (error) => { + shared.openDialog("Neuspeo pokušaj!", "Dataset sa unetim nazivom već postoji u Vašoj kolekciji. Izmenite naziv ili iskoristite postojeći dataset."); + }); //kraj addDataset subscribe + }, (error) => { + + }); //kraj uploadData subscribe + } + } -- cgit v1.2.3