From 71e4d965a1d468ac01b404f233397def3b580ab2 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Wed, 15 Jan 2014 13:26:08 +0100
Subject: [PATCH] on filtering the share box users and groups whose name begins
 with the search term shall appear on top, fixes #6430

---
 core/ajax/share.php | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

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;
+	}
+}
-- 
GitLab