diff options
author | Sonja Galovic <galovicsonja@gmail.com> | 2022-03-24 00:43:26 +0100 |
---|---|---|
committer | Sonja Galovic <galovicsonja@gmail.com> | 2022-03-24 00:43:26 +0100 |
commit | 1113f094ffee030fd9892deb7577927419860013 (patch) | |
tree | eb4b627830e2bf340f60936a7d5d6289434972b6 | |
parent | 6a4abae42f6a785f4e666b8fee23211e9e0ba543 (diff) | |
parent | 495607f3ce83d107e3a525c658e70355ec94d488 (diff) |
Merge branch 'dev' of http://gitlab.pmf.kg.ac.rs/igrannonica/neuronstellar into dev
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 Binary files differindex 27f46e7f..6e2f8b73 100644 --- a/frontend/src/assets/profilePictures/1.png +++ b/frontend/src/assets/profilePictures/1.png diff --git a/frontend/src/assets/profilePictures/10.png b/frontend/src/assets/profilePictures/10.png Binary files differindex 8523f582..cbd270ca 100644 --- a/frontend/src/assets/profilePictures/10.png +++ b/frontend/src/assets/profilePictures/10.png diff --git a/frontend/src/assets/profilePictures/11.png b/frontend/src/assets/profilePictures/11.png Binary files differindex 37fa560b..982fdae4 100644 --- a/frontend/src/assets/profilePictures/11.png +++ b/frontend/src/assets/profilePictures/11.png diff --git a/frontend/src/assets/profilePictures/15.png b/frontend/src/assets/profilePictures/15.png Binary files differdeleted file mode 100644 index 835ba0ab..00000000 --- a/frontend/src/assets/profilePictures/15.png +++ /dev/null diff --git a/frontend/src/assets/profilePictures/16.png b/frontend/src/assets/profilePictures/16.png Binary files differdeleted file mode 100644 index 6cdf285f..00000000 --- a/frontend/src/assets/profilePictures/16.png +++ /dev/null diff --git a/frontend/src/assets/profilePictures/2.png b/frontend/src/assets/profilePictures/2.png Binary files differindex a99fad8a..d8dc7967 100644 --- a/frontend/src/assets/profilePictures/2.png +++ b/frontend/src/assets/profilePictures/2.png diff --git a/frontend/src/assets/profilePictures/5.png b/frontend/src/assets/profilePictures/5.png Binary files differindex d8dc7967..8523f582 100644 --- a/frontend/src/assets/profilePictures/5.png +++ b/frontend/src/assets/profilePictures/5.png diff --git a/frontend/src/assets/profilePictures/8.png b/frontend/src/assets/profilePictures/8.png Binary files differindex 982fdae4..835ba0ab 100644 --- a/frontend/src/assets/profilePictures/8.png +++ b/frontend/src/assets/profilePictures/8.png diff --git a/frontend/src/assets/profilePictures/9.png b/frontend/src/assets/profilePictures/9.png Binary files differindex b7d99523..fd38fac4 100644 --- a/frontend/src/assets/profilePictures/9.png +++ b/frontend/src/assets/profilePictures/9.png |