forked from projects/fipamo
pages re-indexing up and running, added button to settings under MAINTENANCE tab
This commit is contained in:
parent
7df3d22a29
commit
1130bcabdb
8 changed files with 136 additions and 9 deletions
|
@ -67,7 +67,7 @@ router.post('/sync', (req, res) => {
|
||||||
router.post('/nav-sync', (req, res) => {
|
router.post('/nav-sync', (req, res) => {
|
||||||
auth.authCheck(req)
|
auth.authCheck(req)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// find removoed menu item page and set menu to false
|
// find removed menu item page and set menu to false
|
||||||
book.getPage(req.body.remove).then(page => {
|
book.getPage(req.body.remove).then(page => {
|
||||||
let body = page.metadata;
|
let body = page.metadata;
|
||||||
body.content = page.content;
|
body.content = page.content;
|
||||||
|
@ -206,6 +206,31 @@ router.post('/add-feature-background', background_upload, (req, res) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.post('/reindex', (req, res) => {
|
||||||
|
auth.authCheck(req)
|
||||||
|
.then(() => {
|
||||||
|
book.reindexPages(req)
|
||||||
|
.then(response => {
|
||||||
|
//reset settings index
|
||||||
|
settings.resetLibraryIndex(response.count + 1);
|
||||||
|
//return success to front end
|
||||||
|
res.json(response);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
res.json({
|
||||||
|
type: err.type,
|
||||||
|
message: err.message
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
res.json({
|
||||||
|
type: err.type,
|
||||||
|
message: err.message
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|
||||||
function getBookData() {
|
function getBookData() {
|
||||||
|
|
|
@ -227,6 +227,46 @@ export default class Book {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reindexPages(req) {
|
||||||
|
var response = '';
|
||||||
|
var self = this;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
self.getPage()
|
||||||
|
.then(pages => {
|
||||||
|
let sorted = [];
|
||||||
|
for (let i = 0; i < pages.length; i++) {
|
||||||
|
let body = pages[i].metadata;
|
||||||
|
body.content = pages[i].content;
|
||||||
|
sorted.push(body);
|
||||||
|
}
|
||||||
|
//resorts pages by date created
|
||||||
|
let byDate = _.sortBy(sorted, page => {
|
||||||
|
return page.created;
|
||||||
|
});
|
||||||
|
//reassigns id sequentially based on sorted pages
|
||||||
|
for (let index = 0; index < byDate.length; index++) {
|
||||||
|
byDate[index].id = index;
|
||||||
|
self.editPage(
|
||||||
|
byDate[index],
|
||||||
|
index,
|
||||||
|
DataEvent.API_PAGE_WRITE,
|
||||||
|
req.session.user
|
||||||
|
);
|
||||||
|
}
|
||||||
|
response = {
|
||||||
|
type: DataEvent.API_REINDEX_PAGES,
|
||||||
|
message: 'Pages re-sorted. Easy peasy.',
|
||||||
|
count: byDate.length
|
||||||
|
};
|
||||||
|
resolve(response);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
response = { type: DataEvent.PAGE_ERROR, message: err };
|
||||||
|
reject(response);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------
|
//--------------------------
|
||||||
// event handlers
|
// event handlers
|
||||||
//--------------------------
|
//--------------------------
|
||||||
|
|
|
@ -122,8 +122,32 @@ export default class Settings {
|
||||||
updatePageIndex() {
|
updatePageIndex() {
|
||||||
fs.readJSON('site/settings.json').then(settings => {
|
fs.readJSON('site/settings.json').then(settings => {
|
||||||
settings.library_stats.current_index = ++settings.library_stats.current_index;
|
settings.library_stats.current_index = ++settings.library_stats.current_index;
|
||||||
//settings.library_stats.total_pages = ++settings.library_stats.total_pages;
|
setTimeout(() => {
|
||||||
fs.writeJSON('site/settings.json', settings);
|
//TODO: Duct tape solution until something better created
|
||||||
|
fs.writeJSON('site/settings.json', settings)
|
||||||
|
.then(() => {
|
||||||
|
//console.log('ALL TO THE GOOD');
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
//.log('ERR', err);
|
||||||
|
});
|
||||||
|
}, 100);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
resetLibraryIndex(index) {
|
||||||
|
fs.readJSON('site/settings.json').then(settings => {
|
||||||
|
settings.library_stats.current_index = index;
|
||||||
|
setTimeout(() => {
|
||||||
|
//TODO: Duct tape solution until something better created
|
||||||
|
fs.writeJSON('site/settings.json', settings)
|
||||||
|
.then(() => {
|
||||||
|
//console.log('ALL TO THE GOOD');
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
//.log('ERR', err);
|
||||||
|
});
|
||||||
|
}, 100);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
load(fileToLoad) {
|
load(fileToLoad) {
|
||||||
|
|
|
@ -97,10 +97,6 @@ export default class Utils {
|
||||||
}
|
}
|
||||||
render.publishArchive(archive);
|
render.publishArchive(archive);
|
||||||
}
|
}
|
||||||
reindexPages(pages) {
|
|
||||||
conosle.log('PAGES');
|
|
||||||
//let byDate = _.sortBy(pages, ['created']);
|
|
||||||
}
|
|
||||||
moveAssets() {
|
moveAssets() {
|
||||||
settings
|
settings
|
||||||
.load(SETTINGS_FILE)
|
.load(SETTINGS_FILE)
|
||||||
|
|
|
@ -57,6 +57,8 @@ block main-content
|
||||||
input(id="backup-upload" type="file" name="backup-upload")
|
input(id="backup-upload" type="file" name="backup-upload")
|
||||||
#util-2.column
|
#util-2.column
|
||||||
label MAINTENANCE
|
label MAINTENANCE
|
||||||
|
br
|
||||||
|
button#reindex-pages REINDEX PAGES
|
||||||
#option-settings.columns
|
#option-settings.columns
|
||||||
#theme-settings.column
|
#theme-settings.column
|
||||||
label THEMES
|
label THEMES
|
||||||
|
|
|
@ -92,6 +92,10 @@ export default class SettingsIndex {
|
||||||
document
|
document
|
||||||
.getElementById('create-backup')
|
.getElementById('create-backup')
|
||||||
.addEventListener('click', e => this.handleBackup(e));
|
.addEventListener('click', e => this.handleBackup(e));
|
||||||
|
|
||||||
|
document
|
||||||
|
.getElementById('reindex-pages')
|
||||||
|
.addEventListener('click', e => this.handleReindex(e));
|
||||||
}
|
}
|
||||||
//--------------------------
|
//--------------------------
|
||||||
// event handlers
|
// event handlers
|
||||||
|
@ -199,4 +203,19 @@ export default class SettingsIndex {
|
||||||
notify.alert(err, false);
|
notify.alert(err, false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleReindex(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
let task = { task: 'cleanup pages indexes' };
|
||||||
|
notify.alert('Cleaning up page indexes', null);
|
||||||
|
admin
|
||||||
|
.handleReindex(task)
|
||||||
|
.then(r => {
|
||||||
|
notify.alert(r.message, true);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
notify.alert(err, false);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ export const API_BACKUP_DOWNLOAD = 'downloadBackup';
|
||||||
export const API_BACKUP_RESTORE = 'downloadBackup';
|
export const API_BACKUP_RESTORE = 'downloadBackup';
|
||||||
export const API_IMAGES_UPLOAD = 'uploadProfileImages';
|
export const API_IMAGES_UPLOAD = 'uploadProfileImages';
|
||||||
export const API_RENDER_PAGES = 'renderPages';
|
export const API_RENDER_PAGES = 'renderPages';
|
||||||
|
export const API_REINDEX_PAGES = 'reindexPages';
|
||||||
export const API_INIT = 'blogInit';
|
export const API_INIT = 'blogInit';
|
||||||
export const API_INIT_GOOD = 'blogInitGood';
|
export const API_INIT_GOOD = 'blogInitGood';
|
||||||
export const API_INIT_LAME = 'blogInitLame';
|
export const API_INIT_LAME = 'blogInitLame';
|
||||||
|
|
|
@ -18,6 +18,7 @@ export const API_UPLOAD_AVATAR = '/api/v1/settings/add-avatar';
|
||||||
export const API_UPLOAD_BACKGROUND = '/api/v1/settings/add-feature-background';
|
export const API_UPLOAD_BACKGROUND = '/api/v1/settings/add-feature-background';
|
||||||
export const API_PUBLISH_PAGES = '/api/v1/settings/publish-pages';
|
export const API_PUBLISH_PAGES = '/api/v1/settings/publish-pages';
|
||||||
export const API_NAV_SYNC = '/api/v1/settings/nav-sync';
|
export const API_NAV_SYNC = '/api/v1/settings/nav-sync';
|
||||||
|
export const API_REINDEX_PAGES = '/api/v1/settings/reindex';
|
||||||
export const API_CREATE_BACKUP = '/api/v1/backup/create';
|
export const API_CREATE_BACKUP = '/api/v1/backup/create';
|
||||||
export const API_DOWNLOAD_BACKUP = '/api/v1/backup/download';
|
export const API_DOWNLOAD_BACKUP = '/api/v1/backup/download';
|
||||||
export const API_RESTORE_BACKUP = '/api/v1/backup/restore';
|
export const API_RESTORE_BACKUP = '/api/v1/backup/restore';
|
||||||
|
@ -244,6 +245,24 @@ export default class APIUtils {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleReindex(data) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
this._request(
|
||||||
|
API_REINDEX_PAGES,
|
||||||
|
DataEvent.API_REINDEX_PAGES,
|
||||||
|
REQUEST_TYPE_POST,
|
||||||
|
CONTENT_TYPE_JSON,
|
||||||
|
data
|
||||||
|
)
|
||||||
|
.then(result => {
|
||||||
|
resolve(result);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
//--------------------------
|
//--------------------------
|
||||||
// private
|
// private
|
||||||
//--------------------------
|
//--------------------------
|
||||||
|
@ -276,7 +295,8 @@ export default class APIUtils {
|
||||||
eventType === DataEvent.API_PAGE_DELETE ||
|
eventType === DataEvent.API_PAGE_DELETE ||
|
||||||
eventType === DataEvent.API_RENDER_PAGES ||
|
eventType === DataEvent.API_RENDER_PAGES ||
|
||||||
eventType === DataEvent.API_BACKUP_CREATE ||
|
eventType === DataEvent.API_BACKUP_CREATE ||
|
||||||
eventType === DataEvent.API_BACKUP_RESTORE
|
eventType === DataEvent.API_BACKUP_RESTORE ||
|
||||||
|
eventType === DataEvent.API_REINDEX_PAGES
|
||||||
)
|
)
|
||||||
request.setRequestHeader('x-access-token', self.token);
|
request.setRequestHeader('x-access-token', self.token);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue