diff --git a/javascript/CMSMain_left.js b/javascript/CMSMain_left.js index b00fe33c..b8deb67e 100755 --- a/javascript/CMSMain_left.js +++ b/javascript/CMSMain_left.js @@ -13,10 +13,25 @@ var addpageclass; addpageclass = Class.create(); addpageclass.applyTo('#addpage'); addpageclass.prototype = { + originalValues: new Array(), initialize: function () { Observable.applyTo($(_HANDLER_FORMS[this.id])); this.getElementsByTagName('button')[0].onclick = returnFalse; $(_HANDLER_FORMS[this.id]).onsubmit = this.form_submit; + + // Save the original page types in to this object + if ($(_HANDLER_FORMS.addpage).elements.PageType) { + var options = $(_HANDLER_FORMS.addpage).elements.PageType.options; + for(var i = 0; i < options.length; i++) { + this.originalValues.push({ + 'value': options[i].value, + 'label': options[i].innerHTML, + }); + } + + var selectedNode = $('sitetree').firstSelected(); + if(selectedNode) this.showApplicableChildrenPageTypes(selectedNode.hints); + } }, onclick : function() { @@ -40,7 +55,39 @@ addpageclass.prototype = { return false; }, + // Reset the page types dropdown to its original state + resetPageTypeOptions: function() { + var select = $(_HANDLER_FORMS.addpage).elements.PageType; + while (select.childNodes.length >= 1) { select.removeChild(select.firstChild); } + for(var i = 0; i < this.originalValues.length; i++) { + var option = document.createElement('option'); + option.value = this.originalValues[i].value; + option.innerHTML = this.originalValues[i].label; + select.appendChild(option); + } + }, + + // Hide the