aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSonja Galovic <galovicsonja@gmail.com>2022-03-24 00:43:26 +0100
committerSonja Galovic <galovicsonja@gmail.com>2022-03-24 00:43:26 +0100
commit1113f094ffee030fd9892deb7577927419860013 (patch)
treeeb4b627830e2bf340f60936a7d5d6289434972b6
parent6a4abae42f6a785f4e666b8fee23211e9e0ba543 (diff)
parent495607f3ce83d107e3a525c658e70355ec94d488 (diff)
Merge branch 'dev' of http://gitlab.pmf.kg.ac.rs/igrannonica/neuronstellar into dev
-rw-r--r--frontend/src/app/_data/ProfilePictures.ts8
-rw-r--r--frontend/src/app/_data/User.ts2
-rw-r--r--frontend/src/app/_modals/register-modal/register-modal.component.ts3
-rw-r--r--frontend/src/app/_pages/browse-predictors/browse-predictors.component.html4
-rw-r--r--frontend/src/app/_pages/browse-predictors/browse-predictors.component.ts4
-rw-r--r--frontend/src/app/_pages/filter-datasets/filter-datasets.component.html39
-rw-r--r--frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts26
-rw-r--r--frontend/src/app/_pages/home/home.component.html1
-rw-r--r--frontend/src/app/_pages/profile/profile.component.html2
-rw-r--r--frontend/src/app/_services/datasets.service.spec.ts16
-rw-r--r--frontend/src/app/_services/datasets.service.ts24
-rw-r--r--frontend/src/app/app-routing.module.ts4
-rw-r--r--frontend/src/assets/profilePictures/1.pngbin27411 -> 27411 bytes
-rw-r--r--frontend/src/assets/profilePictures/10.pngbin37866 -> 42749 bytes
-rw-r--r--frontend/src/assets/profilePictures/11.pngbin25177 -> 39817 bytes
-rw-r--r--frontend/src/assets/profilePictures/15.pngbin37226 -> 0 bytes
-rw-r--r--frontend/src/assets/profilePictures/16.pngbin27723 -> 0 bytes
-rw-r--r--frontend/src/assets/profilePictures/2.pngbin42749 -> 37797 bytes
-rw-r--r--frontend/src/assets/profilePictures/5.pngbin37797 -> 37866 bytes
-rw-r--r--frontend/src/assets/profilePictures/8.pngbin39817 -> 37226 bytes
-rw-r--r--frontend/src/assets/profilePictures/9.pngbin25994 -> 25994 bytes
21 files changed, 115 insertions, 18 deletions
diff --git a/frontend/src/app/_data/ProfilePictures.ts b/frontend/src/app/_data/ProfilePictures.ts
index 42688b4d..217810d9 100644
--- a/frontend/src/app/_data/ProfilePictures.ts
+++ b/frontend/src/app/_data/ProfilePictures.ts
@@ -59,13 +59,5 @@ export const PICTURES = [
{
photoId: 14,
path: "/assets/profilePictures/14.png"
- },
- {
- photoId: 15,
- path: "/assets/profilePictures/15.png"
- },
- {
- photoId: 16,
- path: "/assets/profilePictures/16.png"
}
] \ No newline at end of file
diff --git a/frontend/src/app/_data/User.ts b/frontend/src/app/_data/User.ts
index 58383d38..be42ed0a 100644
--- a/frontend/src/app/_data/User.ts
+++ b/frontend/src/app/_data/User.ts
@@ -1,5 +1,5 @@
export default class User {
- _id: string = '';
+ _id?: string = '';
constructor(
public username: string = '',
public email: string = '',
diff --git a/frontend/src/app/_modals/register-modal/register-modal.component.ts b/frontend/src/app/_modals/register-modal/register-modal.component.ts
index fe0de92f..13ef7eba 100644
--- a/frontend/src/app/_modals/register-modal/register-modal.component.ts
+++ b/frontend/src/app/_modals/register-modal/register-modal.component.ts
@@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { AuthService } from 'src/app/_services/auth.service';
+import User from 'src/app/_data/User';
@Component({
selector: 'app-register-modal',
@@ -124,7 +125,7 @@ export class RegisterModalComponent implements OnInit {
if (!(this.wrongFirstNameBool || this.wrongLastNameBool || this.wrongUsernameBool ||
this.wrongEmailBool || this.wrongPass1Bool || this.wrongPass2Bool)) { //sve ok, registruj ga
- let user = {
+ let user: User = {
firstName: this.firstName,
lastName: this.lastName,
username: this.username,
diff --git a/frontend/src/app/_pages/browse-predictors/browse-predictors.component.html b/frontend/src/app/_pages/browse-predictors/browse-predictors.component.html
index 37ac67cf..a4ab6e2c 100644
--- a/frontend/src/app/_pages/browse-predictors/browse-predictors.component.html
+++ b/frontend/src/app/_pages/browse-predictors/browse-predictors.component.html
@@ -9,7 +9,7 @@
</div>
<div class="row">
- <div class="col-sm-4" style="margin-bottom: 10px;" *ngFor="let predictor of myPredictors | filter:term">
+ <div class="col-sm-4" style="margin-bottom: 10px;" *ngFor="let predictor of publicPredictors | filter:term">
<div class="card h-100">
<div class="card-body">
<h3 class="card-title"><b>{{predictor.name}}</b></h3>
@@ -25,7 +25,7 @@
</div>
- <div class="text-center"*ngIf="(myPredictors|filter:term).length === 0">
+ <div class="text-center"*ngIf="( publicPredictors != undefined && publicPredictors|filter:term).length === 0">
<h2>Nema rezultata</h2>
</div>
</div>
diff --git a/frontend/src/app/_pages/browse-predictors/browse-predictors.component.ts b/frontend/src/app/_pages/browse-predictors/browse-predictors.component.ts
index 5c085bba..4f96fc36 100644
--- a/frontend/src/app/_pages/browse-predictors/browse-predictors.component.ts
+++ b/frontend/src/app/_pages/browse-predictors/browse-predictors.component.ts
@@ -9,11 +9,11 @@ import {Router} from '@angular/router'
})
export class BrowsePredictorsComponent implements OnInit {
- myPredictors? :Predictor[];
+ publicPredictors? :Predictor[];
term: string="";
constructor(private predictors: PredictorsService,private router:Router) {
this.predictors.getPublicPredictors().subscribe((predictors) => {
- this.myPredictors = predictors;
+ this.publicPredictors = predictors;
});
}
diff --git a/frontend/src/app/_pages/filter-datasets/filter-datasets.component.html b/frontend/src/app/_pages/filter-datasets/filter-datasets.component.html
index fecf09a8..84f5ebaf 100644
--- a/frontend/src/app/_pages/filter-datasets/filter-datasets.component.html
+++ b/frontend/src/app/_pages/filter-datasets/filter-datasets.component.html
@@ -1 +1,38 @@
-<p>filter-datasets works!</p>
+
+<div id="wrapper">
+
+ <div id="container" class="container p-5" style="background-color: white; min-height: 100%;">
+ <div class="row mt-3 mb-2 d-flex justify-content-center">
+
+ <div class="col-sm-6" style="margin-bottom: 10px;">
+ <input type="text" class="form-control" placeholder="Pretraga" [(ngModel)]="term">
+ </div>
+
+ <div class="row">
+ <div class="col-sm-4" style="margin-bottom: 10px;" *ngFor="let dataset of publicDatasets | filter:term">
+ <div class="card h-100">
+ <div class="card-body">
+ <h3 class="card-title"><b>{{dataset.name}}</b></h3>
+ <p class="card-text">{{dataset.description}}</p>
+ <a class="btn btn-primary" (click)="addDataset(dataset)">Dodaj dataset</a>
+ </div>
+ <div class="card-footer text-muted">
+ Kreirao: {{dataset.username}} <br>
+ Datum kreiranja: {{dataset.dateCreated |date}}
+ </div>
+ </div>
+ </div>
+
+
+ </div>
+ <div class="text-center"*ngIf="( publicDatasets != undefined && publicDatasets|filter:term).length === 0">
+ <h2>Nema rezultata</h2>
+ </div>
+ </div>
+
+ </div>
+
+
+
+
+</div>
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 4a143696..bc13a51c 100644
--- a/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts
+++ b/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts
@@ -1,4 +1,9 @@
import { Component, OnInit } from '@angular/core';
+import { DatasetsService } from 'src/app/_services/datasets.service';
+import Dataset from 'src/app/_data/Dataset';
+import {Router} from '@angular/router'
+import { JwtHelperService } from '@auth0/angular-jwt';
+import { CookieService } from 'ngx-cookie-service';
@Component({
selector: 'app-filter-datasets',
@@ -7,9 +12,28 @@ import { Component, OnInit } from '@angular/core';
})
export class FilterDatasetsComponent implements OnInit {
- constructor() { }
+ publicDatasets?: Dataset[];
+ term: string = "";
+ constructor(private datasets: DatasetsService,private router:Router, private cookie: CookieService) {
+ this.datasets.getPublicDatasets().subscribe((datasets) => {
+ this.publicDatasets = datasets;
+ });
+ }
ngOnInit(): void {
+
}
+ addDataset(dataset: Dataset):void{
+ //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)=>{
+ console.log(response);
+ });
+ };
}
diff --git a/frontend/src/app/_pages/home/home.component.html b/frontend/src/app/_pages/home/home.component.html
index 274f0fd8..689a302b 100644
--- a/frontend/src/app/_pages/home/home.component.html
+++ b/frontend/src/app/_pages/home/home.component.html
@@ -46,6 +46,7 @@
</div>
<h2 class="my-4">Pogledajte javne izvore podataka!</h2>
<app-carousel [items]="publicDatasets">
+
</app-carousel>
<h3><a routerLink="browse-datasets">Pogledaj sve javne izvore podataka...</a></h3>
<h2 class="my-4">Iskoristite već trenirane modele!</h2>
diff --git a/frontend/src/app/_pages/profile/profile.component.html b/frontend/src/app/_pages/profile/profile.component.html
index 24efaeb5..d082a003 100644
--- a/frontend/src/app/_pages/profile/profile.component.html
+++ b/frontend/src/app/_pages/profile/profile.component.html
@@ -104,7 +104,7 @@
<div class="row overflow-auto" style="max-height: 200px;">
<div class="card col-md-3" *ngFor="let picture of this.pictures" (click)="this.photoId = picture.photoId.toString()"
[ngClass]="{'selectedPicture': this.photoId == picture.photoId.toString()}">
- <img class="card-img-top" src="{{picture.path}}">
+ <img src="{{picture.path}}">
</div>
</div>
</div>
diff --git a/frontend/src/app/_services/datasets.service.spec.ts b/frontend/src/app/_services/datasets.service.spec.ts
new file mode 100644
index 00000000..87b46acd
--- /dev/null
+++ b/frontend/src/app/_services/datasets.service.spec.ts
@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { DatasetsService } from './datasets.service';
+
+describe('DatasetsService', () => {
+ let service: DatasetsService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ service = TestBed.inject(DatasetsService);
+ });
+
+ it('should be created', () => {
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/frontend/src/app/_services/datasets.service.ts b/frontend/src/app/_services/datasets.service.ts
new file mode 100644
index 00000000..fadcdeae
--- /dev/null
+++ b/frontend/src/app/_services/datasets.service.ts
@@ -0,0 +1,24 @@
+import { HttpClient } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Observable } from 'rxjs';
+import { API_SETTINGS } from 'src/config';
+import Dataset from '../_data/Dataset';
+import { AuthService } from './auth.service';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class DatasetsService {
+
+ constructor(private http: HttpClient, private authService: AuthService) { }
+
+ getPublicDatasets(): Observable<Dataset[]> {
+ return this.http.get<Dataset[]>(`${API_SETTINGS.apiURL}/Dataset/publicdatasets`, { headers: this.authService.authHeader() });
+ }
+
+ addDataset(dataset:Dataset):any{
+ return this.http.post(`${API_SETTINGS.apiURL}/dataset/add`, dataset, { headers: this.authService.authHeader() });
+ }
+
+
+}
diff --git a/frontend/src/app/app-routing.module.ts b/frontend/src/app/app-routing.module.ts
index 001d0b4f..a52d66a8 100644
--- a/frontend/src/app/app-routing.module.ts
+++ b/frontend/src/app/app-routing.module.ts
@@ -12,6 +12,7 @@ import { BrowseDatasetsComponent } from './_pages/browse-datasets/browse-dataset
import { SettingsComponent } from './_pages/settings/settings.component';
import { ProfileComponent } from './_pages/profile/profile.component';
import { PredictComponent } from './_pages/predict/predict.component';
+import { FilterDatasetsComponent } from './_pages/filter-datasets/filter-datasets.component';
const routes: Routes = [
{ path: '', component: HomeComponent, data: { title: 'Početna strana' } },
@@ -23,7 +24,8 @@ const routes: Routes = [
{ path: 'profile', component: ProfileComponent, canActivate: [AuthGuardService], data: { title: 'Profil' } },
{ path: 'browse-datasets', component: BrowseDatasetsComponent, data: { title: 'Javni izvori podataka' } },
{ path: 'browse-predictors', component: BrowsePredictorsComponent, data: { title: 'Javni trenirani modeli' } },
- { path: 'predict', component: PredictComponent, data: { title: 'Predvidi vrednosti' } }
+ { path: 'predict', component: PredictComponent, data: { title: 'Predvidi vrednosti' } },
+ { path: 'filter-datasets', component: FilterDatasetsComponent, data: { title: 'Filter datasets' } }
];
@NgModule({
diff --git a/frontend/src/assets/profilePictures/1.png b/frontend/src/assets/profilePictures/1.png
index 27f46e7f..6e2f8b73 100644
--- a/frontend/src/assets/profilePictures/1.png
+++ b/frontend/src/assets/profilePictures/1.png
Binary files differ
diff --git a/frontend/src/assets/profilePictures/10.png b/frontend/src/assets/profilePictures/10.png
index 8523f582..cbd270ca 100644
--- a/frontend/src/assets/profilePictures/10.png
+++ b/frontend/src/assets/profilePictures/10.png
Binary files differ
diff --git a/frontend/src/assets/profilePictures/11.png b/frontend/src/assets/profilePictures/11.png
index 37fa560b..982fdae4 100644
--- a/frontend/src/assets/profilePictures/11.png
+++ b/frontend/src/assets/profilePictures/11.png
Binary files differ
diff --git a/frontend/src/assets/profilePictures/15.png b/frontend/src/assets/profilePictures/15.png
deleted file mode 100644
index 835ba0ab..00000000
--- a/frontend/src/assets/profilePictures/15.png
+++ /dev/null
Binary files differ
diff --git a/frontend/src/assets/profilePictures/16.png b/frontend/src/assets/profilePictures/16.png
deleted file mode 100644
index 6cdf285f..00000000
--- a/frontend/src/assets/profilePictures/16.png
+++ /dev/null
Binary files differ
diff --git a/frontend/src/assets/profilePictures/2.png b/frontend/src/assets/profilePictures/2.png
index a99fad8a..d8dc7967 100644
--- a/frontend/src/assets/profilePictures/2.png
+++ b/frontend/src/assets/profilePictures/2.png
Binary files differ
diff --git a/frontend/src/assets/profilePictures/5.png b/frontend/src/assets/profilePictures/5.png
index d8dc7967..8523f582 100644
--- a/frontend/src/assets/profilePictures/5.png
+++ b/frontend/src/assets/profilePictures/5.png
Binary files differ
diff --git a/frontend/src/assets/profilePictures/8.png b/frontend/src/assets/profilePictures/8.png
index 982fdae4..835ba0ab 100644
--- a/frontend/src/assets/profilePictures/8.png
+++ b/frontend/src/assets/profilePictures/8.png
Binary files differ
diff --git a/frontend/src/assets/profilePictures/9.png b/frontend/src/assets/profilePictures/9.png
index b7d99523..fd38fac4 100644
--- a/frontend/src/assets/profilePictures/9.png
+++ b/frontend/src/assets/profilePictures/9.png
Binary files differ