diff --git a/src/app/admin-component/add-restau/add-restau.component.html b/src/app/admin-component/add-restau/add-restau.component.html index 1c4213c..f9a446c 100644 --- a/src/app/admin-component/add-restau/add-restau.component.html +++ b/src/app/admin-component/add-restau/add-restau.component.html @@ -1,36 +1,33 @@
-

Enregistrer un restaurant

+

Enregistrer un restaurant

-
+
-
- @@ -39,44 +36,28 @@
-
-
- +
-
@@ -84,67 +65,37 @@

Sur Place :

- +
- +
- +
- +

A Emporter :

- +
- +
- +
@@ -152,43 +103,27 @@

Accès PMR :

- +
- +
- +
- +
- +
diff --git a/src/app/admin-component/add-restau/add-restau.component.ts b/src/app/admin-component/add-restau/add-restau.component.ts index bf2df6a..59c2225 100644 --- a/src/app/admin-component/add-restau/add-restau.component.ts +++ b/src/app/admin-component/add-restau/add-restau.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms'; import { Router } from '@angular/router'; +import { Observable } from 'rxjs'; import { Restaurant } from 'src/app/pages/models/restaurant'; import { ApiBackService } from 'src/app/services/api-back.service'; @@ -15,12 +16,18 @@ export class AddRestauComponent implements OnInit { public signupForm: FormGroup; public errorMessage ?: string; + public listCategories : any[]; + public expanded = false; constructor( private router: Router, private apiBackService : ApiBackService) { this.signupForm = new FormGroup({}); + this.listCategories = []; } ngOnInit(): void { + + this.getCategories(); + this.signupForm = new FormGroup({ nomFc : new FormControl('', [Validators.required]), prixFc : new FormControl(''), @@ -31,10 +38,21 @@ export class AddRestauComponent implements OnInit { websiteFc : new FormControl('',[Validators.pattern("/^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/")]), surPlaceFc : new FormControl(''), aEmporterFc : new FormControl(''), - accesPMRFc : new FormControl('') + accesPMRFc : new FormControl(''), + // typerestausFc : new FormControl('') }) } + public getCategories() : void{ + this.apiBackService.getCategories().subscribe((listCategories: any[]) => { + // console.log(listCategories); + + this.listCategories = listCategories; + + }); + + } + public onSubmit(): void { console.log("value : ", this.signupForm.value); console.log("form : ", this.signupForm); @@ -48,6 +66,7 @@ export class AddRestauComponent implements OnInit { const surPlaceFc = this.signupForm.value['surPlaceFc']; const aEmporterFc = this.signupForm.value['aEmporterFc']; const accesPMRFc = this.signupForm.value['accesPMRFc']; + // const typerestausFc = this.signupForm.value['typerestausFc']; const restaurant: Restaurant = { latitude: latitudeFc, @@ -59,8 +78,10 @@ export class AddRestauComponent implements OnInit { website : websiteFc, surPlace : surPlaceFc, aEmporter : aEmporterFc, - accesPMR : accesPMRFc + accesPMR : accesPMRFc, + // typerestaus : typerestausFc } + if( restaurant.latitude !== '' && restaurant.longitude !== '' && restaurant.nom !== '' && diff --git a/src/app/admin-component/update-del-restau/update-del-restau.component.html b/src/app/admin-component/update-del-restau/update-del-restau.component.html new file mode 100644 index 0000000..3a81ced --- /dev/null +++ b/src/app/admin-component/update-del-restau/update-del-restau.component.html @@ -0,0 +1,12 @@ +

Modifier/Supprimer un restaurant

+ + \ No newline at end of file diff --git a/src/app/admin-component/update-del-restau/update-del-restau.component.scss b/src/app/admin-component/update-del-restau/update-del-restau.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/admin-component/update-del-restau/update-del-restau.component.spec.ts b/src/app/admin-component/update-del-restau/update-del-restau.component.spec.ts new file mode 100644 index 0000000..541118f --- /dev/null +++ b/src/app/admin-component/update-del-restau/update-del-restau.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UpdateDelRestauComponent } from './update-del-restau.component'; + +describe('UpdateDelRestauComponent', () => { + let component: UpdateDelRestauComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ UpdateDelRestauComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(UpdateDelRestauComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/admin-component/update-del-restau/update-del-restau.component.ts b/src/app/admin-component/update-del-restau/update-del-restau.component.ts new file mode 100644 index 0000000..ea7d325 --- /dev/null +++ b/src/app/admin-component/update-del-restau/update-del-restau.component.ts @@ -0,0 +1,38 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { Restaurant } from 'src/app/pages/models/restaurant'; +import { ApiBackService } from 'src/app/services/api-back.service'; + +@Component({ + selector: 'app-update-del-restau', + templateUrl: './update-del-restau.component.html', + styleUrls: ['./update-del-restau.component.scss'] +}) +export class UpdateDelRestauComponent implements OnInit { + + restauList : Restaurant[]; + + constructor(private apiBackService : ApiBackService) { + this.restauList = []; + } + + ngOnInit(): void { + + } + + + saveRestauList(event : any){ + console.log(event); + this.restauList = event; + } + + deleteRestau(idRestau : number | undefined){ + this.apiBackService.deleteRestau(idRestau).subscribe( + resp =>{ + + + this.restauList = this.restauList.filter(restaus => restaus.id != idRestau) + + }); + } + +} \ No newline at end of file diff --git a/src/app/app.component.html b/src/app/app.component.html index 4b9776d..6833802 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,3 +1,5 @@ + diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 1136115..01910f8 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -20,6 +20,8 @@ import { IconComponent } from './filters/icon/icon.component'; import { TemplatePageComponent } from './components/template-page/template-page.component'; import { AdminPageComponent } from './pages/admin-page/admin-page.component'; import { AddRestauComponent } from './admin-component/add-restau/add-restau.component'; +import { UpdateDelRestauComponent } from './admin-component/update-del-restau/update-del-restau.component'; +import { HeaderLogoComponent } from './header/components/header-logo/header-logo.component'; import { AuthInterceptor } from './services/auth.interceptor'; @NgModule({ @@ -40,7 +42,9 @@ import { AuthInterceptor } from './services/auth.interceptor'; SigninComponent, TemplatePageComponent, AdminPageComponent, - AddRestauComponent + AddRestauComponent, + UpdateDelRestauComponent, + HeaderLogoComponent ], imports: [ BrowserModule, diff --git a/src/app/header/components/header-logo/header-logo.component.html b/src/app/header/components/header-logo/header-logo.component.html new file mode 100644 index 0000000..1e4cff4 --- /dev/null +++ b/src/app/header/components/header-logo/header-logo.component.html @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/src/app/header/components/header-logo/header-logo.component.scss b/src/app/header/components/header-logo/header-logo.component.scss new file mode 100644 index 0000000..1202554 --- /dev/null +++ b/src/app/header/components/header-logo/header-logo.component.scss @@ -0,0 +1,29 @@ +.container-fluid +{ + padding-top: 2%; + width : 100%; + margin: auto; + padding-bottom: 0,5%; + padding-left: 0; + padding-right: 0; + max-height: 20%; + +} + +.trait{ + + width: 100%; + height: 30px; + border-bottom: 2px solid #CE0000; + position: relative; + +} + +p{ + background-color: white; + position: absolute; + top: 15px; + left: 68px; + padding : 0 10px 0 10px; + color: grey; +} \ No newline at end of file diff --git a/src/app/header/components/header-logo/header-logo.component.spec.ts b/src/app/header/components/header-logo/header-logo.component.spec.ts new file mode 100644 index 0000000..1d6d25a --- /dev/null +++ b/src/app/header/components/header-logo/header-logo.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HeaderLogoComponent } from './header-logo.component'; + +describe('HeaderLogoComponent', () => { + let component: HeaderLogoComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ HeaderLogoComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(HeaderLogoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/header/components/header-logo/header-logo.component.ts b/src/app/header/components/header-logo/header-logo.component.ts new file mode 100644 index 0000000..efe742d --- /dev/null +++ b/src/app/header/components/header-logo/header-logo.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-header-logo', + templateUrl: './header-logo.component.html', + styleUrls: ['./header-logo.component.scss'] +}) +export class HeaderLogoComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/header/components/search-bar/search-bar.component.html b/src/app/header/components/search-bar/search-bar.component.html index 48cb329..d6b56ba 100644 --- a/src/app/header/components/search-bar/search-bar.component.html +++ b/src/app/header/components/search-bar/search-bar.component.html @@ -1,14 +1,5 @@ - +
+ + +
\ No newline at end of file diff --git a/src/app/header/components/search-bar/search-bar.component.scss b/src/app/header/components/search-bar/search-bar.component.scss index 673c03c..089d9a6 100644 --- a/src/app/header/components/search-bar/search-bar.component.scss +++ b/src/app/header/components/search-bar/search-bar.component.scss @@ -1,35 +1,3 @@ -.container-fluid -{ - padding-top: 2%; - width : 100%; - margin: auto; - padding-bottom: 0,5%; - padding-left: 0; - padding-right: 0; - max-height: 20%; - -} - -.trait{ - - width: 100%; - height: 30px; - border-bottom: 2px solid #CE0000; - position: relative; - -} - -p{ - background-color: white; - position: absolute; - top: 15px; - left: 68px; - padding : 0 10px 0 10px; - color: grey; -} - - - input[type="search"], textarea{ background-color: #edf5f1; } diff --git a/src/app/header/components/search-bar/search-bar.component.ts b/src/app/header/components/search-bar/search-bar.component.ts index 4d3de7d..3aecf5b 100644 --- a/src/app/header/components/search-bar/search-bar.component.ts +++ b/src/app/header/components/search-bar/search-bar.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, OnInit, Output } from '@angular/core'; -import { Router } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Restaurant } from 'src/app/pages/models/restaurant'; import { RestoPageComponent } from 'src/app/pages/resto-page/resto-page.component'; import { ApiBackService } from 'src/app/services/api-back.service'; @@ -10,11 +11,17 @@ import { ApiBackService } from 'src/app/services/api-back.service'; }) export class SearchBarComponent implements OnInit { - searchText = new EventEmitter(); listRestau: any[]; restauByName: any[]; + @Output() resultSearch = new EventEmitter(); - constructor(private apiBackService: ApiBackService, public route: Router) { + + + constructor(private apiBackService: ApiBackService, + private route: Router, + private activatedRoute : ActivatedRoute) { + + this.listRestau = []; this.restauByName = []; @@ -33,12 +40,19 @@ export class SearchBarComponent implements OnInit { this.restauByName = this.restauByName.filter((restau: any) => restau.nom.toLowerCase().includes(search.toLowerCase())); - console.log(this.restauByName); + + // Composant search-bar utilisé dans la page admin + if(this.activatedRoute.snapshot.routeConfig?.path === "admin"){ + + this.resultSearch.emit(this.restauByName); + + }else{ // la search bar utilisée dans la nav-bar pour trouver un restau this.apiBackService.setListRestau(this.restauByName, "filtres"); //this.route.routeReuseStrategy.shouldReuseRoute= () => false; - //this.route.onSameUrlNavigation = 'reload'; + // this.route.onSameUrlNavigation = 'reload'; this.route.navigate(['restaurants']); + } } diff --git a/src/app/pages/admin-page/admin-page.component.html b/src/app/pages/admin-page/admin-page.component.html index 1e715de..184fccc 100644 --- a/src/app/pages/admin-page/admin-page.component.html +++ b/src/app/pages/admin-page/admin-page.component.html @@ -1 +1,9 @@ - \ No newline at end of file +
+
+ +
+ +
+
\ No newline at end of file diff --git a/src/app/pages/admin-page/admin-page.component.scss b/src/app/pages/admin-page/admin-page.component.scss index e69de29..8e1cebc 100644 --- a/src/app/pages/admin-page/admin-page.component.scss +++ b/src/app/pages/admin-page/admin-page.component.scss @@ -0,0 +1,3 @@ +.search-bar{ + width : 30%; +} \ No newline at end of file diff --git a/src/app/pages/favoris-user/favoris-user.component.ts b/src/app/pages/favoris-user/favoris-user.component.ts index 862547a..a23b923 100644 --- a/src/app/pages/favoris-user/favoris-user.component.ts +++ b/src/app/pages/favoris-user/favoris-user.component.ts @@ -15,11 +15,22 @@ export class FavorisUserComponent implements OnInit { constructor(private apiBackService : ApiBackService,private tokenService : TokenService) { +<<<<<<< HEAD +======= + constructor(private apiBackService : ApiBackService,private tokenService : TokenService) { +>>>>>>> dev } ngOnInit(): void { - this.personneConnectee = this.apiBackService.getPersonneById(this.tokenService.getCurrentUserId()); + + this.apiBackService.getPersonneById(this.tokenService.getCurrentUserId()).subscribe( + resp =>{ + console.log(resp); + + this.personneConnectee = resp; + } + ); console.log(this.personneConnectee); diff --git a/src/app/pages/models/restaurant.ts b/src/app/pages/models/restaurant.ts index 272f5e9..d8faa52 100644 --- a/src/app/pages/models/restaurant.ts +++ b/src/app/pages/models/restaurant.ts @@ -10,4 +10,5 @@ export interface Restaurant { aEmporter?: boolean; accesPMR?: boolean; surPlace?: boolean; + typerestaus ?: any[]; } diff --git a/src/app/services/api-back.service.ts b/src/app/services/api-back.service.ts index 2ceca0b..bf10a0c 100644 --- a/src/app/services/api-back.service.ts +++ b/src/app/services/api-back.service.ts @@ -8,14 +8,14 @@ import { Restaurant } from '../pages/models/restaurant'; providedIn: 'root' }) export class ApiBackService { - - public restoByCat : Observable = of([]); - restoLiked$ = new Subject(); - public restoFilter : any[]; - public routeParam ?: string; - @Input() restaurant : any; - constructor(private httpClient: HttpClient) { + public restoByCat: Observable = of([]); + restoLiked$ = new Subject(); + public restoFilter: any[]; + public routeParam?: string; + @Input() restaurant: any; + + constructor(private httpClient: HttpClient) { this.restoFilter = []; this.routeParam = ""; } @@ -24,50 +24,53 @@ export class ApiBackService { return this.httpClient.get(`${environment.apiUrl}/restaurants`); } - getRestaurantsByCateg(id : number, routeParam ?: string ): void { + getRestaurantsByCateg(id: number, routeParam?: string): void { this.restoByCat = this.httpClient.get(`${environment.apiUrl}/restaurantbytype/${id}`); this.routeParam = routeParam; } - getCategories(): Observable{ + getCategories(): Observable { return this.httpClient.get(`${environment.apiUrl}/types`); } - setListRestau(listRestau : any[], routeParam ?: string ) : void{ + setListRestau(listRestau: any[], routeParam?: string): void { - this.restoFilter = listRestau; + this.restoFilter = listRestau; this.routeParam = routeParam; - - } - setDistance(lat1 : number , lon1 : number, lat2 : number, lon2 : number){ - - let R = 6371; // Radius of the earth in km - let dLat = this.deg2rad(lat2-lat1); // deg2rad below - let dLon = this.deg2rad(lon2-lon1); - let a = - Math.sin(dLat/2) * Math.sin(dLat/2) + - Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) * - Math.sin(dLon/2) * Math.sin(dLon/2) - ; - let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); - let d = R * c * 1000; // Distance in meters - return d; - } - - deg2rad(deg : number) { - return deg * (Math.PI/180) - } - - addRestaurant( newRestau : Restaurant) : Observable{ - return this.httpClient.post(`${environment.apiUrl}/add-restaurant`, newRestau); - } - getPersonneById(id : number | null){ + setDistance(lat1: number, lon1: number, lat2: number, lon2: number) { + + let R = 6371; // Radius of the earth in km + let dLat = this.deg2rad(lat2 - lat1); // deg2rad below + let dLon = this.deg2rad(lon2 - lon1); + let a = + Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) * + Math.sin(dLon / 2) * Math.sin(dLon / 2) + ; + let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + let d = R * c * 1000; // Distance in meters + return d; + } + + deg2rad(deg: number) { + return deg * (Math.PI / 180) + } + + addRestaurant(newRestau: Restaurant): Observable { + return this.httpClient.post(`${environment.apiUrl}/add-restaurant`, newRestau); + + } + + deleteRestau(idRestau: number | undefined): Observable { + + return this.httpClient.delete(`${environment.apiUrl}/delete-restaurant/${idRestau}`); + + } + + getPersonneById(id: any) { return this.httpClient.get(`${environment.apiUrl}/user/${id}`); } - - - }