Skip to content
Snippets Groups Projects
Commit 7cfa91ff authored by Marlène SIMONDANT's avatar Marlène SIMONDANT
Browse files

feat(admin) : add admin page with checkbox to display / hide covid information in structure details

parent 2cc43a8e
No related branches found
No related tags found
2 merge requests!2921.17,!252feat/US121-add-admin-covid-field
......@@ -26,3 +26,28 @@
.structure-updated-at {
text-align: right;
}
.error {
color: red;
font-weight: bold;
}
.singleCheckbox {
background: $white;
border-radius: 4px;
padding: 0 16px;
height: 44px;
padding-top: 22px;
outline: none;
border: 1px solid;
margin: 8px 0;
&.checked {
color: $white;
background: $green-1;
border: none;
}
input,
label {
cursor: pointer;
}
}
......@@ -6,6 +6,7 @@ import { ManageUsersComponent } from './components/manage-users/manage-users.com
import { SharedModule } from '../shared/shared.module';
import { NewsletterUsersComponent } from './components/newsletter-users/newsletter-users.component';
import { AdminStructuresListComponent } from './components/structures-list/admin-structures-list.component';
import { ManageLockdownInfoComponent } from './components/lockdown-info/manage-lockdown-info.component';
import { AdminRoutingModule } from './admin-routing.module';
import { AgGridModule } from 'ag-grid-angular';
import { DeleteUserComponent } from './components/manage-users/delete-user/delete-user.component';
......@@ -17,6 +18,7 @@ import { AdministredStructuresComponent } from './components/manage-users/admini
ClaimStructureComponent,
NewsletterUsersComponent,
AdminStructuresListComponent,
ManageLockdownInfoComponent,
ManageUsersComponent,
DeleteUserComponent,
AdministredStructuresComponent,
......
<div *ngIf="isLoading" class="loader">
<img class="loader-gif" src="/assets/gif/loader_circle.gif" alt />
</div>
<div *ngIf="!isLoading" fxLayout="column" fxLayoutAlign="center center">
<H2>Gestion de l'affichage des infos Covid</H2>
<div *ngIf="lockdownInfoDisplay">Les infos covid sont actuellement affichées dans les fiches structure.</div>
<div *ngIf="!lockdownInfoDisplay">Les infos covid ne sont actuellement pas affichées dans les fiches structure.</div>
<div *ngIf="!error" class="singleCheckbox" [ngClass]="{ checked: lockdownInfoDisplay }">
<input
type="checkbox"
name="lockdownInfo"
id="lockdownInfo"
[checked]="lockdownInfoDisplay"
(change)="toggleLockdownInfo()"
/>
<label for="lockdownInfo"> Afficher les infos covid</label>
</div>
<p *ngIf="error" class="error">Une erreur s'est produite a l'enregistrement, veuillez ré-essayer plus tard.</p>
</div>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ManageLockdownInfoComponent } from './manage-lockdown-info.component';
describe('ManageLockdownInfoComponent', () => {
let component: ManageLockdownInfoComponent;
let fixture: ComponentFixture<ManageLockdownInfoComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ManageLockdownInfoComponent],
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(ManageLockdownInfoComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { ParametersService } from '../../services/parameters.service';
@Component({
selector: 'app-admin-manage-lockdown-info',
templateUrl: './manage-lockdown-info.component.html',
styleUrls: ['../../admin-pannel.scss'],
})
export class ManageLockdownInfoComponent implements OnInit {
public isLoading: boolean = true;
public lockdownInfoDisplay: boolean;
public error: boolean = false;
constructor(private parametersService: ParametersService) {}
ngOnInit(): void {
this.parametersService.getParameters().subscribe((params) => {
this.lockdownInfoDisplay = params.lockdownInfoDisplay;
this.isLoading = false;
});
}
public toggleLockdownInfo() {
this.lockdownInfoDisplay = !this.lockdownInfoDisplay;
this.parametersService.SetLockdownInfoDisplay(this.lockdownInfoDisplay).subscribe(
() => {},
() => {
this.error = true;
}
);
}
}
......@@ -4,6 +4,7 @@
<button (click)="changeActiveFeature(features.pendingStructures)">Revendication structure</button>
<button (click)="changeActiveFeature(features.structuresList)">Liste structures</button>
<button (click)="changeActiveFeature(features.deleteUsers)">Gestion des utilisateurs</button>
<button (click)="changeActiveFeature(features.lockdownInfo)">Gestion des infos covid</button>
<button (click)="changeActiveFeature(features.newsletterUsers)">Newsletter</button>
<a target="_blank" class="custom-link" rel="noopener noreferrer" [href]="ghostLink">Ghost</a>
</div>
......@@ -16,6 +17,9 @@
<div *ngIf="selectedFeature === features.pendingStructures">
<app-admin-claim-structure></app-admin-claim-structure>
</div>
<div *ngIf="selectedFeature === features.lockdownInfo">
<app-admin-manage-lockdown-info></app-admin-manage-lockdown-info>
</div>
<div *ngIf="selectedFeature === features.newsletterUsers">
<app-admin-newsletter-users></app-admin-newsletter-users>
</div>
......
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root',
})
export class ParametersService {
private readonly baseUrl = 'api/';
constructor(private http: HttpClient) {}
public getParameters(): Observable<any> {
return this.http.get<any>(`${this.baseUrl}parameters`);
}
public SetLockdownInfoDisplay(lockdownInfoDisplay: boolean): Observable<any> {
return this.http.post(`${this.baseUrl}parameters/`, { lockdownInfoDisplay });
}
}
......@@ -3,4 +3,5 @@ export enum AdminPannelEnum {
pendingStructures,
newsletterUsers,
structuresList,
lockdownInfo,
}
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