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
---
.../src/app/_pages/my-models/my-models.component.html | 5 +++++
frontend/src/app/_pages/my-models/my-models.component.ts | 15 +++++++++++----
2 files changed, 16 insertions(+), 4 deletions(-)
(limited to 'frontend/src/app/_pages')
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 e69de29b..e94f67f5 100644
--- a/frontend/src/app/_pages/my-models/my-models.component.html
+++ b/frontend/src/app/_pages/my-models/my-models.component.html
@@ -0,0 +1,5 @@
+
\ No newline at end of file
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 e9bc52de..3ab57e59 100644
--- a/frontend/src/app/_pages/my-models/my-models.component.ts
+++ b/frontend/src/app/_pages/my-models/my-models.component.ts
@@ -1,15 +1,22 @@
import { Component, OnInit } from '@angular/core';
+import Model from 'src/app/_data/Model';
@Component({
selector: 'app-my-models',
templateUrl: './my-models.component.html',
styleUrls: ['./my-models.component.css']
})
-export class MyModelsComponent implements OnInit {
+export class MyModelsComponent /*implements OnInit*/ {
+ myModels: Model[];
- constructor() { }
+ constructor() {
+ this.myModels = [
+ new Model('Titanik', 'Opis titanik'),
+ new Model('Neki drugi set', 'opis'),
+ new Model('Treci set', 'opis')
+ ]; }
- ngOnInit(): void {
+ /*ngOnInit(): void {
}
-
+*/
}
--
cgit v1.2.3
From 2b985326e9ebf4f1e421114b09d9f7f456ce78f9 Mon Sep 17 00:00:00 2001
From: Ognjen Cirkovic
Date: Fri, 25 Mar 2022 22:17:39 +0100
Subject: Resena greska kod inputNeurona na backu i preuzimanju fajla od public
dataseta.
---
backend/api/api/Controllers/ModelController.cs | 1 +
backend/api/api/Services/FileService.cs | 8 +++++++-
.../app/_pages/filter-datasets/filter-datasets.component.ts | 11 ++++++-----
3 files changed, 14 insertions(+), 6 deletions(-)
(limited to 'frontend/src/app/_pages')
diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs
index b4a4b4f2..b997efa3 100644
--- a/backend/api/api/Controllers/ModelController.cs
+++ b/backend/api/api/Controllers/ModelController.cs
@@ -126,6 +126,7 @@ namespace api.Controllers
public ActionResult Post([FromBody] Model model)
{
//username="" ako je GUEST
+ model.inputNeurons = model.inputColumns.Length;
if (_modelService.CheckHyperparameters(model.inputNeurons, model.hiddenLayerNeurons, model.hiddenLayers, model.outputNeurons) == false)
return BadRequest("Bad parameters!");
diff --git a/backend/api/api/Services/FileService.cs b/backend/api/api/Services/FileService.cs
index b02d0da4..c5759953 100644
--- a/backend/api/api/Services/FileService.cs
+++ b/backend/api/api/Services/FileService.cs
@@ -8,11 +8,13 @@ namespace api.Services
{
private readonly IMongoCollection _file;
+ private readonly IMongoCollection _dataset;
public FileService(IUserStoreDatabaseSettings settings, IMongoClient mongoClient)
{
var database = mongoClient.GetDatabase(settings.DatabaseName);
_file = database.GetCollection(settings.FilesCollectionName);
+ _dataset = database.GetCollection(settings.DatasetCollectionName);
}
public FileModel Create(FileModel file)
@@ -25,7 +27,11 @@ namespace api.Services
}
public string GetFilePath(string id, string username)
{
- FileModel file = _file.Find(x => x._id == id && x.username == username).FirstOrDefault();
+ FileModel file;
+ if (_dataset.Find(x=>x.fileId==id && x.isPublic==true).FirstOrDefault()!=null)
+ file = _file.Find(x => x._id == id).FirstOrDefault();
+ else
+ file = _file.Find(x => x._id == id && x.username == username).FirstOrDefault();
if (file == null)
return null;
return file.path;
diff --git a/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts b/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts
index bc13a51c..f6b78ded 100644
--- a/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts
+++ b/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts
@@ -27,11 +27,12 @@ export class FilterDatasetsComponent implements OnInit {
//this.router.navigateByUrl('/predict?id='+id);
const helper = new JwtHelperService();
const decodedToken = helper.decodeToken(this.cookie.get("token"));
- dataset._id = "";
- dataset.isPublic = false;
- dataset.lastUpdated = new Date();
- dataset.username = decodedToken.name;
- this.datasets.addDataset(dataset).subscribe((response:string)=>{
+ const newDataset={...dataset};
+ newDataset._id = "";
+ newDataset.isPublic = false;
+ newDataset.lastUpdated = new Date();
+ newDataset.username = decodedToken.name;
+ this.datasets.addDataset(newDataset).subscribe((response:string)=>{
console.log(response);
});
};
--
cgit v1.2.3
From 2a8662479dea8c98049448a35ca5480e969238f2 Mon Sep 17 00:00:00 2001
From: TAMARA JERINIC
Date: Sat, 26 Mar 2022 12:51:51 +0100
Subject: Dodati su html, css i ts fajlovi za stranicu treniranih modela.
---
.../_pages/my-predictors/my-predictors.component.css | 13 +++++++++++++
.../_pages/my-predictors/my-predictors.component.html | 17 ++++++++++++++++-
.../_pages/my-predictors/my-predictors.component.ts | 19 ++++++++++++++++---
3 files changed, 45 insertions(+), 4 deletions(-)
(limited to 'frontend/src/app/_pages')
diff --git a/frontend/src/app/_pages/my-predictors/my-predictors.component.css b/frontend/src/app/_pages/my-predictors/my-predictors.component.css
index e69de29b..ccb9fb7b 100644
--- a/frontend/src/app/_pages/my-predictors/my-predictors.component.css
+++ b/frontend/src/app/_pages/my-predictors/my-predictors.component.css
@@ -0,0 +1,13 @@
+#header {
+ background-color: #003459;
+ padding-top: 20px;
+ padding-bottom: 15px;
+ text-align: center;
+ color: white;
+ border-radius: 5px;
+}
+
+.row{
+ margin-top: 10px;
+ margin-bottom: 30px;
+}
\ No newline at end of file
diff --git a/frontend/src/app/_pages/my-predictors/my-predictors.component.html b/frontend/src/app/_pages/my-predictors/my-predictors.component.html
index 32d085af..d739f561 100644
--- a/frontend/src/app/_pages/my-predictors/my-predictors.component.html
+++ b/frontend/src/app/_pages/my-predictors/my-predictors.component.html
@@ -1 +1,16 @@
-my-predictors works!
+
+
+
diff --git a/frontend/src/app/_pages/my-predictors/my-predictors.component.ts b/frontend/src/app/_pages/my-predictors/my-predictors.component.ts
index b0d6e9dd..58daa44f 100644
--- a/frontend/src/app/_pages/my-predictors/my-predictors.component.ts
+++ b/frontend/src/app/_pages/my-predictors/my-predictors.component.ts
@@ -1,4 +1,5 @@
import { Component, OnInit } from '@angular/core';
+import Predictor from 'src/app/_data/Predictor';
@Component({
selector: 'app-my-predictors',
@@ -6,10 +7,22 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./my-predictors.component.css']
})
export class MyPredictorsComponent implements OnInit {
-
- constructor() { }
-
+ predictors: Predictor[];
+ constructor() {
+ this.predictors = [
+ new Predictor('Titanik', 'Opis titanik', ['K1', 'K2', 'K3', 'Ime', 'Preziveli'],'Preziveli'),
+ new Predictor('Neki drugi set', 'opis', ['a', 'b', 'c'],'c'),
+ new Predictor('Preživeli', 'Za uneto ime osobe, predvidja da li je ta osoba preživela ili ne.', ['Ime'], 'OsobaJePreživela'),
+ new Predictor('Drugi model', 'Lorem ipsum dolor sir amet', ['kruska'], 'jagoda')];
+ }
ngOnInit(): void {
}
+ delete(){
+ confirm("IZABRANI MODEL ĆE BITI IZBRISAN")
+
+ }
+
+
+
}
--
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/_pages')
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/_pages')
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/_pages')
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