diff --git a/src/app/modules/community/community.module.ts b/src/app/modules/community/community.module.ts index 2c663e32270a510678c2264bd1992b1e73b071d8..257fb5386bfb2b31dd4ffb1a7322abcbfd6a0eb4 100644 --- a/src/app/modules/community/community.module.ts +++ b/src/app/modules/community/community.module.ts @@ -7,9 +7,10 @@ import { QuizListDetailComponent } from './quiz-list-detail/quiz-list-detail.com import { MatPaginatorModule } from '@angular/material/paginator'; import { MatFormField } from '@angular/material/form-field'; import { FormsModule, NgModel } from '@angular/forms'; +import { SharedModule } from '../../shared/shared.module'; @NgModule({ declarations: [ListQuizComponent, QuizDetailComponent, QuizListDetailComponent], - imports: [CommonModule, MatTableModule, MatPaginatorModule, MatFormField, FormsModule], + imports: [CommonModule, MatTableModule, MatPaginatorModule, MatFormField, FormsModule, SharedModule], }) export class CommunityModule {} diff --git a/src/app/modules/community/list-quiz/list-quiz.component.css b/src/app/modules/community/list-quiz/list-quiz.component.css index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ce9b81fad96859a5fb29fc076502a4b714b0ea43 100644 --- a/src/app/modules/community/list-quiz/list-quiz.component.css +++ b/src/app/modules/community/list-quiz/list-quiz.component.css @@ -0,0 +1,49 @@ +.containerGlobal { + display: flex; +} + +.containerGlobal { + height: 100%; + width: 100%; + display: flex; + flex-direction: row; + +} + +.containerLeft { + height: 100%; + width: 50%; + padding-inline: 2%; + display: flex; + flex-direction: column; + justify-content: 'space-between'; +} + +.containerRight { + height: 100%; + width: 50%; + background-image: url(../../../../../public/BackgroundSubScreen.png); + background-repeat: no-repeat; + background-size: cover; + /* display: flex; + flex-direction: column; + align-items: center; */ +} + + +.container { + display: flex; + flex-direction: column; + + border-radius: 25px; + background-color: #fff; + box-shadow: 0 0 0.5% rgba(0, 0, 0, 0.1); + width: 100%; + height: 70%; + flex-grow: 0; + + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + border: 1vmin solid #F3F3F3; +} \ No newline at end of file diff --git a/src/app/modules/community/list-quiz/list-quiz.component.html b/src/app/modules/community/list-quiz/list-quiz.component.html index 02719b8f6d16cd4d9f2b1a1e8b46fe3f6db7c4a7..bc6f170b6c82fcbe828458a930ee647bb531f78e 100644 --- a/src/app/modules/community/list-quiz/list-quiz.component.html +++ b/src/app/modules/community/list-quiz/list-quiz.component.html @@ -1,19 +1,35 @@ -<div class="list-quiz"> - <input (keyup)="filter()" [(ngModel)]="filterText" matInput type="text" placeholder="Search a quiz" /> - <table mat-table [dataSource]="listQuizDataSource"> - <ng-container matColumnDef="Component"> - <td mat-cell *matCellDef="let quiz" (click)="clickOnQuiz(quiz.id)"> +<div class="question-marks"> + <div class="containerGlobal"> + <div class="containerLeft"> + <h1>Community quiz</h1> + <input (keyup)="filter()" [(ngModel)]="filterText" type="text" placeholder="Search a quiz" + class="inputRecherche" /> + <div class="container"> + <div class="scrollable-list"> + <app-quiz-list [quizList]="quizList"></app-quiz-list> + </div> + </div> + </div> + <div class="containerRight"> + <app-quiz-list-detail /> + </div> + </div> +</div> +<!-- + <div class="component"> + <div class="scrollable-list"ngFor="let quiz of quizzes" <app-quiz-list-detail [title]="quiz.id" [nbQuestions]="quiz.questions.length" [difficulty]="quiz.difficulty.name" [creator]="quiz.author ?? 'Anonymous'" ></app-quiz-list-detail> - </td> - </ng-container> - <tr mat-row *matRowDef="let row; columns: displayedColumns"></tr> - </table> - <mat-paginator + </div> + </div> + <!--<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>--> + + +<!-- <mat-paginator (page)="onPageChange($event)" [pageSize]="take" [pageIndex]="skip" @@ -22,4 +38,4 @@ > </mat-paginator> </div> -<div class="quiz-detail"><app-quiz-detail [codeQuiz]="clickedQuiz"></app-quiz-detail></div> +<div class="quiz-detail"><app-quiz-detail [codeQuiz]="clickedQuiz"></app-quiz-detail></div> --> \ No newline at end of file diff --git a/src/app/modules/community/list-quiz/list-quiz.component.ts b/src/app/modules/community/list-quiz/list-quiz.component.ts index 5cf284d57c08ede65aa5c2ddd1a98a2d2833c129..802eb44617b34cc7825e8d56e1d72182de01877f 100644 --- a/src/app/modules/community/list-quiz/list-quiz.component.ts +++ b/src/app/modules/community/list-quiz/list-quiz.component.ts @@ -7,12 +7,15 @@ import { filter } from 'rxjs'; @Component({ selector: 'app-list-quiz', templateUrl: './list-quiz.component.html', - styleUrl: './list-quiz.component.css', + styleUrls: ['./list-quiz.component.css', '../../../../styles.css'], }) + export class ListQuizComponent implements OnInit { - listQuizDataSource = new MatTableDataSource(); - displayedColumns = ['Component']; - constructor(private communityService: CommunityService) {} + //listQuizDataSource = new MatTableDataSource(); + quizzes: any[] = [] + quizList: any[] = []; + //displayedColumns = ['Component']; + constructor(private communityService: CommunityService) { } codeQuiz: string = ''; skip: number = 0; take: number = 10; @@ -31,8 +34,13 @@ export class ListQuizComponent implements OnInit { this.communityService.getCommunityQuiz(this.skip, this.take, this.filterText).subscribe({ next: (data: any) => { console.log('data: ', data); - this.listQuizDataSource.data = data; + //this.listQuizDataSource.data = data; + this.quizzes = data; this.totalQuiz = data.length; + this.quizzes.map((quiz => { + + this.quizList.push({ title: !quiz.name ? 'Untitled' : quiz.name, content: `${quiz.questions.length} QUESTIONS | ${quiz.difficulty.name} | ${!quiz.author ? 'Anonymous' : quiz.author}` }) + })) }, }); } diff --git a/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.css b/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.css index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f7b1dca03d661fd3384858760dd47ad3f3db2728 100644 --- a/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.css +++ b/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.css @@ -0,0 +1,53 @@ +.container { + display: flex; + flex-direction: column; + justify-content: space-evenly; + height: calc(100% - 2vmin); + width: calc(100% - 100px); + gap: 1rem; + padding-left: 100px; +} + +/* Titre */ +.container h1 { + font-size: 1.8em; + color: #333; + text-align: center; + /* margin-bottom: 1.5rem; */ + margin: 0; + font-weight: 500; +} + +.quiz-info { + display: flex; + flex-direction: column; + justify-content: space-between; + + height: 30vh; + + background-color: #FEFEFE; + border-radius: 10px; + gap: 1rem; +} + +.quiz-info-content { + display: flex; + flex-direction: row; + gap: 0.6rem; + padding-left: 10%; +} + +.quiz-title { + display: flex; + flex-direction: column; + align-items: center; +} + +hr { + width: 70%; + padding-left: 15%; + height: 0.5vmin; + margin: 0; + background-color: #B9B9B9; + border: none; +} \ No newline at end of file diff --git a/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.html b/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.html index 28cf4e9313bd540f9afa9851b32cf0a9f4ca83c8..67cde8ed0f2a0ada1d676b5bf08687545ee5c84d 100644 --- a/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.html +++ b/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.html @@ -1,6 +1,21 @@ -<div class="main-container"> - <p class="title">{{ title }}</p> - <p class="description"> - {{ nbQuestions }} QUESTIONS | {{ difficulty.toUpperCase() }} | {{ creator.toUpperCase() }} - </p> -</div> +<div class="container"> + <div class="quiz-detail"> + <h1>{{ quiz.title }}</h1> + <h2>{{ quiz.content }}</h2> + </div> + + <div class="quiz-info"> + <div class="quiz-title"> + <p class="quiz-info-title">About this quiz</p> + <hr /> + </div> + <div class="quiz-info-content"> + <p class="quiz-info-content-value">{{quiz.nbQuestions}} Questions, {{quiz.difficulty}}</p> + </div> + + </div> + + <div class="new-quiz"> + <button class="blueButton" (click)="playQuiz()">Go !</button> + </div> +</div> \ No newline at end of file diff --git a/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.ts b/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.ts index f1848ae7c7abd0e3959e376691b24e69ec598921..4428c878f0e8e2d873d4737ac3e8c0f95a15aeb8 100644 --- a/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.ts +++ b/src/app/modules/community/quiz-list-detail/quiz-list-detail.component.ts @@ -3,11 +3,27 @@ import { Component, Input } from '@angular/core'; @Component({ selector: 'app-quiz-list-detail', templateUrl: './quiz-list-detail.component.html', - styleUrl: './quiz-list-detail.component.css', + styleUrls: ['./quiz-list-detail.component.css', '../../../../styles.css'], }) export class QuizListDetailComponent { @Input() title: string = ''; @Input() nbQuestions: number = 0; @Input() difficulty: string = ''; @Input() creator: string = ''; + + quiz: any + + ngOnInit(): void { + this.quiz = { + title: "Quiz de la mort qui tue", + content: "un quiz de la mort qui tue", + difficulty: "hard", + creator: "Klebert", + nbQuestions: 10 + } + } + + playQuiz() { + console.log('play quiz'); + } } diff --git a/src/app/modules/profile/profile-info/profile-info.component.css b/src/app/modules/profile/profile-info/profile-info.component.css index af925cf13dbedb9c5c58e9f09d01345126dd4800..06003f31508c11e773f26ba2a3c995bd48ea5df0 100644 --- a/src/app/modules/profile/profile-info/profile-info.component.css +++ b/src/app/modules/profile/profile-info/profile-info.component.css @@ -45,12 +45,7 @@ height: 89%; } -.scrollable-list { - /* max-height: 95%; */ - overflow-y: auto; - overflow-x: hidden; -} .form-group { width: 100%; diff --git a/src/app/shared/quiz-list/quiz-list.component.css b/src/app/shared/quiz-list/quiz-list.component.css index 1ae280cf557577043e08117161cf1e787a772064..392e8aca61a78a14d9b4abc1feaeded694da7c32 100644 --- a/src/app/shared/quiz-list/quiz-list.component.css +++ b/src/app/shared/quiz-list/quiz-list.component.css @@ -18,8 +18,7 @@ /* Styles génériques */ button { - width: 100%; - /* margin-bottom: 1%; */ + height: 8vh; width: 90%; flex-shrink: 0; margin: 1%; diff --git a/src/styles.css b/src/styles.css index cc3b399d17b2d1ba7a372bb4219d548f60b27583..1d2146f45ca56f3447d94a69b257b60e1009f998 100644 --- a/src/styles.css +++ b/src/styles.css @@ -171,4 +171,11 @@ h1 { .scrollable-list::-webkit-scrollbar-thumb:hover { background-color: #555; +} + +.scrollable-list { + /* max-height: 95%; */ + overflow-y: auto; + overflow-x: hidden; + } \ No newline at end of file