mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Sorting channels before adding to selects on adminpanel
This commit is contained in:
@@ -136,6 +136,10 @@ function loaded() {
|
|||||||
type: "GET",
|
type: "GET",
|
||||||
url: "/api/lists",
|
url: "/api/lists",
|
||||||
success: function(response){
|
success: function(response){
|
||||||
|
response = response.sort(predicate({
|
||||||
|
name: '_id',
|
||||||
|
reverse: false
|
||||||
|
}));
|
||||||
var output_pinned = '<option value="" disabled selected>Channels</option>';
|
var output_pinned = '<option value="" disabled selected>Channels</option>';
|
||||||
var output_delete = '<option value="" disabled selected>Channels</option>';
|
var output_delete = '<option value="" disabled selected>Channels</option>';
|
||||||
for(var x = 0; x < response.length; x++){
|
for(var x = 0; x < response.length; x++){
|
||||||
@@ -600,4 +604,63 @@ $(document).on("submit", "#delete_userpass", function(e){
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function predicate() {
|
||||||
|
var fields = [],
|
||||||
|
n_fields = arguments.length,
|
||||||
|
field, name, cmp;
|
||||||
|
|
||||||
|
var default_cmp = function (a, b) {
|
||||||
|
if(a == undefined) a = 0;
|
||||||
|
if(b == undefined) b = 0;
|
||||||
|
if (a === b) return 0;
|
||||||
|
return a < b ? -1 : 1;
|
||||||
|
},
|
||||||
|
getCmpFunc = function (primer, reverse) {
|
||||||
|
var dfc = default_cmp,
|
||||||
|
// closer in scope
|
||||||
|
cmp = default_cmp;
|
||||||
|
if (primer) {
|
||||||
|
cmp = function (a, b) {
|
||||||
|
return dfc(primer(a), primer(b));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (reverse) {
|
||||||
|
return function (a, b) {
|
||||||
|
return -1 * cmp(a, b);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return cmp;
|
||||||
|
};
|
||||||
|
|
||||||
|
// preprocess sorting options
|
||||||
|
for (var i = 0; i < n_fields; i++) {
|
||||||
|
field = arguments[i];
|
||||||
|
if (typeof field === 'string') {
|
||||||
|
name = field;
|
||||||
|
cmp = default_cmp;
|
||||||
|
} else {
|
||||||
|
name = field.name;
|
||||||
|
cmp = getCmpFunc(field.primer, field.reverse);
|
||||||
|
}
|
||||||
|
fields.push({
|
||||||
|
name: name,
|
||||||
|
cmp: cmp
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// final comparison function
|
||||||
|
return function (A, B) {
|
||||||
|
var name, result;
|
||||||
|
for (var i = 0; i < n_fields; i++) {
|
||||||
|
result = 0;
|
||||||
|
field = fields[i];
|
||||||
|
name = field.name;
|
||||||
|
|
||||||
|
result = field.cmp(A[name], B[name]);
|
||||||
|
if (result !== 0) break;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
socket.emit("get_spread");
|
socket.emit("get_spread");
|
||||||
|
|||||||
Reference in New Issue
Block a user