mirror of https://github.com/requarks/wiki
parent
3566a78cff
commit
15e4341fed
@ -1,67 +1,67 @@
|
|||||||
doctype html
|
doctype html
|
||||||
html
|
html
|
||||||
head
|
head
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||||
meta(charset='UTF-8')
|
meta(charset='UTF-8')
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1')
|
meta(name='viewport', content='width=device-width, initial-scale=1')
|
||||||
meta(name='theme-color', content='#009688')
|
meta(name='theme-color', content='#009688')
|
||||||
meta(name='msapplication-TileColor', content='#009688')
|
meta(name='msapplication-TileColor', content='#009688')
|
||||||
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
||||||
title= appconfig.title
|
title= appconfig.title
|
||||||
|
|
||||||
// Favicon
|
// Favicon
|
||||||
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
||||||
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
||||||
each favsize in [32, 96, 16]
|
each favsize in [32, 96, 16]
|
||||||
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='manifest', href='/manifest.json')
|
link(rel='manifest', href='/manifest.json')
|
||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
||||||
link(type='text/css', rel='stylesheet', href='/css/login.css')
|
link(type='text/css', rel='stylesheet', href='/css/login.css')
|
||||||
|
|
||||||
// JS
|
// JS
|
||||||
script(type='text/javascript', src='/js/libs.js')
|
script(type='text/javascript', src='/js/libs.js')
|
||||||
script(type='text/javascript', src='/js/login.js')
|
script(type='text/javascript', src='/js/login.js')
|
||||||
|
|
||||||
body
|
body
|
||||||
#bg
|
#bg
|
||||||
each bg in _.sampleSize([1, 2, 3],3)
|
each bg in _.sampleSize([1, 2, 3],3)
|
||||||
div(style="background-image:url(/images/bg_" + bg + ".jpg);")
|
div(style='background-image:url(/images/bg_' + bg + '.jpg);')
|
||||||
#root
|
#root
|
||||||
h1= appconfig.title
|
h1= appconfig.title
|
||||||
h2 Login required
|
h2 Login required
|
||||||
if appflash.length > 0
|
if appflash.length > 0
|
||||||
h3
|
h3
|
||||||
i.fa.fa-warning
|
i.fa.fa-warning
|
||||||
= appflash[0].title
|
= appflash[0].title
|
||||||
h4= appflash[0].message
|
h4= appflash[0].message
|
||||||
if appconfig.auth.local.enabled
|
if appconfig.auth.local.enabled
|
||||||
form(method='post', action='/login')
|
form(method='post', action='/login')
|
||||||
input#login-user(type='text', name='email', placeholder='Email address')
|
input#login-user(type='text', name='email', placeholder='Email address')
|
||||||
input#login-pass(type='password', name='password', placeholder='Password')
|
input#login-pass(type='password', name='password', placeholder='Password')
|
||||||
button(type='submit') Log In
|
button(type='submit') Log In
|
||||||
if appconfig.authStrategies.socialEnabled
|
if appconfig.authStrategies.socialEnabled
|
||||||
#social
|
#social
|
||||||
if appconfig.auth.local.enabled
|
if appconfig.auth.local.enabled
|
||||||
span Or, log in using...
|
span Or, log in using...
|
||||||
else
|
else
|
||||||
span Log in using...
|
span Log in using...
|
||||||
if appconfig.auth.microsoft && appconfig.auth.microsoft.enabled
|
if appconfig.auth.microsoft && appconfig.auth.microsoft.enabled
|
||||||
button.ms(onclick="window.location.assign('/login/ms')")
|
button.ms(onclick='window.location.assign("/login/ms")')
|
||||||
i.fa.fa-windows
|
i.fa.fa-windows
|
||||||
span Microsoft Account
|
span Microsoft Account
|
||||||
if appconfig.auth.google && appconfig.auth.google.enabled
|
if appconfig.auth.google && appconfig.auth.google.enabled
|
||||||
button.google(onclick="window.location.assign('/login/google')")
|
button.google(onclick='window.location.assign("/login/google")')
|
||||||
i.fa.fa-google
|
i.fa.fa-google
|
||||||
span Google ID
|
span Google ID
|
||||||
if appconfig.auth.facebook && appconfig.auth.facebook.enabled
|
if appconfig.auth.facebook && appconfig.auth.facebook.enabled
|
||||||
button.facebook(onclick="window.location.assign('/login/facebook')")
|
button.facebook(onclick='window.location.assign("/login/facebook")')
|
||||||
i.fa.fa-facebook
|
i.fa.fa-facebook
|
||||||
span Facebook
|
span Facebook
|
||||||
#copyright
|
#copyright
|
||||||
= t('footer.poweredby') + ' '
|
= t('footer.poweredby') + ' '
|
||||||
a.icon(href='https://github.com/Requarks/wiki')
|
a.icon(href='https://github.com/Requarks/wiki')
|
||||||
i.icon-github
|
i.icon-github
|
||||||
a(href='https://github.com/Requarks/wiki') Requarks Wiki
|
a(href='https://github.com/Requarks/wiki') Requarks Wiki
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
#alerts
|
#alerts
|
||||||
ul
|
ul
|
||||||
template(v-for="aItem in children", track-by='_uid')
|
template(v-for='aItem in children', track-by='_uid')
|
||||||
li(v-bind:class='aItem.class')
|
li(v-bind:class='aItem.class')
|
||||||
button(v-on:click='acknowledge(aItem._uid)')
|
button(v-on:click='acknowledge(aItem._uid)')
|
||||||
strong {{ aItem.title }}
|
strong {{ aItem.title }}
|
||||||
span {{ aItem.message }}
|
span {{ aItem.message }}
|
||||||
|
|
||||||
if appflash.length > 0
|
if appflash.length > 0
|
||||||
script(type='text/javascript').
|
script(type='text/javascript').
|
||||||
var alertsData = !{JSON.stringify(appflash)};
|
var alertsData = !{JSON.stringify(appflash)};
|
||||||
else
|
else
|
||||||
script(type='text/javascript').
|
script(type='text/javascript').
|
||||||
var alertsData = [];
|
var alertsData = [];
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
footer.footer
|
footer.footer
|
||||||
span
|
span
|
||||||
= t('footer.poweredby') + ' '
|
= t('footer.poweredby') + ' '
|
||||||
a(href='https://github.com/Requarks/wiki') Wiki.js
|
a(href='https://github.com/Requarks/wiki') Wiki.js
|
||||||
| .
|
| .
|
||||||
ul
|
ul
|
||||||
li: a(href='/')= t('footer.home')
|
li: a(href='/')= t('footer.home')
|
||||||
li: a(href='#root')= t('footer.top')
|
li: a(href='#root')= t('footer.top')
|
||||||
|
|
||||||
|
@ -1,36 +1,34 @@
|
|||||||
|
|
||||||
#header-container
|
#header-container
|
||||||
nav.nav.stickyscroll#header
|
nav.nav.stickyscroll#header
|
||||||
.nav-left
|
.nav-left
|
||||||
block rootNavLeft
|
block rootNavLeft
|
||||||
a.nav-item(href='/')
|
a.nav-item(href='/')
|
||||||
h1
|
h1
|
||||||
i.icon-layers
|
i.icon-layers
|
||||||
= appconfig.title
|
= appconfig.title
|
||||||
.nav-center
|
.nav-center
|
||||||
block rootNavCenter
|
block rootNavCenter
|
||||||
.nav-item
|
.nav-item
|
||||||
p.control(v-bind:class="{ 'is-loading': searchload > 0 }")
|
p.control(v-bind:class='{ "is-loading": searchload > 0 }')
|
||||||
input.input#search-input(type='text', v-model='searchq', @keyup.esc='closeSearch', @keyup.down='moveDownSearch', @keyup.up='moveUpSearch', @keyup.enter='moveSelectSearch', debounce='400', placeholder='Search...')
|
input.input#search-input(type='text', v-model='searchq', @keyup.esc='closeSearch', @keyup.down='moveDownSearch', @keyup.up='moveUpSearch', @keyup.enter='moveSelectSearch', debounce='400', placeholder='Search...')
|
||||||
span.nav-toggle
|
span.nav-toggle
|
||||||
span
|
span
|
||||||
span
|
span
|
||||||
span
|
span
|
||||||
.nav-right
|
.nav-right
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
|
|
||||||
transition(name="searchresults-anim", enter-active-class="slideInDown", leave-active-class="fadeOutUp")
|
|
||||||
.searchresults.animated(v-show='searchactive', v-cloak, style={'display':'none'})
|
|
||||||
p.searchresults-label Search Results
|
|
||||||
ul.searchresults-list
|
|
||||||
li(v-if="searchres.length === 0")
|
|
||||||
a: em No results matching your query
|
|
||||||
li(v-for='sres in searchres', v-bind:class="{ 'is-active': searchmovekey === 'res.' + sres._id }")
|
|
||||||
a(v-bind:href="'/' + sres._id") {{ sres.title }}
|
|
||||||
p.searchresults-label(v-if='searchsuggest.length > 0') Did you mean...?
|
|
||||||
ul.searchresults-list(v-if='searchsuggest.length > 0')
|
|
||||||
li(v-for='sug in searchsuggest', v-bind:class="{ 'is-active': searchmovekey === 'sug.' + sug }")
|
|
||||||
a(v-on:click="useSuggestion(sug)") {{ sug }}
|
|
||||||
|
|
||||||
|
|
||||||
|
transition(name='searchresults-anim', enter-active-class='slideInDown', leave-active-class='fadeOutUp')
|
||||||
|
.searchresults.animated(v-show='searchactive', v-cloak, style={'display':'none'})
|
||||||
|
p.searchresults-label Search Results
|
||||||
|
ul.searchresults-list
|
||||||
|
li(v-if='searchres.length === 0')
|
||||||
|
a: em No results matching your query
|
||||||
|
li(v-for='sres in searchres', v-bind:class='{ "is-active": searchmovekey === "res." + sres._id }')
|
||||||
|
a(v-bind:href='"/" + sres._id') {{ sres.title }}
|
||||||
|
p.searchresults-label(v-if='searchsuggest.length > 0') Did you mean...?
|
||||||
|
ul.searchresults-list(v-if='searchsuggest.length > 0')
|
||||||
|
li(v-for='sug in searchsuggest', v-bind:class='{ "is-active": searchmovekey === "sug." + sug }')
|
||||||
|
a(v-on:click='useSuggestion(sug)') {{ sug }}
|
||||||
|
@ -1,29 +1,29 @@
|
|||||||
doctype html
|
doctype html
|
||||||
html
|
html
|
||||||
head
|
head
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||||
meta(charset='UTF-8')
|
meta(charset='UTF-8')
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1')
|
meta(name='viewport', content='width=device-width, initial-scale=1')
|
||||||
meta(name='theme-color', content='#009688')
|
meta(name='theme-color', content='#009688')
|
||||||
meta(name='msapplication-TileColor', content='#009688')
|
meta(name='msapplication-TileColor', content='#009688')
|
||||||
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
||||||
title= appconfig.title
|
title= appconfig.title
|
||||||
|
|
||||||
// Favicon
|
// Favicon
|
||||||
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
||||||
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
||||||
each favsize in [32, 96, 16]
|
each favsize in [32, 96, 16]
|
||||||
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='manifest', href='/manifest.json')
|
link(rel='manifest', href='/manifest.json')
|
||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
||||||
link(type='text/css', rel='stylesheet', href='/css/error.css')
|
link(type='text/css', rel='stylesheet', href='/css/error.css')
|
||||||
|
|
||||||
body(class='is-forbidden')
|
body(class='is-forbidden')
|
||||||
.container
|
.container
|
||||||
a(href='/'): img(src='/favicons/android-icon-96x96.png')
|
a(href='/'): img(src='/favicons/android-icon-96x96.png')
|
||||||
h1 Forbidden
|
h1 Forbidden
|
||||||
h2 Sorry, you don't have the necessary permissions to access this page.
|
h2 Sorry, you don't have the necessary permissions to access this page.
|
||||||
a.button.is-amber.is-inverted(href='/') Go Home
|
a.button.is-amber.is-inverted(href='/') Go Home
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
doctype html
|
doctype html
|
||||||
html
|
html
|
||||||
head
|
head
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||||
meta(charset='UTF-8')
|
meta(charset='UTF-8')
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1')
|
meta(name='viewport', content='width=device-width, initial-scale=1')
|
||||||
meta(name='theme-color', content='#009688')
|
meta(name='theme-color', content='#009688')
|
||||||
meta(name='msapplication-TileColor', content='#009688')
|
meta(name='msapplication-TileColor', content='#009688')
|
||||||
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
||||||
title= appconfig.title
|
title= appconfig.title
|
||||||
|
|
||||||
// Favicon
|
// Favicon
|
||||||
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
||||||
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
||||||
each favsize in [32, 96, 16]
|
each favsize in [32, 96, 16]
|
||||||
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='manifest', href='/manifest.json')
|
link(rel='manifest', href='/manifest.json')
|
||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
||||||
link(type='text/css', rel='stylesheet', href='/css/error.css')
|
link(type='text/css', rel='stylesheet', href='/css/error.css')
|
||||||
|
|
||||||
body(class='is-notexist')
|
body(class='is-notexist')
|
||||||
.container
|
.container
|
||||||
a(href='/'): img(src='/favicons/android-icon-96x96.png')
|
a(href='/'): img(src='/favicons/android-icon-96x96.png')
|
||||||
h1= message
|
h1= message
|
||||||
h2 Would you like to create this entry?
|
h2 Would you like to create this entry?
|
||||||
a.button.is-amber.is-inverted.is-featured(href='/create/' + newpath) Create
|
a.button.is-amber.is-inverted.is-featured(href='/create/' + newpath) Create
|
||||||
a.button.is-amber.is-inverted(href='/') Go Home
|
a.button.is-amber.is-inverted(href='/') Go Home
|
||||||
|
@ -1,33 +1,33 @@
|
|||||||
doctype html
|
doctype html
|
||||||
html
|
html
|
||||||
head
|
head
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||||
meta(charset='UTF-8')
|
meta(charset='UTF-8')
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1')
|
meta(name='viewport', content='width=device-width, initial-scale=1')
|
||||||
meta(name='theme-color', content='#009688')
|
meta(name='theme-color', content='#009688')
|
||||||
meta(name='msapplication-TileColor', content='#009688')
|
meta(name='msapplication-TileColor', content='#009688')
|
||||||
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
||||||
title= appconfig.title
|
title= appconfig.title
|
||||||
|
|
||||||
// Favicon
|
// Favicon
|
||||||
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
||||||
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
||||||
each favsize in [32, 96, 16]
|
each favsize in [32, 96, 16]
|
||||||
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='manifest', href='/manifest.json')
|
link(rel='manifest', href='/manifest.json')
|
||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
||||||
link(type='text/css', rel='stylesheet', href='/css/error.css')
|
link(type='text/css', rel='stylesheet', href='/css/error.css')
|
||||||
|
|
||||||
body(class='is-error')
|
body(class='is-error')
|
||||||
.container
|
.container
|
||||||
a(href='/'): img(src='/favicons/android-icon-96x96.png')
|
a(href='/'): img(src='/favicons/android-icon-96x96.png')
|
||||||
h1= message
|
h1= message
|
||||||
h2 Oops, something went wrong
|
h2 Oops, something went wrong
|
||||||
a.button.is-amber.is-inverted.is-featured(href='/') Go Home
|
a.button.is-amber.is-inverted.is-featured(href='/') Go Home
|
||||||
|
|
||||||
if error.stack
|
if error.stack
|
||||||
h3 Detailed debug trail:
|
h3 Detailed debug trail:
|
||||||
pre: code #{error.stack}
|
pre: code #{error.stack}
|
||||||
|
@ -1,38 +1,38 @@
|
|||||||
doctype html
|
doctype html
|
||||||
html
|
html
|
||||||
head
|
head
|
||||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||||
meta(charset='UTF-8')
|
meta(charset='UTF-8')
|
||||||
meta(name='viewport', content='width=device-width, initial-scale=1')
|
meta(name='viewport', content='width=device-width, initial-scale=1')
|
||||||
meta(name='theme-color', content='#009688')
|
meta(name='theme-color', content='#009688')
|
||||||
meta(name='msapplication-TileColor', content='#009688')
|
meta(name='msapplication-TileColor', content='#009688')
|
||||||
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
meta(name='msapplication-TileImage', content='/favicons/ms-icon-144x144.png')
|
||||||
title= appconfig.title
|
title= appconfig.title
|
||||||
|
|
||||||
// Favicon
|
// Favicon
|
||||||
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
each favsize in [57, 60, 72, 76, 114, 120, 144, 152, 180]
|
||||||
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
link(rel='apple-touch-icon', sizes=favsize + 'x' + favsize, href='/favicons/apple-icon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
link(rel='icon', type='image/png', sizes='192x192', href='/favicons/android-icon-192x192.png')
|
||||||
each favsize in [32, 96, 16]
|
each favsize in [32, 96, 16]
|
||||||
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
link(rel='icon', type='image/png', sizes=favsize + 'x' + favsize, href='/favicons/favicon-' + favsize + 'x' + favsize + '.png')
|
||||||
link(rel='manifest', href='/manifest.json')
|
link(rel='manifest', href='/manifest.json')
|
||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
link(type='text/css', rel='stylesheet', href='/css/libs.css')
|
||||||
link(type='text/css', rel='stylesheet', href='/css/app.css')
|
link(type='text/css', rel='stylesheet', href='/css/app.css')
|
||||||
|
|
||||||
// JS
|
// JS
|
||||||
script(type='text/javascript', src='/js/libs.js')
|
script(type='text/javascript', src='/js/libs.js')
|
||||||
script(type='text/javascript', src='/js/app.js')
|
script(type='text/javascript', src='/js/app.js')
|
||||||
|
|
||||||
block head
|
block head
|
||||||
|
|
||||||
body
|
body
|
||||||
#root.has-stickynav
|
#root.has-stickynav
|
||||||
include ./common/header.pug
|
include ./common/header.pug
|
||||||
include ./common/alerts.pug
|
include ./common/alerts.pug
|
||||||
main
|
main
|
||||||
block content
|
block content
|
||||||
include ./common/footer.pug
|
include ./common/footer.pug
|
||||||
|
|
||||||
block outside
|
block outside
|
||||||
|
@ -1,33 +1,33 @@
|
|||||||
|
|
||||||
.modal#modal-admin-users-create
|
.modal#modal-admin-users-create
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-blue Create / Authorize User
|
header.is-blue Create / Authorize User
|
||||||
section
|
section
|
||||||
label.label Email address:
|
label.label Email address:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='e.g. john.doe@company.com', v-model='email')
|
input.input(type='text', placeholder='e.g. john.doe@company.com', v-model='email')
|
||||||
span.help.is-red.is-hidden This email is invalid!
|
span.help.is-red.is-hidden This email is invalid!
|
||||||
section
|
section
|
||||||
label.label Provider:
|
label.label Provider:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
select(v-model='provider')
|
select(v-model='provider')
|
||||||
option(value='local') Local Database
|
option(value='local') Local Database
|
||||||
option(value='windowslive') Microsoft Account
|
option(value='windowslive') Microsoft Account
|
||||||
option(value='google') Google ID
|
option(value='google') Google ID
|
||||||
option(value='facebook') Facebook
|
option(value='facebook') Facebook
|
||||||
section(v-if="provider=='local'")
|
section(v-if='provider=="local"')
|
||||||
label.label Password:
|
label.label Password:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='password', placeholder='', v-model='password')
|
input.input(type='password', placeholder='', v-model='password')
|
||||||
span.help.is-red.is-hidden This password is invalid!
|
span.help.is-red.is-hidden This password is invalid!
|
||||||
section(v-if="provider=='local'")
|
section(v-if='provider=="local"')
|
||||||
label.label Full Name:
|
label.label Full Name:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='e.g. John Doe', v-model='name')
|
input.input(type='text', placeholder='e.g. John Doe', v-model='name')
|
||||||
span.help.is-red.is-hidden This name is invalid!
|
span.help.is-red.is-hidden This name is invalid!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="cancel") Discard
|
a.button.is-grey.is-outlined(v-on:click='cancel') Discard
|
||||||
a.button.is-blue(v-on:click="create", v-if="provider=='local'") Create User
|
a.button.is-blue(v-on:click='create', v-if='provider=="local"') Create User
|
||||||
a.button.is-blue(v-on:click="create", v-if="provider!='local'") Authorize User
|
a.button.is-blue(v-on:click='create', v-if='provider!="local"') Authorize User
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
.modal#modal-admin-users-delete
|
.modal#modal-admin-users-delete
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-red Delete User Account?
|
header.is-red Delete User Account?
|
||||||
section
|
section
|
||||||
span Are you sure you want to delete this user account? This action cannot be undone!
|
span Are you sure you want to delete this user account? This action cannot be undone!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="cancel") Abort
|
a.button.is-grey.is-outlined(v-on:click='cancel') Abort
|
||||||
a.button.is-red(v-on:click="deleteUser") Delete
|
a.button.is-red(v-on:click='deleteUser') Delete
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
.modal#modal-create-discard
|
.modal#modal-create-discard
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-orange Discard?
|
header.is-orange Discard?
|
||||||
section
|
section
|
||||||
span Are you sure you want to leave this page and loose anything you wrote so far?
|
span Are you sure you want to leave this page and loose anything you wrote so far?
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined.btn-create-discard Stay on page
|
a.button.is-grey.is-outlined.btn-create-discard Stay on page
|
||||||
a.button.is-orange(href='/') Discard
|
a.button.is-orange(href='/') Discard
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
|
|
||||||
.modal#modal-create-prompt
|
.modal#modal-create-prompt
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-light-blue Create New Document
|
header.is-light-blue Create New Document
|
||||||
section
|
section
|
||||||
label.label Enter the new document path:
|
label.label Enter the new document path:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='page-name')#txt-create-prompt
|
input.input#txt-create-prompt(type='text', placeholder='page-name')
|
||||||
span.help.is-danger.is-hidden This document path is invalid!
|
span.help.is-danger.is-hidden This document path is invalid!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined.btn-create-prompt Discard
|
a.button.is-grey.is-outlined.btn-create-prompt Discard
|
||||||
a.button.is-light-blue.btn-create-go Create
|
a.button.is-light-blue.btn-create-go Create
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
.modal#modal-edit-discard
|
.modal#modal-edit-discard
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-orange Discard?
|
header.is-orange Discard?
|
||||||
section
|
section
|
||||||
span Are you sure you want to leave this page and loose any modifications?
|
span Are you sure you want to leave this page and loose any modifications?
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined.btn-edit-discard Stay on page
|
a.button.is-grey.is-outlined.btn-edit-discard Stay on page
|
||||||
a.button.is-orange(href='/' + pageData.meta.path) Discard
|
a.button.is-orange(href='/' + pageData.meta.path) Discard
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
|
|
||||||
.modal#modal-editor-codeblock
|
.modal#modal-editor-codeblock
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content.is-expanded
|
.modal-content.is-expanded
|
||||||
|
|
||||||
header.is-green
|
header.is-green
|
||||||
span Insert Code Block
|
span Insert Code Block
|
||||||
|
|
||||||
section.is-gapless
|
section.is-gapless
|
||||||
.columns.is-stretched
|
.columns.is-stretched
|
||||||
.column.is-one-quarter.modal-sidebar.is-green(style={'max-width':'350px'})
|
.column.is-one-quarter.modal-sidebar.is-green(style={'max-width':'350px'})
|
||||||
.model-sidebar-header Language
|
.model-sidebar-header Language
|
||||||
.model-sidebar-content
|
.model-sidebar-content
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
select(v-model='modeSelected')
|
select(v-model='modeSelected')
|
||||||
option(v-for="mode in modes" v-bind:value='mode.name') {{ mode.caption }}
|
option(v-for='mode in modes', v-bind:value='mode.name') {{ mode.caption }}
|
||||||
.column.ace-container
|
.column.ace-container
|
||||||
#codeblock-editor
|
#codeblock-editor
|
||||||
|
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="cancel") Discard
|
a.button.is-grey.is-outlined(v-on:click='cancel') Discard
|
||||||
a.button.is-green(v-on:click="insertCode") Insert Code Block
|
a.button.is-green(v-on:click='insertCode') Insert Code Block
|
||||||
|
@ -1,80 +1,80 @@
|
|||||||
|
|
||||||
.modal#modal-editor-file
|
.modal#modal-editor-file
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content.is-expanded
|
.modal-content.is-expanded
|
||||||
|
|
||||||
header.is-green
|
header.is-green
|
||||||
span Insert File
|
span Insert File
|
||||||
p.modal-notify(v-bind:class="{ 'is-active': isLoading }")
|
p.modal-notify(v-bind:class='{ "is-active": isLoading }')
|
||||||
span {{ isLoadingText }}
|
span {{ isLoadingText }}
|
||||||
i
|
i
|
||||||
.modal-toolbar.is-green
|
.modal-toolbar.is-green
|
||||||
a.button(v-on:click="newFolder")
|
a.button(v-on:click='newFolder')
|
||||||
i.fa.fa-folder
|
i.fa.fa-folder
|
||||||
span New Folder
|
span New Folder
|
||||||
a.button#btn-editor-file-upload
|
a.button#btn-editor-file-upload
|
||||||
i.fa.fa-upload
|
i.fa.fa-upload
|
||||||
span Upload File
|
span Upload File
|
||||||
label
|
label
|
||||||
input(type="file", multiple)
|
input(type='file', multiple)
|
||||||
section.is-gapless
|
section.is-gapless
|
||||||
.columns.is-stretched
|
.columns.is-stretched
|
||||||
.column.is-one-quarter.modal-sidebar.is-green(style={'max-width':'350px'})
|
.column.is-one-quarter.modal-sidebar.is-green(style={'max-width':'350px'})
|
||||||
.model-sidebar-header Folders
|
.model-sidebar-header Folders
|
||||||
ul.model-sidebar-list
|
ul.model-sidebar-list
|
||||||
li(v-for="fld in folders")
|
li(v-for='fld in folders')
|
||||||
a(v-on:click="selectFolder(fld)", v-bind:class="{ 'is-active': currentFolder === fld }")
|
a(v-on:click='selectFolder(fld)', v-bind:class='{ "is-active": currentFolder === fld }')
|
||||||
i.icon-folder2
|
i.icon-folder2
|
||||||
span / {{ fld }}
|
span / {{ fld }}
|
||||||
.column.editor-modal-file-choices
|
.column.editor-modal-file-choices
|
||||||
figure(v-for="fl in files", v-bind:class="{ 'is-active': currentFile === fl._id }", v-on:click="selectFile(fl._id)", v-bind:data-uid="fl._id")
|
figure(v-for='fl in files', v-bind:class='{ "is-active": currentFile === fl._id }', v-on:click='selectFile(fl._id)', v-bind:data-uid='fl._id')
|
||||||
i(class='icon-file')
|
i(class='icon-file')
|
||||||
span: strong {{ fl.filename }}
|
span: strong {{ fl.filename }}
|
||||||
span {{ fl.mime }}
|
span {{ fl.mime }}
|
||||||
span {{ fl.filesize | filesize }}
|
span {{ fl.filesize | filesize }}
|
||||||
em(v-show="files.length < 1")
|
em(v-show='files.length < 1')
|
||||||
i.icon-marquee-minus
|
i.icon-marquee-minus
|
||||||
| This folder is empty.
|
| This folder is empty.
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="cancel") Discard
|
a.button.is-grey.is-outlined(v-on:click='cancel') Discard
|
||||||
a.button.is-green(v-on:click="insertFileLink") Insert Link to File
|
a.button.is-green(v-on:click='insertFileLink') Insert Link to File
|
||||||
|
|
||||||
.modal.is-superimposed(v-bind:class="{ 'is-active': newFolderShow }")
|
.modal.is-superimposed(v-bind:class='{ "is-active": newFolderShow }')
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-light-blue New Folder
|
header.is-light-blue New Folder
|
||||||
section
|
section
|
||||||
label.label Enter the new folder name:
|
label.label Enter the new folder name:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input#txt-editor-file-newfoldername(type='text', placeholder='folder name', v-model='newFolderName', v-on:keyup.enter="newFolderCreate", v-on:keyup.esc="newFolderDiscard")
|
input.input#txt-editor-file-newfoldername(type='text', placeholder='folder name', v-model='newFolderName', v-on:keyup.enter='newFolderCreate', v-on:keyup.esc='newFolderDiscard')
|
||||||
span.help.is-danger(v-show="newFolderError") This folder name is invalid!
|
span.help.is-danger(v-show='newFolderError') This folder name is invalid!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="newFolderDiscard") Discard
|
a.button.is-grey.is-outlined(v-on:click='newFolderDiscard') Discard
|
||||||
a.button.is-light-blue(v-on:click="newFolderCreate") Create
|
a.button.is-light-blue(v-on:click='newFolderCreate') Create
|
||||||
|
|
||||||
.modal.is-superimposed(v-bind:class="{ 'is-active': renameFileShow }")
|
.modal.is-superimposed(v-bind:class='{ "is-active": renameFileShow }')
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-indigo Rename File
|
header.is-indigo Rename File
|
||||||
section
|
section
|
||||||
label.label Enter the new filename (without the extension) of the file:
|
label.label Enter the new filename (without the extension) of the file:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input#txt-editor-file-rename(type='text', placeholder='filename', v-model='renameFileFilename')
|
input.input#txt-editor-file-rename(type='text', placeholder='filename', v-model='renameFileFilename')
|
||||||
span.help.is-danger.is-hidden This filename is invalid!
|
span.help.is-danger.is-hidden This filename is invalid!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="renameFileDiscard") Discard
|
a.button.is-grey.is-outlined(v-on:click='renameFileDiscard') Discard
|
||||||
a.button.is-light-blue(v-on:click="renameFileGo") Rename
|
a.button.is-light-blue(v-on:click='renameFileGo') Rename
|
||||||
|
|
||||||
.modal.is-superimposed(v-bind:class="{ 'is-active': deleteFileShow }")
|
.modal.is-superimposed(v-bind:class='{ "is-active": deleteFileShow }')
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-red Delete file?
|
header.is-red Delete file?
|
||||||
section
|
section
|
||||||
span Are you sure you want to delete #[strong {{deleteFileFilename}}]?
|
span Are you sure you want to delete #[strong {{deleteFileFilename}}]?
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="deleteFileWarn(false)") Discard
|
a.button.is-grey.is-outlined(v-on:click='deleteFileWarn(false)') Discard
|
||||||
a.button.is-red(v-on:click="deleteFileGo") Delete
|
a.button.is-red(v-on:click='deleteFileGo') Delete
|
||||||
|
@ -1,104 +1,104 @@
|
|||||||
|
|
||||||
.modal#modal-editor-image
|
.modal#modal-editor-image
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content.is-expanded
|
.modal-content.is-expanded
|
||||||
|
|
||||||
header.is-green
|
header.is-green
|
||||||
span Insert Image
|
span Insert Image
|
||||||
p.modal-notify(v-bind:class="{ 'is-active': isLoading }")
|
p.modal-notify(v-bind:class='{ "is-active": isLoading }')
|
||||||
span {{ isLoadingText }}
|
span {{ isLoadingText }}
|
||||||
i
|
i
|
||||||
.modal-toolbar.is-green
|
.modal-toolbar.is-green
|
||||||
a.button(v-on:click="newFolder")
|
a.button(v-on:click='newFolder')
|
||||||
i.fa.fa-folder
|
i.fa.fa-folder
|
||||||
span New Folder
|
span New Folder
|
||||||
a.button#btn-editor-image-upload
|
a.button#btn-editor-image-upload
|
||||||
i.fa.fa-upload
|
i.fa.fa-upload
|
||||||
span Upload Image
|
span Upload Image
|
||||||
label
|
label
|
||||||
input(type="file", multiple)
|
input(type='file', multiple)
|
||||||
a.button(v-on:click="fetchFromUrl")
|
a.button(v-on:click='fetchFromUrl')
|
||||||
i.fa.fa-download
|
i.fa.fa-download
|
||||||
span Fetch from URL
|
span Fetch from URL
|
||||||
section.is-gapless
|
section.is-gapless
|
||||||
.columns.is-stretched
|
.columns.is-stretched
|
||||||
.column.is-one-quarter.modal-sidebar.is-green(style={'max-width':'350px'})
|
.column.is-one-quarter.modal-sidebar.is-green(style={'max-width':'350px'})
|
||||||
.model-sidebar-header Folders
|
.model-sidebar-header Folders
|
||||||
ul.model-sidebar-list
|
ul.model-sidebar-list
|
||||||
li(v-for="fld in folders")
|
li(v-for='fld in folders')
|
||||||
a(v-on:click="selectFolder(fld)", v-bind:class="{ 'is-active': currentFolder === fld }")
|
a(v-on:click='selectFolder(fld)', v-bind:class='{ "is-active": currentFolder === fld }')
|
||||||
i.icon-folder2
|
i.icon-folder2
|
||||||
span / {{ fld }}
|
span / {{ fld }}
|
||||||
.model-sidebar-header Alignment
|
.model-sidebar-header Alignment
|
||||||
.model-sidebar-content
|
.model-sidebar-content
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
select(v-model='currentAlign')
|
select(v-model='currentAlign')
|
||||||
option(value='left') Left (default)
|
option(value='left') Left (default)
|
||||||
option(value='center') Centered
|
option(value='center') Centered
|
||||||
option(value='right') Right
|
option(value='right') Right
|
||||||
option(value='logo') Page Logo
|
option(value='logo') Page Logo
|
||||||
.column.editor-modal-image-choices
|
.column.editor-modal-image-choices
|
||||||
figure(v-for="img in images", v-bind:class="{ 'is-active': currentImage === img._id }", v-on:click="selectImage(img._id)", v-bind:data-uid="img._id")
|
figure(v-for='img in images', v-bind:class='{ "is-active": currentImage === img._id }', v-on:click='selectImage(img._id)', v-bind:data-uid='img._id')
|
||||||
img(v-bind:src="'/uploads/t/' + img._id + '.png'")
|
img(v-bind:src='"/uploads/t/" + img._id + ".png"')
|
||||||
span: strong {{ img.basename }}
|
span: strong {{ img.basename }}
|
||||||
span {{ img.filesize | filesize }}
|
span {{ img.filesize | filesize }}
|
||||||
em(v-show="images.length < 1")
|
em(v-show='images.length < 1')
|
||||||
i.icon-marquee-minus
|
i.icon-marquee-minus
|
||||||
| This folder is empty.
|
| This folder is empty.
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="cancel") Discard
|
a.button.is-grey.is-outlined(v-on:click='cancel') Discard
|
||||||
a.button.is-green(v-on:click="insertImage") Insert Image
|
a.button.is-green(v-on:click='insertImage') Insert Image
|
||||||
|
|
||||||
.modal.is-superimposed(v-bind:class="{ 'is-active': newFolderShow }")
|
.modal.is-superimposed(v-bind:class='{ "is-active": newFolderShow }')
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-light-blue New Folder
|
header.is-light-blue New Folder
|
||||||
section
|
section
|
||||||
label.label Enter the new folder name:
|
label.label Enter the new folder name:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input#txt-editor-image-newfoldername(type='text', placeholder='folder name', v-model='newFolderName', v-on:keyup.enter="newFolderCreate", v-on:keyup.esc="newFolderDiscard")
|
input.input#txt-editor-image-newfoldername(type='text', placeholder='folder name', v-model='newFolderName', v-on:keyup.enter='newFolderCreate', v-on:keyup.esc='newFolderDiscard')
|
||||||
span.help.is-danger(v-show="newFolderError") This folder name is invalid!
|
span.help.is-danger(v-show='newFolderError') This folder name is invalid!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="newFolderDiscard") Discard
|
a.button.is-grey.is-outlined(v-on:click='newFolderDiscard') Discard
|
||||||
a.button.is-light-blue(v-on:click="newFolderCreate") Create
|
a.button.is-light-blue(v-on:click='newFolderCreate') Create
|
||||||
|
|
||||||
.modal.is-superimposed(v-bind:class="{ 'is-active': fetchFromUrlShow }")
|
.modal.is-superimposed(v-bind:class='{ "is-active": fetchFromUrlShow }')
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-light-blue Fetch Image from URL
|
header.is-light-blue Fetch Image from URL
|
||||||
section
|
section
|
||||||
label.label Enter full URL path to the image:
|
label.label Enter full URL path to the image:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input#txt-editor-image-fetchurl(type='text', placeholder='http://www.example.com/some-image.png', v-model='fetchFromUrlURL')
|
input.input#txt-editor-image-fetchurl(type='text', placeholder='http://www.example.com/some-image.png', v-model='fetchFromUrlURL')
|
||||||
span.help.is-danger.is-hidden This URL path is invalid!
|
span.help.is-danger.is-hidden This URL path is invalid!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="fetchFromUrlDiscard") Discard
|
a.button.is-grey.is-outlined(v-on:click='fetchFromUrlDiscard') Discard
|
||||||
a.button.is-light-blue(v-on:click="fetchFromUrlGo") Fetch
|
a.button.is-light-blue(v-on:click='fetchFromUrlGo') Fetch
|
||||||
|
|
||||||
.modal.is-superimposed(v-bind:class="{ 'is-active': renameImageShow }")
|
.modal.is-superimposed(v-bind:class='{ "is-active": renameImageShow }')
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-indigo Rename Image
|
header.is-indigo Rename Image
|
||||||
section
|
section
|
||||||
label.label Enter the new filename (without the extension) of the image:
|
label.label Enter the new filename (without the extension) of the image:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input#txt-editor-image-rename(type='text', placeholder='filename', v-model='renameImageFilename')
|
input.input#txt-editor-image-rename(type='text', placeholder='filename', v-model='renameImageFilename')
|
||||||
span.help.is-danger.is-hidden This filename is invalid!
|
span.help.is-danger.is-hidden This filename is invalid!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="renameImageDiscard") Discard
|
a.button.is-grey.is-outlined(v-on:click='renameImageDiscard') Discard
|
||||||
a.button.is-light-blue(v-on:click="renameImageGo") Rename
|
a.button.is-light-blue(v-on:click='renameImageGo') Rename
|
||||||
|
|
||||||
.modal.is-superimposed(v-bind:class="{ 'is-active': deleteImageShow }")
|
.modal.is-superimposed(v-bind:class='{ "is-active": deleteImageShow }')
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-red Delete image?
|
header.is-red Delete image?
|
||||||
section
|
section
|
||||||
span Are you sure you want to delete #[strong {{deleteImageFilename}}]?
|
span Are you sure you want to delete #[strong {{deleteImageFilename}}]?
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="deleteImageWarn(false)") Discard
|
a.button.is-grey.is-outlined(v-on:click='deleteImageWarn(false)') Discard
|
||||||
a.button.is-red(v-on:click="deleteImageGo") Delete
|
a.button.is-red(v-on:click='deleteImageGo') Delete
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
|
|
||||||
.modal#modal-editor-video
|
.modal#modal-editor-video
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-green Insert Video Player
|
header.is-green Insert Video Player
|
||||||
section
|
section
|
||||||
label.label Enter the link to the video to be embedded:
|
label.label Enter the link to the video to be embedded:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='https://www.youtube.com/watch?v=xxxxxxxxxxx', v-model='link')
|
input.input(type='text', placeholder='https://www.youtube.com/watch?v=xxxxxxxxxxx', v-model='link')
|
||||||
span.help.is-red.is-hidden This URL is invalid or not supported!
|
span.help.is-red.is-hidden This URL is invalid or not supported!
|
||||||
.note The following are supported:
|
.note The following are supported:
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
i.icon-youtube-play
|
i.icon-youtube-play
|
||||||
span Youtube
|
span Youtube
|
||||||
li
|
li
|
||||||
i.icon-vimeo
|
i.icon-vimeo
|
||||||
span Vimeo
|
span Vimeo
|
||||||
li
|
li
|
||||||
i.icon-film
|
i.icon-film
|
||||||
span Dailymotion
|
span Dailymotion
|
||||||
li
|
li
|
||||||
i.icon-video
|
i.icon-video
|
||||||
span Any standard MP4 file
|
span Any standard MP4 file
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined(v-on:click="cancel") Discard
|
a.button.is-grey.is-outlined(v-on:click='cancel') Discard
|
||||||
a.button.is-green(v-on:click="insertVideo") Insert Video
|
a.button.is-green(v-on:click='insertVideo') Insert Video
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
|
|
||||||
.modal#modal-move-prompt
|
.modal#modal-move-prompt
|
||||||
.modal-background
|
.modal-background
|
||||||
.modal-container
|
.modal-container
|
||||||
.modal-content
|
.modal-content
|
||||||
header.is-indigo Move document
|
header.is-indigo Move document
|
||||||
section
|
section
|
||||||
label.label Enter the new document path:
|
label.label Enter the new document path:
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='page-name')#txt-move-prompt
|
input.input#txt-move-prompt(type='text', placeholder='page-name')
|
||||||
span.help.is-red.is-hidden This document path is invalid or not allowed!
|
span.help.is-red.is-hidden This document path is invalid or not allowed!
|
||||||
span.note Note that moving or renaming documents can lead to broken links. Make sure to edit any page that links to this document afterwards!
|
span.note Note that moving or renaming documents can lead to broken links. Make sure to edit any page that links to this document afterwards!
|
||||||
footer
|
footer
|
||||||
a.button.is-grey.is-outlined.btn-move-prompt Discard
|
a.button.is-grey.is-outlined.btn-move-prompt Discard
|
||||||
a.button.is-indigo.btn-move-go Move
|
a.button.is-indigo.btn-move-go Move
|
||||||
|
@ -1,59 +1,59 @@
|
|||||||
extends ../../layout.pug
|
extends ../../layout.pug
|
||||||
|
|
||||||
block rootNavCenter
|
block rootNavCenter
|
||||||
h2.nav-item Account
|
h2.nav-item Account
|
||||||
|
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
.nav-item
|
.nav-item
|
||||||
a.button.btn-edit-discard(href='/')
|
a.button.btn-edit-discard(href='/')
|
||||||
i.icon-home
|
i.icon-home
|
||||||
span Home
|
span Home
|
||||||
|
|
||||||
block content
|
block content
|
||||||
|
|
||||||
#page-type-account
|
#page-type-account
|
||||||
.container.is-fluid
|
.container.is-fluid
|
||||||
.columns.is-gapless
|
.columns.is-gapless
|
||||||
|
|
||||||
.column.is-narrow.is-hidden-touch.sidebar
|
.column.is-narrow.is-hidden-touch.sidebar
|
||||||
|
|
||||||
aside
|
aside
|
||||||
.sidebar-label
|
.sidebar-label
|
||||||
i.icon-th-small
|
i.icon-th-small
|
||||||
span Navigation
|
span Navigation
|
||||||
ul.sidebar-menu
|
ul.sidebar-menu
|
||||||
li
|
li
|
||||||
a(href='/')
|
a(href='/')
|
||||||
i.icon-home
|
i.icon-home
|
||||||
span Home
|
span Home
|
||||||
|
|
||||||
aside
|
aside
|
||||||
.sidebar-label
|
.sidebar-label
|
||||||
i.icon-head
|
i.icon-head
|
||||||
span Account
|
span Account
|
||||||
ul.sidebar-menu
|
ul.sidebar-menu
|
||||||
li
|
li
|
||||||
a(href='/admin/profile')
|
a(href='/admin/profile')
|
||||||
i.icon-user
|
i.icon-user
|
||||||
span My Profile
|
span My Profile
|
||||||
li
|
li
|
||||||
a(href='/admin/stats')
|
a(href='/admin/stats')
|
||||||
i.icon-bar-graph-2
|
i.icon-bar-graph-2
|
||||||
span Stats
|
span Stats
|
||||||
if rights.manage
|
if rights.manage
|
||||||
li
|
li
|
||||||
a(href='/admin/users')
|
a(href='/admin/users')
|
||||||
i.icon-users
|
i.icon-users
|
||||||
span Users
|
span Users
|
||||||
li
|
li
|
||||||
a(href='/admin/settings')
|
a(href='/admin/settings')
|
||||||
i.icon-cog
|
i.icon-cog
|
||||||
span Site Settings
|
span Site Settings
|
||||||
li
|
li
|
||||||
a(href='/logout')
|
a(href='/logout')
|
||||||
i.icon-delete2
|
i.icon-delete2
|
||||||
span Logout
|
span Logout
|
||||||
|
|
||||||
.column
|
.column
|
||||||
block adminContent
|
block adminContent
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
extends ./_layout.pug
|
extends ./_layout.pug
|
||||||
|
|
||||||
block adminContent
|
block adminContent
|
||||||
#page-type-admin-profile
|
#page-type-admin-profile
|
||||||
.hero
|
.hero
|
||||||
h1.title#title My Profile
|
h1.title#title My Profile
|
||||||
h2.subtitle Profile and authentication info
|
h2.subtitle Profile and authentication info
|
||||||
.form-sections
|
.form-sections
|
||||||
.columns.is-gapless
|
.columns.is-gapless
|
||||||
.column.is-two-thirds
|
.column.is-two-thirds
|
||||||
section
|
section
|
||||||
label.label Email
|
label.label Email
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='Email', value=user.email, disabled)
|
input.input(type='text', placeholder='Email', value=user.email, disabled)
|
||||||
if user.provider == 'local'
|
if user.provider === 'local'
|
||||||
section
|
section
|
||||||
label.label Password
|
label.label Password
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='password', placeholder='Password', value='********', v-model='password')
|
input.input(type='password', placeholder='Password', value='********', v-model='password')
|
||||||
section
|
section
|
||||||
label.label Verify Password
|
label.label Verify Password
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='password', placeholder='Password', value='********', v-model='passwordVerify')
|
input.input(type='password', placeholder='Password', value='********', v-model='passwordVerify')
|
||||||
section
|
section
|
||||||
label.label Display Name
|
label.label Display Name
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='John Smith', v-model='name')
|
input.input(type='text', placeholder='John Smith', v-model='name')
|
||||||
section
|
section
|
||||||
button.button.is-green(v-on:click='saveUser')
|
button.button.is-green(v-on:click='saveUser')
|
||||||
i.icon-check
|
i.icon-check
|
||||||
span Save Changes
|
span Save Changes
|
||||||
.column
|
.column
|
||||||
.panel
|
.panel
|
||||||
label.label Provider
|
label.label Provider
|
||||||
p.control.account-profile-provider
|
p.control.account-profile-provider
|
||||||
case user.provider
|
case user.provider
|
||||||
when 'local': i.icon-server
|
when 'local': i.icon-server
|
||||||
when 'windowslive': i.icon-windows2.is-blue
|
when 'windowslive': i.icon-windows2.is-blue
|
||||||
when 'google': i.icon-google.is-blue
|
when 'google': i.icon-google.is-blue
|
||||||
when 'facebook': i.icon-facebook.is-purple
|
when 'facebook': i.icon-facebook.is-purple
|
||||||
default: i.icon-warning
|
default: i.icon-warning
|
||||||
= t('auth:providers.' + user.provider)
|
= t('auth:providers.' + user.provider)
|
||||||
label.label Member since
|
label.label Member since
|
||||||
p.control= userMoment(user.createdAt).format('LL')
|
p.control= userMoment(user.createdAt).format('LL')
|
||||||
label.label Last Profile Update
|
label.label Last Profile Update
|
||||||
p.control= userMoment(user.updatedAt).format('LL')
|
p.control= userMoment(user.updatedAt).format('LL')
|
||||||
|
|
||||||
script(type='text/javascript').
|
script(type='text/javascript').
|
||||||
var usrDataName = "!{user.name}";
|
var usrDataName = "!{user.name}";
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
extends ./_layout.pug
|
extends ./_layout.pug
|
||||||
|
|
||||||
block adminContent
|
block adminContent
|
||||||
.hero
|
.hero
|
||||||
h1.title#title Site Settings
|
h1.title#title Site Settings
|
||||||
h2.subtitle Manage site configuration
|
h2.subtitle Manage site configuration
|
||||||
.form-sections
|
.form-sections
|
||||||
section
|
section
|
||||||
| Coming soon
|
| Coming soon
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
extends ./_layout.pug
|
extends ./_layout.pug
|
||||||
|
|
||||||
block adminContent
|
block adminContent
|
||||||
.hero
|
.hero
|
||||||
h1.title#title Stats
|
h1.title#title Stats
|
||||||
h2.subtitle General site-wide statistics
|
h2.subtitle General site-wide statistics
|
||||||
.form-sections
|
.form-sections
|
||||||
section
|
section
|
||||||
label.label Entries
|
label.label Entries
|
||||||
p.control= totalEntries
|
p.control= totalEntries
|
||||||
label.label Uploads
|
label.label Uploads
|
||||||
p.control= totalUploads
|
p.control= totalUploads
|
||||||
label.label Users
|
label.label Users
|
||||||
p.control= totalUsers
|
p.control= totalUsers
|
||||||
|
@ -1,126 +1,126 @@
|
|||||||
extends ./_layout.pug
|
extends ./_layout.pug
|
||||||
|
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
.nav-item
|
.nav-item
|
||||||
a.button(href='/admin/users')
|
a.button(href='/admin/users')
|
||||||
i.icon-reply
|
i.icon-reply
|
||||||
span Return to Users
|
span Return to Users
|
||||||
|
|
||||||
block adminContent
|
block adminContent
|
||||||
#page-type-admin-users-edit
|
#page-type-admin-users-edit
|
||||||
.hero
|
.hero
|
||||||
h1.title#title Edit User
|
h1.title#title Edit User
|
||||||
h2.subtitle= usr.email
|
h2.subtitle= usr.email
|
||||||
table.table
|
table.table
|
||||||
thead
|
thead
|
||||||
tr
|
tr
|
||||||
th Unique ID
|
th Unique ID
|
||||||
th Provider
|
th Provider
|
||||||
th Created On
|
th Created On
|
||||||
th Updated On
|
th Updated On
|
||||||
tbody
|
tbody
|
||||||
tr
|
tr
|
||||||
td.is-centered= usr._id
|
td.is-centered= usr._id
|
||||||
td.is-centered.has-icons
|
td.is-centered.has-icons
|
||||||
case usr.provider
|
case usr.provider
|
||||||
when 'local'
|
when 'local'
|
||||||
i.icon-server.is-deep-orange
|
i.icon-server.is-deep-orange
|
||||||
| Local Database
|
| Local Database
|
||||||
when 'windowslive'
|
when 'windowslive'
|
||||||
i.icon-windows2.is-blue
|
i.icon-windows2.is-blue
|
||||||
| Microsoft Account
|
| Microsoft Account
|
||||||
when 'google'
|
when 'google'
|
||||||
i.icon-google.is-blue
|
i.icon-google.is-blue
|
||||||
| Google ID
|
| Google ID
|
||||||
when 'facebook'
|
when 'facebook'
|
||||||
i.icon-facebook.is-purple
|
i.icon-facebook.is-purple
|
||||||
| Facebook
|
| Facebook
|
||||||
default: i.icon-warning
|
default: i.icon-warning
|
||||||
td.is-centered= userMoment(usr.createdAt).format('lll')
|
td.is-centered= userMoment(usr.createdAt).format('lll')
|
||||||
td.is-centered= userMoment(usr.updatedAt).format('lll')
|
td.is-centered= userMoment(usr.updatedAt).format('lll')
|
||||||
.form-sections
|
.form-sections
|
||||||
section
|
section
|
||||||
label.label Email Address
|
label.label Email Address
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='john.smith@example.com', v-model='email', disabled=!usrOpts.canChangeEmail)
|
input.input(type='text', placeholder='john.smith@example.com', v-model='email', disabled=!usrOpts.canChangeEmail)
|
||||||
section
|
section
|
||||||
label.label Display Name
|
label.label Display Name
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='John Smith', v-model='name', disabled=!usrOpts.canChangeName)
|
input.input(type='text', placeholder='John Smith', v-model='name', disabled=!usrOpts.canChangeName)
|
||||||
if usrOpts.canChangePassword
|
if usrOpts.canChangePassword
|
||||||
section
|
section
|
||||||
label.label Password
|
label.label Password
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='password', placeholder='Password', v-model='password', value='********')
|
input.input(type='password', placeholder='Password', v-model='password', value='********')
|
||||||
section
|
section
|
||||||
label.label Access Rights
|
label.label Access Rights
|
||||||
table.table
|
table.table
|
||||||
thead.is-teal
|
thead.is-teal
|
||||||
tr
|
tr
|
||||||
th
|
th
|
||||||
th(style={width: '200px'}) Permission(s)
|
th(style={width: '200px'}) Permission(s)
|
||||||
th Path
|
th Path
|
||||||
th(style={width: '150px'}) Access
|
th(style={width: '150px'}) Access
|
||||||
th(style={width: '50px'})
|
th(style={width: '50px'})
|
||||||
tbody
|
tbody
|
||||||
tr(v-for='(right, idx) in rights', v-cloak)
|
tr(v-for='(right, idx) in rights', v-cloak)
|
||||||
td.is-icon
|
td.is-icon
|
||||||
i.icon-marquee-plus.is-green(v-if='right.deny === false || right.deny === "false"')
|
i.icon-marquee-plus.is-green(v-if='right.deny === false || right.deny === "false"')
|
||||||
i.icon-marquee-minus.is-red(v-if='right.deny === true || right.deny === "true"')
|
i.icon-marquee-minus.is-red(v-if='right.deny === true || right.deny === "true"')
|
||||||
td
|
td
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
select(v-model='right.role')
|
select(v-model='right.role')
|
||||||
option(value='write') Read and Write
|
option(value='write') Read and Write
|
||||||
option(value='read') Read Only
|
option(value='read') Read Only
|
||||||
td
|
td
|
||||||
.columns
|
.columns
|
||||||
.column.is-narrow
|
.column.is-narrow
|
||||||
p.control
|
p.control
|
||||||
select(v-model='right.exact')
|
select(v-model='right.exact')
|
||||||
option(value='false') Path starts with:
|
option(value='false') Path starts with:
|
||||||
option(value='true') Path match exactly:
|
option(value='true') Path match exactly:
|
||||||
.column
|
.column
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
input.input(type='text', placeholder='/', v-model='right.path')
|
input.input(type='text', placeholder='/', v-model='right.path')
|
||||||
td
|
td
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
select(v-model='right.deny')
|
select(v-model='right.deny')
|
||||||
option(value='false') Allow
|
option(value='false') Allow
|
||||||
option(value='true') Deny
|
option(value='true') Deny
|
||||||
td.is-centered.has-action-icons
|
td.is-centered.has-action-icons
|
||||||
i.icon-delete.is-red(v-on:click='removeRightsRow(idx)')
|
i.icon-delete.is-red(v-on:click='removeRightsRow(idx)')
|
||||||
tr(v-if='rights.length < 1', v-cloak)
|
tr(v-if='rights.length < 1', v-cloak)
|
||||||
td.is-icon
|
td.is-icon
|
||||||
td.is-centered(colspan='3'): em No additional access rights
|
td.is-centered(colspan='3'): em No additional access rights
|
||||||
td.is-centered.has-action-icons
|
td.is-centered.has-action-icons
|
||||||
.table-actions
|
.table-actions
|
||||||
button.button.is-blue(v-on:click='addRightsRow')
|
button.button.is-blue(v-on:click='addRightsRow')
|
||||||
i.icon-plus
|
i.icon-plus
|
||||||
span Add New Row
|
span Add New Row
|
||||||
section
|
section
|
||||||
label.label Role Override
|
label.label Role Override
|
||||||
p.control.is-fullwidth
|
p.control.is-fullwidth
|
||||||
select(v-model='roleoverride', disabled=!usrOpts.canChangeRole)
|
select(v-model='roleoverride', disabled=!usrOpts.canChangeRole)
|
||||||
option(value='none') None
|
option(value='none') None
|
||||||
option(value='admin') Global Administrator
|
option(value='admin') Global Administrator
|
||||||
.columns.is-gapless
|
.columns.is-gapless
|
||||||
.column
|
.column
|
||||||
section
|
section
|
||||||
button.button.is-green(v-on:click='saveUser')
|
button.button.is-green(v-on:click='saveUser')
|
||||||
i.icon-check
|
i.icon-check
|
||||||
span Save Changes
|
span Save Changes
|
||||||
a.button.button.is-grey.is-outlined(href='/admin/users')
|
a.button.button.is-grey.is-outlined(href='/admin/users')
|
||||||
i.icon-cancel
|
i.icon-cancel
|
||||||
span Discard
|
span Discard
|
||||||
.column.is-narrow
|
.column.is-narrow
|
||||||
section
|
section
|
||||||
if usrOpts.canBeDeleted
|
if usrOpts.canBeDeleted
|
||||||
button.button.is-red.btn-deluser-prompt
|
button.button.is-red.btn-deluser-prompt
|
||||||
i.icon-trash2
|
i.icon-trash2
|
||||||
span Delete Account
|
span Delete Account
|
||||||
|
|
||||||
include ../../modals/admin-deleteuser.pug
|
include ../../modals/admin-deleteuser.pug
|
||||||
|
|
||||||
script(type='text/javascript').
|
script(type='text/javascript').
|
||||||
var usrData = !{JSON.stringify(usr)};
|
var usrData = !{JSON.stringify(usr)};
|
||||||
|
@ -1,50 +1,50 @@
|
|||||||
extends ./_layout.pug
|
extends ./_layout.pug
|
||||||
|
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
.nav-item
|
.nav-item
|
||||||
a.button.btn-create-prompt
|
a.button.btn-create-prompt
|
||||||
i.icon-plus
|
i.icon-plus
|
||||||
span Create / Authorize User
|
span Create / Authorize User
|
||||||
|
|
||||||
block adminContent
|
block adminContent
|
||||||
#page-type-admin-users
|
#page-type-admin-users
|
||||||
.hero
|
.hero
|
||||||
h1.title#title Users
|
h1.title#title Users
|
||||||
h2.subtitle Manage users and access rights
|
h2.subtitle Manage users and access rights
|
||||||
table.table
|
table.table
|
||||||
thead
|
thead
|
||||||
tr
|
tr
|
||||||
th
|
th
|
||||||
th Name
|
th Name
|
||||||
th Email
|
th Email
|
||||||
th Provider
|
th Provider
|
||||||
th Created On
|
th Created On
|
||||||
th Updated On
|
th Updated On
|
||||||
tbody
|
tbody
|
||||||
each usr in usrs
|
each usr in usrs
|
||||||
tr
|
tr
|
||||||
td.is-icon
|
td.is-icon
|
||||||
i.icon-user.is-grey
|
i.icon-user.is-grey
|
||||||
td
|
td
|
||||||
a(href='/admin/users/' + usr._id)= usr.name
|
a(href='/admin/users/' + usr._id)= usr.name
|
||||||
td= usr.email
|
td= usr.email
|
||||||
td.is-centered.has-icons
|
td.is-centered.has-icons
|
||||||
case usr.provider
|
case usr.provider
|
||||||
when 'local'
|
when 'local'
|
||||||
i.icon-server.is-deep-orange
|
i.icon-server.is-deep-orange
|
||||||
| Local Database
|
| Local Database
|
||||||
when 'windowslive'
|
when 'windowslive'
|
||||||
i.icon-windows2.is-blue
|
i.icon-windows2.is-blue
|
||||||
| Microsoft Account
|
| Microsoft Account
|
||||||
when 'google'
|
when 'google'
|
||||||
i.icon-google.is-blue
|
i.icon-google.is-blue
|
||||||
| Google ID
|
| Google ID
|
||||||
when 'facebook'
|
when 'facebook'
|
||||||
i.icon-facebook.is-purple
|
i.icon-facebook.is-purple
|
||||||
| Facebook
|
| Facebook
|
||||||
default: i.icon-warning
|
default: i.icon-warning
|
||||||
td.is-centered= userMoment(usr.createdAt).format('lll')
|
td.is-centered= userMoment(usr.createdAt).format('lll')
|
||||||
td.is-centered= userMoment(usr.updatedAt).format('lll')
|
td.is-centered= userMoment(usr.updatedAt).format('lll')
|
||||||
|
|
||||||
include ../../modals/admin-createuser.pug
|
include ../../modals/admin-createuser.pug
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
extends ../layout.pug
|
extends ../layout.pug
|
||||||
|
|
||||||
block rootNavCenter
|
block rootNavCenter
|
||||||
h2.nav-item Create New Document
|
h2.nav-item Create New Document
|
||||||
|
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
span.nav-item
|
span.nav-item
|
||||||
a.button.is-outlined.btn-create-discard
|
a.button.is-outlined.btn-create-discard
|
||||||
i.icon-cross
|
i.icon-cross
|
||||||
span Discard
|
span Discard
|
||||||
a.button.btn-create-save
|
a.button.btn-create-save
|
||||||
i.icon-check
|
i.icon-check
|
||||||
span Save Document
|
span Save Document
|
||||||
|
|
||||||
block content
|
block content
|
||||||
|
|
||||||
#page-type-create(data-entrypath=pageData.meta.path)
|
#page-type-create(data-entrypath=pageData.meta.path)
|
||||||
.editor-area
|
.editor-area
|
||||||
textarea#mk-editor= pageData.markdown
|
textarea#mk-editor= pageData.markdown
|
||||||
|
|
||||||
include ../modals/create-discard.pug
|
include ../modals/create-discard.pug
|
||||||
include ../modals/editor-link.pug
|
include ../modals/editor-link.pug
|
||||||
include ../modals/editor-image.pug
|
include ../modals/editor-image.pug
|
||||||
include ../modals/editor-file.pug
|
include ../modals/editor-file.pug
|
||||||
include ../modals/editor-video.pug
|
include ../modals/editor-video.pug
|
||||||
include ../modals/editor-codeblock.pug
|
include ../modals/editor-codeblock.pug
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
extends ../layout.pug
|
extends ../layout.pug
|
||||||
|
|
||||||
block rootNavCenter
|
block rootNavCenter
|
||||||
h2.nav-item= pageData.meta.title
|
h2.nav-item= pageData.meta.title
|
||||||
|
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
span.nav-item
|
span.nav-item
|
||||||
a.button.is-outlined.btn-edit-discard
|
a.button.is-outlined.btn-edit-discard
|
||||||
i.icon-cross
|
i.icon-cross
|
||||||
span Discard
|
span Discard
|
||||||
a.button.btn-edit-save
|
a.button.btn-edit-save
|
||||||
i.icon-check
|
i.icon-check
|
||||||
span Save Changes
|
span Save Changes
|
||||||
|
|
||||||
block content
|
block content
|
||||||
|
|
||||||
#page-type-edit(data-entrypath=pageData.meta.path)
|
#page-type-edit(data-entrypath=pageData.meta.path)
|
||||||
.editor-area
|
.editor-area
|
||||||
textarea#mk-editor= pageData.markdown
|
textarea#mk-editor= pageData.markdown
|
||||||
|
|
||||||
include ../modals/edit-discard.pug
|
include ../modals/edit-discard.pug
|
||||||
include ../modals/editor-link.pug
|
include ../modals/editor-link.pug
|
||||||
include ../modals/editor-image.pug
|
include ../modals/editor-image.pug
|
||||||
include ../modals/editor-file.pug
|
include ../modals/editor-file.pug
|
||||||
include ../modals/editor-video.pug
|
include ../modals/editor-video.pug
|
||||||
include ../modals/editor-codeblock.pug
|
include ../modals/editor-codeblock.pug
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
extends ../layout.pug
|
extends ../layout.pug
|
||||||
|
|
||||||
block rootNavCenter
|
block rootNavCenter
|
||||||
h2.nav-item= pageData.meta.title
|
h2.nav-item= pageData.meta.title
|
||||||
|
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
span.nav-item
|
span.nav-item
|
||||||
if rights.write
|
if rights.write
|
||||||
a.button.is-outlined.btn-move-prompt.is-hidden
|
a.button.is-outlined.btn-move-prompt.is-hidden
|
||||||
i.icon-shuffle
|
i.icon-shuffle
|
||||||
span Move
|
span Move
|
||||||
a.button.is-outlined(href='/' + pageData.meta.path)
|
a.button.is-outlined(href='/' + pageData.meta.path)
|
||||||
i.icon-loader
|
i.icon-loader
|
||||||
span Normal View
|
span Normal View
|
||||||
if rights.write
|
if rights.write
|
||||||
a.button.is-orange(href='/edit/' + pageData.meta.path)
|
a.button.is-orange(href='/edit/' + pageData.meta.path)
|
||||||
i.fa.fa-edit
|
i.fa.fa-edit
|
||||||
span Edit
|
span Edit
|
||||||
a.button.is-blue.btn-create-prompt
|
a.button.is-blue.btn-create-prompt
|
||||||
i.fa.fa-plus
|
i.fa.fa-plus
|
||||||
span Create
|
span Create
|
||||||
|
|
||||||
block content
|
block content
|
||||||
|
|
||||||
#page-type-source(data-entrypath=pageData.meta.path)
|
#page-type-source(data-entrypath=pageData.meta.path)
|
||||||
.ace-container
|
.ace-container
|
||||||
#source-display= pageData.markdown
|
#source-display= pageData.markdown
|
||||||
|
|
||||||
include ../modals/create.pug
|
include ../modals/create.pug
|
||||||
include ../modals/move.pug
|
include ../modals/move.pug
|
||||||
|
@ -1,79 +1,79 @@
|
|||||||
extends ../layout.pug
|
extends ../layout.pug
|
||||||
|
|
||||||
mixin tocMenu(ti)
|
mixin tocMenu(ti)
|
||||||
each node in ti
|
each node in ti
|
||||||
li
|
li
|
||||||
a(href='#' + node.anchor, title=node.content)= node.content
|
a(href='#' + node.anchor, title=node.content)= node.content
|
||||||
if node.nodes.length > 0
|
if node.nodes.length > 0
|
||||||
ul
|
ul
|
||||||
+tocMenu(node.nodes)
|
+tocMenu(node.nodes)
|
||||||
|
|
||||||
block rootNavRight
|
block rootNavRight
|
||||||
i.nav-item#notifload
|
i.nav-item#notifload
|
||||||
.nav-item
|
.nav-item
|
||||||
if rights.write
|
if rights.write
|
||||||
a.button.is-outlined.btn-move-prompt.is-hidden
|
a.button.is-outlined.btn-move-prompt.is-hidden
|
||||||
i.icon-shuffle
|
i.icon-shuffle
|
||||||
span Move
|
span Move
|
||||||
a.button.is-outlined(href='/source/' + pageData.meta.path)
|
a.button.is-outlined(href='/source/' + pageData.meta.path)
|
||||||
i.icon-loader
|
i.icon-loader
|
||||||
span Source
|
span Source
|
||||||
if rights.write
|
if rights.write
|
||||||
a.button(href='/edit/' + pageData.meta.path)
|
a.button(href='/edit/' + pageData.meta.path)
|
||||||
i.icon-document-text
|
i.icon-document-text
|
||||||
span Edit
|
span Edit
|
||||||
a.button.btn-create-prompt
|
a.button.btn-create-prompt
|
||||||
i.icon-plus
|
i.icon-plus
|
||||||
span Create
|
span Create
|
||||||
|
|
||||||
block content
|
block content
|
||||||
|
|
||||||
#page-type-view(data-entrypath=pageData.meta.path)
|
#page-type-view(data-entrypath=pageData.meta.path)
|
||||||
.container.is-fluid
|
.container.is-fluid
|
||||||
.columns.is-gapless
|
.columns.is-gapless
|
||||||
|
|
||||||
.column.is-narrow.is-hidden-touch.sidebar
|
.column.is-narrow.is-hidden-touch.sidebar
|
||||||
|
|
||||||
aside
|
aside
|
||||||
.sidebar-label
|
.sidebar-label
|
||||||
i.icon-th-small
|
i.icon-th-small
|
||||||
span Navigation
|
span Navigation
|
||||||
ul.sidebar-menu
|
ul.sidebar-menu
|
||||||
li
|
li
|
||||||
a(href='/')
|
a(href='/')
|
||||||
i.icon-home
|
i.icon-home
|
||||||
span Home
|
span Home
|
||||||
if pageData.parent
|
if pageData.parent
|
||||||
li
|
li
|
||||||
a(href='/' + pageData.parent.path)
|
a(href='/' + pageData.parent.path)
|
||||||
i.icon-reply
|
i.icon-reply
|
||||||
span= pageData.parent.title
|
span= pageData.parent.title
|
||||||
if !isGuest
|
if !isGuest
|
||||||
li
|
li
|
||||||
a(href='/admin')
|
a(href='/admin')
|
||||||
i.icon-head
|
i.icon-head
|
||||||
span Account
|
span Account
|
||||||
else
|
else
|
||||||
li
|
li
|
||||||
a(href='/login')
|
a(href='/login')
|
||||||
i.icon-unlock
|
i.icon-unlock
|
||||||
span Login
|
span Login
|
||||||
aside.stickyscroll(data-margin-top=40)
|
aside.stickyscroll(data-margin-top=40)
|
||||||
.sidebar-label
|
.sidebar-label
|
||||||
i.icon-th-list
|
i.icon-th-list
|
||||||
span Contents
|
span Contents
|
||||||
ul.sidebar-menu
|
ul.sidebar-menu
|
||||||
li: a(href='#root', title='Start') Start
|
li: a(href='#root', title='Start') Start
|
||||||
+tocMenu(pageData.tree)
|
+tocMenu(pageData.tree)
|
||||||
|
|
||||||
.column
|
.column
|
||||||
|
|
||||||
.hero
|
.hero
|
||||||
h1.title#title= pageData.meta.title
|
h1.title#title= pageData.meta.title
|
||||||
if pageData.meta.subtitle
|
if pageData.meta.subtitle
|
||||||
h2.subtitle= pageData.meta.subtitle
|
h2.subtitle= pageData.meta.subtitle
|
||||||
.content.mkcontent
|
.content.mkcontent
|
||||||
!= pageData.html
|
!= pageData.html
|
||||||
|
|
||||||
include ../modals/create.pug
|
include ../modals/create.pug
|
||||||
include ../modals/move.pug
|
include ../modals/move.pug
|
||||||
|
Loading…
Reference in new issue