@@ -98,6 +98,17 @@ function getPeriodObject() {
98
98
} ;
99
99
100
100
endTimestamp = _currMoment . clone ( ) . utc ( ) . endOf ( "day" ) ;
101
+
102
+ if ( _period && _period . indexOf ( "," ) !== - 1 ) {
103
+ try {
104
+ _period = JSON . parse ( _period ) ;
105
+ }
106
+ catch ( SyntaxError ) {
107
+ console . log ( "period JSON parse failed" ) ;
108
+ _period = "month" ;
109
+ }
110
+ }
111
+
101
112
if ( Array . isArray ( _period ) ) {
102
113
var fromDate , toDate ;
103
114
@@ -192,6 +203,17 @@ function getPeriodObject() {
192
203
isSpecialPeriod : true
193
204
} ) ;
194
205
}
206
+ //incorrect period, defaulting to 30 days
207
+ else {
208
+ let nDays = 30 ;
209
+
210
+ startTimestamp = _currMoment . clone ( ) . utc ( ) . startOf ( "day" ) . subtract ( nDays - 1 , "days" ) ;
211
+ cycleDuration = moment . duration ( nDays , "days" ) ;
212
+ Object . assign ( periodObject , {
213
+ dateString : "D MMM" ,
214
+ isSpecialPeriod : true
215
+ } ) ;
216
+ }
195
217
196
218
Object . assign ( periodObject , {
197
219
start : startTimestamp . valueOf ( ) ,
@@ -831,7 +853,7 @@ countlyCommon.extractTwoLevelData = function(db, rangeArray, clearFunction, data
831
853
}
832
854
833
855
if ( propertyNames . indexOf ( "u" ) !== - 1 && Object . keys ( tmpPropertyObj ) . length ) {
834
- if ( totalUserOverrideObj && totalUserOverrideObj [ rangeArray [ j ] ] ) {
856
+ if ( totalUserOverrideObj && typeof totalUserOverrideObj [ rangeArray [ j ] ] !== "undefined" ) {
835
857
836
858
tmpPropertyObj . u = totalUserOverrideObj [ rangeArray [ j ] ] ;
837
859
@@ -953,7 +975,14 @@ countlyCommon.extractBarData = function(db, rangeArray, clearFunction, fetchFunc
953
975
dataProps . push ( { name : "n" } ) ;
954
976
dataProps . push ( { name : "t" } ) ;
955
977
}
978
+ if ( metric === "n" ) {
979
+ dataProps . push ( { name : "u" } ) ;
980
+ }
956
981
var rangeData = countlyCommon . extractTwoLevelData ( db , rangeArray , clearFunction , dataProps , totalUserOverrideObj ) ;
982
+ rangeData . chartData = countlyCommon . mergeMetricsByName ( rangeData . chartData , "range" ) ;
983
+ rangeData . chartData = underscore . sortBy ( rangeData . chartData , function ( obj ) {
984
+ return - obj [ metric ] ;
985
+ } ) ;
957
986
var rangeNames = underscore . pluck ( rangeData . chartData , 'range' ) ,
958
987
rangeTotal = underscore . pluck ( rangeData . chartData , metric ) ,
959
988
barData = [ ] ,
@@ -1330,7 +1359,7 @@ countlyCommon.extractMetric = function(db, rangeArray, clearFunction, dataProper
1330
1359
}
1331
1360
1332
1361
if ( propertyNames . indexOf ( "u" ) !== - 1 && Object . keys ( tmpPropertyObj ) . length ) {
1333
- if ( totalUserOverrideObj && totalUserOverrideObj [ rangeArray [ j ] ] ) {
1362
+ if ( totalUserOverrideObj && typeof totalUserOverrideObj [ rangeArray [ j ] ] !== "undefined" ) {
1334
1363
1335
1364
tmpPropertyObj . u = totalUserOverrideObj [ rangeArray [ j ] ] ;
1336
1365
@@ -1607,7 +1636,7 @@ countlyCommon.getDashboardData = function(data, properties, unique, totalUserOve
1607
1636
1608
1637
// Total users can't be less than new users
1609
1638
if ( typeof current . u !== "undefined" && typeof current . n !== "undefined" && current . u < current . n ) {
1610
- if ( totalUserOverrideObj && typeof totalUserOverrideObj . u !== "undefined" && totalUserOverrideObj . u ) {
1639
+ if ( totalUserOverrideObj && typeof totalUserOverrideObj . u !== "undefined" ) {
1611
1640
current . n = current . u ;
1612
1641
}
1613
1642
else {
@@ -1636,7 +1665,7 @@ countlyCommon.getDashboardData = function(data, properties, unique, totalUserOve
1636
1665
//check if we can correct data using total users correction
1637
1666
if ( totalUserOverrideObj ) {
1638
1667
for ( let i = 0 ; i < unique . length ; i ++ ) {
1639
- if ( dataArr [ unique [ i ] ] && typeof totalUserOverrideObj [ unique [ i ] ] !== "undefined" && totalUserOverrideObj [ unique [ i ] ] ) {
1668
+ if ( dataArr [ unique [ i ] ] && typeof totalUserOverrideObj [ unique [ i ] ] !== "undefined" ) {
1640
1669
dataArr [ unique [ i ] ] . is_estimate = false ;
1641
1670
}
1642
1671
}
0 commit comments