From f47e12f726cf302a3caff0d7f362e40e822eee37 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Tue, 23 Feb 2010 03:36:02 +0000 Subject: [PATCH] ENHANCEMENT Saving group relations on SecurityAdmin->EditForm()/RootForm() through TreeMultiselectField instead of hidden 'Group'/'GroupID' values (from r99579) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/branches/2.4@99690 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/MemberTableField.php | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/code/MemberTableField.php b/code/MemberTableField.php index cda10b77..93ce7090 100755 --- a/code/MemberTableField.php +++ b/code/MemberTableField.php @@ -308,15 +308,11 @@ class MemberTableField extends ComplexTableField { $className = $this->sourceClass(); $childData = new $className(); + // Needs to write before saveInto() to ensure the 'Groups' TreeMultiselectField saves + $childData->write(); + $form->saveInto($childData); $childData->write(); - - // Only write group if no specific assignments have been set - if(isset($data['Groups']) && $data['Groups']) { - $childData->Groups()->setByIDList(explode(',', $data['Groups'])); - } else { - $childData->Groups()->add($data['GroupID']); - } $closeLink = sprintf( '(%s)', @@ -452,19 +448,6 @@ class MemberTableField_Item extends ComplexTableField_Item { class MemberTableField_ItemRequest extends ComplexTableField_ItemRequest { - function saveComplexTableField($data, $form, $request) { - parent::saveComplexTableField($data, $form, $request); - - $childData = $this->dataObj(); - - // Only write group if no specific assignments have been set - if(isset($data['Groups']) && $data['Groups']) { - $childData->Groups()->setByIDList(explode(',', $data['Groups'])); - } else { - $childData->Groups()->add($data['GroupID']); - } - } - /** * Deleting an item from a member table field should just remove that member from the group */