WIP: added empty search bar and search component
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { RouterLink } from 'vue-router'
|
import { RouterLink } from 'vue-router'
|
||||||
|
import NavBarSearch from './NavBarSearch.vue'
|
||||||
import { useAuthStore } from './auth.store.js'
|
import { useAuthStore } from './auth.store.js'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
@@ -15,15 +16,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<nav class="navbar">
|
<nav class="navbar">
|
||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<div class="navbar-item">
|
<RouterLink to="/" class="navbar-item" activeClass="is-active">
|
||||||
PLM
|
PLM
|
||||||
</div>
|
</RouterLink>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-menu">
|
<div class="navbar-menu">
|
||||||
<div class="navbar-start">
|
<div class="navbar-start">
|
||||||
<RouterLink to="/" class="navbar-item" activeClass="is-active">
|
<NavBarSearch/>
|
||||||
{{ $t('navbar.home')}}
|
|
||||||
</RouterLink>
|
|
||||||
<RouterLink v-if="authStore.user" to="/books" class="navbar-item" activeClass="is-active">
|
<RouterLink v-if="authStore.user" to="/books" class="navbar-item" activeClass="is-active">
|
||||||
{{ $t('navbar.mybooks')}}
|
{{ $t('navbar.mybooks')}}
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
|
|||||||
28
front/src/NavBarSearch.vue
Normal file
28
front/src/NavBarSearch.vue
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<script setup>
|
||||||
|
import { ref } from 'vue'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
|
const searchterm = ref("");
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
function onSearchClick() {
|
||||||
|
router.push('/search/' + searchterm.value);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="navbar-item">
|
||||||
|
<div class="field has-addons">
|
||||||
|
<div class="control">
|
||||||
|
<input v-model="searchterm" class="input" type="text" />
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<button @click="onSearchClick()" class="button">
|
||||||
|
<span class="icon icon-search" title="Search"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
12
front/src/SearchBook.vue
Normal file
12
front/src/SearchBook.vue
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<script setup>
|
||||||
|
const props = defineProps({
|
||||||
|
searchterm: String
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div> You are searching for {{ searchterm }} </div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
|
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
"welcome": "Welcome to PersonalLibraryManager. Please login ou sign in to continue."
|
"welcome": "Welcome to PersonalLibraryManager. Please login ou sign in to continue."
|
||||||
},
|
},
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"home": "Home",
|
|
||||||
"mybooks": "My Books",
|
"mybooks": "My Books",
|
||||||
"addbook": "Add Book",
|
"addbook": "Add Book",
|
||||||
"logout": "Log out",
|
"logout": "Log out",
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
"welcome": "Bienvenue sur PersonalLibraryManager. Merci de se connecter ou de s'inscrire pour continuer."
|
"welcome": "Bienvenue sur PersonalLibraryManager. Merci de se connecter ou de s'inscrire pour continuer."
|
||||||
},
|
},
|
||||||
"navbar": {
|
"navbar": {
|
||||||
"home": "Accueil",
|
|
||||||
"mybooks": "Mes Livres",
|
"mybooks": "Mes Livres",
|
||||||
"addbook": "Ajouter Un Livre",
|
"addbook": "Ajouter Un Livre",
|
||||||
"logout": "Se déconnecter",
|
"logout": "Se déconnecter",
|
||||||
|
|||||||
@@ -5,11 +5,13 @@ import AddBook from './AddBook.vue'
|
|||||||
import SignUp from './SignUp.vue'
|
import SignUp from './SignUp.vue'
|
||||||
import LogIn from './LogIn.vue'
|
import LogIn from './LogIn.vue'
|
||||||
import Home from './Home.vue'
|
import Home from './Home.vue'
|
||||||
|
import SearchBook from './SearchBook.vue'
|
||||||
import { useAuthStore } from './auth.store'
|
import { useAuthStore } from './auth.store'
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{ path: '/', component: Home },
|
{ path: '/', component: Home },
|
||||||
{ path: '/books', component: BooksBrowser },
|
{ path: '/books', component: BooksBrowser },
|
||||||
|
{ path: '/search/:searchterm', component: SearchBook, props: true },
|
||||||
{ path: '/add', component: AddBook },
|
{ path: '/add', component: AddBook },
|
||||||
{ path: '/signup', component: SignUp },
|
{ path: '/signup', component: SignUp },
|
||||||
{ path: '/login', component: LogIn },
|
{ path: '/login', component: LogIn },
|
||||||
|
|||||||
Reference in New Issue
Block a user