feat: All Pages directory handling

This commit is contained in:
NGPixel 2017-04-23 15:54:35 -04:00
parent f44d0a3c44
commit 0d3e10edda
3 changed files with 25 additions and 5 deletions

View File

@ -4,6 +4,8 @@ import $ from 'jquery'
import Vue from 'vue' import Vue from 'vue'
import _ from 'lodash' import _ from 'lodash'
const rootUrl = '/'
module.exports = (alerts, socket) => { module.exports = (alerts, socket) => {
if ($('#page-type-all').length) { if ($('#page-type-all').length) {
let vueAllPages = new Vue({ // eslint-disable-line no-unused-vars let vueAllPages = new Vue({ // eslint-disable-line no-unused-vars
@ -29,6 +31,9 @@ module.exports = (alerts, socket) => {
$('#notifload').removeClass('active') $('#notifload').removeClass('active')
}) })
}) })
},
goto: function (entryPath) {
window.location.assign(rootUrl + entryPath)
} }
}, },
mounted: function () { mounted: function () {

View File

@ -301,7 +301,7 @@ module.exports = {
winston.error(err) winston.error(err)
return err return err
}).then((content) => { }).then((content) => {
// let entryPaths = _.split(content.entryPath, '/') let parentPath = _.chain(content.entryPath).split('/').initial().join('/').value()
return db.Entry.findOneAndUpdate({ return db.Entry.findOneAndUpdate({
_id: content.entryPath _id: content.entryPath
}, { }, {
@ -309,11 +309,22 @@ module.exports = {
title: content.meta.title || content.entryPath, title: content.meta.title || content.entryPath,
subtitle: content.meta.subtitle || '', subtitle: content.meta.subtitle || '',
parentTitle: content.parent.title || '', parentTitle: content.parent.title || '',
parentPath: content.parent.path || '' parentPath: parentPath,
isDirectory: false
}, { }, {
new: true, new: true,
upsert: true upsert: true
}) })
}).then(result => {
return db.Entry.distinct('parentPath', { parentPath: { $ne: '' } }).then(allPaths => {
if (allPaths.length > 0) {
return db.Entry.updateMany({ _id: { $in: allPaths } }, { $set: { isDirectory: true } }).then(() => {
return result
})
} else {
return result
}
})
}).catch(err => { }).catch(err => {
winston.error(err) winston.error(err)
return err return err

View File

@ -28,6 +28,10 @@ block content
span Login span Login
ul.collapsable-nav(v-for='treeItem in tree', :class='{ "has-children": treeItem.hasChildren }', v-cloak) ul.collapsable-nav(v-for='treeItem in tree', :class='{ "has-children": treeItem.hasChildren }', v-cloak)
li(v-for='page in treeItem.pages', :class='{ "is-active": page.isActive }') li(v-for='page in treeItem.pages', :class='{ "is-active": page.isActive }')
a(v-on:click='fetch(page._id)') a(v-on:click='(page.isDirectory) ? fetch(page._id) : goto(page._id)')
i(:class='{ "icon-folder2": page.isFolder, "icon-file": !page.isFolder }') template(v-if='page._id !== "home"')
span {{ page.title }} i(:class='{ "icon-folder2": page.isDirectory, "icon-file-text-o": !page.isDirectory }')
span {{ page.title }}
template(v-else)
i.icon-home
span Home