Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wiki-js
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
wiki-js
Commits
73c89dfe
Commit
73c89dfe
authored
Oct 13, 2019
by
NGPixel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: rebuild tree on page update
parent
62d1d7a1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
9 deletions
+32
-9
page.js
server/graph/resolvers/page.js
+1
-6
rebuild-tree.js
server/jobs/rebuild-tree.js
+1
-1
pages.js
server/models/pages.js
+30
-2
No files found.
server/graph/resolvers/page.js
View file @
73c89dfe
...
@@ -263,12 +263,7 @@ module.exports = {
...
@@ -263,12 +263,7 @@ module.exports = {
*/
*/
async
rebuildTree
(
obj
,
args
,
context
)
{
async
rebuildTree
(
obj
,
args
,
context
)
{
try
{
try
{
const
rebuildJob
=
await
WIKI
.
scheduler
.
registerJob
({
await
WIKI
.
models
.
pages
.
rebuildTree
()
name
:
'rebuild-tree'
,
immediate
:
true
,
worker
:
true
})
await
rebuildJob
.
finished
return
{
return
{
responseResult
:
graphHelper
.
generateSuccess
(
'Page tree rebuilt successfully.'
)
responseResult
:
graphHelper
.
generateSuccess
(
'Page tree rebuilt successfully.'
)
}
}
...
...
server/jobs/rebuild-tree.js
View file @
73c89dfe
...
@@ -10,7 +10,6 @@ module.exports = async (pageId) => {
...
@@ -10,7 +10,6 @@ module.exports = async (pageId) => {
await
WIKI
.
configSvc
.
loadFromDb
()
await
WIKI
.
configSvc
.
loadFromDb
()
await
WIKI
.
configSvc
.
applyFlags
()
await
WIKI
.
configSvc
.
applyFlags
()
await
WIKI
.
models
.
knex
.
table
(
'pageTree'
).
truncate
()
const
pages
=
await
WIKI
.
models
.
pages
.
query
().
select
(
'id'
,
'path'
,
'localeCode'
,
'title'
,
'isPrivate'
,
'privateNS'
).
orderBy
([
'localeCode'
,
'path'
])
const
pages
=
await
WIKI
.
models
.
pages
.
query
().
select
(
'id'
,
'path'
,
'localeCode'
,
'title'
,
'isPrivate'
,
'privateNS'
).
orderBy
([
'localeCode'
,
'path'
])
let
tree
=
[]
let
tree
=
[]
let
pik
=
0
let
pik
=
0
...
@@ -52,6 +51,7 @@ module.exports = async (pageId) => {
...
@@ -52,6 +51,7 @@ module.exports = async (pageId) => {
}
}
}
}
await
WIKI
.
models
.
knex
.
table
(
'pageTree'
).
truncate
()
if
(
tree
.
length
>
0
)
{
if
(
tree
.
length
>
0
)
{
await
WIKI
.
models
.
knex
.
table
(
'pageTree'
).
insert
(
tree
)
await
WIKI
.
models
.
knex
.
table
(
'pageTree'
).
insert
(
tree
)
}
}
...
...
server/models/pages.js
View file @
73c89dfe
...
@@ -270,6 +270,9 @@ module.exports = class Page extends Model {
...
@@ -270,6 +270,9 @@ module.exports = class Page extends Model {
// -> Render page to HTML
// -> Render page to HTML
await
WIKI
.
models
.
pages
.
renderPage
(
page
)
await
WIKI
.
models
.
pages
.
renderPage
(
page
)
// -> Rebuild page tree
await
WIKI
.
models
.
pages
.
rebuildTree
()
// -> Add to Search Index
// -> Add to Search Index
const
pageContents
=
await
WIKI
.
models
.
pages
.
query
().
findById
(
page
.
id
).
select
(
'render'
)
const
pageContents
=
await
WIKI
.
models
.
pages
.
query
().
findById
(
page
.
id
).
select
(
'render'
)
page
.
safeContent
=
WIKI
.
models
.
pages
.
cleanHTML
(
pageContents
.
render
)
page
.
safeContent
=
WIKI
.
models
.
pages
.
cleanHTML
(
pageContents
.
render
)
...
@@ -370,6 +373,11 @@ module.exports = class Page extends Model {
...
@@ -370,6 +373,11 @@ module.exports = class Page extends Model {
destinationPath
:
opts
.
path
,
destinationPath
:
opts
.
path
,
user
:
opts
.
user
user
:
opts
.
user
})
})
}
else
{
// -> Update title of page tree entry
await
WIKI
.
models
.
knex
.
table
(
'pageTree'
).
where
({
pageId
:
page
.
id
}).
update
(
'title'
,
page
.
title
)
}
}
return
page
return
page
...
@@ -427,6 +435,9 @@ module.exports = class Page extends Model {
...
@@ -427,6 +435,9 @@ module.exports = class Page extends Model {
}).
findById
(
page
.
id
)
}).
findById
(
page
.
id
)
await
WIKI
.
models
.
pages
.
deletePageFromCache
(
page
)
await
WIKI
.
models
.
pages
.
deletePageFromCache
(
page
)
// -> Rebuild page tree
await
WIKI
.
models
.
pages
.
rebuildTree
()
// -> Rename in Search Index
// -> Rename in Search Index
await
WIKI
.
data
.
searchEngine
.
renamed
({
await
WIKI
.
data
.
searchEngine
.
renamed
({
...
page
,
...
page
,
...
@@ -499,6 +510,9 @@ module.exports = class Page extends Model {
...
@@ -499,6 +510,9 @@ module.exports = class Page extends Model {
await
WIKI
.
models
.
pages
.
query
().
delete
().
where
(
'id'
,
page
.
id
)
await
WIKI
.
models
.
pages
.
query
().
delete
().
where
(
'id'
,
page
.
id
)
await
WIKI
.
models
.
pages
.
deletePageFromCache
(
page
)
await
WIKI
.
models
.
pages
.
deletePageFromCache
(
page
)
// -> Rebuild page tree
await
WIKI
.
models
.
pages
.
rebuildTree
()
// -> Delete from Search Index
// -> Delete from Search Index
await
WIKI
.
data
.
searchEngine
.
deleted
(
page
)
await
WIKI
.
data
.
searchEngine
.
deleted
(
page
)
...
@@ -519,14 +533,14 @@ module.exports = class Page extends Model {
...
@@ -519,14 +533,14 @@ module.exports = class Page extends Model {
}
}
/**
/**
* Reconnect links to new/
updated
/deleted page
* Reconnect links to new/
move
/deleted page
*
*
* @param {Object} opts - Page parameters
* @param {Object} opts - Page parameters
* @param {string} opts.path - Page Path
* @param {string} opts.path - Page Path
* @param {string} opts.locale - Page Locale Code
* @param {string} opts.locale - Page Locale Code
* @param {string} [opts.sourcePath] - Previous Page Path (move only)
* @param {string} [opts.sourcePath] - Previous Page Path (move only)
* @param {string} [opts.sourceLocale] - Previous Page Locale Code (move only)
* @param {string} [opts.sourceLocale] - Previous Page Locale Code (move only)
* @param {string} opts.mode - Page Update mode (
new
, move, delete)
* @param {string} opts.mode - Page Update mode (
create
, move, delete)
* @returns {Promise} Promise with no value
* @returns {Promise} Promise with no value
*/
*/
static
async
reconnectLinks
(
opts
)
{
static
async
reconnectLinks
(
opts
)
{
...
@@ -596,6 +610,20 @@ module.exports = class Page extends Model {
...
@@ -596,6 +610,20 @@ module.exports = class Page extends Model {
}
}
/**
/**
* Rebuild page tree for new/updated/deleted page
*
* @returns {Promise} Promise with no value
*/
static
async
rebuildTree
()
{
const
rebuildJob
=
await
WIKI
.
scheduler
.
registerJob
({
name
:
'rebuild-tree'
,
immediate
:
true
,
worker
:
true
})
return
rebuildJob
.
finished
}
/**
* Trigger the rendering of a page
* Trigger the rendering of a page
*
*
* @param {Object} page Page Model Instance
* @param {Object} page Page Model Instance
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment