From f24ecd2aa281e4274daa112d1b45e038e1d05bc9 Mon Sep 17 00:00:00 2001 From: QiTao Date: Sun, 9 Feb 2020 03:19:20 -0600 Subject: [PATCH] Task #26 - Rewrote export as html functions. --- app/assets/export-template.html | 11 ++++--- app/controllers/Export.controller.js | 44 ++++++++++++++++------------ 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/app/assets/export-template.html b/app/assets/export-template.html index 4ce3908..009056a 100644 --- a/app/assets/export-template.html +++ b/app/assets/export-template.html @@ -33,6 +33,7 @@ } .nav { + margin-left: -1rem; width: 100%; } @@ -49,6 +50,9 @@ .nav-link { color: beige; } + .contents { + padding: 2em; + } @@ -57,11 +61,10 @@
diff --git a/app/controllers/Export.controller.js b/app/controllers/Export.controller.js index 43c501c..8b5924e 100644 --- a/app/controllers/Export.controller.js +++ b/app/controllers/Export.controller.js @@ -44,7 +44,6 @@ class Export extends Controller { /* Archive directory */ const exec = require('child_process').exec; - console.log('zip -9jpr ' + path.resolve(temp_dir, '../archive.zip') + ' ' + path.resolve(temp_dir) + '/') exec('cd ' + path.resolve(temp_dir) + '; zip -r archive.zip *', (error) => { if (error) { console.error(`exec error: ${error}`); @@ -93,8 +92,8 @@ class Export extends Controller { const html_name = page.Name.replace(/\s/g, '_') + '.html' mapping[page.UUID] = html_name } - console.log(page0) - const sidebar_html = await this._generate_sidebar(mapping, page0) //generates the sidebar contents + + const sidebar_html = await this._generate_sidebar(mapping, user) //generates the sidebar contents const temp_dir = path.resolve(os.tmpdir(), uuid()) //make temporary directory await fs.mkdir(temp_dir) @@ -102,16 +101,13 @@ class Export extends Controller { for (const page of pages) { const fs = require('fs').promises const contents = (await fs.readFile(path.resolve(this.app.directories.assets, 'export-template.html'))).toString('utf8') - console.log(page) - //console.log({contents}) const content_html = await this._generate_html(page) - //console.log({content_html, sidebar_html}) - const page_html = contents.replace('%%SIDEBAR%%', sidebar_html).replace('%%CONTENTS%%', content_html) + const page_html = contents.replace('%%CONTENTS%%', content_html).replace('%%SIDEBAR%%', sidebar_html) await fs.writeFile(path.resolve(temp_dir, mapping[page.UUID]), page_html) } /* Archive directory */ const exec = require('child_process').exec; - exec('zip -r ' + path.resolve(temp_dir, 'archive.zip') + ' ' + path.resolve(temp_dir), (error) => { + exec('cd ' + path.resolve(temp_dir) + '; zip -r archive.zip *', (error) => { if (error) { console.error(`exec error: ${error}`); return res.error(500); @@ -120,22 +116,32 @@ class Export extends Controller { return res.sendFile(`${path.resolve(temp_dir, 'archive.zip')}`) }) } - async _generate_sidebar(mapping, upper_node) { //generate sidebar from mapping array and upper_node + async _generate_sidebar(mapping, user) {// the absolutely dreadful method to create, sidebar const Page = this.models.get('api:Page') - console.log(upper_node) - console.log(upper_node.ChildPageIds == 'undefined') - if (upper_node.ChildPageIds == 'undefined') { - return '' + upper_node.Name + '' - } else { - let base = '