Merge de la brange fait à la mano

ludo
Raphael LACOTE 8 months ago
parent 652b1925d6
commit 6395a54999

@ -1,3 +1,3 @@
<app-book-menu></app-book-menu> <!-- <app-book-menu></app-book-menu> -->
<router-outlet (activate)="onActivate($event)"></router-outlet> <router-outlet (activate)="onActivate($event)"></router-outlet>

@ -7,9 +7,11 @@ import { UserListComponent } from './components/user-list/user-list.component';
import { UserDetailComponent } from './components/user-detail/user-detail.component'; import { UserDetailComponent } from './components/user-detail/user-detail.component';
import { SudokuComponent } from './components/sudoku/sudoku.component'; import { SudokuComponent } from './components/sudoku/sudoku.component';
import { DifficultySelectorComponent } from './components/difficulty-selector/difficulty-selector.component' import { DifficultySelectorComponent } from './components/difficulty-selector/difficulty-selector.component'
import { UserAccueilComponent } from './components/user-accueil/user-accueil.component';
export const routes: Routes = [ export const routes: Routes = [
{ path: '', component: LoginComponent }, { path: '', component: LoginComponent },
{ path: 'accueil', component: UserAccueilComponent },
{ path: 'books', component: BookListComponent }, { path: 'books', component: BookListComponent },
{ path: 'book/add', component: BookFormComponent }, { path: 'book/add', component: BookFormComponent },
{ path: 'book/:id', component: BookDetailComponent }, { path: 'book/:id', component: BookDetailComponent },

@ -1,3 +1,5 @@
<app-book-menu></app-book-menu>
<p>sudoku works!</p> <p>sudoku works!</p>
<div class="grid"> <div class="grid">

@ -2,13 +2,13 @@ import { Component } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { NgFor,NgIf } from '@angular/common'; import { NgFor,NgIf } from '@angular/common';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { UserMenuComponent } from '../user-menu/user-menu.component';
import { SudokuService } from '../../services/sudoku-service'; import { SudokuService } from '../../services/sudoku-service';
@Component({ @Component({
selector: 'app-sudoku', selector: 'app-sudoku',
standalone: true, standalone: true,
imports: [RouterModule, NgFor, NgIf], imports: [RouterModule, NgFor, NgIf,UserMenuComponent],
templateUrl: './sudoku.component.html', templateUrl: './sudoku.component.html',
styleUrl: './sudoku.component.css' styleUrl: './sudoku.component.css'
}) })

@ -14,5 +14,10 @@
<th>SAM</th> <th>SAM</th>
<th>DIM</th> <th>DIM</th>
</tr> </tr>
<tr>
<th *ngFor="let azerty of streaks">
{{ azerty }}
</th>
</tr>
</tbody> </tbody>
</table> </table>

@ -1,26 +1,56 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { UserMenuComponent } from '../user-menu/user-menu.component'; 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({ @Component({
selector: 'app-user-accueil', selector: 'app-user-accueil',
standalone: true, standalone: true,
imports: [UserMenuComponent,RouterModule], imports: [UserMenuComponent,RouterModule,NgFor],
templateUrl: './user-accueil.component.html', templateUrl: './user-accueil.component.html',
styleUrl: './user-accueil.component.css' styleUrl: './user-accueil.component.css'
}) })
export class UserAccueilComponent { export class UserAccueilComponent {
protected formattedDate : String protected formattedDate : String
protected streaks: Object[]
public constructor() { public constructor(us : UserService) {
const currentDate: Date = new Date const currentDate: Date = new Date
const options: Intl.DateTimeFormatOptions = { const options: Intl.DateTimeFormatOptions = {
year: 'numeric', year: 'numeric',
month: 'long', month: 'long',
day: 'numeric' 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("❌")
}
});
}
} }

@ -4,5 +4,5 @@
<a mat-menu-item routerLink="/accueil" routerLinkActive="active" ariaCurrentWhenActive="page">Accueil</a> <a mat-menu-item routerLink="/accueil" routerLinkActive="active" ariaCurrentWhenActive="page">Accueil</a>
<a mat-menu-item routerLink="/users" routerLinkActive="active" ariaCurrentWhenActive="page">Classement</a> <a mat-menu-item routerLink="/users" routerLinkActive="active" ariaCurrentWhenActive="page">Classement</a>
<a mat-menu-item routerLink="{{route}}" routerLinkActive="active" ariaCurrentWhenActive="page">Details</a> <a mat-menu-item routerLink="{{route}}" routerLinkActive="active" ariaCurrentWhenActive="page">Details</a>
<a mat-menu-item routerLink="/" routerLinkActive="active" ariaCurrentWhenActive="page">Sudoku</a> <a mat-menu-item routerLink="/sudoku" routerLinkActive="active" ariaCurrentWhenActive="page">Sudoku</a>
</mat-menu> </mat-menu>

@ -34,6 +34,18 @@ export class UserService {
return Math.ceil(this.users.length / this.pageSize) return Math.ceil(this.users.length / this.pageSize)
} }
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
}
public getUserNbPts(nbPage:number, sortSens:number): User[] { public getUserNbPts(nbPage:number, sortSens:number): User[] {
if (nbPage>this.getNbPage() || nbPage<=0) return[]; if (nbPage>this.getNbPage() || nbPage<=0) return[];
let page = this.HardCopy(this.users); let page = this.HardCopy(this.users);

Loading…
Cancel
Save