Skip to content
Snippets Groups Projects
Commit 197123f5 authored by Bastien DUMONT's avatar Bastien DUMONT :angel:
Browse files

feat(admin): restore deleted structure

parent 270bccc5
No related branches found
No related tags found
2 merge requests!525V2.3.0,!485feat(admin): restore deleted structure
......@@ -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"
......
......@@ -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);
},
},
];
}
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;
});
}
}
export interface AdminStructureList {
claimed: AdminStructure[];
inClaim: AdminStructure[];
toClaim: AdminStructure[];
incomplete: AdminStructure[];
}
export interface AdminStructure {
structureId: string;
structureName: string;
updatedAt: Date;
isOutdated: boolean;
}
......@@ -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}`, {});
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment