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 @@
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
+
+
+ -
+
+ {{restau.nom}}
+
+
+
+
+
+
\ 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}`);
}
-
-
-
}