feat: All Pages directory handling
This commit is contained in:
		@@ -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 () {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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"')
 | 
				
			||||||
 | 
					              i(:class='{ "icon-folder2": page.isDirectory, "icon-file-text-o": !page.isDirectory }')
 | 
				
			||||||
              span {{ page.title }}
 | 
					              span {{ page.title }}
 | 
				
			||||||
 | 
					            template(v-else)
 | 
				
			||||||
 | 
					              i.icon-home
 | 
				
			||||||
 | 
					              span Home
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user