Skip to content

Commit 906d84e

Browse files
committed
modify frontend and use vuetify framework
1 parent 0e9dbc7 commit 906d84e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1792
-1041
lines changed

frontend/assets/img/favicon-32x32.png

1.55 KB
Loading
File renamed without changes.

frontend/components/App.vue

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<template>
2+
<div id="app">
3+
4+
<transition name="page" mode="out-in">
5+
<component v-if="layout" :is="layout"></component>
6+
</transition>
7+
</div>
8+
</template>
9+
10+
<script>
11+
12+
13+
// Load layout components dynamically.
14+
const requireContext = require.context('../layouts', false, /.*\.vue$/)
15+
16+
const layouts = requireContext.keys()
17+
.map(file =>
18+
[file.replace(/(^.\/)|(\.vue$)/g, ''), requireContext(file)]
19+
)
20+
.reduce((components, [name, component]) => {
21+
components[name] = component
22+
return components
23+
}, {})
24+
25+
export default {
26+
27+
components: {
28+
'v-loading': Loading
29+
},
30+
31+
metaInfo () {
32+
const { appName } = process.env.APP_NAME
33+
34+
return {
35+
title: appName,
36+
titleTemplate: `%s · ${appName}`
37+
}
38+
},
39+
40+
data: () => ({
41+
layout: null,
42+
defaultLayout: 'app'
43+
}),
44+
45+
mounted () {
46+
this.$loading = this.$refs.loading
47+
},
48+
49+
methods: {
50+
/**
51+
* Set the application layout.
52+
*
53+
* @param {String} layout
54+
*/
55+
setLayout (layout) {
56+
if (!layout || !layouts[layout]) {
57+
layout = this.defaultLayout
58+
}
59+
60+
this.layout = layouts[layout]
61+
}
62+
}
63+
}
64+
</script>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<template>
2+
<v-layout row justify-center>
3+
<v-dialog v-if="responseMessage.modal" :value.sync="responseMessage.show" persistent>
4+
<v-card>
5+
<v-card-title class="headline white--text" :class="responseMessage.type">{{ responseMessage.title }}
6+
</v-card-title>
7+
<v-divider></v-divider>
8+
<v-card-text>{{ responseMessage.text }}</v-card-text>
9+
<v-layout row justify-center>
10+
<v-btn :color="responseMessage.type" flat="flat" @click.native="close">{{ $t('ok') }}</v-btn>
11+
</v-layout>
12+
</v-card>
13+
</v-dialog>
14+
<v-snackbar v-else top v-model="responseMessage.show" :color="responseMessage.type">
15+
{{ responseMessage.text }}
16+
<v-btn dark flat @click.native="close">{{ $t('close') }}</v-btn>
17+
</v-snackbar>
18+
</v-layout>
19+
</template>
20+
21+
<script>
22+
import {mapGetters} from 'vuex'
23+
24+
export default {
25+
name: 'feedback-message',
26+
computed: mapGetters({
27+
responseMessage: 'message/responseMessage'
28+
}
29+
),
30+
methods: {
31+
close() {
32+
this.$store.dispatch('message/clearMessage')
33+
}
34+
}
35+
}
36+
</script>
37+
38+
<style lang="stylus" scoped>
39+
.snack__content
40+
max-width: 100vw
41+
min-width: 100vw
42+
</style>

frontend/components/LocaleDropdown.vue

Lines changed: 0 additions & 47 deletions
This file was deleted.

frontend/components/NavMenu.vue

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<template>
2+
<div>
3+
<v-toolbar flat>
4+
<v-list>
5+
<v-list-tile>
6+
<v-list-tile-title class="title">
7+
{{ name }}
8+
</v-list-tile-title>
9+
</v-list-tile>
10+
</v-list>
11+
</v-toolbar>
12+
<v-divider></v-divider>
13+
<v-list>
14+
<v-list-tile
15+
value="true"
16+
v-for="(item, i) in items"
17+
:key="i"
18+
:to="item.route"
19+
>
20+
<v-list-tile-action>
21+
<v-icon light v-html="item.icon"></v-icon>
22+
</v-list-tile-action>
23+
<v-list-tile-content>
24+
<v-list-tile-title v-text="item.title"></v-list-tile-title>
25+
</v-list-tile-content>
26+
</v-list-tile>
27+
</v-list>
28+
</div>
29+
</template>
30+
31+
<script>
32+
export default {
33+
data () {
34+
return {
35+
name: this.$t('nav_menu_title'),
36+
items: [
37+
{ title: 'Dashboard', icon: 'dashboard', route: { name: 'home' } },
38+
{ title: 'Account', icon: 'account_box', route: { name: 'settings.profile' } }
39+
]
40+
}
41+
}
42+
}
43+
</script>

frontend/components/Navbar.vue

Lines changed: 0 additions & 109 deletions
This file was deleted.

frontend/components/PageFooter.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<template>
2+
<v-footer :fixed="fixed" app>
3+
<span>&copy; 2017</span>
4+
</v-footer>
5+
</template>
6+
7+
<script>
8+
export default {
9+
data () {
10+
return {
11+
fixed: false
12+
}
13+
}
14+
}
15+
</script>

frontend/components/ProgressBar.vue

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<template>
2+
<v-progress-linear
3+
:indeterminate="true"
4+
:color="color"
5+
height="4"
6+
v-if="show"
7+
>
8+
</v-progress-linear>
9+
</template>
10+
11+
<script>
12+
export default {
13+
name: 'progress-bar',
14+
props: {
15+
show: {
16+
type: [Boolean, String],
17+
required: true
18+
},
19+
color: {
20+
type: String,
21+
default: 'accent'
22+
}
23+
}
24+
}
25+
</script>
26+
27+
<style lang="stylus" scoped>
28+
.progress-linear
29+
height: 4px
30+
left: 0
31+
margin: 0
32+
position: absolute
33+
right: 0
34+
top: 0
35+
width: 100%
36+
z-index: 999999
37+
</style>

frontend/components/README.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)