fix sorting in the backend
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
31fa2f73d4
commit
dbaebc53b0
|
@ -260,9 +260,6 @@
|
||||||
var suggestions = users.concat(groups).concat(remotes).concat(emails).concat(lookup);
|
var suggestions = users.concat(groups).concat(remotes).concat(emails).concat(lookup);
|
||||||
|
|
||||||
if (suggestions.length > 0) {
|
if (suggestions.length > 0) {
|
||||||
suggestions.sort(function (a, b) {
|
|
||||||
return OC.Util.naturalSortCompare(a.label, b.label);
|
|
||||||
});
|
|
||||||
$shareWithField
|
$shareWithField
|
||||||
.autocomplete("option", "autoFocus", true);
|
.autocomplete("option", "autoFocus", true);
|
||||||
|
|
||||||
|
|
|
@ -490,80 +490,6 @@ describe('OC.Share.ShareDialogView', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('autocompletion of users', function() {
|
describe('autocompletion of users', function() {
|
||||||
it('is sorted naturally', function () {
|
|
||||||
dialog.render();
|
|
||||||
var response = sinon.stub();
|
|
||||||
dialog.autocompleteHandler({term: 'p'}, response);
|
|
||||||
var jsonData = JSON.stringify({
|
|
||||||
'ocs' : {
|
|
||||||
'meta' : {
|
|
||||||
'status' : 'success',
|
|
||||||
'statuscode' : 100,
|
|
||||||
'message' : null
|
|
||||||
},
|
|
||||||
'data' : {
|
|
||||||
'exact' : {
|
|
||||||
'users' : [],
|
|
||||||
'groups' : [],
|
|
||||||
'remotes': []
|
|
||||||
},
|
|
||||||
'users' : [{
|
|
||||||
"label": "Peter A.",
|
|
||||||
"value": {
|
|
||||||
"shareType": 0,
|
|
||||||
"shareWith": "Peter A."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Petra",
|
|
||||||
"value": {
|
|
||||||
"shareType": 0,
|
|
||||||
"shareWith": "Petra"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "peter B.",
|
|
||||||
"value": {
|
|
||||||
"shareType": 0,
|
|
||||||
"shareWith": "peter B."
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
'groups' : [],
|
|
||||||
'remotes': []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
fakeServer.requests[0].respond(
|
|
||||||
200,
|
|
||||||
{'Content-Type': 'application/json'},
|
|
||||||
jsonData
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(response.calledWithExactly([
|
|
||||||
{
|
|
||||||
"label": "Peter A.",
|
|
||||||
"value": {
|
|
||||||
"shareType": 0,
|
|
||||||
"shareWith": "Peter A."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "peter B.",
|
|
||||||
"value": {
|
|
||||||
"shareType": 0,
|
|
||||||
"shareWith": "peter B."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Petra",
|
|
||||||
"value": {
|
|
||||||
"shareType": 0,
|
|
||||||
"shareWith": "Petra"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
])).toEqual(true);
|
|
||||||
});
|
|
||||||
it('triggers autocomplete display and focus with data when ajax search succeeds', function () {
|
it('triggers autocomplete display and focus with data when ajax search succeeds', function () {
|
||||||
dialog.render();
|
dialog.render();
|
||||||
var response = sinon.stub();
|
var response = sinon.stub();
|
||||||
|
|
|
@ -193,7 +193,7 @@ class Database extends Backend implements IUserBackend {
|
||||||
|
|
||||||
$displayNames = array();
|
$displayNames = array();
|
||||||
$query = \OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users`'
|
$query = \OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users`'
|
||||||
. $searchLike .' ORDER BY `uid` ASC', $limit, $offset);
|
. $searchLike .' ORDER BY LOWER(`displayname`), LOWER(`uid`) ASC', $limit, $offset);
|
||||||
$result = $query->execute($parameters);
|
$result = $query->execute($parameters);
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
$displayNames[$row['uid']] = $row['displayname'];
|
$displayNames[$row['uid']] = $row['displayname'];
|
||||||
|
@ -279,7 +279,7 @@ class Database extends Backend implements IUserBackend {
|
||||||
$searchLike = ' WHERE LOWER(`uid`) LIKE LOWER(?)';
|
$searchLike = ' WHERE LOWER(`uid`) LIKE LOWER(?)';
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = \OC_DB::prepare('SELECT `uid` FROM `*PREFIX*users`' . $searchLike . ' ORDER BY `uid` ASC', $limit, $offset);
|
$query = \OC_DB::prepare('SELECT `uid` FROM `*PREFIX*users`' . $searchLike . ' ORDER BY LOWER(`uid`) ASC', $limit, $offset);
|
||||||
$result = $query->execute($parameters);
|
$result = $query->execute($parameters);
|
||||||
$users = array();
|
$users = array();
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
|
|
|
@ -254,7 +254,7 @@ class Manager extends PublicEmitter implements IUserManager {
|
||||||
* @var \OC\User\User $a
|
* @var \OC\User\User $a
|
||||||
* @var \OC\User\User $b
|
* @var \OC\User\User $b
|
||||||
*/
|
*/
|
||||||
return strcmp($a->getDisplayName(), $b->getDisplayName());
|
return strcmp(strtolower($a->getDisplayName()), strtolower($b->getDisplayName()));
|
||||||
});
|
});
|
||||||
return $users;
|
return $users;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue