Sort directories before files in source views. Thanks to William Martin!
(closes issue 573)
This commit is contained in:
parent
777937b70c
commit
d4929622bf
@ -154,6 +154,7 @@ class IDF_Views_Source
|
||||
}
|
||||
$scmConf = $request->conf->getVal('scm', 'git');
|
||||
$props = $scm->getProperties($commit);
|
||||
$res->uasort(array('IDF_Views_Source', 'treeSort'));
|
||||
return Pluf_Shortcuts_RenderToResponse('idf/source/'.$scmConf.'/tree.html',
|
||||
array(
|
||||
'page_title' => $title,
|
||||
@ -246,6 +247,7 @@ class IDF_Views_Source
|
||||
$previous = substr($request_file, 0, -strlen($l.' '));
|
||||
$scmConf = $request->conf->getVal('scm', 'git');
|
||||
$props = $scm->getProperties($commit, $request_file);
|
||||
$res->uasort(array('IDF_Views_Source', 'treeSort'));
|
||||
return Pluf_Shortcuts_RenderToResponse('idf/source/'.$scmConf.'/tree.html',
|
||||
array(
|
||||
'page_title' => $page_title,
|
||||
@ -455,6 +457,28 @@ class IDF_Views_Source
|
||||
$scm->getFile($file_info));
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback function to sort tree entries
|
||||
*/
|
||||
public static function treeSort($a, $b)
|
||||
{
|
||||
// compare two nodes of the same type
|
||||
if ($a->type === $b->type) {
|
||||
if (mb_convert_case($a->file, MB_CASE_LOWER) <
|
||||
mb_convert_case ($b->file, MB_CASE_LOWER)) {
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
// compare two nodes of different types, directories ("tree")
|
||||
// should come before files ("blob")
|
||||
if ($a->type > $b->type) {
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the scm type for page title
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user