switch to custom sort comparitor

7a598a439a9393f8f8f1054b562492f3d8d5f187

Cal <cal@clockworkcaracal.com>

1 files changed, +11 -3Showing whitespace changes
public/scripts/variables.js+11 -3
@@ -836,6 +836,14 @@ function randValuesCallback(from, to, args) {
836 return value;836 return value;
837}837}
838838
839function customSortComparitor(a, b) {
840 if (typeof a != typeof b) {
841 a = typeof a;
842 b = typeof b;
843 }
844 return a > b ? 1 : a < b ? -1 : 0;
845}
846
839function sortArrayObjectCallback(args, value) {847function sortArrayObjectCallback(args, value) {
840 let parsedValue;848 let parsedValue;
841 if (typeof value == 'string') {849 if (typeof value == 'string') {
@@ -850,13 +858,13 @@ function sortArrayObjectCallback(args, value) {
850 }858 }
851 if (Array.isArray(parsedValue)) {859 if (Array.isArray(parsedValue)) {
852 // always sort lists by value860 // always sort lists by value
853 parsedValue.sort()861 parsedValue.sort(customSortComparitor)
854 } else if (typeof parsedValue == 'object') {862 } else if (typeof parsedValue == 'object') {
855 let keysort = args.keysort;863 let keysort = args.keysort;
856 if (isFalseBoolean(keysort)) {864 if (isFalseBoolean(keysort)) {
857 parsedValue = Object.keys(parsedValue).sort(function(a,b){return parsedValue[a]-parsedValue[b]});865 parsedValue = Object.keys(parsedValue).sort(function(a,b){return customSortComparitor(parsedValue[a], parsedValue[b])});
858 } else {866 } else {
859 parsedValue = Object.keys(parsedValue).sort();867 parsedValue = Object.keys(parsedValue).sort(customSortComparitor);
860 }868 }
861 }869 }
862 return JSON.stringify(parsedValue); 870 return JSON.stringify(parsedValue);