added basic editor + basic settings page...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2022-08-14 03:00:06 +03:00
parent be3b1f11ff
commit 02ebc61a59
4 changed files with 46 additions and 4 deletions

View File

@ -31,6 +31,8 @@ module.store =
store.update('System',
Object.create(basestore.BaseStore).load(page.System))
store.update('Settings',
Object.create(basestore.BaseStore).load(page.Settings))
var pwiki =
module.pwiki =

View File

@ -664,7 +664,7 @@ object.Constructor('Page', BasePage, {
// XXX can we lose stuff from state this way???
// ...at this stage it should more or less be static -- check!
var res =
await this.__parser__.filter(this, ast, {
await this.__parser__.parse(this, ast, {
...state,
filters: local.includes(this.ISOLATED_FILTERS) ?
local
@ -1231,6 +1231,15 @@ module.System = {
// XXX not sure if this is the right way to go...
_code: {
text: '<pre wikiwords="no"><quote filter="quote-tags" src="."/></pre>' },
//_edit: {
_ed: {
text:
'<pre class="editor" '
+'wikiwords="no" '
+'contenteditable '
+'oninput="saveContent(\'@source(./path)\', this.innerText)">'
+'<quote filter="quote-tags" src="."/>'
+'</pre>' },
// base system pages...
@ -1302,6 +1311,15 @@ module.System = {
// XXX System/reverse
}
var Settings =
module.Settings = {
Export: {
text: '<button onclick="exportData()">Export</button>' },
// XXX
Settings: {
text: '{}' },
}

View File

@ -131,8 +131,24 @@ require(['./browser'], function(pwiki){
})
// XXX make this a 2 stage save -- first cache and then save to store...
// XXX versioning???
var SAVE_TIMEOUT = 5000
var SAVE_QUEUE = {}
var saveContent = function(path, text){
SAVE_QUEUE[path] = text }
var saveNow = function(){
var queue = Object.entries(SAVE_QUEUE)
SAVE_QUEUE = {}
queue
.forEach(function([path, text]){
console.log('saving changes to:', path)
pwiki.get(path).raw = text }) }
setInterval(saveNow, 5000)
// XXX
var saveData = async function(){
var exportData = async function(){
var blob = new Blob([await pwiki.store.json(true)], {type: "text/plain;charset=utf-8"});
var a = document.createElement('a')

View File

@ -1,6 +1,7 @@
/**********************************************************************
*
*
* XXX BUG: comments seem to be broken -- see: /Doc/About
* XXX BUG: browser: .get('/*').raw hangs...
* XXX add action to reset overloaded (bootstrap) pages...
* - per page
@ -17,8 +18,10 @@
* - render page -- DONE
* - navigation -- DONE
* - hash/anchor -- DONE
* - basic editor and interactivity
* - export / zip
* - basic editor and interactivity -- DONE
* - export
* - json -- DONE
* - zip
* - migrate bootstrap
* - store topology
* - sync and sync conf
@ -229,6 +232,9 @@ module.store =
// XXX nested system store...
store.update('System',
Object.create(basestore.BaseStore).load(page.System))
store.update('Settings',
Object.create(basestore.BaseStore).load(page.Settings))
// NOTE: in general the root wiki api is simply a page instance.