diff --git a/core/ajax/share.php b/core/ajax/share.php index 8b48effb45..784b2528f4 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -354,8 +354,32 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo break; } } + usort($shareWith, 'sortSearchFirst'); OC_JSON::success(array('data' => $shareWith)); } break; } } + + +/** + * User and Group names matching the search term at the beginning shall appear + * on top of the share dialog. + * Callback function for usort. http://php.net/usort + */ +function sortSearchFirst($a, $b) { + $enc = 'UTF-8'; + $nameA = mb_strtolower($a['label'], $enc); + $nameB = mb_strtolower($b['label'], $enc); + $term = mb_strtolower($_GET['search'], $enc); + $i = mb_strpos($nameA, $term, 0, 'UTF-8'); + $j = mb_strpos($nameB, $term, 0, 'UTF-8'); + + if($i === $j) { + return 0; + } else if ($i === 0) { + return -1; + } else { + return 1; + } +}