Compare commits

...

2 Commits

Author SHA1 Message Date
934cae33f3 cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-12-14 19:06:39 +03:00
a308f32b14 refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2023-12-14 19:03:33 +03:00
2 changed files with 30 additions and 12 deletions

View File

@ -1776,7 +1776,20 @@ var Outline = {
// serialization...
data: function(elem, deep=true){
elem = this.get(elem)
var that = this
elem =
// all elements...
(elem == 'all' || elem == 'root' || elem == '*') ?
[...this.outline.children]
: elem instanceof Array ?
elem
: this.get(elem)
// multiple nodes...
if(elem instanceof Array){
return elem
.map(function(elem){
return that.data(elem) }) }
// single node...
// XXX move these to config...
var attrs = this.__block_attrs__
var cls_attrs = ['focused']
@ -1795,17 +1808,23 @@ var Outline = {
&& (res[attr] = true) }
return res }, {})),
...(deep ?
{children: this.json(elem)}
//{children: this.json(elem)}
{children: [...elem.lastChild.children]
.map(function(elem){
return that.data(elem) })}
: {}),
} },
json: function(node){
var that = this
var children = [...(node ?
node.lastChild.children
: this.outline.children)]
return children
.map(function(elem){
return that.data(elem) }) },
// XXX do we need both this and data???
// ...the only differences are:
// - the default behavior node vs all
// - .json() always returns an array
// XXX should this always return a list???
json: function(node='all'){
return [this.data(...(
arguments.length == 0 ?
['all']
: arguments))]
.flat() },
// XXX should this handle children???
// XXX revise name...

View File

@ -144,8 +144,6 @@ var setup = function(){
- add loading spinner -- `.loading` class set on `.load(..)` and unset when done...
- DONE set/unset class
- add animation
- `.json(..)`, `.data(..)`, ... should be signature compatible with `.get(..)` (???)
- _current state causes constant confusion..._
- Time to think about a standalone client -- at least to edit own notes as a test...
- _also this would be a nice opportunity to start the move to a newer electron version_
- Q: Make the heading level depend on its depth??
@ -258,6 +256,7 @@ var setup = function(){
- `<editable/>` -- field marker
- each child node will copy the template and allow editing of only fields
- not clear how to handle template changes...
- DONE `.json(..)`, `.data(..)`, ... should be signature compatible with `.get(..)` (???)
- DONE Q: Should we use `HTMLTextAreaElement.autoUpdateSize(..)` or handle it globally in setup???
collapsed:: true
- _...I'm leaning towards the later..._