151 lines
3.5 KiB
TypeScript
151 lines
3.5 KiB
TypeScript
import { Component, Input, OnInit } from '@angular/core';
|
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
import { Menu } from 'src/app/models/menu';
|
|
import { MenusService } from 'src/app/services/menus.service';
|
|
import {NgbModal, ModalDismissReasons} from '@ng-bootstrap/ng-bootstrap';
|
|
import {
|
|
FormBuilder,
|
|
FormControl,
|
|
FormGroup,
|
|
Validators,
|
|
} from '@angular/forms';
|
|
|
|
|
|
|
|
@Component({
|
|
selector: 'app-card-menu',
|
|
templateUrl: './card-menu.component.html',
|
|
styleUrls: ['./card-menu.component.scss']
|
|
})
|
|
export class CardMenuComponent implements OnInit {
|
|
closeResult = '';
|
|
public listMenus:any[];
|
|
public menuId : any;
|
|
public menuForm : FormGroup;
|
|
public upMenuForm : FormGroup;
|
|
|
|
|
|
constructor(
|
|
private menusService: MenusService,
|
|
private router: Router,
|
|
private route: ActivatedRoute,
|
|
private modalService: NgbModal,
|
|
private fb: FormBuilder
|
|
) {
|
|
this.listMenus=[];
|
|
this.menuForm = new FormGroup({});
|
|
this.upMenuForm = this.initForm();
|
|
}
|
|
|
|
//delete d'un menu
|
|
deleteMenu(id_menu : number): void {
|
|
window.alert("Le menu a bien été supprimé!")
|
|
this.menusService.deleteMenu(id_menu)?.subscribe((resp) => {
|
|
this.router.navigate(['menu']);
|
|
});
|
|
|
|
}
|
|
|
|
//updateMenu
|
|
updateMenu(id_menu : number): void {
|
|
|
|
const dateValue = this.menuForm.value['dateMenuFc'];
|
|
const repasMidiValue = this.menuForm.value['repasMidiFc'];
|
|
const repasSoirValue = this.menuForm.value['repasSoirFc'];
|
|
|
|
|
|
const menu: Menu = {
|
|
dateMenu: dateValue,
|
|
repasMidi: repasMidiValue,
|
|
repasSoir: repasSoirValue,
|
|
id: 0
|
|
};
|
|
|
|
console.log(id_menu);
|
|
|
|
this.menusService.updateMenu(menu, id_menu)?.subscribe((resp) => {
|
|
console.log("ok");
|
|
this.router.navigate(['menu']);
|
|
});
|
|
}
|
|
|
|
//Méthode qui initialise les champs du formulaire avec les infos de la BDD
|
|
private initForm(menu?: Menu): FormGroup {
|
|
return this.fb.group({
|
|
dateMenu: [menu ? menu.dateMenu : ''],
|
|
libelle: [menu ? menu.repasMidi : ''],
|
|
repas: [menu ? menu.repasSoir : ''],
|
|
|
|
});
|
|
}
|
|
|
|
|
|
//ajout d'un menu
|
|
saveMenu(): void {
|
|
|
|
const dateValue = this.menuForm.value['dateMenuFc'];
|
|
const repasMidiValue = this.menuForm.value['repasMidiFc'];
|
|
const repasSoirValue = this.menuForm.value['repasSoirFc'];
|
|
|
|
|
|
const menu: Menu = {
|
|
dateMenu: dateValue,
|
|
repasMidi: repasMidiValue,
|
|
repasSoir: repasSoirValue,
|
|
id: 0
|
|
};
|
|
|
|
if (menu.dateMenu !=='') {
|
|
|
|
console.log(menu.dateMenu);
|
|
this.menusService.addMenu(menu)?.subscribe((resp) => {
|
|
this.router.navigate(['menu']);
|
|
});
|
|
} else {
|
|
this.router.navigate(['accueil']);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
//affichage des menus d'une team
|
|
this.menusService.getMenu()?.subscribe((listMenus: any[])=>{
|
|
console.log(listMenus);
|
|
this.listMenus=listMenus;
|
|
|
|
});
|
|
|
|
|
|
this.menuForm = this.fb.group(
|
|
{
|
|
dateMenuFc: new FormControl('',[Validators.required]),
|
|
libelleFc: new FormControl('',[Validators.required]),
|
|
repasFc: new FormControl('',[Validators.required]),
|
|
}
|
|
);
|
|
}
|
|
|
|
open(content: any) {
|
|
this.modalService.open(content,
|
|
{ariaLabelledBy: 'menu'}).result.then((result)=> {
|
|
this.closeResult = `Closed with: ${result}`;
|
|
}, (reason) => {
|
|
this.closeResult =
|
|
`Dismissed ${this.getDismissReason(reason)}`;
|
|
});
|
|
}
|
|
|
|
private getDismissReason(reason: any): string {
|
|
if (reason === ModalDismissReasons.ESC) {
|
|
return 'by pressing ESC';
|
|
} else if (reason === ModalDismissReasons.BACKDROP_CLICK) {
|
|
return 'by clicking on a backdrop';
|
|
} else {
|
|
return `with: ${reason}`;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|