diff --git a/epf-front-skeleton-main/src/app/app-routing.module.ts b/epf-front-skeleton-main/src/app/app-routing.module.ts index 544f3a97e0c9b0d7865dabc28c7e7228c8cc3163..5dc7bce3cf3de6f69e6a28b54c15fade25fc93e2 100644 --- a/epf-front-skeleton-main/src/app/app-routing.module.ts +++ b/epf-front-skeleton-main/src/app/app-routing.module.ts @@ -46,4 +46,5 @@ const routes: Routes = [ imports: [RouterModule.forRoot(routes)], exports: [RouterModule], }) -export class AppRoutingModule {} +export class AppRoutingModule { +} diff --git a/epf-front-skeleton-main/src/app/app.component.ts b/epf-front-skeleton-main/src/app/app.component.ts index 3a4f5713e3f058b0f2cd1d0aecbd4b74ca1c18f4..ced496c121cc4cfcb44cc2d381e224f8331ee9c3 100644 --- a/epf-front-skeleton-main/src/app/app.component.ts +++ b/epf-front-skeleton-main/src/app/app.component.ts @@ -1,10 +1,10 @@ -import { Component } from '@angular/core'; +import { Component } from "@angular/core" @Component({ - selector: 'epf-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.scss'] + selector: "epf-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.scss"], }) export class AppComponent { - title = 'epf-front-skeleton'; + title = "epf-front-skeleton" } diff --git a/epf-front-skeleton-main/src/app/app.module.ts b/epf-front-skeleton-main/src/app/app.module.ts index 29b78a663b1188ccb3be6743c03a471c51e920ec..56e8771dacf9aa368e93dda00d65058493dafa1c 100644 --- a/epf-front-skeleton-main/src/app/app.module.ts +++ b/epf-front-skeleton-main/src/app/app.module.ts @@ -39,4 +39,5 @@ import { ResearchComponent } from "./students/research/research.component" providers: [], bootstrap: [AppComponent], }) -export class AppModule {} +export class AppModule { +} diff --git a/epf-front-skeleton-main/src/app/home/home.component.html b/epf-front-skeleton-main/src/app/home/home.component.html index f77490567020a6e7017325d5c267ee20a533bbe2..8b7b71e2c6de813301ca91347fe03c31e42192d6 100644 --- a/epf-front-skeleton-main/src/app/home/home.component.html +++ b/epf-front-skeleton-main/src/app/home/home.component.html @@ -24,7 +24,8 @@ </div> </div> </div> - <p>Nous sommes là pour t'aider et t'accompagner pendant 4 journées de TP. N'hésite pas si tu as la moindre question ! </p> + <p>Nous sommes là pour t'aider et t'accompagner pendant 4 journées de TP. N'hésite pas si tu as la moindre question + ! </p> </div> <div class="right"> <img src="assets/homepage-cat.png"> diff --git a/epf-front-skeleton-main/src/app/home/home.component.scss b/epf-front-skeleton-main/src/app/home/home.component.scss index ef32192602d13edcfb7e95403e01c771dc825a11..9da57dfe5dc1507bdf2f0246e38e498a4e528532 100644 --- a/epf-front-skeleton-main/src/app/home/home.component.scss +++ b/epf-front-skeleton-main/src/app/home/home.component.scss @@ -1,7 +1,8 @@ -:host{ +:host { display: flex; align-items: center; - margin : 25px ; + margin: 25px; + .title { text-align: center; font-family: Caveat, sans-serif; @@ -9,16 +10,19 @@ font-weight: 700; margin: 30px 0; } + p { text-align: center; margin-top: 30px; - font-size : 1.3em; + font-size: 1.3em; } + .left { width: 50%; height: 100%; display: flex; flex-direction: column; + .sun { width: 90px; margin-left: 35px; @@ -28,17 +32,20 @@ border: none; display: flex; align-items: baseline; + .card-text { font-family: "Dancing Script", sans-serif; - font-size : x-large; - margin-top : 0 + font-size: x-large; + margin-top: 0 } } } + .right { width: 50%; display: flex; justify-content: center; + img { width: 80%; } diff --git a/epf-front-skeleton-main/src/app/home/home.component.ts b/epf-front-skeleton-main/src/app/home/home.component.ts index c577f9c83ed708192c142cbfdbd28eccc34404d3..43c55fdb8e5923640d3c890c6139a315924df033 100644 --- a/epf-front-skeleton-main/src/app/home/home.component.ts +++ b/epf-front-skeleton-main/src/app/home/home.component.ts @@ -1,13 +1,14 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit } from "@angular/core" @Component({ - selector: 'epf-home', - templateUrl: './home.component.html', - styleUrls: ['./home.component.scss'] + selector: "epf-home", + templateUrl: "./home.component.html", + styleUrls: ["./home.component.scss"], }) export class HomeComponent implements OnInit { - constructor() { } + constructor() { + } ngOnInit(): void { } diff --git a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html index a6eb493b52b03b73741c499466f81208478de766..803456e3fc41810c90b4ac91157b4bae8eacfe58 100644 --- a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html +++ b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.html @@ -12,12 +12,12 @@ </thead> <tbody> <ng-container *ngIf="studentsFromMajor$ | async; let studentsFromMajor"> - <tr *ngFor="let student of (studentsFromMajor.students)"> - <td>{{ student.firstName }}</td> - <td>{{ student.lastName }}</td> - <td>{{ student.birthDate | date : "dd/MM/yyyy" }}</td> - <td>{{ student.major!!.name }}</td> - </tr> + <tr *ngFor="let student of (studentsFromMajor.students)"> + <td>{{ student.firstName }}</td> + <td>{{ student.lastName }}</td> + <td>{{ student.birthDate | date : "dd/MM/yyyy" }}</td> + <td>{{ student.major!!.name }}</td> + </tr> </ng-container> </tbody> </table> diff --git a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.scss b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.scss index 0a06e685db80451a6e5ed00a0acc9f7a939389e4..40587319a61ca639a34eb096a3539aeef2fcc5d5 100644 --- a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.scss +++ b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.scss @@ -3,7 +3,7 @@ :host { display: flex; flex-direction: column; - padding : 30px; + padding: 30px; h1 { display: flex; @@ -12,7 +12,8 @@ margin-right: 50px; margin-bottom: 0; } - table{ + + table { margin-top: 20px; } } diff --git a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts index 9d0f23d195e9bff5927c9662057aae43b7a51438..ffcb4049312a927e32aaaa8a8df510cedb848cef 100644 --- a/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts +++ b/epf-front-skeleton-main/src/app/majors/major-students/major-students.component.ts @@ -1,6 +1,5 @@ import { Component, OnInit } from "@angular/core" import { map, Observable } from "rxjs" -import { Student } from "../../models/student.model" import { ActivatedRoute } from "@angular/router" import { MajorStudentsDto } from "../../models/dto/MajorStudentsDto" @@ -12,7 +11,9 @@ import { MajorStudentsDto } from "../../models/dto/MajorStudentsDto" export class MajorStudentsComponent implements OnInit { studentsFromMajor$: Observable<MajorStudentsDto> = this._route.data.pipe(map((data) => data["studentsFromMajor"])) - constructor(private _route: ActivatedRoute) {} + constructor(private _route: ActivatedRoute) { + } - ngOnInit(): void {} + ngOnInit(): void { + } } diff --git a/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts b/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts index 758a16c94730356dd2493acd1ba8385600a8cbd8..83b3bd26b87f951c3a6673aca6a517a0d26f10d2 100644 --- a/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts +++ b/epf-front-skeleton-main/src/app/majors/major-students/major-students.resolver.ts @@ -1,7 +1,6 @@ import { Injectable } from "@angular/core" import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from "@angular/router" import { Observable } from "rxjs" -import { Student } from "../../models/student.model" import { MajorService } from "../../services/major.service" import { MajorStudentsDto } from "../../models/dto/MajorStudentsDto" @@ -9,7 +8,8 @@ import { MajorStudentsDto } from "../../models/dto/MajorStudentsDto" providedIn: "root", }) export class MajorStudentsResolver implements Resolve<MajorStudentsDto> { - constructor(private majorService: MajorService) {} + constructor(private majorService: MajorService) { + } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<MajorStudentsDto> { return this.majorService.findStudentsFromMajor(route.params["id"]) diff --git a/epf-front-skeleton-main/src/app/majors/majors.component.scss b/epf-front-skeleton-main/src/app/majors/majors.component.scss index 4c8c0f3c208a6894f365c957cb6fcac974bbfb89..0f9d16a1c2f2ff6ff6e345650325eab907cceda8 100644 --- a/epf-front-skeleton-main/src/app/majors/majors.component.scss +++ b/epf-front-skeleton-main/src/app/majors/majors.component.scss @@ -3,7 +3,7 @@ :host { display: flex; flex-direction: column; - padding : 30px; + padding: 30px; h1 { display: flex; @@ -12,8 +12,10 @@ margin-right: 50px; margin-bottom: 0; } - table{ + + table { margin-top: 20px; + tbody { :hover { cursor: pointer; diff --git a/epf-front-skeleton-main/src/app/majors/majors.component.ts b/epf-front-skeleton-main/src/app/majors/majors.component.ts index 5b2328c46a3df385bea1d1d45d3c063f9bce3ebf..e600f847a85aa28c622fe3bba41062eef49201c8 100644 --- a/epf-front-skeleton-main/src/app/majors/majors.component.ts +++ b/epf-front-skeleton-main/src/app/majors/majors.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from "@angular/core" +import { Component } from "@angular/core" import { map, Observable } from "rxjs" import { Major } from "../models/major.model" import { ActivatedRoute } from "@angular/router" @@ -11,5 +11,6 @@ import { ActivatedRoute } from "@angular/router" export class MajorsComponent { majors$: Observable<Major[]> = this._route.data.pipe(map((data) => data["majors"])) - constructor(private _route: ActivatedRoute) {} + constructor(private _route: ActivatedRoute) { + } } diff --git a/epf-front-skeleton-main/src/app/majors/majors.resolver.ts b/epf-front-skeleton-main/src/app/majors/majors.resolver.ts index f0dd21af05ff19a3f1f5e883bc2ccc953756c52e..dee4bef79f8ad1c2905d5dfdcf66c2c81c24dc15 100644 --- a/epf-front-skeleton-main/src/app/majors/majors.resolver.ts +++ b/epf-front-skeleton-main/src/app/majors/majors.resolver.ts @@ -1,13 +1,15 @@ import { Injectable } from "@angular/core" -import { Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from "@angular/router" +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from "@angular/router" import { Observable } from "rxjs" import { MajorService } from "../services/major.service" import { Major } from "../models/major.model" + @Injectable({ providedIn: "root", }) export class MajorsResolver implements Resolve<Major[]> { - constructor(private majorService: MajorService) {} + constructor(private majorService: MajorService) { + } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Major[]> { return this.majorService.findAll() diff --git a/epf-front-skeleton-main/src/app/models/links.model.ts b/epf-front-skeleton-main/src/app/models/links.model.ts index cadd02dc0d504150070a7f0fb953c73aa38918ac..2538d90c72b1db4300ec93301a2f543d78ef19f1 100644 --- a/epf-front-skeleton-main/src/app/models/links.model.ts +++ b/epf-front-skeleton-main/src/app/models/links.model.ts @@ -1,9 +1,9 @@ export class Link { - name : string; - href : string; + name: string + href: string constructor(name: string, href: string) { - this.name = name; - this.href = href; + this.name = name + this.href = href } } diff --git a/epf-front-skeleton-main/src/app/navbar/navbar.component.html b/epf-front-skeleton-main/src/app/navbar/navbar.component.html index 96ce638825bbe3256b05ffbcbe3734cb08ecbd39..49ca134367dc164f50d59c7bbd694fc5941e876f 100644 --- a/epf-front-skeleton-main/src/app/navbar/navbar.component.html +++ b/epf-front-skeleton-main/src/app/navbar/navbar.component.html @@ -1,8 +1,9 @@ <nav> <div> - <img src="assets/logo-epf.png" routerLink="" > + <img src="assets/logo-epf.png" routerLink=""> <mat-nav-list> - <a mat-list-item routerLink="{{link.href}}" routerLinkActive="active" *ngFor="let link of links">{{ link.name }}</a> + <a mat-list-item routerLink="{{link.href}}" routerLinkActive="active" + *ngFor="let link of links">{{ link.name }}</a> </mat-nav-list> </div> </nav> diff --git a/epf-front-skeleton-main/src/app/navbar/navbar.component.scss b/epf-front-skeleton-main/src/app/navbar/navbar.component.scss index 95867e767c0ce6bd4eaf6f995a3c9031d542002b..05bfc84aac1290986f3197a86144cd849f13e0e4 100644 --- a/epf-front-skeleton-main/src/app/navbar/navbar.component.scss +++ b/epf-front-skeleton-main/src/app/navbar/navbar.component.scss @@ -1,4 +1,5 @@ @use "src/theme"; + nav { height: 80px; background: linear-gradient(to right, theme.$common-purple, theme.$common-red); @@ -11,10 +12,12 @@ nav { img { margin-left: 20px; height: 60px; - &:hover{ + + &:hover { transform: scale(1.1); } } + .active { text-decoration: underline; } @@ -23,13 +26,15 @@ nav { .mat-nav-list { margin-left: 50px; - padding : 0; + padding: 0; display: flex; } + .mat-list-base .mat-list-item { - font-size : large; - color : theme.$white; - &:hover{ + font-size: large; + color: theme.$white; + + &:hover { transform: scale(1.2); } } diff --git a/epf-front-skeleton-main/src/app/navbar/navbar.component.ts b/epf-front-skeleton-main/src/app/navbar/navbar.component.ts index babf8ab397ce8c796c9581d37135f0660efb072c..5c06bc1eef769b61b9bbb21c41ff69b4d0c26722 100644 --- a/epf-front-skeleton-main/src/app/navbar/navbar.component.ts +++ b/epf-front-skeleton-main/src/app/navbar/navbar.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from "@angular/core" import { Link } from "../models/links.model" + @Component({ selector: "epf-navbar", templateUrl: "./navbar.component.html", @@ -13,5 +14,6 @@ export class NavbarComponent implements OnInit { this.links.push(new Link("Majors", "majors")) } - ngOnInit(): void {} + ngOnInit(): void { + } } diff --git a/epf-front-skeleton-main/src/app/services/constantsMock.service.ts b/epf-front-skeleton-main/src/app/services/constantsMock.service.ts index 10f77af86d8e02191f06e2f3022783625918d177..2341e6221ecee7c41e7240a46b8f82f68bb7572b 100644 --- a/epf-front-skeleton-main/src/app/services/constantsMock.service.ts +++ b/epf-front-skeleton-main/src/app/services/constantsMock.service.ts @@ -7,7 +7,9 @@ import { Major } from "../models/major.model" providedIn: "root", }) export class ConstantsMockService { - constructor() {} + constructor() { + } + private spanish = new Course("Spanish", 2) private german = new Course("German", 2) private ioT = new Course("Internet Of Things", 15) diff --git a/epf-front-skeleton-main/src/app/services/course.service.ts b/epf-front-skeleton-main/src/app/services/course.service.ts index 7fa6f5371bf4845a4fe33b1518ac56ba4ff60153..23d6508d79651470451f8af84af8ce116375f78e 100644 --- a/epf-front-skeleton-main/src/app/services/course.service.ts +++ b/epf-front-skeleton-main/src/app/services/course.service.ts @@ -7,7 +7,8 @@ import { ConstantsMockService } from "./constantsMock.service" providedIn: "root", }) export class CourseService { - constructor(private constantsMockService: ConstantsMockService) {} + constructor(private constantsMockService: ConstantsMockService) { + } // FIXME : change to api call with httpclient findAll(): Observable<Course[]> { diff --git a/epf-front-skeleton-main/src/app/services/major.service.ts b/epf-front-skeleton-main/src/app/services/major.service.ts index 39560216ad663317c4a69dfbc2f516c49decc211..65f1422e621524ebf5bf1bca8896b126cbe4428c 100644 --- a/epf-front-skeleton-main/src/app/services/major.service.ts +++ b/epf-front-skeleton-main/src/app/services/major.service.ts @@ -2,7 +2,6 @@ import { Injectable } from "@angular/core" import { Observable } from "rxjs" import { Major } from "../models/major.model" import { MajorStudentsDto } from "../models/dto/MajorStudentsDto" -import { Course } from "../models/course.model" import { MajorsAndCoursesDto } from "../models/dto/majorsAndCoursesDto" import { ConstantsMockService } from "./constantsMock.service" @@ -10,7 +9,8 @@ import { ConstantsMockService } from "./constantsMock.service" providedIn: "root", }) export class MajorService { - constructor(private constantsMockService: ConstantsMockService) {} + constructor(private constantsMockService: ConstantsMockService) { + } findAll(): Observable<Major[]> { return new Observable((observer) => observer.next(this.constantsMockService.majors)) diff --git a/epf-front-skeleton-main/src/app/services/student.service.ts b/epf-front-skeleton-main/src/app/services/student.service.ts index c7536cbd509cf68077ac527c49b5dfb06b208022..e2ddfa4f868937f3909d267b273f98440e6ffb91 100644 --- a/epf-front-skeleton-main/src/app/services/student.service.ts +++ b/epf-front-skeleton-main/src/app/services/student.service.ts @@ -2,15 +2,15 @@ import { Injectable } from "@angular/core" import { Observable } from "rxjs" import { Student } from "../models/student.model" import { Course } from "../models/course.model" -import { Major } from "../models/major.model" -import {ConstantsMockService} from "./constantsMock.service"; -import {MajorsAndCoursesDto} from "../models/dto/majorsAndCoursesDto"; +import { ConstantsMockService } from "./constantsMock.service" +import { MajorsAndCoursesDto } from "../models/dto/majorsAndCoursesDto" @Injectable({ providedIn: "root", }) export class StudentService { - constructor(private constantsMockService : ConstantsMockService) {} + constructor(private constantsMockService: ConstantsMockService) { + } // FIXME : change to api call with httpclient findAll(): Observable<Student[]> { @@ -56,8 +56,8 @@ export class StudentService { } } - searchByMajorAndCourse(majorsAndCoursesDto: MajorsAndCoursesDto) : Observable<Student[]> { - return new Observable((observer) => observer.next( this.constantsMockService.students.filter(s => s.major.id === majorsAndCoursesDto.majors[0].id && s.courses?.includes(majorsAndCoursesDto.courses[0])))) + searchByMajorAndCourse(majorsAndCoursesDto: MajorsAndCoursesDto): Observable<Student[]> { + return new Observable((observer) => observer.next(this.constantsMockService.students.filter(s => s.major.id === majorsAndCoursesDto.majors[0].id && s.courses?.includes(majorsAndCoursesDto.courses[0])))) } } diff --git a/epf-front-skeleton-main/src/app/students/research/research.component.html b/epf-front-skeleton-main/src/app/students/research/research.component.html index ae9113366d332feee076a1aec3fb5d4ccbdbfd78..af983b0545c90f25794fb3d025d7f52599ac7464 100644 --- a/epf-front-skeleton-main/src/app/students/research/research.component.html +++ b/epf-front-skeleton-main/src/app/students/research/research.component.html @@ -1,17 +1,19 @@ <ng-container *ngIf="majorsAndCourses$ | async; let majorAndCourse"> -<form (ngSubmit)="search()" #researchForm="ngForm" class="d-flex"> - <div class="form-group"> - <select id="major" [(ngModel)]="majorModel" name="major" class="form-control"> - <option [ngValue]="null" [disabled]="true">Select a major</option> - <option *ngFor="let major of majorAndCourse.majors" [ngValue]="major">{{major.name}}</option> - </select> - </div> - <div class="form-group"> - <select id="course" [(ngModel)]="courseModel" name="course" class="form-control"> - <option [ngValue]="null" [disabled]="true">Select a course</option> - <option *ngFor="let course of majorAndCourse.courses" [ngValue]="course">{{course.name}}</option> - </select> - </div> - <button type="submit" mat-raised-button color="primary" [disabled]="majorModel == null || courseModel == null">Search</button> -</form> + <form (ngSubmit)="search()" #researchForm="ngForm" class="d-flex"> + <div class="form-group"> + <select id="major" [(ngModel)]="majorModel" name="major" class="form-control"> + <option [ngValue]="null" [disabled]="true">Select a major</option> + <option *ngFor="let major of majorAndCourse.majors" [ngValue]="major">{{major.name}}</option> + </select> + </div> + <div class="form-group"> + <select id="course" [(ngModel)]="courseModel" name="course" class="form-control"> + <option [ngValue]="null" [disabled]="true">Select a course</option> + <option *ngFor="let course of majorAndCourse.courses" [ngValue]="course">{{course.name}}</option> + </select> + </div> + <button type="submit" mat-raised-button color="primary" [disabled]="majorModel == null || courseModel == null"> + Search + </button> + </form> </ng-container> diff --git a/epf-front-skeleton-main/src/app/students/research/research.component.scss b/epf-front-skeleton-main/src/app/students/research/research.component.scss index 8af74b6f6294a0963be8b5bfa7f8cb8db818370d..069b30ccd0560f94cfebf42f808dcc48881b5e32 100644 --- a/epf-front-skeleton-main/src/app/students/research/research.component.scss +++ b/epf-front-skeleton-main/src/app/students/research/research.component.scss @@ -1,6 +1,7 @@ :host { margin-left: 100px; display: flex; + .form-group { margin-right: 10px; } diff --git a/epf-front-skeleton-main/src/app/students/research/research.component.ts b/epf-front-skeleton-main/src/app/students/research/research.component.ts index f7a377f5defd618f8bc860261658bc16876974e1..8302163caf290766b49a71d6d6728b0cb88a072e 100644 --- a/epf-front-skeleton-main/src/app/students/research/research.component.ts +++ b/epf-front-skeleton-main/src/app/students/research/research.component.ts @@ -1,11 +1,11 @@ -import {Component, EventEmitter, OnInit, Output} from "@angular/core" +import { Component, EventEmitter, OnInit, Output } from "@angular/core" import { Observable } from "rxjs" import { MajorsAndCoursesDto } from "../../models/dto/majorsAndCoursesDto" import { Major } from "../../models/major.model" import { MajorService } from "../../services/major.service" import { Course } from "../../models/course.model" import { StudentService } from "../../services/student.service" -import {Student} from "../../models/student.model"; +import { Student } from "../../models/student.model" @Component({ selector: "epf-research", @@ -16,9 +16,10 @@ export class ResearchComponent implements OnInit { majorsAndCourses$: Observable<MajorsAndCoursesDto> | undefined majorModel: Major | null = null courseModel: Course | null = null - @Output() searchEvent = new EventEmitter<Observable<Student[]>>(); + @Output() searchEvent = new EventEmitter<Observable<Student[]>>() - constructor(private majorService: MajorService, private studentService: StudentService) {} + constructor(private majorService: MajorService, private studentService: StudentService) { + } ngOnInit(): void { this.majorsAndCourses$ = this.majorService.findAllMajorsAndAllCourses() diff --git a/epf-front-skeleton-main/src/app/students/student-details/student-details.component.html b/epf-front-skeleton-main/src/app/students/student-details/student-details.component.html index 48ca113e87d08e00f4b0c50d158ed417f8c7f898..1be714238288799ef82ce343cc0090815e9388a7 100644 --- a/epf-front-skeleton-main/src/app/students/student-details/student-details.component.html +++ b/epf-front-skeleton-main/src/app/students/student-details/student-details.component.html @@ -61,7 +61,8 @@ <div *ngIf="notSelectedCourse" class="alert alert-danger"> Course is required </div> - <button type="button" [disabled]="courseSelectModel==null" (click)="addCourseToStudent(student)" mat-raised-button + <button type="button" [disabled]="courseSelectModel==null" (click)="addCourseToStudent(student)" + mat-raised-button color="primary">Add course </button> </div> diff --git a/epf-front-skeleton-main/src/app/students/student-details/student-details.component.scss b/epf-front-skeleton-main/src/app/students/student-details/student-details.component.scss index 0ed5e7385558e9c7ff686d4c121c9d6272133ce1..d9bf7edba0d899ad4e299e2ed57899de1dff358c 100644 --- a/epf-front-skeleton-main/src/app/students/student-details/student-details.component.scss +++ b/epf-front-skeleton-main/src/app/students/student-details/student-details.component.scss @@ -1,30 +1,36 @@ @use "src/theme"; + :host { display: flex; flex-direction: column; padding: 30px; - color: theme.$white - h1 { + color: theme.$white h1 { color: theme.$common-purple; font-size: xx-large; } + label { font-size: large; margin: 10px 0; } + button { margin: 10px 0; } + .student-courses { .courses-title { font-size: large; margin: 10px 10px 10px 0; } + table { - border : 1px solid lightgray; + border: 1px solid lightgray; font-size: medium; + tr { display: flex; + td { width: 33%; display: flex; @@ -33,14 +39,16 @@ } } } + .new-course-div { :hover { cursor: pointer; } - .new-course-icon{ + + .new-course-icon { margin-left: 10px; - color: green ; + color: green; } } } diff --git a/epf-front-skeleton-main/src/app/students/student-details/student-details.component.ts b/epf-front-skeleton-main/src/app/students/student-details/student-details.component.ts index cdab378513a27bddfc8b01efcec0527bb94f9624..d4637b382c1f4e95a3a2dacd4fb8a696b36d5559 100644 --- a/epf-front-skeleton-main/src/app/students/student-details/student-details.component.ts +++ b/epf-front-skeleton-main/src/app/students/student-details/student-details.component.ts @@ -1,8 +1,7 @@ -import { Component, OnInit } from "@angular/core" +import { Component } from "@angular/core" import { map, Observable } from "rxjs" import { Student } from "../../models/student.model" import { ActivatedRoute, Router } from "@angular/router" -import { FormControl } from "@angular/forms" import { Course } from "../../models/course.model" import { CourseService } from "../../services/course.service" import { StudentService } from "../../services/student.service" @@ -18,12 +17,14 @@ export class StudentDetailsComponent { courseSelectModel: Course | null = null notSelectedCourse: boolean | undefined today = new Date(Date.now()) + constructor( private _route: ActivatedRoute, private courseService: CourseService, private studentService: StudentService, private router: Router, - ) {} + ) { + } courseClick() { this.allCourses$ = this.courseService.findAll() diff --git a/epf-front-skeleton-main/src/app/students/student-details/student-details.resolver.ts b/epf-front-skeleton-main/src/app/students/student-details/student-details.resolver.ts index 0cdd27e04489bf78fe669f728fa7c8b8598db64c..0388f40814b944e206086cf677895f4f0db0a2e6 100644 --- a/epf-front-skeleton-main/src/app/students/student-details/student-details.resolver.ts +++ b/epf-front-skeleton-main/src/app/students/student-details/student-details.resolver.ts @@ -1,6 +1,6 @@ import { Injectable } from "@angular/core" -import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from "@angular/router" -import { first, mergeMap, Observable, of } from "rxjs" +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from "@angular/router" +import { Observable } from "rxjs" import { StudentService } from "../../services/student.service" import { Student } from "../../models/student.model" import { Major } from "../../models/major.model" @@ -9,7 +9,9 @@ import { Major } from "../../models/major.model" providedIn: "root", }) export class StudentDetailsResolver implements Resolve<Student> { - constructor(private studentService: StudentService) {} + constructor(private studentService: StudentService) { + } + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Student> { if (route.params["id"] == "new") { return new Observable((observer) => observer.next(new Student("", "", new Major("", "")))) diff --git a/epf-front-skeleton-main/src/app/students/students.component.scss b/epf-front-skeleton-main/src/app/students/students.component.scss index a16aff5e107ac31703c52b8ff0ae2a9a8e9624e6..a560190b8cd8df8739963e2616473cef4065b890 100644 --- a/epf-front-skeleton-main/src/app/students/students.component.scss +++ b/epf-front-skeleton-main/src/app/students/students.component.scss @@ -3,7 +3,7 @@ :host { display: flex; flex-direction: column; - padding : 30px; + padding: 30px; h1 { display: flex; @@ -12,9 +12,11 @@ margin-right: 100px; margin-bottom: 0; } - table{ + + table { margin-top: 20px; vertical-align: center; + tbody { :hover { cursor: pointer; diff --git a/epf-front-skeleton-main/src/app/students/students.component.ts b/epf-front-skeleton-main/src/app/students/students.component.ts index 3c091c2d6af124edef10b9cfadf851ad83faf471..5e5fd687e2bec56773d23a4959cabab2aa5f41f1 100644 --- a/epf-front-skeleton-main/src/app/students/students.component.ts +++ b/epf-front-skeleton-main/src/app/students/students.component.ts @@ -1,7 +1,7 @@ -import { Component, OnInit } from "@angular/core" +import { Component } from "@angular/core" import { map, Observable } from "rxjs" import { Student } from "../models/student.model" -import { ActivatedRoute, Router } from "@angular/router" +import { ActivatedRoute } from "@angular/router" import { StudentService } from "../services/student.service" @Component({ @@ -11,13 +11,15 @@ import { StudentService } from "../services/student.service" }) export class StudentsComponent { students$: Observable<Student[]> = this._route.data.pipe(map((data) => data["students"])) - constructor(private _route: ActivatedRoute, private studentService: StudentService) {} + + constructor(private _route: ActivatedRoute, private studentService: StudentService) { + } deleteStudent(student: Student) { this.studentService.delete(student) } searchByMajorAndCourse($event: Observable<Student[]>) { - this.students$ = $event; + this.students$ = $event } } diff --git a/epf-front-skeleton-main/src/app/students/students.resolver.ts b/epf-front-skeleton-main/src/app/students/students.resolver.ts index 9ed89a6a16b2a36b4a7fc5a762d3fa663644bf3e..ce3c123744731c186b35c5f9d86043f92c6ce684 100644 --- a/epf-front-skeleton-main/src/app/students/students.resolver.ts +++ b/epf-front-skeleton-main/src/app/students/students.resolver.ts @@ -8,7 +8,9 @@ import { StudentService } from "../services/student.service" providedIn: "root", }) export class StudentsResolver implements Resolve<Student[]> { - constructor(private studentService: StudentService) {} + constructor(private studentService: StudentService) { + } + resolve(): Observable<Student[]> { return this.studentService.findAll() }