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 @@
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 @@
-
- +
+
- +
{{item}}
{{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
{{col}}