Fixed pug linting issues

pull/33/head
NGPixel 8 years ago
parent 3566a78cff
commit 15e4341fed

@ -9,8 +9,8 @@
"requireLowerCaseTags": true, "requireLowerCaseTags": true,
"requireSpaceAfterCodeOperator": true, "requireSpaceAfterCodeOperator": true,
"requireStrictEqualityOperators": true, "requireStrictEqualityOperators": true,
"validateAttributeQuoteMarks": true, "validateAttributeQuoteMarks": "'",
"validateAttributeSeparator": ", ", "validateAttributeSeparator": ", ",
"validateDivTags": true, "validateDivTags": true,
"validateIndentation": 2 "validateIndentation": 2
} }

@ -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

@ -30,4 +30,4 @@
.column .column
label.label Link label.label Link
p.control p.control
input.input(type='text', placeholder='http://') input.input(type='text', placeholder='http://')

@ -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

@ -3,14 +3,14 @@ extends ../layout.pug
block rootNavCenter block rootNavCenter
block rootNavRight block rootNavRight
i.nav-item#notifload i.nav-item#notifload
block content block content
#page-type-welcome #page-type-welcome
.container .container
.welcome .welcome
img(src='/favicons/android-icon-144x144.png',alt='Wiki.js') img(src='/favicons/android-icon-144x144.png', alt='Wiki.js')
h1 Welcome to your Wiki.js! h1 Welcome to your Wiki.js!
h2 Let's get started and create the home page. h2 Let's get started and create the home page.
a.button.is-indigo(href='/create/home') Create Home Page a.button.is-indigo(href='/create/home') Create Home Page

Loading…
Cancel
Save