From 19fd492a03ea48571d6aaab9e75108a82599ef0a Mon Sep 17 00:00:00 2001 From: Danijel Andjelkovic Date: Wed, 6 Apr 2022 13:07:23 +0200 Subject: Dodao klasu za notifikacije i dizajn. Dodao spinner u datatable komponentu. --- .../_elements/datatable/datatable.component.html | 46 ++++++++++++---------- .../app/_elements/datatable/datatable.component.ts | 2 + 2 files changed, 28 insertions(+), 20 deletions(-) (limited to 'frontend/src/app/_elements/datatable') diff --git a/frontend/src/app/_elements/datatable/datatable.component.html b/frontend/src/app/_elements/datatable/datatable.component.html index bd9e7a13..8fcd44ac 100644 --- a/frontend/src/app/_elements/datatable/datatable.component.html +++ b/frontend/src/app/_elements/datatable/datatable.component.html @@ -1,25 +1,31 @@
-
- - - - - - - - - - - -
{{item}}
{{col}}
+
+
+ +
+
+ + + + + + + + + + + +
{{item}}
{{col}}
- - - - - - -
{{col}}
+ + + + + + +
{{col}}
+
diff --git a/frontend/src/app/_elements/datatable/datatable.component.ts b/frontend/src/app/_elements/datatable/datatable.component.ts index d3740d83..3343f6f0 100644 --- a/frontend/src/app/_elements/datatable/datatable.component.ts +++ b/frontend/src/app/_elements/datatable/datatable.component.ts @@ -11,6 +11,8 @@ export class DatatableComponent implements OnInit { @Input() data?: any[] = []; + loaded = false; + constructor() { } ngOnInit(): void { -- cgit v1.2.3 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 --- frontend/src/app/Shared.ts | 1 + .../add-new-dataset/add-new-dataset.component.html | 14 ++++++-- .../add-new-dataset/add-new-dataset.component.ts | 42 +++++++++++++++++++--- .../dataset-load/dataset-load.component.html | 25 +++++++------ .../_elements/datatable/datatable.component.html | 8 ++--- .../app/_elements/datatable/datatable.component.ts | 1 + frontend/src/app/_services/auth.service.ts | 2 ++ 7 files changed, 68 insertions(+), 25 deletions(-) (limited to 'frontend/src/app/_elements/datatable') diff --git a/frontend/src/app/Shared.ts b/frontend/src/app/Shared.ts index 86e26687..a069ff8b 100644 --- a/frontend/src/app/Shared.ts +++ b/frontend/src/app/Shared.ts @@ -7,6 +7,7 @@ class Shared { constructor( public loggedIn: boolean, public username: string = '', + public userId: string = '', public photoId: string = '1', public dialog?: MatDialog //public alertDialog?: ElementRef diff --git a/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.html b/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.html index dfeb4f62..eb68b54c 100644 --- a/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.html +++ b/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.html @@ -24,9 +24,9 @@
- - + @@ -38,4 +38,12 @@
-
\ No newline at end of file +
+ +
+ +
+ +
+ +
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 + } + } diff --git a/frontend/src/app/_elements/dataset-load/dataset-load.component.html b/frontend/src/app/_elements/dataset-load/dataset-load.component.html index 674e5990..2052c9b5 100644 --- a/frontend/src/app/_elements/dataset-load/dataset-load.component.html +++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.html @@ -3,8 +3,7 @@
-

Izvor podataka:

-
+
-
    -
  • - -
  • -
+
    +
  • + +
  • +
+
+ +
+ (newDatasetAdded)="showMyDatasets = true"> -
- -
\ No newline at end of file diff --git a/frontend/src/app/_elements/datatable/datatable.component.html b/frontend/src/app/_elements/datatable/datatable.component.html index 8fcd44ac..52d50443 100644 --- a/frontend/src/app/_elements/datatable/datatable.component.html +++ b/frontend/src/app/_elements/datatable/datatable.component.html @@ -1,11 +1,11 @@ -
+
- +
@@ -18,7 +18,7 @@
{{item}}
- +
@@ -28,7 +28,7 @@ -
+

{{data.length - 1}} x {{data[0].length}} {{data.length}} x {{data[0].length}} diff --git a/frontend/src/app/_elements/datatable/datatable.component.ts b/frontend/src/app/_elements/datatable/datatable.component.ts index 3343f6f0..19fb204e 100644 --- a/frontend/src/app/_elements/datatable/datatable.component.ts +++ b/frontend/src/app/_elements/datatable/datatable.component.ts @@ -11,6 +11,7 @@ export class DatatableComponent implements OnInit { @Input() data?: any[] = []; + hasInput = false; loaded = false; constructor() { } diff --git a/frontend/src/app/_services/auth.service.ts b/frontend/src/app/_services/auth.service.ts index ccfbe15f..a108f8db 100644 --- a/frontend/src/app/_services/auth.service.ts +++ b/frontend/src/app/_services/auth.service.ts @@ -33,6 +33,7 @@ export class AuthService { var token = this.cookie.get('token'); var property=jwtHelper.decodeToken(this.cookie.get('token')); var username=property['name']; + var userId = property['id']; return !jwtHelper.isTokenExpired(token) && username!=""; } return false; @@ -89,6 +90,7 @@ export class AuthService { console.log("decoded:", decodedToken); this.shared.loggedIn = this.isAuthenticated(); this.shared.username = decodedToken.name; + this.shared.userId = decodedToken.id; this.enableAutoRefresh(); } } -- cgit v1.2.3
{{col}}