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 | })
|
---|
24 | .then((res) => res.json())
|
---|
25 | .then((data) => (this.managerLocalId = data.id))
|
---|
26 | .catch((err) => console.log(err))
|
---|
27 | },
|
---|
28 | },
|
---|
29 | mounted() {
|
---|
30 | if (this.user && this.user.data.role === 'ROLE_LOCAL_MANAGER') {
|
---|
31 | this.fetchLocalForManager()
|
---|
32 | }
|
---|
33 | },
|
---|
34 | }
|
---|
35 | </script>
|
---|
36 |
|
---|
37 | <template>
|
---|
38 | <nav class="navbar navbar-expand-lg navbar-dark custom-background-nav py-2 px-5">
|
---|
39 | <div class="container-fluid">
|
---|
40 | <router-link
|
---|
41 | v-if="user.data.role !== 'ROLE_LOCAL_MANAGER'"
|
---|
42 | to="/"
|
---|
43 | class="navbar-brand d-flex align-items-center"
|
---|
44 | >
|
---|
45 | <img src="/src/assets/rng_logo.png" alt="Logo" height="50" class="me-2" />
|
---|
46 | <span class="fw-bold text-black">Reserve And Go</span>
|
---|
47 | </router-link>
|
---|
48 |
|
---|
49 | <div
|
---|
50 | v-if="user.data.role === 'ROLE_LOCAL_MANAGER'"
|
---|
51 | class="navbar-brand d-flex align-items-center"
|
---|
52 | >
|
---|
53 | <img src="/src/assets/rng_logo.png" alt="Logo" height="50" class="me-2" />
|
---|
54 | <span class="fw-bold text-black">Reserve And Go</span>
|
---|
55 | </div>
|
---|
56 |
|
---|
57 | <div class="collapse navbar-collapse justify-content-end" id="navbarContent">
|
---|
58 | <ul class="navbar-nav align-items-center">
|
---|
59 | <li class="nav-item" v-if="user.data.role === 'ROLE_CUSTOMER'">
|
---|
60 | <router-link :to="{name: 'favourite_locals', params:{ mode: 'favourites'} }" class="nav-link text-black"
|
---|
61 | >Favourite locals</router-link
|
---|
62 | >
|
---|
63 | </li>
|
---|
64 |
|
---|
65 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_CUSTOMER'">
|
---|
66 | <router-link to="/my_reservations" class="nav-link text-black"
|
---|
67 | >My reservations</router-link
|
---|
68 | >
|
---|
69 | </li>
|
---|
70 |
|
---|
71 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_ADMIN'">
|
---|
72 | <router-link to="/admin-dashboard" class="nav-link text-black">Dashboard</router-link>
|
---|
73 | </li>
|
---|
74 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_LOCAL_MANAGER'">
|
---|
75 | <router-link :to="`/more_details/${this.managerLocalId}`" class="nav-link text-black"
|
---|
76 | >My Restaurant</router-link
|
---|
77 | >
|
---|
78 | </li>
|
---|
79 |
|
---|
80 | <li class="nav-item pe-3" v-if="user.data.role === 'ROLE_LOCAL_MANAGER'">
|
---|
81 | <router-link to="/manager-dashboard" class="nav-link text-black">Dashboard</router-link>
|
---|
82 | </li>
|
---|
83 |
|
---|
84 | <li
|
---|
85 | class="nav-item"
|
---|
86 | v-if="user.data.role !== 'ROLE_ADMIN' && user.data.role !== 'UN_AUTHENTICATED'"
|
---|
87 | >
|
---|
88 | <router-link to="/profilePage" class="nav-link text-white">
|
---|
89 | <i class="fa-solid fa-user"></i>
|
---|
90 | {{ user.data.firstName }} {{ user.data.lastName }}
|
---|
91 | </router-link>
|
---|
92 | </li>
|
---|
93 |
|
---|
94 | <li class="nav-item" v-if="user.data.role === 'UN_AUTHENTICATED'">
|
---|
95 | <router-link to="/login" class="btn btn-dark me-2">Login</router-link>
|
---|
96 | </li>
|
---|
97 |
|
---|
98 | <li class="nav-item" v-if="user.data.role === 'UN_AUTHENTICATED'">
|
---|
99 | <router-link to="/register" class="btn btn-dark me-2">Register</router-link>
|
---|
100 | </li>
|
---|
101 |
|
---|
102 | <li class="nav-item">
|
---|
103 | <logout_ />
|
---|
104 | </li>
|
---|
105 | </ul>
|
---|
106 | </div>
|
---|
107 | </div>
|
---|
108 | </nav>
|
---|
109 | </template>
|
---|
110 |
|
---|
111 | <style scoped>
|
---|
112 | .navbar-brand span {
|
---|
113 | font-size: 1.25rem;
|
---|
114 | }
|
---|
115 |
|
---|
116 | .custom-background-nav {
|
---|
117 | background-color: #5ea5bc;
|
---|
118 | }
|
---|
119 |
|
---|
120 | .navbar-nav .nav-link:hover {
|
---|
121 | color: rgba(255, 255, 255, 0.6) !important;
|
---|
122 | }
|
---|
123 | </style>
|
---|