Add search for mobile view
This commit is contained in:
@@ -3,12 +3,13 @@
|
|||||||
import { useRouter, RouterLink } from 'vue-router'
|
import { useRouter, RouterLink } from 'vue-router'
|
||||||
import NavBarSearch from './NavBarSearch.vue'
|
import NavBarSearch from './NavBarSearch.vue'
|
||||||
import { useAuthStore } from './auth.store.js'
|
import { useAuthStore } from './auth.store.js'
|
||||||
|
import Modal from './Modal.vue'
|
||||||
|
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
const popupDisplay = ref(false)
|
|
||||||
const isMenuActive = ref(false)
|
const isMenuActive = ref(false)
|
||||||
|
const isSearchBarShown = ref(false)
|
||||||
|
|
||||||
function logout() {
|
function logout() {
|
||||||
authStore.logout();
|
authStore.logout();
|
||||||
@@ -23,6 +24,14 @@
|
|||||||
<RouterLink to="/" class="navbar-item" activeClass="is-active">
|
<RouterLink to="/" class="navbar-item" activeClass="is-active">
|
||||||
PLM
|
PLM
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
|
<div class="navbar-item is-hidden-desktop">
|
||||||
|
<a @click="isSearchBarShown = !isSearchBarShown"
|
||||||
|
class="button is-medium" :class="isSearchBarShown ? 'is-active' : '' ">
|
||||||
|
<span class="icon" title="Search">
|
||||||
|
<b-icon-search />
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<a role="button" class="navbar-burger" aria-label="menu"
|
<a role="button" class="navbar-burger" aria-label="menu"
|
||||||
:class="isMenuActive ? 'is-active' : '' " :aria-expanded="isMenuActive"
|
:class="isMenuActive ? 'is-active' : '' " :aria-expanded="isMenuActive"
|
||||||
@click="isMenuActive = !isMenuActive">
|
@click="isMenuActive = !isMenuActive">
|
||||||
@@ -32,9 +41,12 @@
|
|||||||
<span aria-hidden="true"></span>
|
<span aria-hidden="true"></span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="isSearchBarShown" class="is-hidden-desktop">
|
||||||
|
<NavBarSearch @search-done="isSearchBarShown = false" size-class="is-medium" is-mobile/>
|
||||||
|
</div>
|
||||||
<div id="navmenu" class="navbar-menu" :class="isMenuActive ? 'is-active' : '' ">
|
<div id="navmenu" class="navbar-menu" :class="isMenuActive ? 'is-active' : '' ">
|
||||||
<div class="navbar-start">
|
<div class="navbar-start">
|
||||||
<NavBarSearch @open-scan-popup="popupDisplay = true" class="is-hidden-mobile"/>
|
<NavBarSearch size-class="" class="is-hidden-touch"/>
|
||||||
<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>
|
||||||
@@ -42,7 +54,7 @@
|
|||||||
{{ $t('navbar.addbook')}}
|
{{ $t('navbar.addbook')}}
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-end is-hidden-mobile">
|
<div class="navbar-end is-hidden-touch">
|
||||||
<div v-if="authStore.user" class="navbar-item">
|
<div v-if="authStore.user" class="navbar-item">
|
||||||
<div >
|
<div >
|
||||||
{{ authStore.user.username }}
|
{{ authStore.user.username }}
|
||||||
|
|||||||
@@ -46,10 +46,10 @@ function onBarcodeDecode(isbn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.modal {
|
.modal {
|
||||||
height: 70%;
|
height: 80%;
|
||||||
width: 70%;
|
width: 80%;
|
||||||
top: 10%;
|
top: 10%;
|
||||||
left: 15%;
|
left: 10%;
|
||||||
box-shadow: 2px 2px 20px 1px;
|
box-shadow: 2px 2px 20px 1px;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -6,10 +6,22 @@
|
|||||||
const searchterm = ref("");
|
const searchterm = ref("");
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
sizeClass: String,
|
||||||
|
isMobile: Boolean
|
||||||
|
});
|
||||||
|
|
||||||
|
const emit = defineEmits('searchDone')
|
||||||
|
|
||||||
|
const vMobileFocus = {
|
||||||
|
mounted: (el, binding) => el.focus();
|
||||||
|
}
|
||||||
|
|
||||||
function onSearchClick() {
|
function onSearchClick() {
|
||||||
if (typeof searchterm.value === "undefined" || searchterm.value === "") {
|
if (typeof searchterm.value === "undefined" || searchterm.value === "") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
emit('searchDone')
|
||||||
router.push('/search/' + searchterm.value);
|
router.push('/search/' + searchterm.value);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -18,16 +30,16 @@
|
|||||||
<div class="navbar-item">
|
<div class="navbar-item">
|
||||||
<div class="field has-addons">
|
<div class="field has-addons">
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<input v-model="searchterm" @keyup.enter="onSearchClick()" class="input" type="text" />
|
<input v-mobile-focus="isMobile ? true : null" v-model="searchterm" @keyup.enter="onSearchClick()" class="input" :class="sizeClass" type="text" />
|
||||||
</div>
|
</div>
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<button @click="onSearchClick()" class="button">
|
<button @click="onSearchClick()" class="button" :class="sizeClass">
|
||||||
<span class="icon" title="Search">
|
<span class="icon" title="Search">
|
||||||
<b-icon-search />
|
<b-icon-search />
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<Modal/>
|
<Modal v-if="!isMobile"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<h1 class="title">{{$t('barcode.title')}}</h1>
|
<h1 class="subtitle">{{$t('barcode.title')}}</h1>
|
||||||
<div v-if="scanResult">{{scanResult}}</div>
|
<div v-if="scanResult">{{scanResult}}</div>
|
||||||
<video poster="data:image/gif,AAAA" ref="scanner"></video>
|
<video poster="data:image/gif,AAAA" ref="scanner"></video>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
Reference in New Issue
Block a user