Merge pull request #50 from AlineRinquin/blandine

deconnexion button + nav bar fixed
This commit is contained in:
AlineRinquin 2022-02-25 14:32:57 +01:00 committed by GitHub
commit 5907b69046
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 440 additions and 235 deletions

View file

@ -41,6 +41,7 @@ import { PageUpdateAccountComponent } from './pages/page-update-account/page-upd
import { DayPilot, DayPilotModule } from "@daypilot/daypilot-lite-angular"; import { DayPilot, DayPilotModule } from "@daypilot/daypilot-lite-angular";
import { registerLocaleData } from '@angular/common'; import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr'; import localeFr from '@angular/common/locales/fr';
import { DeconnexionComponent } from './components/deconnexion/deconnexion.component';
registerLocaleData(localeFr) registerLocaleData(localeFr)
@NgModule({ @NgModule({
@ -80,6 +81,7 @@ registerLocaleData(localeFr)
FooterComponent, FooterComponent,
PageDeleteAccountComponent, PageDeleteAccountComponent,
PageUpdateAccountComponent, PageUpdateAccountComponent,
DeconnexionComponent,
], ],
imports: [ imports: [

View file

@ -0,0 +1,7 @@
<button
type="button"
class="btn btn-outline-primary btn-circle btn-xl"
(click)="onClickDeco()"
>
Se déconnecter
</button>

View file

@ -0,0 +1,10 @@
.btn-circle.btn-xl {
width: 80px;
height: 80px;
padding: 10px 16px;
border-radius: 40px;
font-size: 10px;
text-align: center;
float: right;
margin-right: 20px;
}

View file

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { DeconnexionComponent } from './deconnexion.component';
describe('DeconnexionComponent', () => {
let component: DeconnexionComponent;
let fixture: ComponentFixture<DeconnexionComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ DeconnexionComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(DeconnexionComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,26 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { TokenService } from 'src/app/services/token.service';
@Component({
selector: 'app-deconnexion',
templateUrl: './deconnexion.component.html',
styleUrls: ['./deconnexion.component.scss']
})
export class DeconnexionComponent implements OnInit {
constructor(private tokenService: TokenService,
private router: Router,
private route: ActivatedRoute) { }
ngOnInit(): void {
}
onClickDeco(){
this.tokenService.eraseToken();
this.router.navigate(['accueil']);
}
}

View file

@ -1,8 +1,15 @@
<nav class="navbar sticky-top navbar-expand-lg navbar-light bg-light shadow py-0 "> <nav
class="navbar sticky-top navbar-expand-lg navbar-light bg-light shadow py-0"
>
<div class="container-fluid"> <div class="container-fluid">
<div class="collapse navbar-collapse" id="navbarNavAltMarkup"> <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav"> <div class="navbar-nav">
<img id="img" routerLink="accueil" routerLinkActive="active-custom" src="../../../assets/images/logo-organizee.png"/> <img
id="img"
routerLink="accueil"
routerLinkActive="active-custom"
src="../../../assets/images/logo-organizee.png"
/>
</div> </div>
</div> </div>
<a class="navbar-brand" href="#">Organizee</a> <a class="navbar-brand" href="#">Organizee</a>

View file

@ -1,6 +1,6 @@
.navbar-brand { .navbar-brand {
position: absolute; position: relative;
margin-left: 12%; margin-right: 70%;
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
font-weight: bold; font-weight: bold;
font-size: 3rem; font-size: 3rem;
@ -29,5 +29,8 @@ a:active {
} }
#img { #img {
margin-left: 50%; position: absolute;
max-width: 5%;
margin-left: 5%;
margin-top: 10px;
} }

View file

@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
@Component({ @Component({
selector: 'app-header', selector: 'app-header',
templateUrl: './header.component.html', templateUrl: './header.component.html',
@ -7,9 +8,12 @@ import { Component, OnInit } from '@angular/core';
}) })
export class HeaderComponent implements OnInit { export class HeaderComponent implements OnInit {
constructor() { } constructor(){
}
ngOnInit(): void { ngOnInit(): void {
} }
} }

View file

@ -1,31 +1,48 @@
<app-header></app-header> <app-header></app-header>
<app-deconnexion></app-deconnexion>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
<div class="col-9 offset-2" id="main"> <div class="col-9 offset-2" id="main">
<h1>Ma team</h1> <h1>Ma team</h1>
<div class="d-flex justify-content-center"> <div class="d-flex justify-content-center">
<button button type="button" class="btn btn-primary btn-lg" <button
button
type="button"
class="btn btn-primary btn-lg"
routerLink="../modifier-compte" routerLink="../modifier-compte"
routerLinkActive="active-custom">Modifier mon compte</button> routerLinkActive="active-custom"
>
Modifier mon compte
</button>
</div> </div>
<div class="d-flex justify-content-center"> <div class="d-flex justify-content-center">
<button button type="button" class="btn btn-primary btn-lg" <button
button
type="button"
class="btn btn-primary btn-lg"
routerLink="../supprimer-compte" routerLink="../supprimer-compte"
routerLinkActive="active-custom">Supprimer mon compte</button> routerLinkActive="active-custom"
>
Supprimer mon compte
</button>
</div> </div>
<div class="d-flex justify-content-center"> <div class="d-flex justify-content-center">
<button button type="button" class="btn btn-primary btn-lg" <button
button
type="button"
class="btn btn-primary btn-lg"
routerLink="../ajout-membre" routerLink="../ajout-membre"
routerLinkActive="active-custom">Ajouter un membre</button> routerLinkActive="active-custom"
>
Ajouter un membre
</button>
</div> </div>
<div class="row"> <div class="row">
<div class="col" *ngFor="let membreData of listMembres"> <div class="col" *ngFor="let membreData of listMembres">
<app-card-member [membre]="membreData"> <app-card-member [membre]="membreData"> </app-card-member>
</app-card-member>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,4 +1,5 @@
<app-header></app-header> <app-header></app-header>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
@ -6,12 +7,14 @@
<div class="form-addMember"> <div class="form-addMember">
<form (ngSubmit)="onSubmit()" [formGroup]="addMemberForm"> <form (ngSubmit)="onSubmit()" [formGroup]="addMemberForm">
<div class="form-floating"> <div class="form-floating">
<input type="color" <input
type="color"
class="form-control" class="form-control"
id="floatingInputcouleur" id="floatingInputcouleur"
placeholder="" placeholder=""
name="couleur" name="couleur"
formControlName="couleurFc"> formControlName="couleurFc"
/>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input <input
@ -68,7 +71,9 @@
!addMemberForm.controls['dateNaissanceFc'].valid !addMemberForm.controls['dateNaissanceFc'].valid
}" }"
/> />
<label for="floatingInputdateNaissance">VOTRE DATE DE NAISSANCE</label> <label for="floatingInputdateNaissance"
>VOTRE DATE DE NAISSANCE</label
>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input <input
@ -138,17 +143,20 @@
!addMemberForm.controls['passwordConfirmFc'].valid !addMemberForm.controls['passwordConfirmFc'].valid
}" }"
/> />
<label for="floatingPasswordConfirm">CONFIRMEZ VOTRE MOT DE PASSE</label> <label for="floatingPasswordConfirm"
>CONFIRMEZ VOTRE MOT DE PASSE</label
>
</div> </div>
<button <button
class="w-100 btn btn-lg btn-outline-success" class="w-100 btn btn-lg btn-outline-success"
type="submit" type="submit"
[disabled]="addMemberForm.invalid" [disabled]="addMemberForm.invalid"
>Ajouter le membre</button> >
Ajouter le membre
</button>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,37 +1,80 @@
<app-header></app-header> <app-header></app-header>
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
<div class="alert alert-{{alert.type}}" role="alert" style="position:absolute;z-index:999;top:50%;left:40%; width: 500px;" *ngIf="isShow" id="showAlert"> <div
{{alert.content}} class="alert alert-{{ alert.type }}"
<button type="button" class="close" data-dismiss="alert" aria-label="Close" (click)="onClickCloseAlert()"> role="alert"
style="position: absolute; z-index: 999; top: 50%; left: 40%; width: 500px"
*ngIf="isShow"
id="showAlert"
>
{{ alert.content }}
<button
type="button"
class="close"
data-dismiss="alert"
aria-label="Close"
(click)="onClickCloseAlert()"
>
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<div style="display: flex;"> <div style="display: flex">
<div style="width:150px;"> <div style="width: 150px">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
</div> </div>
<div style="width: 100%;"> <div style="width: 100%">
<div class="wrap"> <div class="wrap">
<div class="left"> <div class="left">
<daypilot-navigator [config]="navigatorConfig" [(date)]="date" #navigator></daypilot-navigator> <daypilot-navigator
[config]="navigatorConfig"
[(date)]="date"
#navigator
></daypilot-navigator>
</div> </div>
<div class="main"> <div class="main">
<div style="width:100%; margin:10px"> <div style="width: 100%; margin: 10px">
<a href="#" class="btn btn-sm btn-primary" style="margin-right:5px;" (click)="navigatePrevious($event)">Previous</a> <a
<a href="#" class="btn btn-sm btn-primary" style="margin-right:5px;" (click)="navigateToday($event)">Today</a> href="#"
<a href="#" class="btn btn-sm btn-primary" style="margin-right:5px;" (click)="navigateNext($event)">Next</a> class="btn btn-sm btn-primary"
team : {{teamId}} - user: {{userId}} - role: {{role}} style="margin-right: 5px"
<span style="float:right"><a href="#" class="btn btn-sm btn-primary" style="margin-right:5px;">Ajouter un évènement</a></span> (click)="navigatePrevious($event)"
>Previous</a
>
<a
href="#"
class="btn btn-sm btn-primary"
style="margin-right: 5px"
(click)="navigateToday($event)"
>Today</a
>
<a
href="#"
class="btn btn-sm btn-primary"
style="margin-right: 5px"
(click)="navigateNext($event)"
>Next</a
>
team : {{ teamId }} - user: {{ userId }} - role: {{ role }}
<span style="float: right"
><a
href="#"
class="btn btn-sm btn-primary"
style="margin-right: 5px"
>Ajouter un évènement</a
></span
>
</div> </div>
<daypilot-calendar [config]="config" [events]="events" #calendar (viewChange)="viewChange()"></daypilot-calendar> <daypilot-calendar
[config]="config"
[events]="events"
#calendar
(viewChange)="viewChange()"
></daypilot-calendar>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,81 +6,93 @@
<h1>Ajouter un contact</h1> <h1>Ajouter un contact</h1>
<main class="form-ajoutContact"> <main class="form-ajoutContact">
<form (ngSubmit)="onSubmit()" [formGroup]="ajoutContactForm"> <form (ngSubmit)="onSubmit()" [formGroup]="ajoutContactForm">
<div class="form-floating"> <div class="form-floating">
<input type="color" class="form-control" id="floatingInputcouleur" placeholder="" name="couleur" <input
formControlName="couleurFc"> type="color"
class="form-control"
id="floatingInputcouleur"
placeholder=""
name="couleur"
formControlName="couleurFc"
/>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input type="text" <input
type="text"
class="form-control" class="form-control"
id="floatingInputlastName" id="floatingInputlastName"
placeholder="" placeholder=""
name="lastName" name="lastName"
formControlName="lastNameFc"> formControlName="lastNameFc"
/>
<label for="floatingInputlastName">Nom</label> <label for="floatingInputlastName">Nom</label>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input type="text" <input
type="text"
class="form-control" class="form-control"
id="floatingInputfirstName" id="floatingInputfirstName"
placeholder="" placeholder=""
name="firstName" name="firstName"
formControlName="firstNameFc"> formControlName="firstNameFc"
/>
<label for="floatingInputfirstName">Prénom</label> <label for="floatingInputfirstName">Prénom</label>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input type="text" <input
type="text"
class="form-control" class="form-control"
id="floatingInputTelephone" id="floatingInputTelephone"
placeholder="" placeholder=""
name="telephone" name="telephone"
formControlName="telephoneFc"> formControlName="telephoneFc"
/>
<label for="floatingInputfirstName">Téléphone</label> <label for="floatingInputfirstName">Téléphone</label>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input type="email" <input
type="email"
class="form-control" class="form-control"
id="floatingInput" id="floatingInput"
placeholder="" placeholder=""
name="email" name="email"
formControlName="emailFc"> formControlName="emailFc"
/>
<label for="floatingInput">Adresse email</label> <label for="floatingInput">Adresse email</label>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input type="date" <input
type="date"
class="form-control" class="form-control"
id="floatingInputdateNaissance" id="floatingInputdateNaissance"
placeholder="" placeholder=""
name="dateNaissance" name="dateNaissance"
formControlName="dateNaissanceFc"> formControlName="dateNaissanceFc"
/>
<label for="floatingInputfirstName">Date de naissance</label> <label for="floatingInputfirstName">Date de naissance</label>
</div> </div>
<div class="form-floating"> <div class="form-floating">
<input type="text" <input
type="text"
class="form-control" class="form-control"
id="floatingInputAdresse" id="floatingInputAdresse"
placeholder="" placeholder=""
name="adresse" name="adresse"
formControlName="adresseFc"> formControlName="adresseFc"
/>
<label for="floatingInputfirstName">Adresse</label> <label for="floatingInputfirstName">Adresse</label>
</div> </div>
<button class="w-100 btn btn-lg btn-secondary" <button
class="w-100 btn btn-lg btn-secondary"
type="submit" type="submit"
[disabled]="ajoutContactForm.invalid">Valider</button> [disabled]="ajoutContactForm.invalid"
>
Valider
</button>
</form> </form>
</main> </main>
</div> </div>

View file

@ -1,27 +1,40 @@
<app-header></app-header> <app-header></app-header>
<div class="row">
<div class="row">
<div class="col-md-auto"> <div class="col-md-auto">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
</div> </div>
<div class=" col team-form text-center"> <div class="col team-form text-center">
<h1>Créer votre team</h1> <h1>Créer votre team</h1>
<main class="form-team"> <main class="form-team">
<form (ngSubmit)="onSubmit()" [formGroup]="teamForm"> <form (ngSubmit)="onSubmit()" [formGroup]="teamForm">
<div class="form-floating"> <div class="form-floating">
<input type="text" <input
type="text"
class="form-control" class="form-control"
id="floatingInputName" id="floatingInputName"
placeholder="" placeholder=""
name="name" name="name"
formControlName="nameFc" formControlName="nameFc"
[ngClass]="{'is-valid' : teamForm.controls['nameFc'].touched && teamForm.controls['nameFc'].valid, [ngClass]="{
'is-invalid': teamForm.controls['nameFc'].touched && !teamForm.controls['nameFc'].valid}"> 'is-valid':
teamForm.controls['nameFc'].touched &&
teamForm.controls['nameFc'].valid,
'is-invalid':
teamForm.controls['nameFc'].touched &&
!teamForm.controls['nameFc'].valid
}"
/>
<label for="floatingInputName">Nom</label> <label for="floatingInputName">Nom</label>
</div> </div>
<button class="w-100 btn btn-lg btn-success" <button
class="w-100 btn btn-lg btn-success"
type="submit" type="submit"
[disabled]="teamForm.invalid">Je crée ma team</button> [disabled]="teamForm.invalid"
>
Je crée ma team
</button>
</form> </form>
</main> </main>
</div> </div>
</div> </div>

View file

@ -1,14 +1,13 @@
<app-header></app-header> <app-header></app-header>
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
<app-deconnexion></app-deconnexion>
<div class="container"> <div class="container">
<div> <div>
<h3 class="titre">Bienvenue {{conectedUser.prenom}}!!</h3> <h3 class="titre">Bienvenue {{ conectedUser.prenom }}!!</h3>
</div> </div>
<div class="row d-flex align-items-center flex-row"> <div class="row d-flex align-items-center flex-row">
<div class="col-4"> <div class="col-4">
<div class="flex-row border"> <div class="flex-row border">
<app-meteo></app-meteo> <app-meteo></app-meteo>
@ -21,12 +20,9 @@
<div class="col-8 border"> <div class="col-8 border">
<app-calendrier>A venir</app-calendrier> <app-calendrier>A venir</app-calendrier>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<app-card-member>A modifier</app-card-member> <app-card-member>A modifier</app-card-member>
</div> </div>
</div> </div>

View file

@ -1,12 +1,11 @@
<app-header></app-header> <app-header></app-header>
<div class="row"> <div class="row">
<div class="col-md-auto"> <div class="col-md-auto">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
</div> </div>
<div class=" col compte text-center"> <div class="col compte text-center">
<h1>Supprimer ce membre</h1> <h1>Supprimer ce membre</h1>
<main class="contenu-compte"> <main class="contenu-compte"></main>
</main>
</div> </div>
</div> </div>

View file

@ -1,4 +1,5 @@
<app-header></app-header> <app-header></app-header>
<div class="row"> <div class="row">
<div class="col-md-auto"> <div class="col-md-auto">
<app-side-bar class="sidebarMenu"></app-side-bar> <app-side-bar class="sidebarMenu"></app-side-bar>

View file

@ -1,21 +1,32 @@
<app-header></app-header> <app-header></app-header>
<div class="row"> <div class="row">
<div class="col-md-auto"> <div class="col-md-auto">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
</div> </div>
<div class=" col compte text-center py-3 border"> <div class="col compte text-center py-3 border">
<div> <div>
<button class="btn btn-sm btn-rounded btn-secondary m-3" type="submit">Tous les contacts <button class="btn btn-sm btn-rounded btn-secondary m-3" type="submit">
Tous les contacts
</button> </button>
<button routerLink="/ajouter-contact" class="btn btn-sm btn-rounded btn-secondary m-3"> <button
routerLink="/ajouter-contact"
class="btn btn-sm btn-rounded btn-secondary m-3"
>
Ajouter un contact Ajouter un contact
</button> </button>
<div class="input-group mb-3 d-flex justify-content-center"> <div class="input-group mb-3 d-flex justify-content-center">
<input type="text" class="form-control" placeholder="Rechercher un contact" <input
aria-label="Rechercher un contact" aria-describedby="basic-addon2" #word type="text"
(keyup)="onSearchChange(word.value)"> class="form-control"
placeholder="Rechercher un contact"
aria-label="Rechercher un contact"
aria-describedby="basic-addon2"
#word
(keyup)="onSearchChange(word.value)"
/>
<div class="input-group-append"></div> <div class="input-group-append"></div>
</div> </div>
@ -24,15 +35,26 @@
</div> </div>
<div class="row justify-content-evenly"> <div class="row justify-content-evenly">
<div class="col-4"> <div class="col-4">
<div class="row my-3 d-flex justify-content-center flex-row" *ngFor="let personne of listContact" <div
(click)="onClick(personne)"> class="row my-3 d-flex justify-content-center flex-row"
<div class="couleur col-4" [style.background-color]="personne.couleur"></div> *ngFor="let personne of listContact"
<span class="fiche-contact col-7">{{ personne.prenom }} {{ personne.nom }}</span> (click)="onClick(personne)"
>
<div
class="couleur col-4"
[style.background-color]="personne.couleur"
></div>
<span class="fiche-contact col-7"
>{{ personne.prenom }} {{ personne.nom }}</span
>
</div> </div>
</div> </div>
<div class="col-4" *ngIf="openDetails"> <div class="col-4" *ngIf="openDetails">
<app-fiche-contact [personne]="openDetails" (clickDelete)="onClickDelete($event)"> <app-fiche-contact
[personne]="openDetails"
(clickDelete)="onClickDelete($event)"
>
</app-fiche-contact> </app-fiche-contact>
</div> </div>
</div> </div>

View file

@ -1,5 +1,6 @@
<app-header></app-header> <app-header></app-header>
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
<div class="d-flex align-items-stretch"> <div class="d-flex align-items-stretch">
<div class="row"> <div class="row">
<div class="col" *ngFor="let todos of result"> <div class="col" *ngFor="let todos of result">

View file

@ -1,12 +1,11 @@
<app-header></app-header> <app-header></app-header>
<div class="row"> <div class="row">
<div class="col-md-auto"> <div class="col-md-auto">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
</div> </div>
<div class=" col compte text-center"> <div class="col compte text-center">
<h1>Modifier votre compte</h1> <h1>Modifier votre compte</h1>
<main class="contenu-compte"> <main class="contenu-compte"></main>
</main>
</div> </div>
</div> </div>

View file

@ -1,12 +1,11 @@
<app-header></app-header> <app-header></app-header>
<div class="row"> <div class="row">
<div class="col-md-auto"> <div class="col-md-auto">
<app-side-bar></app-side-bar> <app-side-bar></app-side-bar>
</div> </div>
<div class=" col compte text-center"> <div class="col compte text-center">
<h1>Modifier ce membre</h1> <h1>Modifier ce membre</h1>
<main class="contenu-compte"> <main class="contenu-compte"></main>
</main>
</div> </div>
</div> </div>

View file

@ -20,6 +20,17 @@ tokenKey = environment.tokenKey;
} }
} }
public eraseToken(): string | null {
const token = localStorage.getItem(this.tokenKey);
if(token) {
this.tokenKey = '';
return token;
}else {
return null;
}
}
public getCurrentMembreId(): number | null { public getCurrentMembreId(): number | null {
const token = this.getToken(); const token = this.getToken();
if(token) { if(token) {