aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_elements/form-dataset
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/app/_elements/form-dataset')
-rw-r--r--frontend/src/app/_elements/form-dataset/form-dataset.component.css6
-rw-r--r--frontend/src/app/_elements/form-dataset/form-dataset.component.html71
-rw-r--r--frontend/src/app/_elements/form-dataset/form-dataset.component.ts58
3 files changed, 85 insertions, 50 deletions
diff --git a/frontend/src/app/_elements/form-dataset/form-dataset.component.css b/frontend/src/app/_elements/form-dataset/form-dataset.component.css
index 079711d0..43accd6d 100644
--- a/frontend/src/app/_elements/form-dataset/form-dataset.component.css
+++ b/frontend/src/app/_elements/form-dataset/form-dataset.component.css
@@ -7,7 +7,7 @@
.topBar {
display: table;
width: 100%;
- height: 100px;
+ height: 80px;
margin-left: 1.5%;
margin-top: 1.5% ;
}
@@ -63,4 +63,8 @@
.file-container input{
border-radius: 5px;
left: 0%;
+}
+
+.naslov{
+ font-size: 30px;
} \ No newline at end of file
diff --git a/frontend/src/app/_elements/form-dataset/form-dataset.component.html b/frontend/src/app/_elements/form-dataset/form-dataset.component.html
index b96276bd..6194a1a8 100644
--- a/frontend/src/app/_elements/form-dataset/form-dataset.component.html
+++ b/frontend/src/app/_elements/form-dataset/form-dataset.component.html
@@ -1,52 +1,51 @@
<div class="folderBox" *ngIf="dataset">
+ <div class="topBar">
+ <div class="kolona mb-3">
+ <div class="fileButton">
+ <button type="button" mat-raised-button (click)="fileInput.click()"><span *ngIf="!firstInput">Dodaj izvor podataka</span><span *ngIf="firstInput">{{filename}}</span></button>
+ </div>
+ </div>
-
- <div class="topBar">
- <div class="kolona mb-3">
- <div class="fileButton">
- <button type="button" mat-raised-button (click)="fileInput.click()">Dodaj izvor podataka</button>
-
- </div>
- </div>
-
- <div class="kolona">
- <div role="group">
- <mat-form-field class="example-full-width" appearance="fill">
- <mat-label>Naziv</mat-label>
- <input type="text" matInput value="{{dataset?.name}}" [(ngModel)]="dataset.name">
+ <div class="kolona">
+ <div role="group">
+ <mat-form-field class="example-full-width" appearance="fill">
+ <mat-label>Naziv</mat-label>
+ <input type="text" matInput value="{{dataset?.name}}" [(ngModel)]="dataset.name" (input)="editEvent.emit()">
- <mat-error *ngIf="nameFormControl.hasError('required')">
- Naziv je <strong>obavezan</strong>
- </mat-error>
- </mat-form-field>
- </div>
- </div>
- <div class="kolona">
- <mat-form-field appearance="fill">
- <mat-label>Delimiter</mat-label>
- <mat-select id="delimiterOptions" [(ngModel)]="dataset.delimiter" (selectionChange)="update()" value=",">
- <mat-option *ngFor="let option of delimiterOptions" [value]="option">
- {{ option }}
- </mat-option>
- </mat-select>
- </mat-form-field>
- </div>
+ <mat-error *ngIf="nameFormControl.hasError('required')">
+ Naziv je <strong>obavezan</strong>
+ </mat-error>
+ </mat-form-field>
+ </div>
+ </div>
+ <div class="kolona">
+ <mat-form-field appearance="fill">
+ <mat-label>Delimiter</mat-label>
+ <mat-select id="delimiterOptions" [(ngModel)]="dataset.delimiter" (selectionChange)="update(); editEvent.emit();" value=",">
+ <mat-option *ngFor="let option of delimiterOptions" [value]="option">
+ {{ option }}
+ </mat-option>
+ </mat-select>
+ </mat-form-field>
</div>
-
- <div class="row" *ngIf="firstInput">
- <label class=" mt-5">{{filename}}</label>
-
</div>
+
<div class="row" style="margin-right: 0;">
<div class="file-container" [ngClass]="{'dottedClass': !tableData.hasInput}">
<i class="material-icons-outlined icon-display" [ngClass]="{'hidden': tableData.hasInput}">file_upload</i>
- <input class="file" id="file-upload" (change)="changeListener($event)" #fileInput type="file" accept=".csv">
- <div class="mt-5 datatable">
+ <input class="file" id="file-upload" (change)="changeListener($event)" (valueChange)="dataset.isPreProcess = false; editEvent.emit()" #fileInput type="file" accept=".csv">
+
+ <div class="datatable">
+ <div [ngClass]="{'hidden': (!existingFlag)}" class="text-center">
+ <button mat-button (click)="goBack()"><mat-icon>keyboard_arrow_left</mat-icon></button>
+ <div style="display: inline;">{{(this.begin/10)+1}}...{{getPage()}}</div>
+ <button mat-button (click)="goForward()"><mat-icon>keyboard_arrow_right</mat-icon></button>
+ </div>
<app-datatable [tableData]="tableData"></app-datatable>
</div>
diff --git a/frontend/src/app/_elements/form-dataset/form-dataset.component.ts b/frontend/src/app/_elements/form-dataset/form-dataset.component.ts
index 94ef9905..35d68526 100644
--- a/frontend/src/app/_elements/form-dataset/form-dataset.component.ts
+++ b/frontend/src/app/_elements/form-dataset/form-dataset.component.ts
@@ -24,8 +24,12 @@ export class FormDatasetComponent {
files: File[] = [];
rowsNumber: number = 0;
colsNumber: number = 0;
+ begin: number = 0;
+ step: number = 10;
+ existingFlag: boolean = false;
@Input() dataset: Dataset; //dodaj ! potencijalno
+ @Output() editEvent = new EventEmitter();
tableData: TableData = new TableData();
@@ -40,10 +44,31 @@ export class FormDatasetComponent {
}
//@ViewChild('fileImportInput', { static: false }) fileImportInput: any; cemu je ovo sluzilo?
+ resetPagging() {
+ this.begin = 0;
+ }
+ goBack() {
+ if (this.begin - 10 < 0)
+ this.begin = 0;
+ else {
+ this.begin -= 10;
+ this.loadExisting();
+ }
- clear(){
+ }
+ goForward() {
+ this.begin += 10;
+ if (this.dataset.rowCount < this.begin)
+ this.begin -= 10;
+ else
+ this.loadExisting();
+ }
+ clear() {
this.tableData.hasInput = false;
}
+ getPage() {
+ return Math.ceil(this.dataset.rowCount / 10)
+ }
changeListener($event: any): void {
this.files = $event.srcElement.files;
@@ -56,6 +81,7 @@ export class FormDatasetComponent {
this.filename = this.files[0].name;
this.tableData.loaded = false;
+ this.existingFlag = false;
this.update();
}
@@ -64,7 +90,6 @@ export class FormDatasetComponent {
update() {
this.firstInput = true
-
if (this.files.length < 1)
return;
@@ -90,23 +115,30 @@ export class FormDatasetComponent {
this.dataset.name = this.filename.slice(0, this.filename.length - 4);
}
- loadExisting(){
+ loadExisting() {
+ this.existingFlag = true;
this.firstInput = false;
this.tableData.hasInput = true;
this.tableData.loaded = false;
-
- this.datasetsService.getDatasetFile(this.dataset.fileId).subscribe((file: string | undefined) => {
- if (file) {
- this.tableData.loaded = true;
- this.tableData.numRows = this.dataset.rowCount;
- this.tableData.numCols = this.dataset.columnInfo.length;
- this.tableData.data = this.csv.csvToArray(file, (this.dataset.delimiter == "razmak") ? " " : (this.dataset.delimiter == "novi red") ? "\t" : this.dataset.delimiter);
-
- }
+ this.datasetsService.getDatasetHeader(this.dataset.fileId).subscribe((header: string | undefined) => {
+
+ this.datasetsService.getDatasetFilePaging(this.dataset.fileId, this.begin, this.step).subscribe((file: string | undefined) => {
+ if (file) {
+ this.tableData.loaded = true;
+ this.tableData.numRows = this.dataset.rowCount;
+ this.tableData.numCols = this.dataset.columnInfo.length;
+ this.tableData.data = this.csv.csvToArray(header + '\n' + file, (this.dataset.delimiter == "razmak") ? " " : (this.dataset.delimiter == "novi red") ? "\t" : this.dataset.delimiter);
+
+ }
+ else {
+ this.begin -= 10;
+ this.loadExisting();
+ }
+ });
});
-
+
}
/*exportAsXLSX():void {