diff --git a/code/LeftAndMain.php b/code/LeftAndMain.php index d62107c0..152753e8 100644 --- a/code/LeftAndMain.php +++ b/code/LeftAndMain.php @@ -622,6 +622,15 @@ class LeftAndMain extends Controller { $statusUpdates['modified'][$node->ID] = array( 'TreeTitle'=>$node->TreeTitle ); + + // Update all dependent pages + if($virtualPages = DataObject::get("VirtualPage", "CopyContentFromID = $node->ID")) { + foreach($virtualPages as $virtualPage) { + $statusUpdates['modified'][$virtualPage->ID] = array( + 'TreeTitle' => $virtualPage->TreeTitle() + ); + } + } $this->response->addHeader( 'X-Status', diff --git a/code/MemberTableField.php b/code/MemberTableField.php index 58e28cd3..1bfc30df 100755 --- a/code/MemberTableField.php +++ b/code/MemberTableField.php @@ -483,12 +483,22 @@ class MemberTableField_ItemRequest extends ComplexTableField_ItemRequest { if($this->ctf->Can('delete') !== true) { return false; } + + $groupID = $this->ctf->sourceID(); + $group = DataObject::get_by_id('Group', $groupID); // if a group limitation is set on the table, remove relation. // otherwise remove the record from the database if($this->ctf->getGroup()) { $groupID = $this->ctf->sourceID(); + + // Remove from direct group relationship $this->dataObj()->Groups()->remove($groupID); + + // Remove from all child groups as well + foreach($group->getAllChildren() as $subGroup) { + $this->dataObj()->Groups()->remove($subGroup); + } } else { $this->dataObj()->delete(); }