1 | <script>
|
---|
2 | import { userStore } from '@/PiniaStores/UserStore.js'
|
---|
3 | import logout_ from '@/components/Project/Auth/logout_.vue'
|
---|
4 |
|
---|
5 | export default {
|
---|
6 | components: {
|
---|
7 | logout_,
|
---|
8 | },
|
---|
9 | data() {
|
---|
10 | return {
|
---|
11 | user: userStore(),
|
---|
12 | managerLocalId:"",
|
---|
13 | }
|
---|
14 | },
|
---|
15 | methods: {
|
---|
16 | fetchLocalForManager(){
|
---|
17 | fetch("http://localhost:8080/api/local-manager/my-local",{
|
---|
18 | method: 'GET',
|
---|
19 | headers: {
|
---|
20 | 'Content-Type': 'application/json',
|
---|
21 | Authorization: this.user.getToken
|
---|
22 | },
|
---|
23 | }).then((res) => res.json())
|
---|
24 | .then((data) => (this.managerLocalId = data.id))
|
---|
25 | .catch((err) => console.log(err));
|
---|
26 |
|
---|
27 | }
|
---|
28 | },
|
---|
29 | mounted() {
|
---|
30 | if(this.user && this.user.data.role==="ROLE_LOCAL_MANAGER"){
|
---|
31 | this.fetchLocalForManager();
|
---|
32 |
|
---|
33 | }
|
---|
34 | }
|
---|
35 | }
|
---|
36 | </script>
|
---|
37 |
|
---|
38 | <template>
|
---|
39 | <nav class="navbar navbar-expand-lg navbar-dark custom-background-nav py-2 px-5 ">
|
---|
40 | <div class="container-fluid">
|
---|
41 | <router-link v-if="user.data.role !== 'ROLE_LOCAL_MANAGER'" to="/" class="navbar-brand d-flex align-items-center">
|
---|
42 | <img src="/src/assets/rng_logo.png" alt="Logo" height="50" class="me-2" />
|
---|
43 | <span class="fw-bold text-black">Reserve And Go</span>
|
---|
44 | </router-link>
|
---|
45 |
|
---|
46 | <div v-if="user.data.role === 'ROLE_LOCAL_MANAGER'" class="navbar-brand d-flex align-items-center">
|
---|
47 | <img src="/src/assets/rng_logo.png" alt="Logo" height="50" class="me-2" />
|
---|
48 | <span class="fw-bold text-black">Reserve And Go</span>
|
---|
49 | </div>
|
---|
50 |
|
---|
51 | <div class="collapse navbar-collapse justify-content-end" id="navbarContent">
|
---|
52 | <ul class="navbar-nav align-items-center">
|
---|
53 |
|
---|
54 | <li class="nav-item" v-if="user.data.role === 'ROLE_CUSTOMER'">
|
---|
55 | <router-link to="/favourite_locals" class="nav-link text-black">Favourite locals</router-link>
|
---|
56 | </li>
|
---|
57 |
|
---|
58 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_CUSTOMER'">
|
---|
59 | <router-link to="/my_reservations" class="nav-link text-black">My reservations</router-link>
|
---|
60 | </li>
|
---|
61 |
|
---|
62 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_ADMIN'">
|
---|
63 | <router-link to="/admin-dashboard" class="nav-link text-black">Dashboard</router-link>
|
---|
64 | </li>
|
---|
65 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_LOCAL_MANAGER'">
|
---|
66 | <router-link :to="`/more_details/${this.managerLocalId}`" class="nav-link text-black">My Restaurant</router-link>
|
---|
67 | </li>
|
---|
68 |
|
---|
69 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_LOCAL_MANAGER'">
|
---|
70 | <router-link to="/manager-dashboard" class="nav-link text-black">Dashboard</router-link>
|
---|
71 | </li>
|
---|
72 |
|
---|
73 | <li class="nav-item" v-if="user.data.role !== 'ROLE_ADMIN' && user.data.role !== 'UN_AUTHENTICATED'">
|
---|
74 |
|
---|
75 | <router-link to="/profilePage" class="nav-link text-white">
|
---|
76 | <i class="fa-solid fa-user"></i>
|
---|
77 | {{ user.data.firstName }} {{ user.data.lastName }}
|
---|
78 | </router-link>
|
---|
79 | </li>
|
---|
80 |
|
---|
81 | <li class="nav-item" v-if="user.data.role === 'UN_AUTHENTICATED'">
|
---|
82 | <router-link to="/login" class="btn btn-dark me-2">Login</router-link>
|
---|
83 | </li>
|
---|
84 |
|
---|
85 | <li class="nav-item" v-if="user.data.role === 'UN_AUTHENTICATED'">
|
---|
86 | <router-link to="/register" class="btn btn-dark me-2">Register</router-link>
|
---|
87 | </li>
|
---|
88 |
|
---|
89 | <li class="nav-item">
|
---|
90 | <logout_ />
|
---|
91 | </li>
|
---|
92 |
|
---|
93 | </ul>
|
---|
94 | </div>
|
---|
95 | </div>
|
---|
96 | </nav>
|
---|
97 | </template>
|
---|
98 |
|
---|
99 | <style scoped>
|
---|
100 | .navbar-brand span {
|
---|
101 | font-size: 1.25rem;
|
---|
102 | }
|
---|
103 |
|
---|
104 | .custom-background-nav{
|
---|
105 | background-color: #5EA5BC;
|
---|
106 | }
|
---|
107 |
|
---|
108 |
|
---|
109 | .navbar-nav .nav-link:hover {
|
---|
110 | color: rgba(255, 255, 255, 0.6) !important;
|
---|
111 | }
|
---|
112 | </style>
|
---|