diff --git a/cms/code/MemberTableField.php b/cms/code/MemberTableField.php index f6219bc..4bb058a 100755 --- a/cms/code/MemberTableField.php +++ b/cms/code/MemberTableField.php @@ -411,6 +411,16 @@ class MemberTableField extends ComplexTableField { $this->sourceItems = false; + if(!empty($_REQUEST['ctf'][$this->Name()]['sort'])) { + $column = $_REQUEST['ctf'][$this->Name()]['sort']; + $dir = 'ASC'; + if(!empty($_REQUEST['ctf'][$this->Name()]['dir'])) { + $dir = $_REQUEST['ctf'][$this->Name()]['dir']; + if(strtoupper(trim($dir)) == 'DESC') $dir = 'DESC'; + } + $this->sourceSort = $column.' '.$dir; + } + if($this->group) { $this->sourceItems = $this->group->Members( $this->pageSize, // limit @@ -426,6 +436,8 @@ class MemberTableField extends ComplexTableField { array('limit' => $this->pageSize, 'start' => $start) ); } + + // Because we are not used $this->upagedSourceItems any more, and the DataObjectSet is usually the source // that a large member set runs out of memory. we disable it here. //$this->unpagedSourceItems = $this->group->Members('', '', $this->sourceFilter, $this->sourceSort); @@ -549,4 +561,4 @@ class MemberTableField_ItemRequest extends ComplexTableField_ItemRequest { } } -?> \ No newline at end of file +?> diff --git a/cms/templates/Includes/MemberTableField.ss b/cms/templates/Includes/MemberTableField.ss index 709ac4c..3efdca9 100755 --- a/cms/templates/Includes/MemberTableField.ss +++ b/cms/templates/Includes/MemberTableField.ss @@ -12,7 +12,25 @@ <% if Markable %> <% end_if %> <% control Headings %> - $Title + + <% if IsSortable %> + + $Title + + + + <% if SortDirection = desc %> + <% _t('SORTASC', 'Sort ascending') %> + <% else %> + <% _t('SORTDESC', 'Sort descending') %> + <% end_if %> + +   + + <% else %> + $Title + <% end_if %> + <% end_control %> <% if Can(show) %> <% end_if %> <% if Can(edit) %> <% end_if %> @@ -59,4 +77,4 @@ <% end_control %> - \ No newline at end of file +