diff --git a/code/formfields/FieldEditor.php b/code/formfields/FieldEditor.php index 383e3cb..d0dbefb 100755 --- a/code/formfields/FieldEditor.php +++ b/code/formfields/FieldEditor.php @@ -268,6 +268,9 @@ class FieldEditor extends FormField { if($parent) { $sql_parent = (int)$parent; + $parentObj = EditableFormField::get()->byID($parent); + $optionClass = ($parentObj && $parentObj->exists()) ? $parentObj->getRelationClass('Options') : 'EditableOption'; + $sqlQuery = new SQLQuery(); $sqlQuery = $sqlQuery ->setSelect("MAX(\"Sort\")") @@ -277,7 +280,7 @@ class FieldEditor extends FormField { $sort = $sqlQuery->execute()->value() + 1; if($parent) { - $object = new EditableOption(); + $object = Injector::inst()->create($optionClass); $object->write(); $object->ParentID = $parent; $object->Sort = $sort; diff --git a/javascript/UserForm.js b/javascript/UserForm.js index 58e3ce0..fd3085a 100644 --- a/javascript/UserForm.js +++ b/javascript/UserForm.js @@ -270,8 +270,8 @@ e.preventDefault(); // pass the deleted status onto the element - $(this).parent("li").children("[type=text]").attr("value", "field-node-deleted"); - $(this).parent("li").hide(); + $(this).parents("li:first").find("[type=text]:first").attr("value", "field-node-deleted"); + $(this).parents("li:first").hide(); // Give the user some feedback statusMessage(userforms.message('REMOVED_OPTION'));