66 lines
1.6 KiB
Vue
66 lines
1.6 KiB
Vue
|
<template>
|
||
|
<div id="app">
|
||
|
<Modals />
|
||
|
<router-view />
|
||
|
<Controls />
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<style>
|
||
|
@import './assets/spectre.min.css';
|
||
|
@import './assets/custom.css';
|
||
|
</style>
|
||
|
|
||
|
<script>
|
||
|
import axios from 'axios'
|
||
|
import Controls from "@/components/Controls.vue"
|
||
|
import Modals from "@/components/Modals.vue"
|
||
|
|
||
|
document.title = 'SPYGUARD'
|
||
|
|
||
|
export default {
|
||
|
name: 'app',
|
||
|
components: {
|
||
|
Controls,
|
||
|
Modals
|
||
|
}, data() {
|
||
|
return {
|
||
|
splash: false
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
set_lang: function() {
|
||
|
if (window.config.user_lang) {
|
||
|
var lang = window.config.user_lang
|
||
|
if (Object.keys(this.$i18n.messages).includes(lang)) {
|
||
|
this.$i18n.locale = lang
|
||
|
document.querySelector('html').setAttribute('lang', lang)
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
get_config: function() {
|
||
|
axios.get('/api/misc/config', { timeout: 60000 })
|
||
|
.then(response => {
|
||
|
window.config = response.data
|
||
|
this.set_lang();
|
||
|
})
|
||
|
.catch(error => { console.log(error) });
|
||
|
}
|
||
|
},
|
||
|
watch: {
|
||
|
$route (){
|
||
|
if ( ["loader"].includes(this.$router.currentRoute.name)){
|
||
|
this.splash = true;
|
||
|
} else {
|
||
|
this.splash = false;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
created: function() {
|
||
|
window.config = {}
|
||
|
this.get_config();
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|