aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts
diff options
context:
space:
mode:
authorDanijel Andjelkovic <adanijel99@gmail.com>2022-04-06 13:14:00 +0200
committerDanijel Andjelkovic <adanijel99@gmail.com>2022-04-06 13:14:00 +0200
commit1b235bb4317477e673806ab9d2835a4dca48f88e (patch)
treeccc776c46e2f68e4285c7298f10ea8f591058e50 /frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts
parentaf3333a77e254b3268de38ec397921b43f357949 (diff)
parent480eb6a4e07b130129171d83ca9ba263dfba32c3 (diff)
Merge branch 'dev' of http://gitlab.pmf.kg.ac.rs/igrannonica/neuronstellar into dev
# Conflicts: # frontend/src/app/_pages/add-model/add-model.component.html # frontend/src/app/_pages/add-model/add-model.component.ts # frontend/src/app/app.module.ts
Diffstat (limited to 'frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts')
-rw-r--r--frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts78
1 files changed, 78 insertions, 0 deletions
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
new file mode 100644
index 00000000..fceb53cf
--- /dev/null
+++ b/frontend/src/app/_elements/add-new-dataset/add-new-dataset.component.ts
@@ -0,0 +1,78 @@
+import { Component, EventEmitter, Output, ViewChild } from '@angular/core';
+import { NgxCsvParser, NgxCSVParserError } from 'ngx-csv-parser';
+import Dataset from 'src/app/_data/Dataset';
+
+@Component({
+ selector: 'app-add-new-dataset',
+ templateUrl: './add-new-dataset.component.html',
+ styleUrls: ['./add-new-dataset.component.css']
+})
+export class AddNewDatasetComponent {
+
+ @Output() loaded = new EventEmitter<string>();
+
+ delimiterOptions: Array<string> = [",", ";", "\t", "razmak", "|"]; //podrazumevano ","
+
+ //hasHeader: boolean = true;
+ hasInput: boolean = false;
+
+ csvRecords: any[] = [];
+ files: File[] = [];
+ rowsNumber: number = 0;
+ colsNumber: number = 0;
+
+ dataset: Dataset; //dodaj ! potencijalno
+
+ constructor(private ngxCsvParser: NgxCsvParser) {
+ this.dataset = new Dataset();
+ }
+
+ //@ViewChild('fileImportInput', { static: false }) fileImportInput: any; cemu je ovo sluzilo?
+
+ changeListener($event: any): void {
+ this.files = $event.srcElement.files;
+ if (this.files.length == 0 || this.files[0] == null) {
+ //console.log("NEMA FAJLA");
+ //this.loaded.emit("not loaded");
+ this.hasInput = false;
+ return;
+ }
+ else
+ this.hasInput = true;
+
+ this.update();
+ }
+
+ update() {
+
+ if (this.files.length < 1)
+ return;
+
+ this.ngxCsvParser.parse(this.files[0], { header: false, delimiter: (this.dataset.delimiter == "razmak") ? " " : (this.dataset.delimiter == "") ? "," : this.dataset.delimiter })
+ .pipe().subscribe((result) => {
+
+ console.log('Result', result);
+ if (result.constructor === Array) {
+ this.csvRecords = result;
+ if (this.dataset.hasHeader)
+ this.rowsNumber = this.csvRecords.length - 1;
+ else
+ 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
+ this.dataset.header = this.csvRecords[0];
+
+ this.loaded.emit("loaded");
+ }
+ }, (error: NgxCSVParserError) => {
+ console.log('Error', error);
+ });
+ }
+
+ checkAccessible() {
+ if (this.dataset.isPublic)
+ this.dataset.accessibleByLink = true;
+ }
+
+}