@@ -433,7 +433,9 @@ widgetModule.field[UI.ns.ui('Multiple').uri] = function (
433433 var tail = box . appendChild ( dom . createElement ( 'tr' ) )
434434 var img = tail . appendChild ( dom . createElement ( 'img' ) )
435435 img . setAttribute ( 'src' , UI . icons . originalIconBase + 'tango/22-list-add.png' ) // blue plus
436- img . title = '(m) Add ' + UI . utils . label ( property )
436+ img . setAttribute ( 'style' , 'margin: 0.2em;' ) // blue plus
437+ img . title = 'Click to add one or more ' + UI . utils . label ( property )
438+ var prompt = tail . appendChild ( dom . createElement ( 'span' ) )
437439
438440 var addItem = function ( e , object ) {
439441 UI . log . debug ( 'Multiple add: ' + object )
@@ -459,13 +461,17 @@ widgetModule.field[UI.ns.ui('Multiple').uri] = function (
459461 fn ( dom , body , already , object , element , store , itemDone )
460462 }
461463
462- kb . each ( subject , property ) . map ( function ( obj ) { addItem ( null , obj ) } )
464+ var values = kb . each ( subject , property )
465+ prompt . textContent = ( values . length === 0 ? 'Add one or more ' : 'Add more ' ) +
466+ UI . utils . label ( property )
463467
464- for ( i = kb . each ( subject , property ) . length ; i < min ; i ++ ) {
468+ values . map ( function ( obj ) { addItem ( null , obj ) } )
469+
470+ for ( i = values . length ; i < min ; i ++ ) {
465471 addItem ( ) // Add blanks if less than minimum
466472 }
467473
468- img . addEventListener ( 'click' , addItem , true )
474+ tail . addEventListener ( 'click' , addItem , true ) // img.addEventListener('click', addItem, true)
469475 return box
470476}
471477
@@ -561,7 +567,7 @@ widgetModule.field[UI.ns.ui('PhoneField').uri] =
561567 var uri = widgetModule . bottomURI ( form )
562568 var params = widgetModule . fieldParams [ uri ]
563569 if ( params === undefined ) params = { } // non-bottom field types can do this
564- var style = params . style ? params . style : ' '
570+ var style = params . style || 'font-size: 100%; margin: 0.1em; padding: 0.1em; '
565571 // box.appendChild(dom.createTextNode(' uri='+uri+', pattern='+ params.pattern))
566572 var field = dom . createElement ( 'input' )
567573 rhs . appendChild ( field )
@@ -582,6 +588,7 @@ widgetModule.field[UI.ns.ui('PhoneField').uri] =
582588 if ( obj ) {
583589 field . value = obj . value || obj . uri
584590 }
591+ field . setAttribute ( 'style' , style )
585592 field . addEventListener ( 'keyup' , function ( e ) {
586593 if ( params . pattern ) {
587594 field . setAttribute ( 'style' , style + (
@@ -591,7 +598,7 @@ widgetModule.field[UI.ns.ui('PhoneField').uri] =
591598 field . addEventListener ( 'change' , function ( e ) { // i.e. lose focus with changed data
592599 if ( params . pattern && ! field . value . match ( params . pattern ) ) return
593600 field . disabled = true // See if this stops getting two dates from fumbling e.g the chrome datepicker.
594- field . setAttribute ( 'style' , 'color: gray;' ) // pending
601+ field . setAttribute ( 'style' , style + 'color: gray;' ) // pending
595602 var ds = kb . statementsMatching ( subject , property ) // remove any multiple values
596603 // var newObj = params.uriPrefix ? kb.sym(params.uriPrefix + field.value.replace(/ /g, ''))
597604 // : kb.literal(field.value, params.dt)
0 commit comments