@@ -402,6 +402,8 @@ widgetModule.field[UI.ns.ui('Options').uri] = function (
402402*/
403403widgetModule . field [ UI . ns . ui ( 'Multiple' ) . uri ] = function (
404404 dom , container , already , subject , form , store , callback ) {
405+ // var plusIcon = UI.icons.originalIconBase + 'tango/22-list-add.png' // blue plus
406+ var plusIconURI = UI . icons . iconBase + 'noun_19460_green.svg' // white plus in green circle
405407 var kb = UI . store
406408 kb . updater = kb . updater || new $rdf . UpdateManager ( kb )
407409 var box = dom . createElement ( 'table' )
@@ -432,8 +434,8 @@ widgetModule.field[UI.ns.ui('Multiple').uri] = function (
432434 var body = box . appendChild ( dom . createElement ( 'tr' ) )
433435 var tail = box . appendChild ( dom . createElement ( 'tr' ) )
434436 var img = tail . appendChild ( dom . createElement ( 'img' ) )
435- img . setAttribute ( 'src' , UI . icons . originalIconBase + 'tango/22-list-add.png' ) // blue plus
436- img . setAttribute ( 'style' , 'margin: 0.2em;' ) // blue plus
437+ img . setAttribute ( 'src' , plusIconURI ) // plus sign
438+ img . setAttribute ( 'style' , 'margin: 0.2em; width: 1em; height:1em' )
437439 img . title = 'Click to add one or more ' + UI . utils . label ( property )
438440 var prompt = tail . appendChild ( dom . createElement ( 'span' ) )
439441
@@ -442,23 +444,38 @@ widgetModule.field[UI.ns.ui('Multiple').uri] = function (
442444 ++ count
443445 if ( ! object ) object = widgetModule . newThing ( store )
444446 var tr = box . insertBefore ( dom . createElement ( 'tr' ) , tail )
445- var itemDone = function ( ok , body ) {
447+ var itemDone = function ( uri , ok , message ) {
446448 if ( ok ) { // @@@ Check IT hasnt alreday been written in
447449 if ( ! kb . holds ( subject , property , object ) ) {
448450 var ins = [ $rdf . st ( subject , property , object , store ) ]
449451 kb . updater . update ( [ ] , ins , linkDone )
450452 }
451453 } else {
452454 tr . appendChild ( widgetModule . errorMessageBlock ( dom , 'Multiple: item failed: ' + body ) )
453- callback ( ok , body )
455+ callback ( ok , message )
454456 }
455457 }
456- var linkDone = function ( uri , ok , body ) {
457- return callback ( ok , body )
458+ var linkDone = function ( uri , ok , message ) {
459+ return callback ( ok , message )
458460 }
461+
459462 var fn = widgetModule . fieldFunction ( dom , element )
460- // box.appendChild(dom.createTextNode('multiple object: '+object ))
461- fn ( dom , body , already , object , element , store , itemDone )
463+ var subField = fn ( dom , body , already , object , element , store , itemDone )
464+
465+ // delete button
466+ var deleteItem = function ( ) {
467+ if ( kb . holds ( subject , property , object ) ) {
468+ var del = [ $rdf . st ( subject , property , object , store ) ]
469+ kb . updater . update ( del , [ ] , function ( uri , ok , message ) {
470+ if ( ok ) {
471+ body . removeChild ( subField )
472+ } else {
473+ body . appendChild ( widgetModule . errorMessageBlock ( dom , 'Multiple: delete failed: ' + message ) )
474+ }
475+ } )
476+ }
477+ }
478+ widgetModule . deleteButtonWithCheck ( dom , subField , UI . utils . label ( property ) , deleteItem )
462479 }
463480
464481 var values = kb . each ( subject , property )
@@ -467,7 +484,8 @@ widgetModule.field[UI.ns.ui('Multiple').uri] = function (
467484
468485 values . map ( function ( obj ) { addItem ( null , obj ) } )
469486
470- for ( i = values . length ; i < min ; i ++ ) {
487+ while ( values . length < min ) {
488+ console . log ( "Adding extra: min " + min )
471489 addItem ( ) // Add blanks if less than minimum
472490 }
473491
@@ -612,7 +630,7 @@ widgetModule.field[UI.ns.ui('PhoneField').uri] =
612630 kb . updater . update ( ds , is , function ( uri , ok , body ) {
613631 if ( ok ) {
614632 field . disabled = false
615- field . setAttribute ( 'style' , 'color: black;' )
633+ field . setAttribute ( 'style' , style )
616634 } else {
617635 box . appendChild ( widgetModule . errorMessageBlock ( dom , body ) )
618636 }
0 commit comments