From 16e621cd71e27c08593ddbb43fdc1d457900db95 Mon Sep 17 00:00:00 2001 From: Jeremie BRISON <ext.sopra.jbrison@grandlyon.com> Date: Fri, 8 Jan 2021 16:29:38 +0100 Subject: [PATCH] feat(admin) : add service + model --- .../validation-attachment.component.html | 22 ++++++++++++- .../validation-attachment.component.ts | 32 +++++++++++++++++-- .../admin/models/demandAttachment.model.ts | 7 ++++ src/app/admin/services/admin.service.spec.ts | 16 ++++++++++ src/app/admin/services/admin.service.ts | 17 ++++++++++ 5 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 src/app/admin/models/demandAttachment.model.ts create mode 100644 src/app/admin/services/admin.service.spec.ts create mode 100644 src/app/admin/services/admin.service.ts diff --git a/src/app/admin/components/validation-attachment/validation-attachment.component.html b/src/app/admin/components/validation-attachment/validation-attachment.component.html index 46ad93600..cd68a92cd 100644 --- a/src/app/admin/components/validation-attachment/validation-attachment.component.html +++ b/src/app/admin/components/validation-attachment/validation-attachment.component.html @@ -1 +1,21 @@ -<div fxLayout="row" fxLayoutAlign="center center"><p>validation-attachment works!</p></div> +<div fxLayout="row" fxLayoutAlign="center center"> + <table> + <thead> + <th>Utilisateur</th> + <th>Structure</th> + <th>Options</th> + </thead> + <tbody> + <tr *ngFor="let demand of demandsAttachment"> + <td>{{ demand.user.email }}</td> + <td>{{ demande.structure.structureName }}</td> + <td> + <button (click)="acceptDemand(demand)">Valider</button><button (click)="refuseDemand(demand)">Refuser</button> + </td> + </tr> + <tr *ngIf="!demandsAttachment.length"> + <td colspan="3">Aucune demande en attente</td> + </tr> + </tbody> + </table> +</div> diff --git a/src/app/admin/components/validation-attachment/validation-attachment.component.ts b/src/app/admin/components/validation-attachment/validation-attachment.component.ts index 09d9095c6..4211d3c0a 100644 --- a/src/app/admin/components/validation-attachment/validation-attachment.component.ts +++ b/src/app/admin/components/validation-attachment/validation-attachment.component.ts @@ -1,4 +1,9 @@ import { Component, OnInit } from '@angular/core'; +import { userInfo } from 'os'; +import { Structure } from '../../../models/structure.model'; +import { User } from '../../../models/user.model'; +import { demandAttachment } from '../../models/demandAttachment.model'; +import { AdminService } from '../../services/admin.service'; @Component({ selector: 'app-admin-validation-attachment', @@ -6,7 +11,30 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./validation-attachment.component.scss'], }) export class ValidationAttachmentComponent implements OnInit { - constructor() {} + demandsAttachment: demandAttachment[]; + constructor(private adminService: AdminService) {} - ngOnInit(): void {} + ngOnInit(): void { + this.demandsAttachment = this.adminService.getPendingAttachmentsStructure(); + } + + public acceptDemand(demand: demandAttachment): void { + console.log('accept'); + this.removeDemand(demand); + + this.adminService.acceptAttachmentStructure(demand.user.email, demand.structure.id); + } + + public refuseDemand(demand: demandAttachment): void { + console.log('refuse'); + this.adminService.refuseAttachmentStructure(demand.user.email, demand.structure.id); + this.removeDemand(demand); + } + + private removeDemand(demand: demandAttachment): void { + const index = this.demandsAttachment.findIndex((d: demandAttachment) => d === demand); + if (index > -1) { + this.demandsAttachment.splice(index, 1); + } + } } diff --git a/src/app/admin/models/demandAttachment.model.ts b/src/app/admin/models/demandAttachment.model.ts new file mode 100644 index 000000000..26509d277 --- /dev/null +++ b/src/app/admin/models/demandAttachment.model.ts @@ -0,0 +1,7 @@ +import { Structure } from '../../models/structure.model'; +import { User } from '../../models/user.model'; + +export class demandAttachment { + user: User; + structure: Structure; +} diff --git a/src/app/admin/services/admin.service.spec.ts b/src/app/admin/services/admin.service.spec.ts new file mode 100644 index 000000000..c83b4be6f --- /dev/null +++ b/src/app/admin/services/admin.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AdminService } from './admin.service'; + +describe('AdminService', () => { + let service: AdminService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AdminService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/admin/services/admin.service.ts b/src/app/admin/services/admin.service.ts new file mode 100644 index 000000000..dac27d9c3 --- /dev/null +++ b/src/app/admin/services/admin.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { demandAttachment } from '../models/demandAttachment.model'; + +@Injectable({ + providedIn: 'root', +}) +export class AdminService { + constructor() {} + + // Return pendingAttachments of all profiles. + public getPendingAttachmentsStructure(): demandAttachment[] { + return [new demandAttachment()]; + } + + public acceptAttachmentStructure(mailUser, idStructure): void {} + public refuseAttachmentStructure(mailUser, idStructure): void {} +} -- GitLab