add: frontend login proto

v0.5
rrr-marble 3 years ago
parent bf7c4ad023
commit 834be04ebb

@ -0,0 +1,45 @@
<template>
<va-modal v-model="showModal" @ok="handleSubmit" @close="$emit('closeModal')">
<va-form autofocus tag="form" @submit.prevent="handleSubmit" class="login-form">
<va-input label="Username" v-model="username" class="form-item" />
<va-input type="password" label="Password" v-model="password" class="form-item" />
</va-form>
</va-modal>
</template>
<script>
export default {
name: 'login-form',
props: {
showModal: {
type: Boolean,
required: true,
}
},
data() {
return {
username: 'demo',
password: 'demo',
}
},
methods: {
handleSubmit() {
this.$router.push('/admin')
}
},
}
</script>
<style lang="css" scoped>
.login-form {
display: flex;
flex-direction: column;
width: 30rem;
}
.form-item {
margin: 1rem auto;
}
</style>

@ -0,0 +1,45 @@
<template>
<navbar />
<va-modal v-model="showModal" :overlay="false" no-dismiss without-transitions hide-default-actions>
<va-form autofocus tag="form" @submit.prevent="handleSubmit" class="login-form">
<va-input label="Username" v-model="username" class="form-item" />
<va-input type="password" label="Password" v-model="password" class="form-item" />
<va-button type="submit" class="form-item">Login</va-button>
</va-form>
</va-modal>
</template>
<script>
import Navbar from '@/components/Navbar.vue';
export default {
name: 'login-screen',
components: { Navbar },
data() {
return {
showModal: true,
username: 'demo',
password: 'demo',
}
},
methods: {
handleSubmit() {
this.$router.push('/admin')
}
},
}
</script>
<style lang="css" scoped>
.login-form {
margin: auto;
display: flex;
flex-direction: column;
width: 30rem;
}
.form-item {
margin: 1rem auto;
}
</style>

@ -9,7 +9,7 @@
</template> </template>
<template #right> <template #right>
<va-navbar-item class="top-icon"> <va-navbar-item class="top-icon">
<va-icon size="3rem" color="gray" name="account_box" @click="$router.push('/admin')" /> <va-icon size="3rem" color="gray" name="account_box" @click="$emit('accountClick')" />
</va-navbar-item> </va-navbar-item>
</template> </template>
</va-navbar> </va-navbar>

@ -6,6 +6,7 @@ import ActiveSchemaScreen from "@/components/ActiveSchemaScreen";
import PgwebEmbed from "@/components/PgwebEmbed"; import PgwebEmbed from "@/components/PgwebEmbed";
import UploadScreen from "@/components/UploadScreen"; import UploadScreen from "@/components/UploadScreen";
import NotFound from "@/components/NotFound"; import NotFound from "@/components/NotFound";
import LoginScreen from "@/components/LoginScreen";
@ -28,6 +29,11 @@ const routes = [
component: ItemView, component: ItemView,
name: 'item-details', name: 'item-details',
}, },
{
path: '/login',
component: LoginScreen,
name: 'login-screen'
},
{ {
path: '/:pathMatch(.*)*', path: '/:pathMatch(.*)*',
component: NotFound, component: NotFound,

@ -1,5 +1,5 @@
<template> <template>
<navbar /> <navbar @accountClick="$router.push('/login')" />
<div class="central-view"> <div class="central-view">
<sidebar> <sidebar>

@ -1,5 +1,5 @@
<template> <template>
<navbar> <navbar @accountClick="showModal=!showModal">
<va-input v-model="searchQuery"></va-input> <va-input v-model="searchQuery"></va-input>
</navbar> </navbar>
<div class="central-view"> <div class="central-view">
@ -10,6 +10,7 @@
<overview-screen :items="filteredAndSearchedItems" :columns="filteredColumns" @mapClick="applyFilters" /> <overview-screen :items="filteredAndSearchedItems" :columns="filteredColumns" @mapClick="applyFilters" />
</div> </div>
</div> </div>
<login-modal :showModal="showModal" @closeModal="showModal=false" />
</template> </template>
@ -18,9 +19,10 @@ import Navbar from "@/components/Navbar.vue";
import Sidebar from "@/components/Sidebar.vue"; import Sidebar from "@/components/Sidebar.vue";
import OverviewScreen from "@/components/OverviewScreen.vue"; import OverviewScreen from "@/components/OverviewScreen.vue";
import FilterPanel from "@/components/FilterPanel.vue"; import FilterPanel from "@/components/FilterPanel.vue";
import LoginModal from "@/components/LoginModal.vue";
export default { export default {
name: "front-view", name: "front-view",
components: { Navbar, Sidebar, OverviewScreen, FilterPanel }, components: { Navbar, Sidebar, OverviewScreen, FilterPanel, LoginModal },
data() { data() {
return { return {
items: [], items: [],
@ -48,6 +50,7 @@ export default {
"org", "org",
"category", "category",
], ],
showModal: false,
} }
}, },
methods: { methods: {

@ -1,5 +1,5 @@
<template> <template>
<navbar /> <navbar @accountClick="showModal=!showModal" />
<div class="central-view"> <div class="central-view">
<sidebar> <sidebar>
<item-sidebar-menu :sidebarItems="sidebarItems" /> <item-sidebar-menu :sidebarItems="sidebarItems" />
@ -8,6 +8,7 @@
<item-details /> <item-details />
</div> </div>
</div> </div>
<login-modal :showModal="showModal" @closeModal="showModal=false" />
</template> </template>
@ -16,8 +17,9 @@ import Navbar from "@/components/Navbar.vue";
import ItemDetails from "@/components/ItemDetails.vue"; import ItemDetails from "@/components/ItemDetails.vue";
import Sidebar from "@/components/Sidebar.vue"; import Sidebar from "@/components/Sidebar.vue";
import ItemSidebarMenu from "@/components/ItemSidebarMenu.vue"; import ItemSidebarMenu from "@/components/ItemSidebarMenu.vue";
import LoginModal from "@/components/LoginModal.vue";
export default { export default {
components: { Navbar, ItemDetails, Sidebar, ItemSidebarMenu }, components: { Navbar, ItemDetails, Sidebar, ItemSidebarMenu, LoginModal },
data() { data() {
return { return {
sidebarItems: [ sidebarItems: [
@ -53,7 +55,7 @@ export default {
}, },
], ],
showModal: false,
} }
}, },

Loading…
Cancel
Save