diff --git a/admin-root/config.html b/admin-root/config.html index 1e36c96c..a7a103b5 100644 --- a/admin-root/config.html +++ b/admin-root/config.html @@ -20,6 +20,13 @@ select { padding-top: .3em; padding-left: 1em; } +.addItemHref { + float: left; + margin-left: 11em; + font: icon; + padding-left: 1.5em; + margin-bottom: .5em; +}

Configuration

diff --git a/admin-root/config.js b/admin-root/config.js index 99f684d1..2044b351 100644 --- a/admin-root/config.js +++ b/admin-root/config.js @@ -69,9 +69,10 @@ var Config = { } }, _buildItem: function(item) { - var ret; var itemId = item.getAttribute('id'); + var href; + var span; switch(Element.textContent(item.getElementsByTagName('type')[0])) { case 'short_text': ret = BuildElement.input(itemId, @@ -90,23 +91,37 @@ var Config = { case 'short_text_multiple': ret = document.createDocumentFragment(); Config._getConfigOptionValue(itemId,true).each(function (value,i) { - ret.appendChild(BuildElement.input(itemId+i, + var span = document.createElement('span'); + span.appendChild(BuildElement.input(itemId+i, Element.textContent(item.getElementsByTagName('name')[0]), value,20, Element.textContent(item.getElementsByTagName('short_description')[0]) )); + ret.appendChild(span); }); + href = Builder.node('a',{href:'javascript://',className:'addItemHref'}, + Element.textContent(item.getElementsByTagName('add_item_text')[0])); + ret.appendChild(href); + Event.observe(href,'click',Config._addItem); + ret.appendChild(Builder.node('div',{style:'clear: both'})); break; case 'long_text_multiple': //###TODO Do something smart instead of just copying ret = document.createDocumentFragment(); Config._getConfigOptionValue(itemId,true).each(function (value,i) { - ret.appendChild(BuildElement.input(itemId+i, + var span = document.createElement('span'); + span.appendChild(BuildElement.input(itemId+i, Element.textContent(item.getElementsByTagName('name')[0]), value,80, Element.textContent(item.getElementsByTagName('short_description')[0]) )); + ret.appendChild(span); }); + href = Builder.node('a',{href:'javascript://',className:'addItemHref'}, + Element.textContent(item.getElementsByTagName('add_item_text')[0])); + ret.appendChild(href); + Event.observe(href,'click',Config._addItem); + ret.appendChild(Builder.node('div',{style:'clear: both'})); break; case 'select': var value = Config._getConfigOptionValue(itemId); @@ -122,6 +137,21 @@ var Config = { break; } return ret; + }, + _addItem: function(e) { + var span = Event.element(e); + while (span.nodeName.toLowerCase() != 'span') { + span = span.previousSibling; + } + var frag = document.createDocumentFragment(); + span = span.cloneNode(true); + span.getElementsByTagName('label')[0].setAttribute('for','hej'); + span.getElementsByTagName('input')[0].id = 'hej'; + span.getElementsByTagName('input')[0].value = ''; + + var src = Event.element(e); + src.parentNode.insertBefore(span,src); + } } var BuildElement = { diff --git a/admin-root/config.xml b/admin-root/config.xml index 52cb3b0c..f344317d 100644 --- a/admin-root/config.xml +++ b/admin-root/config.xml @@ -84,6 +84,7 @@ MP3 Directory long_text_multiple + Add Directory Extensions @@ -109,6 +110,7 @@ Compilation Directories long_text_multiple + Add Directory Art Filename @@ -167,6 +169,7 @@ Plugins short_text_multiple + Add Plugin