Add scss and styles
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<main id="dashboard">
|
||||
<main id="dashboard" v-on:keyup.76="toggleLogs">
|
||||
<section id="dashboard-primary">
|
||||
<hdr></hdr>
|
||||
<village-state-list />
|
||||
@ -21,6 +21,7 @@ import QuickActions from './QuickActions';
|
||||
import VillageStateList from './VillageStateList';
|
||||
import LogList from './LogList';
|
||||
import { mapState } from 'vuex';
|
||||
import { Mutations } from './Store';
|
||||
export default {
|
||||
components: {
|
||||
'hdr': Header,
|
||||
@ -37,6 +38,11 @@ export default {
|
||||
computed: mapState({
|
||||
isLogsVisible: state => state.views.logs,
|
||||
}),
|
||||
methods: {
|
||||
toggleLogs() {
|
||||
this.$store.commit(Mutations.toggleLogs);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@ -3,14 +3,19 @@
|
||||
<h1 class="title">
|
||||
[{{ shared.name }}] {{ villageName }}
|
||||
<span class="version">- {{ shared.version }}</span>
|
||||
<a href="#" v-on:click.prevent="pause()">
|
||||
</h1>
|
||||
<p>
|
||||
<a href="#" v-on:click.prevent="pause">
|
||||
pause <span v-if="shared.pauseSeconds" v-text="shared.pauseSeconds"></span>
|
||||
</a>
|
||||
</h1>
|
||||
<a href="#" v-on:click.prevent="toggleLogs">logs</a>
|
||||
</p>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Mutations } from './Store';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -27,6 +32,9 @@ export default {
|
||||
pause() {
|
||||
this.shared.pause();
|
||||
},
|
||||
toggleLogs() {
|
||||
this.$store.commit(Mutations.toggleLogs);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<section class="log-list">
|
||||
<p><strong>Logs</strong>, <a href="#" v-on:click.prevent="close">close</a></p>
|
||||
<p class="summary"><strong>Logs</strong>, <a href="#" v-on:click.prevent="close">close</a></p>
|
||||
<table class="log-table">
|
||||
<tr v-for="record in logs" class="log-record">
|
||||
<tr v-for="record in logs" :class="rowClasses(record)">
|
||||
<td v-text="record.level"></td>
|
||||
<td v-text="formatDate(record.ts)"></td>
|
||||
<td v-text="record.message"></td>
|
||||
@ -23,6 +23,12 @@ export default {
|
||||
}),
|
||||
},
|
||||
methods: {
|
||||
rowClasses(record) {
|
||||
return {
|
||||
error: record.level === 'error' || undefined,
|
||||
warning: record.level === 'warn' || undefined,
|
||||
};
|
||||
},
|
||||
formatDate(ts) {
|
||||
const d = new Date(ts * 1000);
|
||||
return dateFormat(d, 'HH:MM:ss');
|
||||
@ -34,18 +40,23 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="scss">
|
||||
@import 'style';
|
||||
.summary {
|
||||
@include with-padding;
|
||||
}
|
||||
.log-list {
|
||||
background-color: white;
|
||||
}
|
||||
.log-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 6px auto 0;
|
||||
}
|
||||
.log-record > td {
|
||||
border-top: 1px solid #ddd;
|
||||
border-left: 1px solid #ddd;
|
||||
padding: 2px 4px;
|
||||
@extend %table;
|
||||
|
||||
.error {
|
||||
color: $error-color;
|
||||
}
|
||||
|
||||
.warning {
|
||||
color: $waring-color;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -49,11 +49,12 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="scss">
|
||||
@import 'style';
|
||||
.good {
|
||||
color: green;
|
||||
color: $success-color;
|
||||
}
|
||||
.bad {
|
||||
color: red;
|
||||
color: $error-color;
|
||||
}
|
||||
</style>
|
||||
|
@ -5,6 +5,7 @@ import { LogStorage } from '../Storage/LogStorage';
|
||||
export enum Mutations {
|
||||
showLogs = 'showLogs',
|
||||
hideLogs = 'hideLogs',
|
||||
toggleLogs = 'toggleLogs',
|
||||
updateLogs = 'updateLogs',
|
||||
}
|
||||
|
||||
@ -23,6 +24,9 @@ export function createStore() {
|
||||
[Mutations.hideLogs](state) {
|
||||
state.views.logs = false;
|
||||
},
|
||||
[Mutations.toggleLogs](state) {
|
||||
state.views.logs = !state.views.logs;
|
||||
},
|
||||
[Mutations.updateLogs](state, { logs }) {
|
||||
state.logs = logs;
|
||||
},
|
||||
|
@ -59,7 +59,8 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="scss">
|
||||
@import 'style';
|
||||
.task-list {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
@ -72,14 +73,7 @@ export default {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.task-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 6px auto 0;
|
||||
}
|
||||
.task-item > td {
|
||||
border-top: 1px solid #ddd;
|
||||
border-left: 1px solid #ddd;
|
||||
padding: 2px 4px;
|
||||
@extend %table;
|
||||
}
|
||||
.this-village {
|
||||
color: blue;
|
||||
|
@ -41,11 +41,12 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="scss">
|
||||
@import 'style';
|
||||
.warning {
|
||||
color: orange;
|
||||
color: $waring-color;
|
||||
}
|
||||
.bad {
|
||||
color: red;
|
||||
color: $error-color;
|
||||
}
|
||||
</style>
|
||||
|
22
src/DashboardView/style.scss
Normal file
22
src/DashboardView/style.scss
Normal file
@ -0,0 +1,22 @@
|
||||
$component-padding-x: 4px;
|
||||
$component-padding-y: 2px;
|
||||
|
||||
$success-color: #1fb840;
|
||||
$error-color: #dc3545;
|
||||
$waring-color: #d49e00;
|
||||
|
||||
@mixin with-padding {
|
||||
padding: $component-padding-y $component-padding-x;
|
||||
}
|
||||
|
||||
%table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 6px auto 0;
|
||||
|
||||
td {
|
||||
border-top: 1px solid #ddd;
|
||||
border-left: 1px solid #ddd;
|
||||
@include with-padding
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user