diff --git a/src/cli/cms/operations/post.js b/src/cli/cms/operations/post.js index 1cc6411..74bcd0b 100644 --- a/src/cli/cms/operations/post.js +++ b/src/cli/cms/operations/post.js @@ -141,6 +141,7 @@ export function reject(filePath, tplPath, json) { error: resSave.error } } else if(typeof resSave.reject !== 'undefined' && resSave.reject !== null){ + resSave.success = 1 result = resSave } else if(typeof resSave.json !== 'undefined' && resSave.json !== null){ result = { diff --git a/src/cli/cms/operations/save.js b/src/cli/cms/operations/save.js index dfc8ec3..4857b14 100755 --- a/src/cli/cms/operations/save.js +++ b/src/cli/cms/operations/save.js @@ -168,7 +168,9 @@ export function save(url, tplPath, json = null, text = '', type = '', previousSa export function saveJsonAndHtml(templateId, obj, html) { var page = new Page(templateId, html, obj.json.content, true) - saveHtml(obj.html.path, page.html) + if (obj.json.content.abe_meta.status === 'publish') { + saveHtml(obj.html.path, page.html) + } saveJson(obj.json.path, obj.json.content) return { diff --git a/src/server/public/scripts/modules/EditorJson.js b/src/server/public/scripts/modules/EditorJson.js index 2365f57..bd298bd 100755 --- a/src/server/public/scripts/modules/EditorJson.js +++ b/src/server/public/scripts/modules/EditorJson.js @@ -65,10 +65,10 @@ export default class Json { alert(jsonRes.error) return } - if(typeof jsonRes.reject !== 'undefined' && jsonRes.reject !== null) { - location.reload() - return - } + // if(typeof jsonRes.reject !== 'undefined' && jsonRes.reject !== null) { + // location.reload() + // return + // } this.data = jsonRes.json } catch(e){ diff --git a/src/server/public/scripts/modules/EditorSave.js b/src/server/public/scripts/modules/EditorSave.js index 9beaf83..63c1a07 100755 --- a/src/server/public/scripts/modules/EditorSave.js +++ b/src/server/public/scripts/modules/EditorSave.js @@ -3,13 +3,17 @@ import {IframeNode} from '../utils/iframe' import EditorUtils from './EditorUtils' import Json from '../modules/EditorJson' +import on from 'on' export default class EditorSave { constructor() { this._json = Json.instance this._saveType = 'draft' + this.onFileSaved = on(this) + this._abeForm = document.querySelector('#abeForm') + this._abeDisplayStatus = document.querySelector('[data-display-status]') this._abeFormSubmit = document.querySelector('#abeForm button[type=submit]') this._handleSubmitClick = this._submitClick.bind(this) @@ -137,7 +141,11 @@ export default class EditorSave { target.classList.remove('done') target.removeAttribute('disabled') - if(result.success === 1) location.reload() + this._abeDisplayStatus.innerHTML = result.json.abe_meta.status + if(result.success === 1) { + json = result.json + } + this.onFileSaved._fire() }).catch(function(e) { console.error(e) }) diff --git a/src/server/public/scripts/template-engine.js b/src/server/public/scripts/template-engine.js index 879faa3..d894e7b 100755 --- a/src/server/public/scripts/template-engine.js +++ b/src/server/public/scripts/template-engine.js @@ -44,6 +44,9 @@ class Engine { 'autoWidth': false }) }) + + var abeReady = new Event('abeReady'); + document.dispatchEvent(abeReady); } inject() { @@ -107,6 +110,7 @@ class Engine { var engine = new Engine() window.abe = { + save: engine._save, json: engine.json, inputs: engine._inputs, files: engine._files, diff --git a/src/server/routes/get-main.js b/src/server/routes/get-main.js index 481f566..a32a9b6 100644 --- a/src/server/routes/get-main.js +++ b/src/server/routes/get-main.js @@ -50,7 +50,6 @@ var route = function(req, res, next) { var filePathTest = cmsData.revision.getDocumentRevision(req.query.filePath) if(typeof filePathTest !== 'undefined' && filePathTest !== null) { - // filePath = filePathTest.path jsonPath = filePathTest.path linkPath = filePathTest.abe_meta.link } @@ -58,31 +57,11 @@ var route = function(req, res, next) { if(jsonPath === null || !coreUtils.file.exist(jsonPath)) { res.redirect('/abe/') return - } + } editor(templatePath, jsonPath, linkPath) .then((result) => { - var manager = {} - var revisionFilePath = coreUtils.file.changePath(filePath, config.draft.url) - var dirPath = path.dirname(revisionFilePath) - var allDraft = cmsData.file.getFiles(dirPath, true, 99, new RegExp('\\.' + config.files.templates.extension)) - - allDraft = cmsData.metas.get(allDraft, 'draft') - var breadcrumb = req.params[0].split('/') - manager.file = { - revision: cmsData.revision.getFilesRevision(allDraft, cmsData.fileAttr.delete(revisionFilePath)) - ,template: breadcrumb - ,path: (req.query.filePath) ? path.resolve(req.query.filePath).replace(/^\//, '') : '' - } - if(manager.file.revision.length > 0){ - var publishPath = cmsData.fileAttr.delete(manager.file.revision[0].path.replace(new RegExp(`/${config.draft.url}/`), `/${config.publish.url}/`)) - manager.file.isPublished = coreUtils.file.exist(publishPath) - } - - resolve({ - obj: result, - manager: manager - }) + resolve(result) }).catch(function(e) { console.error(e) }) @@ -97,9 +76,8 @@ var route = function(req, res, next) { }) p.then((result) => { - var obj = result.obj - var manager = result.manager - // let tplUrl = result.tplUrl + var obj = result + var manager = {} manager.home = { files: Manager.instance.getList() diff --git a/src/server/views/partials/engine.html b/src/server/views/partials/engine.html index 1042eb3..f790970 100644 --- a/src/server/views/partials/engine.html +++ b/src/server/views/partials/engine.html @@ -28,7 +28,7 @@
- current status : {{@root.json.abe_meta.status}} + current status : {{@root.json.abe_meta.status}}