@@ -190,6 +190,7 @@ widgetModule.deleteButtonWithCheck = function (dom, container, noun, deleteFunct
190190 deleteFunction ( )
191191 } , false )
192192 } , false )
193+ return delButton
193194}
194195
195196// A TR to repreent a draggable person, etc in a list
@@ -500,7 +501,8 @@ widgetModule.fieldParams[UI.ns.ui('FloatField').uri] = {
500501widgetModule . fieldParams [ UI . ns . ui ( 'FloatField' ) . uri ] . pattern =
501502 / ^ \s * - ? [ 0 - 9 ] * ( \. [ 0 - 9 ] * ) ? ( ( e | E ) - ? [ 0 - 9 ] * ) ? \s * $ /
502503
503- widgetModule . fieldParams [ UI . ns . ui ( 'SingleLineTextField' ) . uri ] = { }
504+ widgetModule . fieldParams [ UI . ns . ui ( 'SingleLineTextField' ) . uri ] = { }
505+ widgetModule . fieldParams [ UI . ns . ui ( 'NamedNodeURIField' ) . uri ] = { namedNode : true }
504506widgetModule . fieldParams [ UI . ns . ui ( 'TextField' ) . uri ] = { }
505507
506508widgetModule . fieldParams [ UI . ns . ui ( 'PhoneField' ) . uri ] = { 'size' : 12 , 'uriPrefix' : 'tel:' }
@@ -522,7 +524,8 @@ widgetModule.field[UI.ns.ui('PhoneField').uri] =
522524 widgetModule . field [ UI . ns . ui ( 'DecimalField' ) . uri ] =
523525 widgetModule . field [ UI . ns . ui ( 'FloatField' ) . uri ] =
524526 widgetModule . field [ UI . ns . ui ( 'TextField' ) . uri ] =
525- widgetModule . field [ UI . ns . ui ( 'SingleLineTextField' ) . uri ] = function (
527+ widgetModule . field [ UI . ns . ui ( 'SingleLineTextField' ) . uri ] =
528+ widgetModule . field [ UI . ns . ui ( 'NamedNodeURIField' ) . uri ] = function (
526529 dom , container , already , subject , form , store , callback ) {
527530 var ui = UI . ns . ui
528531 var kb = UI . store
@@ -557,16 +560,16 @@ widgetModule.field[UI.ns.ui('PhoneField').uri] =
557560 var maxLength = kb . any ( form , ui ( 'maxLength' ) )
558561 field . setAttribute ( 'maxLength' , maxLength ? '' + maxLength : '4096' )
559562
560- store = widgetModule . fieldStore ( subject , property , store )
563+ store = store || widgetModule . fieldStore ( subject , property , store )
561564
562- var obj = kb . any ( subject , property )
565+ var obj = kb . any ( subject , property , undefined , store )
563566 if ( ! obj ) {
564567 obj = kb . any ( form , ui ( 'default' ) )
565- if ( obj !== undefined ) kb . add ( subject , property , obj , store )
568+ if ( obj ) kb . add ( subject , property , obj , store )
569+ }
570+ if ( obj ) {
571+ field . value = obj . value || obj . uri
566572 }
567- if ( obj !== undefined && obj . value !== undefined ) { field . value = obj . value . toString ( ) }
568- if ( obj !== undefined && obj . uri !== undefined ) { field . value = obj . uri . split ( ':' ) [ 1 ] } // @@ URI encoding/decoding
569-
570573 field . addEventListener ( 'keyup' , function ( e ) {
571574 if ( params . pattern ) {
572575 field . setAttribute ( 'style' , style + (
@@ -580,8 +583,13 @@ widgetModule.field[UI.ns.ui('PhoneField').uri] =
580583 var ds = kb . statementsMatching ( subject , property ) // remove any multiple values
581584 // var newObj = params.uriPrefix ? kb.sym(params.uriPrefix + field.value.replace(/ /g, ''))
582585 // : kb.literal(field.value, params.dt)
583- var is = $rdf . st ( subject , property ,
584- params . parse ? params . parse ( field . value ) : field . value , store ) // @@ Explicitly put the datatype in.
586+ var result
587+ if ( params . namedNode ) {
588+ result = kb . sym ( field . value )
589+ } else {
590+ result = params . parse ? params . parse ( field . value ) : field . value
591+ }
592+ var is = $rdf . st ( subject , property , result , store ) // @@ Explicitly put the datatype in.
585593 kb . updater . update ( ds , is , function ( uri , ok , body ) {
586594 if ( ok ) {
587595 field . disabled = false
@@ -803,7 +811,13 @@ widgetModule.openHrefInOutlineMode = function (e) {
803811 if ( ! uri ) console . log ( 'No href found \n' )
804812 // subject term, expand, pane, solo, referrer
805813 // dump('click on link to:' +uri+'\n')
806- UI . outline . GotoSubject ( UI . store . sym ( uri ) , true , undefined , true , undefined )
814+ if ( UI . outline ) {
815+ UI . outline . GotoSubject ( UI . store . sym ( uri ) , true , undefined , true , undefined )
816+ } else if ( window || window . UI || window . UI . outline ) {
817+ window . UI . outline . GotoSubject ( UI . store . sym ( uri ) , true , undefined , true , undefined )
818+ }
819+ console . log ( "ERROR: Can't acces outline manager in this config" )
820+ //UI.outline.GotoSubject(UI.store.sym(uri), true, undefined, true, undefined)
807821}
808822
809823// We make a URI in the annotation store out of the URI of the thing to be annotated.
0 commit comments