Skip to content

Commit

Permalink
add login page
Browse files Browse the repository at this point in the history
  • Loading branch information
xzyaoi committed Nov 28, 2018
1 parent a0cb11a commit ccffb66
Show file tree
Hide file tree
Showing 15 changed files with 131 additions and 15 deletions.
2 changes: 1 addition & 1 deletion dashboard/index.html
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>dashboard</title>
<title>CVPM Dashboard</title>
<link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons' rel="stylesheet">
</head>
<body>
Expand Down
Binary file removed dashboard/src/assets/logo.png
Binary file not shown.
Empty file.
52 changes: 52 additions & 0 deletions dashboard/src/pages/Login.vue
@@ -0,0 +1,52 @@
<template>
<div>
<v-dialog :value="true" persistent="">
<v-card hover="" style="background:white;">
<v-card-row class="deep-purple darken-1">
<v-card-title class="white--text">
<div class="text-xs-center"> {{$t("Login")}}</div>
</v-card-title>
</v-card-row>
<v-card-row>
<v-card-text class="pt-4">
<v-form v-model="model" action="login" :fields="fields" @success="onSuccess" submitButtonText="Login">
<div class="flex pb-2"><small>{{$t("* Indicates required field")}}</small></div>
</v-form>
</v-card-text>
</v-card-row>
</v-card>
</v-dialog>
</div>
</template>

<script>
export default {
data () {
return {
model: {
username: 'admin',
password: '123456'
},
fields: {
username: { label: 'Username' },
password: { label: 'Password', type: 'password' }
},
show: true
}
},
methods: {
onSuccess (data) {
this.$store.commit('setAuth', data)
this.$router.replace('/')
}
},
mounted () {
}
}
</script>

<style scoped>
body{
background: #666 !important;
}
</style>
35 changes: 21 additions & 14 deletions dashboard/src/pages/Main.vue
Expand Up @@ -3,6 +3,9 @@
<v-navigation-drawer v-model="drawer" :mini-variant.sync="mini" persistent="persistent" enable-resize-watcher="enable-resize-watcher" :dark="dark">
<div class="pa-3 text-xs-center" v-show="!mini">
<div class="display-2 py-4">CVPM</div>
<!--
<img src="https://i.loli.net/2018/10/20/5bcb455c17616.png" class="cvpm-logo"/>
-->
<p>Dashboard</p>
<div style="padding-left:5em;">
<v-switch :label="(!dark ? 'Light' : 'Dark') + ' Theme'" v-model="dark" :dark="dark" hide-details="hide-details"></v-switch>
Expand All @@ -16,33 +19,33 @@
<div class="display-2">A</div>
</div>
<v-divider></v-divider>
<!--

<v-list dense="dense">
<template v-for="item in menu">
<v-list-group v-if="item.items" v-bind:group="item.group">
<v-list-group v-if="item.items" v-bind:group="item.group" :key="item.header">
<v-list-tile :to="item.href" slot="item" :title="item.title">
<v-list-tile-action><v-icon>{{ item.icon }}</v-icon></v-list-tile-action>
<v-list-tile-content><v-list-tile-title>{{ $t(item.title) }}</v-list-tile-title></v-list-tile-content>
<v-list-tile-content><v-list-tile-title>{{ item.title }}</v-list-tile-title></v-list-tile-content>
<v-list-tile-action><v-icon>keyboard_arrow_down</v-icon></v-list-tile-action></v-list-tile>
<v-list-tile v-for="subItem in item.items" :key="subItem.href" :to="subItem.href" v-bind:router="!subItem.target" ripple="ripple" v-bind:disabled="subItem.disabled" v-bind:target="subItem.target">
<v-list-tile-action v-if="subItem.icon"><v-icon class="success--text">{{ subItem.icon }}</v-icon></v-list-tile-action>
<v-list-tile-content><v-list-tile-title>{{ $t(subItem.title) }}</v-list-tile-title></v-list-tile-content>
<v-list-tile-content><v-list-tile-title>{{ subItem.title }}</v-list-tile-title></v-list-tile-content>
</v-list-tile>
</v-list-group>
<v-subheader v-else-if="item.header">{{ item.header }}</v-subheader>
<v-divider v-else-if="item.divider"></v-divider>
<v-list-tile v-else="v-else" :to="item.href" router="router" ripple="ripple" v-bind:disabled="item.disabled" :title="item.title">
<v-subheader v-else-if="item.header" :key="item.header">{{ item.header }}</v-subheader>
<v-divider v-else-if="item.header" :key="item.header"></v-divider>
<v-list-tile v-else :to="item.href" router="router" ripple="ripple" v-bind:disabled="item.disabled" :title="item.title" :key="item.header">
<v-list-tile-action><v-icon>{{ item.icon }}</v-icon></v-list-tile-action>
<v-list-tile-content><v-list-tile-title>{{ $t(item.title) }}</v-list-tile-title></v-list-tile-content>
<v-list-tile-content><v-list-tile-title>{{ item.title }}</v-list-tile-title></v-list-tile-content>
<v-list-tile-action v-if="item.subAction"><v-icon class="success--text">{{ item.subAction }}</v-icon></v-list-tile-action>
</v-list-tile>
</template>
</v-list>
-->

</v-navigation-drawer>
<v-toolbar class="darken-1" fixed="fixed" dark="dark" :class="theme">
<v-toolbar-side-icon dark="dark" @click.native.stop="drawer = !drawer"></v-toolbar-side-icon>
<v-toolbar-title>pageTitle</v-toolbar-title>
<v-toolbar-title>CVPM Dashboard</v-toolbar-title>
<v-spacer></v-spacer>
<v-menu offset-y="offset-y">
<v-btn icon="icon" dark="dark" slot="activator">
Expand All @@ -67,6 +70,7 @@
</template>

<script>
import { getMenus } from '@/services/web'
export default {
data () {
return {
Expand All @@ -78,16 +82,16 @@ export default {
colors: ['blue', 'green', 'purple', 'red'],
message: {
body: 'Hello'
}
},
menu: []
}
},
methods: {
changeLocale (to) {
global.helper.ls.set('locale', to)
},
fetchMenu () {
// fetch menu from server
// this.$http.get('menu').then(({data}) => this.$store.commit('setMenu', data))
this.menu = getMenus()
}
},
created () {
Expand All @@ -96,5 +100,8 @@ export default {
}
</script>

<style>
<style scoped>
.cvpm-logo {
width: 20em;
}
</style>
Empty file added dashboard/src/pages/Package.vue
Empty file.
Empty file.
Empty file.
Empty file added dashboard/src/pages/Stat.vue
Empty file.
Empty file added dashboard/src/pages/System.vue
Empty file.
7 changes: 7 additions & 0 deletions dashboard/src/services/config.js
@@ -0,0 +1,7 @@
const discovery_config = {
'endpoint':'http://127.0.0.1:3000'
}

export {
discovery_config
}
14 changes: 14 additions & 0 deletions dashboard/src/services/discovery.js
@@ -0,0 +1,14 @@
import axios from 'axios'
import { discovery_config } from './config'

class Discovery {
constructor(endpoint) {
self.endpoint = endpoint
}
}

const discovery = Discovery(discovery_config.endpoint)

export {
discovery
}
21 changes: 21 additions & 0 deletions dashboard/src/services/mock.js
@@ -0,0 +1,21 @@
import axios from 'axios'
import { discovery_config } from './config'

class Discovery {
constructor(endpoint) {
self.endpoint = endpoint
}
getSystemStatus () {
return new Promise((resolve, reject) => {
resolve({
'status':'ok'
})
})
}
}

const discovery = Discovery(discovery_config.endpoint)

export {
discovery
}
Empty file.
15 changes: 15 additions & 0 deletions dashboard/src/services/web.js
@@ -0,0 +1,15 @@
function getMenus () {
return [
{ 'header': 'Admin' },
{ 'href': '/', 'title': 'Home', 'icon': 'home' },
{ 'href': '/local/package', 'title': 'Packages', 'icon': 'view_list' },
{ 'href': '/local/pretrained', 'title': 'Pre-trained', 'icon': 'view_list' },
{ 'header': 'System' },
{ 'href': '/settings', 'title': 'Settings', 'icon': 'settings' },
{ 'href': '/login', 'icon': 'lock', 'title': 'Logout' }
]
}

export {
getMenus
}

0 comments on commit ccffb66

Please sign in to comment.