Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2020-01-18 00:26:38 +03:00
commit d637b00c16
2 changed files with 112 additions and 108 deletions

View File

@ -946,15 +946,15 @@ var ExampleUIActions = actions.Actions({
{title: 'foo', value: 123},
{type: 'field.Toggle', title: 'Batch toggle 1: '},
])
make.field.batch(b2 = b2 || [
make.field.batch(
b2 = b2 || [
'---',
['X', 'Y'],
{type: 'Toggle', title: 'foo', values: ['1','2','3'], list: false},
{type: 'Toggle', title: 'Batch toggle 2: '},
], function(){
console.log('---', ...arguments)
})
],
function(){
console.log('-- (2nd batch) --', ...arguments) })
}, {
cls: 'table-view',
}) })],

View File

@ -1045,7 +1045,6 @@ browse.items.makeSubContext = function(name, obj){
// ...this can be problematic as the wrapper is external to the browser...
// - as a sub-path...
// ...this is hard without side-effects...
// XXX need to make this handle updates correctly...
browse.items.makeSubContext('field',
function(title, value, options){
// parse arguments...
@ -1087,7 +1086,9 @@ browse.items.makeSubContext('field',
// - a way to define defaults -- global options?
// - access to the .app -- should be configurable...
// - default methods .showEditableList(..) / .showList(..) on make(..)
// XXX need to make this handle updates correctly...
// XXX currently if a user defines options.open it will fully override
// the default open behavior...
// ...need a way to deal with this, preferably automatically...
browse.items.field.Toggle =
function(title, options){
var that = this
@ -1103,13 +1104,14 @@ function(title, options){
return this.field(title, value,
Object.assign(
options,
{
options.__toggle_setup ?
{}
: {
__toggler_setup: true,
// XXX do we need a .type ???
//type: options.type || 'toggle',
// XXX need to:
// - call options.open if it exists...
// - do not define this if we already did...
open: function(evt){
// XXX CONTEXT...
var actions = options.app || that.app
@ -1202,8 +1204,7 @@ function(title, options){
} else {
// XXX should we be able to toggle values back???
set(values[(values.indexOf(current) + 1) % values.length]) }
},
},
} },
options
// normalize value...
.run(function(){
@ -1232,7 +1233,7 @@ browse.items.batch =
function(spec, callback){
var that = this
// build the fields...
;(spec || [])
spec
.forEach(function(field){
// array...
field instanceof Array ?
@ -1250,6 +1251,8 @@ function(spec, callback){
: that(field) })
// batch callback...
callback
// only setup events once...
&& !spec.__batch_setup
&& this.dialog
.close(function(mode){
// XXX get the field data and pass it to the callback...
@ -1269,8 +1272,9 @@ function(spec, callback){
// the user to get it via closure...
spec,
// XXX is this the right spot for this???
mode)
})
mode) })
// XXX is this a good way to do this???
spec.__batch_setup = true
return this }