diff --git a/code/controllers/CMSPageAddController.php b/code/controllers/CMSPageAddController.php index 178ec08a..23acdd9b 100644 --- a/code/controllers/CMSPageAddController.php +++ b/code/controllers/CMSPageAddController.php @@ -97,11 +97,8 @@ class CMSPageAddController extends CMSPageEditController { public function doAdd($data, $form) { $className = isset($data['PageType']) ? $data['PageType'] : "Page"; - $parentMode = isset($data['ParentModeField']) ? $data['ParentModeField'] : "top"; $parentID = isset($data['ParentID']) ? (int)$data['ParentID'] : 0; - if ($parentMode == "top") $parentID = 0; - $suffix = isset($data['Suffix']) ? "-" . $data['Suffix'] : null; if(!$parentID && isset($data['Parent'])) { diff --git a/javascript/CMSMain.AddForm.js b/javascript/CMSMain.AddForm.js index eafd3418..2a63ebba 100644 --- a/javascript/CMSMain.AddForm.js +++ b/javascript/CMSMain.AddForm.js @@ -25,6 +25,19 @@ el.siblings().setSelected(false); } }); + + /** + * Reset the parent node selection if the type is + * set back to "toplevel page", to avoid submitting inconsistent state. + */ + $(".cms-add-form .parent-mode :input").entwine({ + onclick: function(e) { + if(this.val() == 'top') { + var parentField = this.closest('form').find('#ParentID .TreeDropdownField'); + parentField.setValue(''); + } + } + }); $(".cms-add-form").entwine({ onmatch: function() {