Skip to content
Snippets Groups Projects
Commit 817932bf authored by deuce's avatar deuce
Browse files

Make the sort function VASTLY simpler in an effort to make the userlist work

for large user lists.
parent 84b0eaae
No related branches found
No related tags found
No related merge requests found
...@@ -24,13 +24,13 @@ ...@@ -24,13 +24,13 @@
if( typeof http_request.query.offset == "undefined" if( typeof http_request.query.offset == "undefined"
|| ||
isNaN(parseInt(http_request.query.offset)) isNaN(parseInt(http_request.query.offset[0]))
|| ||
http_request.query.offset < 1 http_request.query.offset[0] < 1
) { ) {
var offset = 1; var offset = 1;
} else { } else {
var offset = parseInt(http_request.query.offset); var offset = parseInt(http_request.query.offset[0]);
} }
var previousOffset = Math.max(1, offset - pageSize); var previousOffset = Math.max(1, offset - pageSize);
var nextOffset = Math.min(offset + pageSize, offset + (system.lastuser - offset)); var nextOffset = Math.min(offset + pageSize, offset + (system.lastuser - offset));
...@@ -42,56 +42,57 @@ ...@@ -42,56 +42,57 @@
http_request.request_string.split("&")[0] http_request.request_string.split("&")[0]
); );
var sortUser = function(a, b, sortOrder, type) { var sortUsers;
if(type == "string") { var sortBy;
a = a.toUpperCase(); var sortOrder;
b = b.toUpperCase();
ret = (a < b)
?
((sortOrder == "ascending") ? 1 : -1)
:
( (a > b)
?
((sortOrder == "ascending") ? -1 : 1)
:
0
);
} else if(type == "number" || type == "date") {
ret = (a < b)
?
((sortOrder == "ascending") ? -1 : 1)
:
( (a > b)
?
((sortOrder == "ascending") ? 1 : -1)
:
0
);
}
return ret;
}
var sortUsers = function(a, b) { if( typeof http_request.query.sortby == "undefined"
var ret = 0; ||
if( typeof http_request.query.sortby != "undefined" typeof http_request.query.sortorder == "undefined"
&& ||
typeof http_request.query.sortorder != "undefined" ( http_request.query.sortorder != "ascending"
&& &&
( http_request.query.sortorder == "ascending" http_request.query.sortorder != "descending"
|| )
http_request.query.sortorder == "descending" ||
) columns[http_request.query.sortby[0].toLowerCase()] == undefined
) { ||
var sortBy = http_request.query.sortby.toString().toLowerCase(); columns[http_request.query.sortby[0].toLowerCase()].type == undefined
var sortOrder = http_request.query.sortorder.toString().toLowerCase(); ) {
for(var c in columns) { sortUsers = function(a,b) { return 0; }
if(sortBy != c) }
continue; else {
ret = sortUser(a[c], b[c], sortOrder, columns[c].type); sortBy = http_request.query.sortby[0].toLowerCase()
sortOrder = http_request.query.sortorder[0];
switch(columns[sortBy].type) {
case 'string':
if(sortOrder == "ascending")
sortUsers = function(a,b) {
if(a[sortBy].toLowerCase() < b[sortBy].toLowerCase())
return -1;
if(a[sortBy].toLowerCase() > b[sortBy].toLowerCase())
return 1;
return 0;
};
else
sortUsers = function(a,b) {
if(a[sortBy].toLowerCase() > b[sortBy].toLowerCase())
return -1;
if(a[sortBy].toLowerCase() < b[sortBy].toLowerCase())
return 1;
return 0;
};
break;
case 'date':
case 'number':
if(sortOrder == "ascending")
sortUsers = function(a,b) { return a[sortBy]-b[sortBy]; };
else
sortUsers = function(a,b) { return b[sortBy]-a[sortBy]; };
break; break;
} default:
sortUsers = function(a,b) { return 0; }
} }
return ret;
} }
var makeSortURLs = function(field, order) { var makeSortURLs = function(field, order) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment