fix: setup editors add + page view responsive
This commit is contained in:
parent
2f26d731fc
commit
a78c6505f0
@ -32,13 +32,13 @@
|
|||||||
v-list-tile(avatar, @click='')
|
v-list-tile(avatar, @click='')
|
||||||
v-list-tile-avatar: v-icon(color='blue-grey') burst_mode
|
v-list-tile-avatar: v-icon(color='blue-grey') burst_mode
|
||||||
v-list-tile-content Images & Files
|
v-list-tile-content Images & Files
|
||||||
v-toolbar-title
|
v-toolbar-title.ml-2
|
||||||
span.subheading {{title}}
|
span.subheading {{title}}
|
||||||
v-spacer
|
v-spacer
|
||||||
transition(name='navHeaderSearch')
|
transition(name='navHeaderSearch')
|
||||||
v-text-field(
|
v-text-field(
|
||||||
ref='searchField',
|
ref='searchField',
|
||||||
v-if='searchIsShown',
|
v-if='searchIsShown && $vuetify.breakpoint.mdAndUp',
|
||||||
v-model='search',
|
v-model='search',
|
||||||
clearable,
|
clearable,
|
||||||
color='white',
|
color='white',
|
||||||
@ -61,6 +61,8 @@
|
|||||||
.navHeaderLoading.mr-3
|
.navHeaderLoading.mr-3
|
||||||
v-progress-circular(indeterminate, color='blue', :size='22', :width='2' v-show='isLoading')
|
v-progress-circular(indeterminate, color='blue', :size='22', :width='2' v-show='isLoading')
|
||||||
slot(name='actions')
|
slot(name='actions')
|
||||||
|
v-btn(v-if='searchIsShown && $vuetify.breakpoint.smAndDown', icon)
|
||||||
|
v-icon(color='grey') search
|
||||||
v-tooltip(bottom)
|
v-tooltip(bottom)
|
||||||
v-btn(icon, href='/a', slot='activator')
|
v-btn(icon, href='/a', slot='activator')
|
||||||
v-icon(color='grey') settings
|
v-icon(color='grey') settings
|
||||||
|
@ -309,6 +309,16 @@ $material-colors: (
|
|||||||
'800': #37474f,
|
'800': #37474f,
|
||||||
'900': #263238,
|
'900': #263238,
|
||||||
'1000': #11171a
|
'1000': #11171a
|
||||||
|
),
|
||||||
|
|
||||||
|
'theme': (
|
||||||
|
'primary': #1976D2,
|
||||||
|
'secondary': #424242,
|
||||||
|
'accent': #82B1FF,
|
||||||
|
'error': #FF5252,
|
||||||
|
'info': #2196F3,
|
||||||
|
'success': #4CAF50,
|
||||||
|
'warning': #FFC107
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1,9 +1,18 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
v-app
|
v-app
|
||||||
nav-header
|
nav-header
|
||||||
v-navigation-drawer.primary(dark, app, clipped, permanent)
|
v-navigation-drawer.primary(
|
||||||
|
dark
|
||||||
|
app
|
||||||
|
clipped
|
||||||
|
:mini-variant='$vuetify.breakpoint.md || $vuetify.breakpoint.sm'
|
||||||
|
mini-variant-width='80'
|
||||||
|
mobile-break-point='600'
|
||||||
|
:temporary='$vuetify.breakpoint.xs'
|
||||||
|
v-model='navShown'
|
||||||
|
)
|
||||||
v-list(dense)
|
v-list(dense)
|
||||||
v-list-tile.pt-2
|
v-list-tile.pt-2(href='/')
|
||||||
v-list-tile-avatar: v-icon home
|
v-list-tile-avatar: v-icon home
|
||||||
v-list-tile-title Home
|
v-list-tile-title Home
|
||||||
v-divider.my-2
|
v-divider.my-2
|
||||||
@ -20,7 +29,10 @@
|
|||||||
|
|
||||||
v-content
|
v-content
|
||||||
v-toolbar(color='grey lighten-3', flat, dense)
|
v-toolbar(color='grey lighten-3', flat, dense)
|
||||||
v-breadcrumbs.pl-0(divider='/')
|
v-btn.pl-0(v-if='$vuetify.breakpoint.xsOnly', flat, @click='toggleNavigation')
|
||||||
|
v-icon(color='grey darken-2', left) menu
|
||||||
|
span Navigation
|
||||||
|
v-breadcrumbs.pl-0(v-else, divider='/')
|
||||||
v-breadcrumbs-item Universe
|
v-breadcrumbs-item Universe
|
||||||
v-breadcrumbs-item Galaxy
|
v-breadcrumbs-item Galaxy
|
||||||
v-breadcrumbs-item Solar System
|
v-breadcrumbs-item Solar System
|
||||||
@ -28,21 +40,24 @@
|
|||||||
|
|
||||||
v-divider
|
v-divider
|
||||||
v-layout(row)
|
v-layout(row)
|
||||||
v-flex(xs10)
|
v-flex(xs12, lg9, xl10)
|
||||||
v-toolbar(color='grey lighten-4', flat, :height='90')
|
v-toolbar(color='grey lighten-4', flat, :height='90')
|
||||||
div
|
div
|
||||||
.headline.grey--text.text--darken-3 {{title}}
|
.headline.grey--text.text--darken-3 {{title}}
|
||||||
.caption.grey--text.text--darken-1 {{description}}
|
.caption.grey--text.text--darken-1 {{description}}
|
||||||
.contents
|
.contents
|
||||||
slot(name='contents')
|
slot(name='contents')
|
||||||
v-flex(xs2, fill-height)
|
v-flex(lg3, xl2, fill-height, v-if='$vuetify.breakpoint.lgAndUp')
|
||||||
v-toolbar(color='grey lighten-4', flat, :height='90')
|
v-toolbar(color='grey lighten-4', flat, :height='90')
|
||||||
div
|
div
|
||||||
.caption.grey--text.text--lighten-1 Last edited by
|
.caption.grey--text.text--lighten-1 Last edited by
|
||||||
.body-2.grey--text.text--darken-3 John Doe
|
.body-2.grey--text.text--darken-3 John Doe
|
||||||
.caption.grey--text.text--darken-1 Monday at 12:34 PM
|
.caption.grey--text.text--darken-1 Monday at 12:34 PM
|
||||||
v-spacer
|
v-spacer
|
||||||
v-icon edit
|
v-tooltip(bottom)
|
||||||
|
v-btn(icon, slot='activator')
|
||||||
|
v-icon(color='grey') edit
|
||||||
|
span Edit Page
|
||||||
v-list.grey.lighten-3(dense)
|
v-list.grey.lighten-3(dense)
|
||||||
v-subheader.pl-4 Table of contents
|
v-subheader.pl-4 Table of contents
|
||||||
v-list-tile
|
v-list-tile
|
||||||
@ -79,6 +94,22 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
navOpen: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
navShown: {
|
||||||
|
get() { return this.navOpen || this.$vuetify.breakpoint.smAndUp },
|
||||||
|
set(val) { this.navOpen = val }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
toggleNavigation () {
|
||||||
|
this.navOpen = !this.navOpen
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/* THEME SPECIFIC STYLES */
|
/* THEME SPECIFIC STYLES */
|
||||||
|
|
||||||
.contents {
|
.contents {
|
||||||
|
color: mc('grey', '800');
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
padding-left: 16px;
|
padding-left: 16px;
|
||||||
color: mc('blue', '800');
|
color: mc('blue', '800');
|
||||||
@ -14,7 +16,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
background: linear-gradient(to right, mc('blue', '500'), rgba(mc('blue', '500'), 0));
|
background: linear-gradient(to right, mc('theme', 'primary'), rgba(mc('theme', 'primary'), 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
& + h2 {
|
& + h2 {
|
||||||
@ -41,5 +43,6 @@
|
|||||||
p {
|
p {
|
||||||
padding: 16px 16px 0 16px;
|
padding: 16px 16px 0 16px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
text-align: justify;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,9 +44,8 @@ exports.up = knex => {
|
|||||||
.createTable('editors', table => {
|
.createTable('editors', table => {
|
||||||
table.increments('id').primary()
|
table.increments('id').primary()
|
||||||
table.string('key').notNullable().unique()
|
table.string('key').notNullable().unique()
|
||||||
table.string('title').notNullable()
|
|
||||||
table.boolean('isEnabled').notNullable().defaultTo(false)
|
table.boolean('isEnabled').notNullable().defaultTo(false)
|
||||||
table.jsonb('config')
|
table.jsonb('config').notNullable()
|
||||||
})
|
})
|
||||||
// GROUPS ------------------------------
|
// GROUPS ------------------------------
|
||||||
.createTable('groups', table => {
|
.createTable('groups', table => {
|
||||||
|
@ -36,10 +36,10 @@ module.exports = class Editor extends Model {
|
|||||||
const dbEditors = await WIKI.models.editors.query()
|
const dbEditors = await WIKI.models.editors.query()
|
||||||
|
|
||||||
// -> Fetch definitions from disk
|
// -> Fetch definitions from disk
|
||||||
const editorDirs = await fs.readdir(path.join(WIKI.SERVERPATH, 'modules/editors'))
|
const editorDirs = await fs.readdir(path.join(WIKI.SERVERPATH, 'modules/editor'))
|
||||||
let diskEditors = []
|
let diskEditors = []
|
||||||
for (let dir of editorDirs) {
|
for (let dir of editorDirs) {
|
||||||
const def = await fs.readFile(path.join(WIKI.SERVERPATH, 'modules/editors', dir, 'definition.yml'), 'utf8')
|
const def = await fs.readFile(path.join(WIKI.SERVERPATH, 'modules/editor', dir, 'definition.yml'), 'utf8')
|
||||||
diskEditors.push(yaml.safeLoad(def))
|
diskEditors.push(yaml.safeLoad(def))
|
||||||
}
|
}
|
||||||
WIKI.data.editors = diskEditors.map(editor => ({
|
WIKI.data.editors = diskEditors.map(editor => ({
|
||||||
@ -72,7 +72,7 @@ module.exports = class Editor extends Model {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (newEditors.length > 0) {
|
if (newEditors.length > 0) {
|
||||||
await WIKI.models.storage.query().insert(newEditors)
|
await WIKI.models.editors.query().insert(newEditors)
|
||||||
WIKI.logger.info(`Loaded ${newEditors.length} new editors: [ OK ]`)
|
WIKI.logger.info(`Loaded ${newEditors.length} new editors: [ OK ]`)
|
||||||
} else {
|
} else {
|
||||||
WIKI.logger.info(`No new editors found: [ SKIPPED ]`)
|
WIKI.logger.info(`No new editors found: [ SKIPPED ]`)
|
||||||
|
Loading…
Reference in New Issue
Block a user