From b3479aa63d26e7ce7acedd0d56352c04440eb41b Mon Sep 17 00:00:00 2001
From: Ivan Ljubisavljevic
Date: Fri, 25 Mar 2022 12:10:59 +0100
Subject: Moji modeli stranica. Nije zavrseno #55
---
.../_elements/item-model/item-model.component.css | 0
.../_elements/item-model/item-model.component.html | 26 ++++++++++++++++++++++
.../item-model/item-model.component.spec.ts | 25 +++++++++++++++++++++
.../_elements/item-model/item-model.component.ts | 18 +++++++++++++++
4 files changed, 69 insertions(+)
create mode 100644 frontend/src/app/_elements/item-model/item-model.component.css
create mode 100644 frontend/src/app/_elements/item-model/item-model.component.html
create mode 100644 frontend/src/app/_elements/item-model/item-model.component.spec.ts
create mode 100644 frontend/src/app/_elements/item-model/item-model.component.ts
(limited to 'frontend/src/app/_elements')
diff --git a/frontend/src/app/_elements/item-model/item-model.component.css b/frontend/src/app/_elements/item-model/item-model.component.css
new file mode 100644
index 00000000..e69de29b
diff --git a/frontend/src/app/_elements/item-model/item-model.component.html b/frontend/src/app/_elements/item-model/item-model.component.html
new file mode 100644
index 00000000..ca170b3d
--- /dev/null
+++ b/frontend/src/app/_elements/item-model/item-model.component.html
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/frontend/src/app/_elements/item-model/item-model.component.spec.ts b/frontend/src/app/_elements/item-model/item-model.component.spec.ts
new file mode 100644
index 00000000..f696a160
--- /dev/null
+++ b/frontend/src/app/_elements/item-model/item-model.component.spec.ts
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ItemModelComponent } from './item-model.component';
+
+describe('ItemModelComponent', () => {
+ let component: ItemModelComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ ItemModelComponent ]
+ })
+ .compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ItemModelComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/frontend/src/app/_elements/item-model/item-model.component.ts b/frontend/src/app/_elements/item-model/item-model.component.ts
new file mode 100644
index 00000000..7f85f43f
--- /dev/null
+++ b/frontend/src/app/_elements/item-model/item-model.component.ts
@@ -0,0 +1,18 @@
+import { Component, Input, OnInit } from '@angular/core';
+import Model from 'src/app/_data/Model';
+
+@Component({
+ selector: 'app-item-model',
+ templateUrl: './item-model.component.html',
+ styleUrls: ['./item-model.component.css']
+})
+export class ItemModelComponent implements OnInit {
+
+ @Input() model: Model = new Model();
+
+ constructor() { }
+
+ ngOnInit(): void {
+ }
+
+}
--
cgit v1.2.3
From e9112baa067850cbbd460060347cb1987e389902 Mon Sep 17 00:00:00 2001
From: Sonja Galovic
Date: Sat, 26 Mar 2022 14:43:04 +0100
Subject: Dodat atribut hasHeader u klasi Dataset (front i back) i iskoriscen u
tabelarnom prikazu (datatable component).
---
backend/api/api/Models/Dataset.cs | 1 +
frontend/src/app/_data/Dataset.ts | 3 ++-
.../src/app/_elements/dataset-load/dataset-load.component.html | 2 +-
.../src/app/_elements/dataset-load/dataset-load.component.ts | 9 +++++----
.../src/app/_elements/item-dataset/item-dataset.component.html | 2 +-
frontend/src/app/_pages/add-model/add-model.component.html | 2 +-
frontend/src/app/_pages/add-model/add-model.component.ts | 3 ++-
7 files changed, 13 insertions(+), 9 deletions(-)
(limited to 'frontend/src/app/_elements')
diff --git a/backend/api/api/Models/Dataset.cs b/backend/api/api/Models/Dataset.cs
index 67ef8cfe..dcfde3b1 100644
--- a/backend/api/api/Models/Dataset.cs
+++ b/backend/api/api/Models/Dataset.cs
@@ -21,6 +21,7 @@ namespace api.Models
public DateTime dateCreated { get; set; }
public DateTime lastUpdated { get; set; }
public string delimiter { get; set; }
+ public bool hasHeader { get; set; }
}
}
diff --git a/frontend/src/app/_data/Dataset.ts b/frontend/src/app/_data/Dataset.ts
index 665df932..c5b56957 100644
--- a/frontend/src/app/_data/Dataset.ts
+++ b/frontend/src/app/_data/Dataset.ts
@@ -11,6 +11,7 @@ export default class Dataset {
public dateCreated: Date = new Date(),
public lastUpdated: Date = new Date(),
public username: string = '',
- public delimiter: string = ''
+ public delimiter: string = '',
+ public hasHeader: boolean = true
) { }
}
\ No newline at end of file
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 3ac43f73..76e46092 100644
--- a/frontend/src/app/_elements/dataset-load/dataset-load.component.html
+++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.html
@@ -33,7 +33,7 @@
Da li .csv ima header?
-
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 e7b19f9a..f9343117 100644
--- a/frontend/src/app/_elements/dataset-load/dataset-load.component.ts
+++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.ts
@@ -13,7 +13,7 @@ export class DatasetLoadComponent {
delimiterOptions: Array = [",", ";", "\t", "razmak", "|"]; //podrazumevano ","
- hasHeader: boolean = true;
+ //hasHeader: boolean = true;
hasInput: boolean = false;
csvRecords: any[] = [];
@@ -21,7 +21,7 @@ export class DatasetLoadComponent {
rowsNumber: number = 0;
colsNumber: number = 0;
- dataset: Dataset;
+ dataset: Dataset; //dodaj ! potencijalno
constructor(private ngxCsvParser: NgxCsvParser) {
this.dataset = new Dataset();
@@ -54,13 +54,14 @@ export class DatasetLoadComponent {
console.log('Result', result);
if (result.constructor === Array) {
this.csvRecords = result;
- if (this.hasHeader)
+ if (this.dataset.hasHeader)
this.rowsNumber = this.csvRecords.length - 1;
else
this.rowsNumber = this.csvRecords.length;
this.colsNumber = this.csvRecords[0].length;
- this.dataset.header = this.csvRecords[0];
+ 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");
}
diff --git a/frontend/src/app/_elements/item-dataset/item-dataset.component.html b/frontend/src/app/_elements/item-dataset/item-dataset.component.html
index 46840cdd..8751fce5 100644
--- a/frontend/src/app/_elements/item-dataset/item-dataset.component.html
+++ b/frontend/src/app/_elements/item-dataset/item-dataset.component.html
@@ -8,7 +8,7 @@
- {{column}}
+ {{column}}
diff --git a/frontend/src/app/_pages/add-model/add-model.component.html b/frontend/src/app/_pages/add-model/add-model.component.html
index 7e944a19..f4574eab 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.html
+++ b/frontend/src/app/_pages/add-model/add-model.component.html
@@ -54,7 +54,7 @@
+ (loaded)="datasetLoaded = true; selectedDataset = datasetLoadComponent?.dataset; datasetFile = datasetLoadComponent?.csvRecords; datasetHasHeader = datasetLoadComponent?.dataset!.hasHeader">
diff --git a/frontend/src/app/_pages/add-model/add-model.component.ts b/frontend/src/app/_pages/add-model/add-model.component.ts
index fcc8ea70..2552f612 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.ts
+++ b/frontend/src/app/_pages/add-model/add-model.component.ts
@@ -209,6 +209,7 @@ export class AddModelComponent implements OnInit {
selectThisDataset(dataset: Dataset) {
this.selectedDataset = dataset;
this.existingDatasetSelected = true;
+ this.datasetHasHeader = this.selectedDataset.hasHeader;
/*let datasets = document.getElementsByClassName("usersDataset") as HTMLCollection;
for (let i = 0; i < datasets.length; i++) {
@@ -222,7 +223,7 @@ export class AddModelComponent implements OnInit {
this.datasetFile = this.csv.csvToArray(file, (dataset.delimiter == "razmak") ? " " : (dataset.delimiter == "") ? "," : dataset.delimiter);
}
});
- this.datasetHasHeader = false;
+ //this.datasetHasHeader = false;
this.resetCbsAndRbs();
}
--
cgit v1.2.3
From f22b01150a7ffc9c7d246e5c555b36511d80b492 Mon Sep 17 00:00:00 2001
From: Sonja Galovic
Date: Sat, 26 Mar 2022 19:37:27 +0100
Subject: Datatable.component: promenjen prikaz csv fajla (scrollbar table)
---
.../src/app/_elements/datatable/datatable.component.html | 15 ++++++++-------
.../src/app/_pages/add-model/add-model.component.html | 4 +++-
frontend/src/app/_pages/add-model/add-model.component.ts | 2 ++
3 files changed, 13 insertions(+), 8 deletions(-)
(limited to 'frontend/src/app/_elements')
diff --git a/frontend/src/app/_elements/datatable/datatable.component.html b/frontend/src/app/_elements/datatable/datatable.component.html
index 2c469ecc..bd9e7a13 100644
--- a/frontend/src/app/_elements/datatable/datatable.component.html
+++ b/frontend/src/app/_elements/datatable/datatable.component.html
@@ -1,21 +1,21 @@
-
-
+
+
-
0 && !hasHeader" class="table table-bordered table-light mt-4">
+ 0 && !hasHeader" class="table table-bordered table-light">
-
+
{{col}}
@@ -23,7 +23,8 @@
- . . .
- {{data.length}} x {{data[0].length}}
+
+ {{data.length - 1}} x {{data[0].length}}
+ {{data.length}} x {{data[0].length}}
\ No newline at end of file
diff --git a/frontend/src/app/_pages/add-model/add-model.component.html b/frontend/src/app/_pages/add-model/add-model.component.html
index f4574eab..09a11e37 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.html
+++ b/frontend/src/app/_pages/add-model/add-model.component.html
@@ -56,7 +56,9 @@
-
+
diff --git a/frontend/src/app/_pages/add-model/add-model.component.ts b/frontend/src/app/_pages/add-model/add-model.component.ts
index 2552f612..995aaa87 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.ts
+++ b/frontend/src/app/_pages/add-model/add-model.component.ts
@@ -221,6 +221,8 @@ export class AddModelComponent implements OnInit {
this.datasets.getDatasetFile(dataset.fileId).subscribe((file: string | undefined) => {
if (file) {
this.datasetFile = this.csv.csvToArray(file, (dataset.delimiter == "razmak") ? " " : (dataset.delimiter == "") ? "," : dataset.delimiter);
+ this.datasetFile.length = this.datasetFile.length - 1;
+ console.log(this.datasetFile);
}
});
//this.datasetHasHeader = false;
--
cgit v1.2.3
From a315d3c0bc44c091d7c85697c9c8135b314ebc06 Mon Sep 17 00:00:00 2001
From: Ivan Ljubisavljevic
Date: Sat, 26 Mar 2022 20:09:28 +0100
Subject: Odradjen my-models stranica #55
---
.../_elements/item-model/item-model.component.html | 26 +++--------
.../app/_pages/my-models/my-models.component.html | 32 +++++++++++---
.../app/_pages/my-models/my-models.component.ts | 51 ++++++++++++++++++----
frontend/src/app/_services/models.service.ts | 10 +++++
4 files changed, 86 insertions(+), 33 deletions(-)
(limited to 'frontend/src/app/_elements')
diff --git a/frontend/src/app/_elements/item-model/item-model.component.html b/frontend/src/app/_elements/item-model/item-model.component.html
index ca170b3d..9466da01 100644
--- a/frontend/src/app/_elements/item-model/item-model.component.html
+++ b/frontend/src/app/_elements/item-model/item-model.component.html
@@ -1,26 +1,14 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/frontend/src/app/_pages/my-models/my-models.component.html b/frontend/src/app/_pages/my-models/my-models.component.html
index e94f67f5..870e0ddb 100644
--- a/frontend/src/app/_pages/my-models/my-models.component.html
+++ b/frontend/src/app/_pages/my-models/my-models.component.html
@@ -1,5 +1,27 @@
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
Nema rezultata
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/app/_pages/my-models/my-models.component.ts b/frontend/src/app/_pages/my-models/my-models.component.ts
index 3ab57e59..bd6b0a2b 100644
--- a/frontend/src/app/_pages/my-models/my-models.component.ts
+++ b/frontend/src/app/_pages/my-models/my-models.component.ts
@@ -1,22 +1,55 @@
import { Component, OnInit } from '@angular/core';
import Model from 'src/app/_data/Model';
+import { ModelsService } from 'src/app/_services/models.service';
@Component({
selector: 'app-my-models',
templateUrl: './my-models.component.html',
styleUrls: ['./my-models.component.css']
})
-export class MyModelsComponent /*implements OnInit*/ {
- myModels: Model[];
+export class MyModelsComponent implements OnInit {
+ myModels: Model[] = [];
+ //myModel: Model;
- constructor() {
- this.myModels = [
- new Model('Titanik', 'Opis titanik'),
- new Model('Neki drugi set', 'opis'),
- new Model('Treci set', 'opis')
- ]; }
+ constructor(private modelsS : ModelsService) {
+
+
+
+ }
+
+ ngOnInit(): void {
+ this.getAllMyModels();
- /*ngOnInit(): void {
+ }
+/*
+ editModel(): void{
+ this.modelsS.editModel().subscribe(m => {
+ this.myModel = m;
+
+ })
}
*/
+
+deleteThisModel(model: Model): void{
+ console.log("OK");
+ this.modelsS.deleteModel(model).subscribe((response) => {
+ console.log("OBRISANOOO JEE", response);
+ //na kraju uspesnog
+ this.getAllMyModels();
+ }, (error) =>{
+ if (error.error == "Model with name = {name} deleted") {
+ alert("Greška pri brisanju modela!");
+ }
+ });
+
+}
+
+ getAllMyModels(): void{
+ this.modelsS.getMyModels().subscribe(m => {
+
+ this.myModels = m;
+ console.log(this.myModels);
+ });
+ }
+
}
diff --git a/frontend/src/app/_services/models.service.ts b/frontend/src/app/_services/models.service.ts
index d0346c03..58ddb2e6 100644
--- a/frontend/src/app/_services/models.service.ts
+++ b/frontend/src/app/_services/models.service.ts
@@ -46,4 +46,14 @@ export class ModelsService {
getMyModels(): Observable {
return this.http.get(`${API_SETTINGS.apiURL}/model/mymodels`, { headers: this.authService.authHeader() });
}
+
+ editModel(model:Model) : Observable
+ {
+ return this.http.put(`${API_SETTINGS.apiURL}/model/`, model, { headers: this.authService.authHeader() });
+ }
+
+ deleteModel(model:Model) : Observable
+ {
+ return this.http.delete(`${API_SETTINGS.apiURL}/model/`+model.name, { headers: this.authService.authHeader() });
+ }
}
--
cgit v1.2.3