Skip to content

Commit 2372523

Browse files
author
Tim Berners-Lee
committed
Add code to remove items from Multile type form field. Add new red minus icon
1 parent 17ea8fd commit 2372523

2 files changed

Lines changed: 32 additions & 10 deletions

File tree

lib/icons/noun_2188_red.svg

Lines changed: 4 additions & 0 deletions
Loading

lib/widgets.js

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,8 @@ widgetModule.field[UI.ns.ui('Options').uri] = function (
402402
*/
403403
widgetModule.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

Comments
 (0)