diff --git a/admin-root/config.js b/admin-root/config.js index aaf72cbb..11e7e101 100644 --- a/admin-root/config.js +++ b/admin-root/config.js @@ -18,14 +18,30 @@ function init() { } var ConfigXML = { config: {}, + advancedSections: [], getItem: function (id) { return this.config[id]; }, getAllItems: function () { return $H(this.config); }, + isAdvancedSection: function (sectionName) { + return this.advancedSections.find(function (name) { + return name == sectionName + }); + }, + getAllAdvancedSections: function () { + return this.advancedSections; + }, + getSectionId: function (sectionName) { + return 'firefly_'+sectionName.replace(/\ /,'').toLowerCase(); + }, parseXML: function(xmlDoc) { $A(xmlDoc.getElementsByTagName('section')).each(function (section) { + if ('true' == section.getAttribute('advanced')) { + // Only used by Config._showAdvancedConfig, Config._showBasicConfig + ConfigXML.advancedSections.push(section.getAttribute('name')); + } $A(section.getElementsByTagName('item')).each(function (item) { var returnItem = {}; $A(item.attributes).each(function (attr) { @@ -70,21 +86,25 @@ var ConfigInitialValues = { sections.each(function (section) { var sectionName = section.nodeName; $A(section.childNodes).each(function (node) { + var itemId = sectionName + ':' + node.nodeName; if (node.firstChild && node.firstChild.hasChildNodes()) { var values = []; $A(node.childNodes).each(function (n) { values.push(Element.textContent(n)); }); - ConfigInitialValues.values[sectionName+':'+node.nodeName] = values; + ConfigInitialValues.values[itemId] = values; } else { - ConfigInitialValues.values[sectionName+':'+node.nodeName] = Element.textContent(node); + ConfigInitialValues.values[itemId] = Element.textContent(node); + } + if (!ConfigXML.getItem(itemId)) { + //###TODO tell the user these are missing } }); - }); + }); } }; -var Config = { - configPath: '', +var Config ={ + configPath: '', init: function () { new Ajax.Request('/config.xml',{method: 'get',onComplete: Config.storeConfigLayout}); }, @@ -117,8 +137,14 @@ var Config = { $A(section.getElementsByTagName('item')).each(function (item) { body.appendChild(Config._buildItem(item.getAttribute('id'))); }); - $('theform').appendChild(head); - $('theform').appendChild(body); + var div = document.createElement('div'); + div.id = ConfigXML.getSectionId(sectionName); + if (ConfigXML.isAdvancedSection(sectionName)) { + div.style.display = 'none'; + } + div.appendChild(head); + div.appendChild(body); + $('theform').appendChild(div); }); // Won't be using the config.xml XML doc anymore get rid of it Config.tmpConfigXML = ''; @@ -282,6 +308,9 @@ var Config = { Element.toggle('advanced_config_button'); Element.toggle('basic_config_button'); Cookie.setVar('show_advanced_config','true',30); + ConfigXML.getAllAdvancedSections().each(function (sectionName) { + Effect.BlindDown(ConfigXML.getSectionId(sectionName)); + }); ConfigXML.getAllItems().each(function (item) { if (item.value.advanced) { var element = $(item.key); @@ -300,6 +329,9 @@ var Config = { Element.toggle('advanced_config_button'); Element.toggle('basic_config_button'); Cookie.removeVar('show_advanced_config'); + ConfigXML.getAllAdvancedSections().each(function (sectionName) { + Effect.BlindUp(ConfigXML.getSectionId(sectionName)); + }); ConfigXML.getAllItems().each(function (item) { if (item.value.advanced) { var element = $(item.key); diff --git a/admin-root/config.xml b/admin-root/config.xml index a22eb9be..6c29b688 100644 --- a/admin-root/config.xml +++ b/admin-root/config.xml @@ -114,8 +114,8 @@ text -
- +
+ Process xmlFiles Should iTunes xml-files be processed? @@ -126,7 +126,7 @@ - + Ignore appledouble Skip appledouble files when scanning @@ -137,7 +137,7 @@ - + Ignore dotfiles Ignore unix hidden dot files @@ -148,7 +148,7 @@ - + Group compilations Compilations are grouped under &Various artists& @@ -203,8 +203,8 @@
-
- +
+ Empty strings select @@ -213,7 +213,7 @@ - + Supports update select @@ -222,7 +222,7 @@ - + Supports browse select @@ -234,26 +234,26 @@
-
- +
+ Plugin Directory text - + Plugins text
-
- +
+ SSC Program text - + SSC Codec Types text