diff --git a/src/app/admin/components/deleted-structures/deleted-structures.component.html b/src/app/admin/components/deleted-structures/deleted-structures.component.html index ef140d887b183e37d55a626139cebb99bba91d1e..e4b520515ab118c23bd93cfbac8f2b287ae9539f 100644 --- a/src/app/admin/components/deleted-structures/deleted-structures.component.html +++ b/src/app/admin/components/deleted-structures/deleted-structures.component.html @@ -3,7 +3,6 @@ </div> <div *ngIf="!isLoading" class="deletedStructures"> <h2>Liste des structures supprimées</h2> - <ag-grid-angular *ngIf="deletedStructures" class="ag-theme-alpine" diff --git a/src/app/admin/components/deleted-structures/deleted-structures.component.ts b/src/app/admin/components/deleted-structures/deleted-structures.component.ts index 6b48ced9084f191056e1d77adbf7ae351736e250..2c3e281cf83bc0efd57b6ebb920953bf0581fbf2 100644 --- a/src/app/admin/components/deleted-structures/deleted-structures.component.ts +++ b/src/app/admin/components/deleted-structures/deleted-structures.component.ts @@ -18,6 +18,10 @@ export class DeletedStructuresComponent implements OnInit { constructor(private adminService: AdminService, private datePipe: DatePipe) {} ngOnInit(): void { + this.loadDeletedStructures(); + } + + private loadDeletedStructures(): void { this.adminService .getDeletedStructures() .pipe(finalize(() => (this.isLoading = false))) @@ -30,6 +34,13 @@ export class DeletedStructuresComponent implements OnInit { return `<a href="/acteurs?id=${structure._id}" target="_blank">${structure.structureName}</a>`; } + private restoreStructure(structureId: string): void { + this.adminService.restoreDeletedStructure(structureId).subscribe(() => { + this.isLoading = true; + this.loadDeletedStructures(); + }); + } + public columnDefs: ColDef<Structure>[] = [ { headerName: 'Structure', @@ -53,5 +64,12 @@ export class DeletedStructuresComponent implements OnInit { sort: 'desc', valueFormatter: (params) => this.datePipe.transform(params.value, 'yyyy-MM-dd'), }, + { + headerName: 'Restaurer', + cellRenderer: () => '<button type="button">Restaurer</button>', + onCellClicked: (params) => { + this.restoreStructure(params.data._id); + }, + }, ]; } diff --git a/src/app/admin/components/structures-list/admin-structures-list.component.ts b/src/app/admin/components/structures-list/admin-structures-list.component.ts index fe80c104710d785360121e11ff05ab0e70616be9..3127ba460b261a2e09ddf701e363473454230b6f 100644 --- a/src/app/admin/components/structures-list/admin-structures-list.component.ts +++ b/src/app/admin/components/structures-list/admin-structures-list.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { finalize } from 'rxjs/operators'; -import { StructureAdminInfo } from '../../models/demandAttachment.model'; +import { AdminStructure } from '../../models/adminStructureList.interface'; import { AdminService } from '../../services/admin.service'; @Component({ @@ -9,10 +9,10 @@ import { AdminService } from '../../services/admin.service'; styleUrls: ['../../admin-pannel.scss'], }) export class AdminStructuresListComponent implements OnInit { - public structuresInClaim: StructureAdminInfo[]; - public structuresToClaim: StructureAdminInfo[]; - public structuresClaimed: StructureAdminInfo[]; - public structuresIncomplete: StructureAdminInfo[]; + public structuresClaimed: AdminStructure[]; + public structuresInClaim: AdminStructure[]; + public structuresToClaim: AdminStructure[]; + public structuresIncomplete: AdminStructure[]; public isAll: boolean = false; public isLoading: boolean = true; constructor(private adminService: AdminService) {} @@ -21,11 +21,11 @@ export class AdminStructuresListComponent implements OnInit { this.adminService .getAllStructureAdmin() .pipe(finalize(() => (this.isLoading = false))) - .subscribe((structures) => { - this.structuresClaimed = structures.claimed; - this.structuresInClaim = structures.inClaim; - this.structuresToClaim = structures.toClaim; - this.structuresIncomplete = structures.incomplete; + .subscribe((response) => { + this.structuresClaimed = response.claimed; + this.structuresInClaim = response.inClaim; + this.structuresToClaim = response.toClaim; + this.structuresIncomplete = response.incomplete; }); } } diff --git a/src/app/admin/models/adminStructureList.interface.ts b/src/app/admin/models/adminStructureList.interface.ts new file mode 100644 index 0000000000000000000000000000000000000000..9a751bbb62934c98b82d0075dfe189f1fd8473b7 --- /dev/null +++ b/src/app/admin/models/adminStructureList.interface.ts @@ -0,0 +1,13 @@ +export interface AdminStructureList { + claimed: AdminStructure[]; + inClaim: AdminStructure[]; + toClaim: AdminStructure[]; + incomplete: AdminStructure[]; +} + +export interface AdminStructure { + structureId: string; + structureName: string; + updatedAt: Date; + isOutdated: boolean; +} diff --git a/src/app/admin/services/admin.service.ts b/src/app/admin/services/admin.service.ts index b7e5e720bcddadd87c99cc9a18fb6580cb560836..bd98249d5351539dde4b1e55ad9c3e28fcf13823 100644 --- a/src/app/admin/services/admin.service.ts +++ b/src/app/admin/services/admin.service.ts @@ -5,6 +5,7 @@ import { Employer } from '../../models/employer.model'; import { Job } from '../../models/job.model'; import { Structure } from '../../models/structure.model'; import { User } from '../../models/user.model'; +import { AdminStructureList } from '../models/adminStructureList.interface'; import { StructureAdminInfo } from '../models/demandAttachment.model'; @Injectable({ @@ -21,12 +22,8 @@ export class AdminService { return this.http.get<StructureAdminInfo[]>(`${this.baseUrl}/pendingStructures`); } - public getToClaimStructure(): Observable<StructureAdminInfo[]> { - return this.http.get<StructureAdminInfo[]>(`${this.baseUrl}/unclaimedStructures`); - } - - public getAllStructureAdmin(): Observable<any> { - return this.http.get<StructureAdminInfo[]>(`${this.baseUrl}/adminStructuresList`); + public getAllStructureAdmin(): Observable<AdminStructureList> { + return this.http.get<AdminStructureList>(`${this.baseUrl}/adminStructuresList`); } public getUsers(): Observable<User[]> { @@ -173,4 +170,8 @@ export class AdminService { public getDeletedStructures(): Observable<Structure[]> { return this.http.get<Structure[]>(`${this.baseUrl}/getDeletedStructures`); } + + public restoreDeletedStructure(structureId: string): Observable<void> { + return this.http.post<void>(`${this.baseUrl}/restoreDeletedStructure/${structureId}`, {}); + } }