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

Merge branch '272-restore-deleted-structure' into 'dev'

feat(admin): restore deleted structure

See merge request !485
parents 4228081f 197123f5
No related branches found
No related tags found
2 merge requests!525V2.3.0,!485feat(admin): restore deleted structure
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
</div> </div>
<div *ngIf="!isLoading" class="deletedStructures"> <div *ngIf="!isLoading" class="deletedStructures">
<h2>Liste des structures supprimées</h2> <h2>Liste des structures supprimées</h2>
<ag-grid-angular <ag-grid-angular
*ngIf="deletedStructures" *ngIf="deletedStructures"
class="ag-theme-alpine" class="ag-theme-alpine"
......
...@@ -18,6 +18,10 @@ export class DeletedStructuresComponent implements OnInit { ...@@ -18,6 +18,10 @@ export class DeletedStructuresComponent implements OnInit {
constructor(private adminService: AdminService, private datePipe: DatePipe) {} constructor(private adminService: AdminService, private datePipe: DatePipe) {}
ngOnInit(): void { ngOnInit(): void {
this.loadDeletedStructures();
}
private loadDeletedStructures(): void {
this.adminService this.adminService
.getDeletedStructures() .getDeletedStructures()
.pipe(finalize(() => (this.isLoading = false))) .pipe(finalize(() => (this.isLoading = false)))
...@@ -30,6 +34,13 @@ export class DeletedStructuresComponent implements OnInit { ...@@ -30,6 +34,13 @@ export class DeletedStructuresComponent implements OnInit {
return `<a href="/acteurs?id=${structure._id}" target="_blank">${structure.structureName}</a>`; 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>[] = [ public columnDefs: ColDef<Structure>[] = [
{ {
headerName: 'Structure', headerName: 'Structure',
...@@ -53,5 +64,12 @@ export class DeletedStructuresComponent implements OnInit { ...@@ -53,5 +64,12 @@ export class DeletedStructuresComponent implements OnInit {
sort: 'desc', sort: 'desc',
valueFormatter: (params) => this.datePipe.transform(params.value, 'yyyy-MM-dd'), 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 { Component, OnInit } from '@angular/core';
import { finalize } from 'rxjs/operators'; import { finalize } from 'rxjs/operators';
import { StructureAdminInfo } from '../../models/demandAttachment.model'; import { AdminStructure } from '../../models/adminStructureList.interface';
import { AdminService } from '../../services/admin.service'; import { AdminService } from '../../services/admin.service';
@Component({ @Component({
...@@ -9,10 +9,10 @@ import { AdminService } from '../../services/admin.service'; ...@@ -9,10 +9,10 @@ import { AdminService } from '../../services/admin.service';
styleUrls: ['../../admin-pannel.scss'], styleUrls: ['../../admin-pannel.scss'],
}) })
export class AdminStructuresListComponent implements OnInit { export class AdminStructuresListComponent implements OnInit {
public structuresInClaim: StructureAdminInfo[]; public structuresClaimed: AdminStructure[];
public structuresToClaim: StructureAdminInfo[]; public structuresInClaim: AdminStructure[];
public structuresClaimed: StructureAdminInfo[]; public structuresToClaim: AdminStructure[];
public structuresIncomplete: StructureAdminInfo[]; public structuresIncomplete: AdminStructure[];
public isAll: boolean = false; public isAll: boolean = false;
public isLoading: boolean = true; public isLoading: boolean = true;
constructor(private adminService: AdminService) {} constructor(private adminService: AdminService) {}
...@@ -21,11 +21,11 @@ export class AdminStructuresListComponent implements OnInit { ...@@ -21,11 +21,11 @@ export class AdminStructuresListComponent implements OnInit {
this.adminService this.adminService
.getAllStructureAdmin() .getAllStructureAdmin()
.pipe(finalize(() => (this.isLoading = false))) .pipe(finalize(() => (this.isLoading = false)))
.subscribe((structures) => { .subscribe((response) => {
this.structuresClaimed = structures.claimed; this.structuresClaimed = response.claimed;
this.structuresInClaim = structures.inClaim; this.structuresInClaim = response.inClaim;
this.structuresToClaim = structures.toClaim; this.structuresToClaim = response.toClaim;
this.structuresIncomplete = structures.incomplete; 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'; ...@@ -5,6 +5,7 @@ import { Employer } from '../../models/employer.model';
import { Job } from '../../models/job.model'; import { Job } from '../../models/job.model';
import { Structure } from '../../models/structure.model'; import { Structure } from '../../models/structure.model';
import { User } from '../../models/user.model'; import { User } from '../../models/user.model';
import { AdminStructureList } from '../models/adminStructureList.interface';
import { StructureAdminInfo } from '../models/demandAttachment.model'; import { StructureAdminInfo } from '../models/demandAttachment.model';
@Injectable({ @Injectable({
...@@ -21,12 +22,8 @@ export class AdminService { ...@@ -21,12 +22,8 @@ export class AdminService {
return this.http.get<StructureAdminInfo[]>(`${this.baseUrl}/pendingStructures`); return this.http.get<StructureAdminInfo[]>(`${this.baseUrl}/pendingStructures`);
} }
public getToClaimStructure(): Observable<StructureAdminInfo[]> { public getAllStructureAdmin(): Observable<AdminStructureList> {
return this.http.get<StructureAdminInfo[]>(`${this.baseUrl}/unclaimedStructures`); return this.http.get<AdminStructureList>(`${this.baseUrl}/adminStructuresList`);
}
public getAllStructureAdmin(): Observable<any> {
return this.http.get<StructureAdminInfo[]>(`${this.baseUrl}/adminStructuresList`);
} }
public getUsers(): Observable<User[]> { public getUsers(): Observable<User[]> {
...@@ -173,4 +170,8 @@ export class AdminService { ...@@ -173,4 +170,8 @@ export class AdminService {
public getDeletedStructures(): Observable<Structure[]> { public getDeletedStructures(): Observable<Structure[]> {
return this.http.get<Structure[]>(`${this.baseUrl}/getDeletedStructures`); 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