From fb36d3660f755b03b47079c3e597c6a7cabed56b Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sun, 23 Jun 2019 05:07:06 +0300 Subject: [PATCH] notes and tweaks... Signed-off-by: Alex A. Naanou --- ui (gen4)/lib/widget/browse2.html | 9 ++++++--- ui (gen4)/lib/widget/browse2.js | 23 ++++++++++++++++------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ui (gen4)/lib/widget/browse2.html b/ui (gen4)/lib/widget/browse2.html index 6bf7ee3e..27da9f0c 100755 --- a/ui (gen4)/lib/widget/browse2.html +++ b/ui (gen4)/lib/widget/browse2.html @@ -222,9 +222,12 @@ requirejs([ // XXX this is not supported by .map(..)... make.nest('$ne$sted', browser.Browser(function(make){ make('ab') - make($('')) - //make($('')[0]) - //make('') + //make('', + //make($('')[0], + make($(''), + { + alt: 'image item example' + }) })), ]) make('in between two $subtrees...') diff --git a/ui (gen4)/lib/widget/browse2.js b/ui (gen4)/lib/widget/browse2.js index 8decab05..f2fee6a9 100755 --- a/ui (gen4)/lib/widget/browse2.js +++ b/ui (gen4)/lib/widget/browse2.js @@ -3760,9 +3760,19 @@ var BrowserPrototype = { item.disabled || elem.setAttribute('tabindex', '0') Object.entries(item.attrs || {}) + // shorthand attrs... + .concat([ + 'alt' + ].map(function(key){ + return [key, item[key]] })) .forEach(function([key, value]){ - elem.setAttribute(key, value) }) - elem.setAttribute('value', text) + value !== undefined + && elem.setAttribute(key, value) }) + elem.setAttribute('value', + // XXX should text handling be done here only or globally above??? + typeof(text) == typeof('str') ? + text + : item.alt || item.id) // values... text != null @@ -3823,7 +3833,7 @@ var BrowserPrototype = { // buttons... var button_keys = {} - // XXX migrate the default buttons functionality and button inheritance... + // XXX migrate button inheritance... var buttons = (item.buttons || options.itemButtons || []) // resolve buttons from library... .map(function(button){ @@ -3837,7 +3847,6 @@ var BrowserPrototype = { .reverse() var stopPropagation = function(evt){ evt.stopPropagation() } buttons - // XXX use keyword to inherit buttons... .forEach(function([html, handler, ...rest]){ var force = (rest[0] === true || rest[0] === false @@ -3846,7 +3855,7 @@ var BrowserPrototype = { : undefined var metadata = rest.shift() || {} - // resolve metadata... + // metadata... var cls = metadata.cls || [] cls = cls instanceof Function ? cls.call(that, item) @@ -3869,7 +3878,7 @@ var BrowserPrototype = { setDOMValue(button, resolveValue(html, Items.buttons, {item})) - // active button... + // non-disabled button... if(force instanceof Function ? force.call(that, item) : (force || !item.disabled) ){ @@ -3914,7 +3923,7 @@ var BrowserPrototype = { that[a.action](...a.arguments) } // handle clicks and keyboard... - button.addEventListener('click', func) + button.addEventListener('click', func.bind(that)) // NOTE: we only trigger buttons on Enter and do // not care about other keys... button.addEventListener('keydown',