aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/app')
-rw-r--r--frontend/src/app/_elements/dataset-load/dataset-load.component.html40
-rw-r--r--frontend/src/app/_elements/dataset-load/dataset-load.component.ts41
-rw-r--r--frontend/src/app/_pages/login-page/login-page.component.html3
-rw-r--r--frontend/src/app/app.module.ts8
-rw-r--r--frontend/src/app/material.module.ts18
5 files changed, 66 insertions, 44 deletions
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 0b62a515..c89add43 100644
--- a/frontend/src/app/_elements/dataset-load/dataset-load.component.html
+++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.html
@@ -1,46 +1,40 @@
<div>
<input style="display: inline-block; width:350px;" list=delimiterOptions
- placeholder="Izaberite ili ukucajte delimiter za .csv fajl" class="form-control" [(ngModel)]="delimiter">
+ placeholder="Izaberite ili ukucajte delimiter za .csv fajl" class="form-control" [(ngModel)]="delimiter"
+ (input)="update()">
<datalist id=delimiterOptions>
<option *ngFor="let option of delimiterOptions">{{option}}</option>
</datalist>
- &nbsp;&nbsp;&nbsp;
- <input style="display: inline-block" [ngStyle]="{width:'350px'}" list=headerOptions
- placeholder="Da li .csv ima header?" class="form-control" [(ngModel)]="header">
- <datalist id=headerOptions>
- <option *ngFor="let option of headerOptions">{{option}}</option>
- </datalist>
-
+ &nbsp;&nbsp;&nbsp;&nbsp;
+ <label for="checkboxHeader">Da li .csv ima header?</label> &nbsp;
+ <input (input)="update()" [(ngModel)]="hasHeader" type="checkbox" value="" id="checkboxHeader" checked>
<br><br>
- <input class="form-control mb-5" type="file" class="upload" (change)="changeListener($event)">
+ <input id="fileInput" class="form-control mb-5" type="file" class="upload" (change)="changeListener($event)" accept=".csv">
- <table class="table table-bordered table-light mt-5">
+ <table *ngIf="csvRecords.length > 0 && hasHeader" class="table table-bordered table-light mt-5">
<thead>
<tr>
<th *ngFor="let item of csvRecords[0]; let i = index">{{item}}</th>
</tr>
</thead>
<tbody>
- <!--<tr *ngFor="let row of csvRecords | ((header == 'Da') ? (slice:1:11) : (slice:0:11))">-->
- <!--<ng-container *ngIf="header == 'Da'">
- <tr *ngFor="let row of csvRecords | slice:1:11">
- <td *ngFor="let col of row">{{col}}</td>
- </tr>
- </ng-container>
- <ng-container *ngIf="header == 'Ne'">
- <tr *ngFor="let row of csvRecords | slice:0:10">
- <td *ngFor="let col of row">{{col}}</td>
- </tr>
- </ng-container>-->
-
<tr *ngFor="let row of csvRecords | slice:1:11">
<td *ngFor="let col of row">{{col}}</td>
</tr>
</tbody>
</table>
- <div *ngIf="csvRecords[0]" id="info">
+
+ <table *ngIf="csvRecords.length > 0 && !hasHeader" class="table table-bordered table-light mt-5">
+ <tbody>
+ <tr *ngFor="let row of csvRecords | slice:0:10">
+ <td *ngFor="let col of row">{{col}}</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <div *ngIf="csvRecords.length > 0" id="info">
. . . <br>
{{rowsNumber}} x {{colsNumber}}
</div>
diff --git a/frontend/src/app/_elements/dataset-load/dataset-load.component.ts b/frontend/src/app/_elements/dataset-load/dataset-load.component.ts
index 7cdfe384..843a5709 100644
--- a/frontend/src/app/_elements/dataset-load/dataset-load.component.ts
+++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.ts
@@ -11,12 +11,12 @@ export class DatasetLoadComponent {
delimiter: string = "";
delimiterOptions: Array<string> = [",", ";", "\t", "razmak", "|"]; //podrazumevano ","
- header: string = "";
- headerOptions: Array<string> = ["Da", "Ne"]; //podrazumevano je "Da" ======> false
+ hasHeader: boolean = true;
slice: string = "";
csvRecords: any[] = [];
+ files: any[] = [];
rowsNumber: number = 0;
colsNumber: number = 0;
@@ -25,25 +25,30 @@ export class DatasetLoadComponent {
@ViewChild('fileImportInput', { static: false }) fileImportInput: any;
- changeListener($event: any): void {
+ changeListener($event: any): void {
+ this.files = $event.srcElement.files;
+ this.update();
+ }
- const files = $event.srcElement.files;
+ update() {
- this.ngxCsvParser.parse(files[0], { header: (this.header == "") ? false : (this.header == "Da") ? false : true, delimiter: (this.delimiter == "razmak") ? " " : (this.delimiter == "") ? "," : this.delimiter})
- .pipe().subscribe((result) => {
+ if (this.files.length < 1)
+ return;
- console.log('Result', result);
- if (result.constructor === Array) {
- this.csvRecords = result;
- this.rowsNumber = this.csvRecords.length;
- this.colsNumber = this.csvRecords[0].length;
- }
-
- }, (error: NgxCSVParserError) => {
- console.log('Error', error);
- });
+ this.ngxCsvParser.parse(this.files[0], { header: false, delimiter: (this.delimiter == "razmak") ? " " : (this.delimiter == "") ? "," : this.delimiter})
+ .pipe().subscribe((result) => {
+ //console.log('Result', result);
+ if (result.constructor === Array) {
+ this.csvRecords = result;
+ if (this.hasHeader)
+ this.rowsNumber = this.csvRecords.length - 1;
+ else
+ this.rowsNumber = this.csvRecords.length;
+ this.colsNumber = this.csvRecords[0].length;
+ }
+ }, (error: NgxCSVParserError) => {
+ console.log('Error', error);
+ });
}
-
-
}
diff --git a/frontend/src/app/_pages/login-page/login-page.component.html b/frontend/src/app/_pages/login-page/login-page.component.html
index 87e2a78e..76a4ee7b 100644
--- a/frontend/src/app/_pages/login-page/login-page.component.html
+++ b/frontend/src/app/_pages/login-page/login-page.component.html
@@ -5,7 +5,8 @@
<div class="container p-5 rounded-3 shadow-sm border" style="max-width: 50em; margin-top: 50px;">
<h3 class="text-center pb-5">Prijavite se</h3>
<form>
- <!-- Email input -->
+ <!-- Username input -->
+ <!-- Username input -->
<div class="form-outline mb-4">
<label class="form-label" for="username">Korisničko ime</label>
<input [(ngModel)]="username" name="username" type="text" id="username"
diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts
index 16bb7ce5..aa5d018d 100644
--- a/frontend/src/app/app.module.ts
+++ b/frontend/src/app/app.module.ts
@@ -10,8 +10,10 @@ import { RegisterPageComponent } from './_pages/register-page/register-page.comp
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { OnlyAuthorizedComponent } from './_pages/only-authorized/only-authorized.component';
import { DatasetLoadComponent } from './_elements/dataset-load/dataset-load.component';
-import { NgxCsvParser } from 'ngx-csv-parser';
import { AddModelComponent } from './_pages/add-model/add-model.component';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+
+import { MaterialModule } from './material.module';
@NgModule({
declarations: [
@@ -27,7 +29,9 @@ import { AddModelComponent } from './_pages/add-model/add-model.component';
AppRoutingModule,
FormsModule,
HttpClientModule,
- NgbModule
+ NgbModule,
+ BrowserAnimationsModule,
+ MaterialModule
],
providers: [],
bootstrap: [AppComponent]
diff --git a/frontend/src/app/material.module.ts b/frontend/src/app/material.module.ts
new file mode 100644
index 00000000..e85419ee
--- /dev/null
+++ b/frontend/src/app/material.module.ts
@@ -0,0 +1,18 @@
+import { NgModule } from '@angular/core';
+
+import { MatDialogModule } from '@angular/material/dialog';
+import { MatButtonModule } from '@angular/material/button';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatInputModule } from '@angular/material/input';
+import { MatCheckboxModule } from '@angular/material/checkbox';
+
+@NgModule({
+ exports: [
+ MatDialogModule,
+ MatButtonModule,
+ MatFormFieldModule,
+ MatInputModule,
+ MatCheckboxModule
+ ]
+})
+export class MaterialModule {} \ No newline at end of file