diff options
Diffstat (limited to 'frontend/src')
4 files changed, 94 insertions, 3 deletions
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..bee07aef 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|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..b2a3541d 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,24 @@ 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; + }; } 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..5a313632 --- /dev/null +++ b/frontend/src/app/_services/datasets.service.ts @@ -0,0 +1,18 @@ +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() }); + } +} |