diff --git a/src/app/app.component.html b/src/app/app.component.html index a1a6042..6330d4c 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index e965c34..e01e5ad 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -6,6 +6,7 @@ import { LoginComponent } from './components/login/login.component'; import { UserListComponent } from './components/user-list/user-list.component'; import { UserDetailComponent } from './components/user-detail/user-detail.component'; import { SudokuComponent } from './components/sudoku/sudoku.component'; +import { UserAccueilComponent } from './components/user-accueil/user-accueil.component'; export const routes: Routes = [ { path: '', component: LoginComponent }, @@ -13,6 +14,7 @@ export const routes: Routes = [ { path: 'book/add', component: BookFormComponent }, { path: 'book/:id', component: BookDetailComponent }, { path: 'users', component: UserListComponent }, + { path: 'accueil', component: UserAccueilComponent }, { path: 'user/:id', component: UserDetailComponent }, { path: 'sudoku/:difficulty', component: SudokuComponent }, { path: '**', redirectTo: '', pathMatch: 'full' } diff --git a/src/app/components/sudoku/sudoku.component.html b/src/app/components/sudoku/sudoku.component.html index ea1649e..8fdcb0d 100644 --- a/src/app/components/sudoku/sudoku.component.html +++ b/src/app/components/sudoku/sudoku.component.html @@ -1,3 +1,5 @@ + +

sudoku works!

diff --git a/src/app/components/sudoku/sudoku.component.ts b/src/app/components/sudoku/sudoku.component.ts index c2cc00f..d1a8b7c 100644 --- a/src/app/components/sudoku/sudoku.component.ts +++ b/src/app/components/sudoku/sudoku.component.ts @@ -2,13 +2,14 @@ import { Component } from '@angular/core'; import { RouterModule } from '@angular/router'; import { NgFor,NgIf } from '@angular/common'; import { ActivatedRoute } from '@angular/router'; +import { UserMenuComponent } from '../user-menu/user-menu.component'; import { SudokuService } from '../../services/sudoku-service'; @Component({ selector: 'app-sudoku', standalone: true, - imports: [RouterModule, NgFor, NgIf], + imports: [UserMenuComponent, RouterModule, NgFor, NgIf], templateUrl: './sudoku.component.html', styleUrl: './sudoku.component.css' }) diff --git a/src/app/components/user-accueil/user-accueil.component.html b/src/app/components/user-accueil/user-accueil.component.html index 5d868c1..0ef10c1 100644 --- a/src/app/components/user-accueil/user-accueil.component.html +++ b/src/app/components/user-accueil/user-accueil.component.html @@ -14,5 +14,10 @@ SAM DIM + + + {{ azerty }} + + \ No newline at end of file diff --git a/src/app/components/user-accueil/user-accueil.component.ts b/src/app/components/user-accueil/user-accueil.component.ts index fd34869..edb7ff5 100644 --- a/src/app/components/user-accueil/user-accueil.component.ts +++ b/src/app/components/user-accueil/user-accueil.component.ts @@ -1,26 +1,58 @@ import { Component } from '@angular/core'; import { RouterModule } from '@angular/router'; import { UserMenuComponent } from '../user-menu/user-menu.component'; +import { UserService } from '../../services/user-service'; +import { NgFor } from '@angular/common'; + +interface Streak { + day: string + isPlayed: boolean +} @Component({ selector: 'app-user-accueil', standalone: true, - imports: [UserMenuComponent,RouterModule], + imports: [UserMenuComponent,RouterModule,NgFor], templateUrl: './user-accueil.component.html', styleUrl: './user-accueil.component.css' }) export class UserAccueilComponent { protected formattedDate : String + protected streaks: Object[] + - public constructor() { + public constructor(us : UserService) { const currentDate: Date = new Date const options: Intl.DateTimeFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' }; - this.formattedDate = currentDate.toLocaleDateString(undefined, options); + this.formattedDate = currentDate.toLocaleDateString(undefined, options) + + this.streaks = ["❌","❌","❌","❌","❌","❌","❌"] + + let userConnecte = localStorage.getItem('UserConnecte') + if(userConnecte == undefined) {return} + + let id = us.getIdByUser(userConnecte) + if(id == undefined) {return} + + let streaks = us.getStreaksFromId(id) + if(streaks == undefined) {return} + + this.streaks = [] + streaks.forEach(element => { + let a : Streak = element as Streak + if(a["isPlayed"]){ + this.streaks.push("✅") + } else { + this.streaks.push("❌") + } + }); + } + } diff --git a/src/app/components/user-menu/user-menu.component.html b/src/app/components/user-menu/user-menu.component.html index a602d3d..c2f4659 100644 --- a/src/app/components/user-menu/user-menu.component.html +++ b/src/app/components/user-menu/user-menu.component.html @@ -4,5 +4,5 @@ Accueil Classement Details - Sudoku + Sudoku diff --git a/src/app/components/user-menu/user-menu.component.ts b/src/app/components/user-menu/user-menu.component.ts index 8fecd66..583d14e 100644 --- a/src/app/components/user-menu/user-menu.component.ts +++ b/src/app/components/user-menu/user-menu.component.ts @@ -34,5 +34,4 @@ export class UserMenuComponent { this.route = "/users/0"; } } - } diff --git a/src/app/services/user-service.ts b/src/app/services/user-service.ts index 82a2fff..c0d8f42 100644 --- a/src/app/services/user-service.ts +++ b/src/app/services/user-service.ts @@ -36,11 +36,11 @@ export class UserService { public getUserNbPts(nbPage:number, sortSens:number): User[] { if (nbPage>this.getNbPage() || nbPage<=0) return[]; - let page = this.HardCopy(this.users); + let page = this.HardCopy(this.users) page = page.sort((a,b) => { if (a.points == null || b.points == null) return 0; - if (a.points>b.points) return 1*sortSens; - if (b.points>a.points) return -1*sortSens; + if (a.points > b.points) return 1 * sortSens; + if (b.points > a.points) return -1 * sortSens; return 0; }); page = this.getSubset(page,(nbPage-1)*this.pageSize,nbPage*this.pageSize); @@ -68,6 +68,18 @@ export class UserService { return JSON.parse(JSON.stringify(users)); } + public getIdByUser(name: String): number | undefined{ + let u : User | undefined = this.users.find((user) => user.login === name) + if(u == undefined) { return } + return u.id + } + + public getStreaksFromId(id: number): Object[] | undefined{ + let u : User | undefined = this.users.find((user) => user.id === id) + if(u == undefined) { return } + return u.streaks + } + private getSubset(user: User[],deb:number,fin:number):User[] { let a: User[] = []; for (let i=0; i