diff --git a/src/main/webapp/scripts/xnat/spawner.js b/src/main/webapp/scripts/xnat/spawner.js index 6088de02d8efd6427a6efefe0d5dc4ab744bc33e..66fa3444633a1df93b642c74a16d7416afb35c70 100644 --- a/src/main/webapp/scripts/xnat/spawner.js +++ b/src/main/webapp/scripts/xnat/spawner.js @@ -65,6 +65,8 @@ var XNAT = getObject(XNAT); // lastly use the object's own name prop.name = prop.name || item; + prop.id = prop.id || prop.element.id || toDashed(prop.name); + // accept 'kind' or 'type' property name // but 'kind' will take priority // with a fallback to a generic div @@ -146,7 +148,8 @@ var XNAT = getObject(XNAT); } else { - spawner.notSpawned.push(item); + if (hasConsole) console.log('not spawned: ' + prop); + spawner.notSpawned.push(prop); } } diff --git a/src/main/webapp/scripts/xnat/ui/input.js b/src/main/webapp/scripts/xnat/ui/input.js index 0f829de3d4a177c726c3ad6c6e8a3562768575e1..66875c5a49e0cb3f17d0a4aa399c38bc025b49d5 100644 --- a/src/main/webapp/scripts/xnat/ui/input.js +++ b/src/main/webapp/scripts/xnat/ui/input.js @@ -134,6 +134,7 @@ var XNAT = getObject(XNAT); input.radio = function(config){ otherTypes.push('radio'); config = extend(true, {}, config, config.element); + return setupType('radio', '', config); }; // save a list of all available input types diff --git a/src/main/webapp/scripts/xnat/ui/panel.js b/src/main/webapp/scripts/xnat/ui/panel.js index 1e9969d87073a77a800586ce8deac03e165426a8..0747ed1ad23d6b53e17685f2ca82d68ac59ced96 100644 --- a/src/main/webapp/scripts/xnat/ui/panel.js +++ b/src/main/webapp/scripts/xnat/ui/panel.js @@ -225,10 +225,10 @@ var XNAT = getObject(XNAT || {}); val = stringable(val) ? val : JSON.stringify(val); } - $this.not(':radio').changeVal(val); + $this.changeVal(val); if (/checkbox/i.test(this.type)) { - this.checked = (this.value === val || !!this.value); + this.checked = realValue(val); } if (/radio/i.test(this.type)) { @@ -856,10 +856,13 @@ var XNAT = getObject(XNAT || {}); }; panel.textarea = function(opts){ + opts = cloneObject(opts); opts.element = opts.element || opts.config || {}; + if (opts.id) opts.element.id = opts.id; if (opts.name) opts.element.name = opts.name; + opts.element.html = opts.element.html || opts.element.value || @@ -873,19 +876,22 @@ var XNAT = getObject(XNAT || {}); if (opts.code || opts.codeLanguage) { opts.code = opts.code || opts.codeLanguage; addDataObjects(opts.element, { - codeLanguage: opts.code + codeEditor: opts.code, + codeLanguage: opts.codeLanguage || opts.code }); // open code editor on double-click - opts.element.ondblclick = function(){ - var panelTextarea = XNAT.app.codeEditor.init(this, { language: opts.code || 'html' }); - panelTextarea.openEditor(); - }; + // opts.element.ondblclick = function(){ + // var panelTextarea = XNAT.app.codeEditor.init(this, { language: opts.code || 'html' }); + // panelTextarea.openEditor(); + // }; } opts.element.rows = opts.rows || opts.element.rows || 10; var textarea = spawn('textarea', opts.element); + return XNAT.ui.template.panelDisplay(opts, textarea).spawned; + }; panel.input.textarea = panel.textarea;