dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #36931
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 18889: Analysis, sort function improved.
Merge authors:
Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 18889 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Sun 2015-04-12 20:32:27 +0200
message:
Analysis, sort function improved.
modified:
dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-visualizer/scripts/core.js
dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-mapping/scripts/core.js
dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-pivot/scripts/core.js
dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-visualizer/scripts/core.js
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-visualizer/scripts/core.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-visualizer/scripts/core.js 2015-04-11 17:59:06 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-event-visualizer/scripts/core.js 2015-04-12 18:31:24 +0000
@@ -1234,7 +1234,7 @@
return array.length;
};
- support.prototype.array.sort = function(array, direction, key) {
+ support.prototype.array.sort = function(array, direction, key, emptyFirst) {
// supports [number], [string], [{key: number}], [{key: string}], [[string]], [[number]]
if (!support.prototype.array.getLength(array)) {
@@ -1275,6 +1275,14 @@
return direction === 'DESC' ? b - a : a - b;
}
+ else if (a === undefined || a === null) {
+ return emptyFirst ? -1 : 1;
+ }
+
+ else if (b === undefined || b === null) {
+ return emptyFirst ? 1 : -1;
+ }
+
return -1;
});
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-mapping/scripts/core.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-mapping/scripts/core.js 2015-04-10 15:31:02 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-mapping/scripts/core.js 2015-04-12 18:31:24 +0000
@@ -3048,20 +3048,25 @@
util.array = {};
- util.array.sort = function(array, direction, key) {
- // accepts [number], [string], [{prop: number}], [{prop: string}]
+ util.array.sort = function(array, direction, key, emptyFirst) {
+ // supports [number], [string], [{key: number}], [{key: string}], [[string]], [[number]]
- if (!util.object.getLength(array)) {
- return array;
+ if (!support.prototype.array.getLength(array)) {
+ return;
}
- key = key || 'name';
- direction = direction || 'ASC';
+ key = !!key || Ext.isNumber(key) ? key : 'name';
array.sort( function(a, b) {
// if object, get the property values
- if (Ext.isObject(a) && Ext.isObject(b) && key) {
+ if (Ext.isObject(a) && Ext.isObject(b)) {
+ a = a[key];
+ b = b[key];
+ }
+
+ // if array, get from the right index
+ if (Ext.isArray(a) && Ext.isArray(b)) {
a = a[key];
b = b[key];
}
@@ -3084,7 +3089,15 @@
return direction === 'DESC' ? b - a : a - b;
}
- return 0;
+ else if (a === undefined || a === null) {
+ return emptyFirst ? -1 : 1;
+ }
+
+ else if (b === undefined || b === null) {
+ return emptyFirst ? 1 : -1;
+ }
+
+ return -1;
});
return array;
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-pivot/scripts/core.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-pivot/scripts/core.js 2015-04-09 09:18:34 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-pivot/scripts/core.js 2015-04-12 18:31:24 +0000
@@ -622,19 +622,25 @@
return array.length;
};
- support.prototype.array.sort = function(array, direction, key) {
- // accepts [number], [string], [{key: number}], [{key: string}]
+ support.prototype.array.sort = function(array, direction, key, emptyFirst) {
+ // supports [number], [string], [{key: number}], [{key: string}], [[string]], [[number]]
if (!support.prototype.array.getLength(array)) {
return;
}
- key = key || 'name';
+ key = !!key || Ext.isNumber(key) ? key : 'name';
array.sort( function(a, b) {
// if object, get the property values
- if (Ext.isObject(a) && Ext.isObject(b) && key) {
+ if (Ext.isObject(a) && Ext.isObject(b)) {
+ a = a[key];
+ b = b[key];
+ }
+
+ // if array, get from the right index
+ if (Ext.isArray(a) && Ext.isArray(b)) {
a = a[key];
b = b[key];
}
@@ -657,6 +663,14 @@
return direction === 'DESC' ? b - a : a - b;
}
+ else if (a === undefined || a === null) {
+ return emptyFirst ? -1 : 1;
+ }
+
+ else if (b === undefined || b === null) {
+ return emptyFirst ? 1 : -1;
+ }
+
return -1;
});
=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-visualizer/scripts/core.js'
--- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-visualizer/scripts/core.js 2015-04-09 09:29:10 +0000
+++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-visualizer/scripts/core.js 2015-04-12 18:31:24 +0000
@@ -1270,19 +1270,25 @@
return maxLength;
};
- support.prototype.array.sort = function(array, direction, key) {
- // accepts [number], [string], [{prop: number}], [{prop: string}]
+ support.prototype.array.sort = function(array, direction, key, emptyFirst) {
+ // supports [number], [string], [{key: number}], [{key: string}], [[string]], [[number]]
if (!support.prototype.array.getLength(array)) {
return;
}
- key = key || 'name';
+ key = !!key || Ext.isNumber(key) ? key : 'name';
array.sort( function(a, b) {
// if object, get the property values
- if (Ext.isObject(a) && Ext.isObject(b) && key) {
+ if (Ext.isObject(a) && Ext.isObject(b)) {
+ a = a[key];
+ b = b[key];
+ }
+
+ // if array, get from the right index
+ if (Ext.isArray(a) && Ext.isArray(b)) {
a = a[key];
b = b[key];
}
@@ -1305,7 +1311,15 @@
return direction === 'DESC' ? b - a : a - b;
}
- return 0;
+ else if (a === undefined || a === null) {
+ return emptyFirst ? -1 : 1;
+ }
+
+ else if (b === undefined || b === null) {
+ return emptyFirst ? 1 : -1;
+ }
+
+ return -1;
});
return array;