aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_pages
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/app/_pages')
-rw-r--r--frontend/src/app/_pages/archive/archive.component.html2
-rw-r--r--frontend/src/app/_pages/archive/archive.component.ts2
-rw-r--r--frontend/src/app/_pages/experiment/experiment.component.css14
-rw-r--r--frontend/src/app/_pages/experiment/experiment.component.html38
-rw-r--r--frontend/src/app/_pages/experiment/experiment.component.ts5
-rw-r--r--frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts48
-rw-r--r--frontend/src/app/_pages/profile/profile.component.css20
-rw-r--r--frontend/src/app/_pages/profile/profile.component.html19
-rw-r--r--frontend/src/app/_pages/profile/profile.component.ts9
-rw-r--r--frontend/src/app/_pages/settings/settings.component.css0
-rw-r--r--frontend/src/app/_pages/settings/settings.component.html1
-rw-r--r--frontend/src/app/_pages/settings/settings.component.spec.ts25
-rw-r--r--frontend/src/app/_pages/settings/settings.component.ts15
13 files changed, 79 insertions, 119 deletions
diff --git a/frontend/src/app/_pages/archive/archive.component.html b/frontend/src/app/_pages/archive/archive.component.html
index fc3c4763..f9cce56b 100644
--- a/frontend/src/app/_pages/archive/archive.component.html
+++ b/frontend/src/app/_pages/archive/archive.component.html
@@ -1,5 +1,5 @@
<div class="d-flex flex-column align-items-center my-5">
- <app-folder></app-folder>
+ <app-folder [archive]="true" [startingTab]="TabType.MyExperiments"></app-folder>
<!--<div class="my-5" style="height: fit-content;">
<app-playlist [datasets]="publicDatasets"></app-playlist>
diff --git a/frontend/src/app/_pages/archive/archive.component.ts b/frontend/src/app/_pages/archive/archive.component.ts
index 47f96218..bb4bd9e9 100644
--- a/frontend/src/app/_pages/archive/archive.component.ts
+++ b/frontend/src/app/_pages/archive/archive.component.ts
@@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import Dataset from 'src/app/_data/Dataset';
+import { TabType } from 'src/app/_elements/folder/folder.component';
import { DatasetsService } from 'src/app/_services/datasets.service';
@Component({
@@ -10,6 +11,7 @@ import { DatasetsService } from 'src/app/_services/datasets.service';
export class ArchiveComponent implements OnInit {
publicDatasets: Dataset[] = [];
+ TabType = TabType;
constructor(private datasetsService: DatasetsService) { }
diff --git a/frontend/src/app/_pages/experiment/experiment.component.css b/frontend/src/app/_pages/experiment/experiment.component.css
index 36c35484..4c063f87 100644
--- a/frontend/src/app/_pages/experiment/experiment.component.css
+++ b/frontend/src/app/_pages/experiment/experiment.component.css
@@ -52,4 +52,16 @@ mat-stepper {
width: 98%;
height: 98%;
overflow-y: auto;
-} \ No newline at end of file
+}
+.ekspName{
+ font-weight: bold;
+ font-size: large;
+}
+
+
+.addedElement{
+ color:var(--ns-accent);
+}
+.text-overflow {
+ overflow-wrap: break-word;
+}
diff --git a/frontend/src/app/_pages/experiment/experiment.component.html b/frontend/src/app/_pages/experiment/experiment.component.html
index 2b32db81..a2ede838 100644
--- a/frontend/src/app/_pages/experiment/experiment.component.html
+++ b/frontend/src/app/_pages/experiment/experiment.component.html
@@ -1,28 +1,48 @@
<div class="container-fluid p-0 text-offwhite holder" style="height: calc(100vh - 64px); text-align: center;">
<div class="d-flex flex-colum align-items-center sidenav">
+ <div>
+ <div class="ekspName " style="width: 250px;">
+ <div class="text-overflow" *ngIf="experiment.name=='exp1'" style="width: 250px;">
+ Novi Eksperiment
+ </div>
+ <div class="text-overflow" *ngIf="experiment.name!='exp1'" style="width: 250px;">
+ {{experiment.name}}
+ </div>
+
+ </div>
<mat-stepper orientation="vertical" (selectionChange)="changePage($event)">
<mat-step>
<!--editable="false"-->
- <ng-template matStepLabel><span class="label">Izvor podataka</span></ng-template>
+ <ng-template matStepLabel>
+ <span class="label" *ngIf="dataset==undefined">Izvor podataka</span>
+ <span class="label addedElement" *ngIf="dataset!=undefined">{{dataset.name}}</span>
+ </ng-template>
<ng-template matStepContent>
- <p>Izaberite vas izvor podataka</p>
+ <p class="text-left">Izaberite vas izvor podataka</p>
</ng-template>
</mat-step>
<mat-step>
- <ng-template matStepLabel> <span class="label">Odabir kolona</span></ng-template>
+ <ng-template matStepLabel>
+ <span class="label addedElement" *ngIf="experiment.name!='exp1'">Predvideti:{{experiment.outputColumn}}</span>
+ <span class="label" *ngIf="experiment.name=='exp1'">Odabir kolona</span>
+ </ng-template>
<ng-template matStepContent>
- <p>Pripremite podatke i izaberite izlazne kolone</p>
+ <p class="text-left">Pripremite podatke i izaberite izlazne kolone</p>
</ng-template>
</mat-step>
<mat-step>
- <ng-template matStepLabel><span class="label">Treniranje</span></ng-template>
- <p>Odaberite parametre i trenirajte model</p>
+ <ng-template matStepLabel>
+ <span class="label addedElement" *ngIf="modelToTrain!=undefined">{{modelToTrain.name}}</span>
+ <span class="label" *ngIf="modelToTrain==undefined">Treniranje</span>
+ </ng-template>
+ <p class="text-left">Odaberite parametre i trenirajte model</p>
</mat-step>
<mat-step>
<ng-template matStepLabel><span class="label">Pregled rezultata treniranja</span></ng-template>
- <p>Pregledajte tok treniranja i grafički prikaz rezultata</p>
+ <p class="text-left">Pregledajte tok treniranja i grafički prikaz rezultata</p>
</mat-step>
</mat-stepper>
+ </div>
</div>
<div #stepsContainer class="steps-container">
<div #steps id="step_1" class="step-content">
@@ -32,7 +52,7 @@
</div>
<div #steps id="step_2" class="step-content">
<div class="step-content-inside">
- <app-column-table (okPressed)="goToPage(2); experiment._columnsSelected = true;" (columnTableChanged)="columnTableChangedEvent()" [experiment]="experiment" [dataset]="dataset"></app-column-table>
+ <app-column-table (okPressed)="goToPage(2); experiment._columnsSelected = true;" (columnTableChanged)="columnTableChangedEvent()" (experimentChanged)="experimentChangedEvent()" [experiment]="experiment" [dataset]="dataset"></app-column-table>
</div>
</div>
<div #steps id="step_3" class="step-content">
@@ -46,4 +66,4 @@
</div>
</div>
</div>
-</div> \ No newline at end of file
+</div>
diff --git a/frontend/src/app/_pages/experiment/experiment.component.ts b/frontend/src/app/_pages/experiment/experiment.component.ts
index 1dc18a78..abf4b697 100644
--- a/frontend/src/app/_pages/experiment/experiment.component.ts
+++ b/frontend/src/app/_pages/experiment/experiment.component.ts
@@ -147,12 +147,17 @@ export class ExperimentComponent implements AfterViewInit {
//console.log("promenio se column-table");
}
+ experimentChangedEvent() {
+ this.folderModel.updateExperiment();
+ }
+
setDataset(dataset: FolderFile) {
const d = <Dataset>dataset;
this.experiment.datasetId = d._id;
this.dataset = d;
this.columnTable.loadDataset(this.dataset);
+
}
modelToTrain?: Model;
diff --git a/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts b/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts
deleted file mode 100644
index 66b3755e..00000000
--- a/frontend/src/app/_pages/filter-datasets/filter-datasets.component.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-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';
-import shared from 'src/app/Shared';
-
-@Component({
- selector: 'app-filter-datasets',
- templateUrl: './filter-datasets.component.html',
- styleUrls: ['./filter-datasets.component.css']
-})
-export class FilterDatasetsComponent implements OnInit {
-
- shared = shared;
- 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"));
- const newDataset={...dataset};
- newDataset._id = "";
- newDataset.isPublic = false;
- newDataset.lastUpdated = new Date();
- newDataset.uploaderId = decodedToken.uploaderId;
- let name=prompt("Unesite naziv dataset-a",newDataset.name);
- newDataset.name=name as string;
- if(name!=null && name!="")
- this.datasets.addDataset(newDataset).subscribe((response:string)=>{
- shared.openDialog("Obaveštenje", "Uspešno ste dodali dataset sa nazivom " + newDataset.name);
- },(error)=>{
- shared.openDialog("Obaveštenje", "U svojoj kolekciji već imate dataset sa ovim imenom. Molimo Vas da unesete drugo ime.");
- });
-
- };
-
-}
diff --git a/frontend/src/app/_pages/profile/profile.component.css b/frontend/src/app/_pages/profile/profile.component.css
index 428870da..bbd4c9ba 100644
--- a/frontend/src/app/_pages/profile/profile.component.css
+++ b/frontend/src/app/_pages/profile/profile.component.css
@@ -1,21 +1,25 @@
-.card{
+.card {
background-color: transparent;
- color:var(--offwhite)
+ color: var(--offwhite)
}
-.card-header{
+.card-header {
background-color: var(--ns-primary-50);
- color:var(--offwhite)
+ color: var(--offwhite)
}
-.card-body{
+
+.card-body {
background-color: var(--ns-bg-dark-50);
}
-mat-form-field{
+mat-form-field {
width: 100%;
}
-.danger-Text{
- color:var(--ns-warn)
+.danger-Text {
+ color: var(--ns-warn)
}
+.selectedPicture {
+ background-color: var(--ns-accent);
+} \ No newline at end of file
diff --git a/frontend/src/app/_pages/profile/profile.component.html b/frontend/src/app/_pages/profile/profile.component.html
index 37df4f14..8d655513 100644
--- a/frontend/src/app/_pages/profile/profile.component.html
+++ b/frontend/src/app/_pages/profile/profile.component.html
@@ -12,7 +12,7 @@
<img class="img-account-profile rounded-circle mb-2" src="{{this.photoPath}}" alt="profilePicture">
<!-- User's info -->
<span>@ {{this.user.username}}</span>
- <span class="mt-3" style="font-weight: bold;">{{this.user.firstName}} {{this.user.lastName}}</span>
+ <span class="mt-3" style="font-weight: bold;">{{this.user.firstName}} {{this.user.lastName}}</span>
</div>
</div>
</div>
@@ -31,7 +31,7 @@
<mat-form-field appearance="fill">
<mat-label>Važeća lozinka</mat-label>
<input matInput id="inputPassword" name="inputPassword" type="password" placeholder="" [(ngModel)]="this.oldPass">
- </mat-form-field>
+ </mat-form-field>
<small *ngIf="wrongOldPassBool" class="form-text danger-Text">Pogrešan format.</small>
</div>
<!-- Form Group (new password)-->
@@ -39,12 +39,12 @@
<mat-form-field appearance="fill">
<mat-label>Nova lozinka</mat-label>
<input matInput id="inputNewPassword" name="inputNewPassword" type="password" placeholder="" [(ngModel)]="this.newPass1">
- </mat-form-field>
+ </mat-form-field>
<small *ngIf="wrongNewPassBool" class="form-text danger-Text">Lozinke se ne podudaraju.</small>
<small *ngIf="wrongNewPass1Bool" class="form-text danger-Text">Pogrešan format.</small>
</div>
</div>
-
+
<!-- Form Row-->
<div class="row gx-3 mb-3">
<div class="col-md-6">
@@ -118,24 +118,23 @@
<div>
<label class="small mt-2 mb-3">Kliknite na sliku kako biste je odabrali za profilnu:</label>
-
+
<div class="container">
<div class="card-group">
<!--bootstrap card with 3 horizontal images-->
<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()}">
+ <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 src="{{picture.path}}">
</div>
</div>
</div>
</div>
</div>
-
+
<div class="row mt-5">
<div class="col text-center">
<!-- Save changes button-->
- <button mat-raised-button color="primary" (click)="saveInfoChanges()" >Sačuvaj izmene</button>
+ <button mat-raised-button color="primary" (click)="saveInfoChanges()">Sačuvaj izmene</button>
</div>
</div>
</form>
@@ -147,7 +146,7 @@
<div class="row">
<div class="col-xl-4">
-
+
</div>
</div>
diff --git a/frontend/src/app/_pages/profile/profile.component.ts b/frontend/src/app/_pages/profile/profile.component.ts
index ae9fb12c..fdcd347c 100644
--- a/frontend/src/app/_pages/profile/profile.component.ts
+++ b/frontend/src/app/_pages/profile/profile.component.ts
@@ -28,6 +28,8 @@ export class ProfileComponent implements OnInit {
newPass2: string = '';
photoId: string = '';
photoPath: string = '';
+ isPermament:boolean=false;
+ dateCreated:Date=new Date();
wrongPassBool: boolean = false;
wrongNewPassBool: boolean = false;
@@ -60,6 +62,9 @@ export class ProfileComponent implements OnInit {
this.firstName = this.user.firstName;
this.lastName = this.user.lastName;
this.photoId = this.user.photoId;
+ this.dateCreated=this.user.dateCreated;
+ this.isPermament=this.user.isPermament;
+
for (let i = 0; i < this.pictures.length; i++) {
if (this.pictures[i].photoId.toString() === this.photoId) {
@@ -81,7 +86,9 @@ export class ProfileComponent implements OnInit {
password: this.user.password,
firstName: this.firstName,
lastName: this.lastName,
- photoId: this.photoId
+ photoId: this.photoId,
+ isPermament:this.isPermament,
+ dateCreated:this.dateCreated
}
this.userInfoService.changeUserInfo(editedUser).subscribe((response: any) =>{
diff --git a/frontend/src/app/_pages/settings/settings.component.css b/frontend/src/app/_pages/settings/settings.component.css
deleted file mode 100644
index e69de29b..00000000
--- a/frontend/src/app/_pages/settings/settings.component.css
+++ /dev/null
diff --git a/frontend/src/app/_pages/settings/settings.component.html b/frontend/src/app/_pages/settings/settings.component.html
deleted file mode 100644
index 4ab2a415..00000000
--- a/frontend/src/app/_pages/settings/settings.component.html
+++ /dev/null
@@ -1 +0,0 @@
-<p>settings works!</p>
diff --git a/frontend/src/app/_pages/settings/settings.component.spec.ts b/frontend/src/app/_pages/settings/settings.component.spec.ts
deleted file mode 100644
index a3a508b0..00000000
--- a/frontend/src/app/_pages/settings/settings.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { SettingsComponent } from './settings.component';
-
-describe('SettingsComponent', () => {
- let component: SettingsComponent;
- let fixture: ComponentFixture<SettingsComponent>;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [ SettingsComponent ]
- })
- .compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(SettingsComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/frontend/src/app/_pages/settings/settings.component.ts b/frontend/src/app/_pages/settings/settings.component.ts
deleted file mode 100644
index 19862fb0..00000000
--- a/frontend/src/app/_pages/settings/settings.component.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
- selector: 'app-settings',
- templateUrl: './settings.component.html',
- styleUrls: ['./settings.component.css']
-})
-export class SettingsComponent implements OnInit {
-
- constructor() { }
-
- ngOnInit(): void {
- }
-
-}