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

View File

@ -144,8 +144,6 @@ var setup = function(){
- add loading spinner -- `.loading` class set on `.load(..)` and unset when done... - add loading spinner -- `.loading` class set on `.load(..)` and unset when done...
- DONE set/unset class - DONE set/unset class
- add animation - 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... - 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_ - _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?? - Q: Make the heading level depend on its depth??
@ -258,6 +256,7 @@ var setup = function(){
- `<editable/>` -- field marker - `<editable/>` -- field marker
- each child node will copy the template and allow editing of only fields - each child node will copy the template and allow editing of only fields
- not clear how to handle template changes... - 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??? - DONE Q: Should we use `HTMLTextAreaElement.autoUpdateSize(..)` or handle it globally in setup???
collapsed:: true collapsed:: true
- _...I'm leaning towards the later..._ - _...I'm leaning towards the later..._