1
+ ( function ( countlyAllApps , $ , undefined ) {
2
+
3
+ //Private Properties
4
+ var _appData = { "all" :{ _id :"all" , name :"All apps" } } ,
5
+ _appIds = { } ,
6
+ _sessions = { } ,
7
+ _sessionData = { } ;
8
+ var _tempApp ;
9
+
10
+ //Public Methods
11
+ countlyAllApps . initialize = function ( ) {
12
+ return countlyAllApps . refresh ( ) ;
13
+ } ;
14
+
15
+ countlyAllApps . refresh = function ( ) {
16
+ if ( ! countlyCommon . DEBUG ) {
17
+ this . reset ( ) ;
18
+ var deffereds = [ ] ;
19
+ _tempApp = countlyCommon . ACTIVE_APP_ID ;
20
+ for ( var i in countlyGlobal [ "apps" ] ) {
21
+ deffereds . push ( loadApp ( i ) ) ;
22
+ }
23
+ return $ . when . apply ( $ , deffereds ) . then ( function ( ) {
24
+ countlyCommon . setActiveApp ( _tempApp ) ;
25
+ _appData [ "all" ] . sessions = { total :0 , trend :0 } ;
26
+ _appData [ "all" ] . users = { total :0 , trend :0 } ;
27
+ _appData [ "all" ] . newusers = { total :0 , trend :0 } ;
28
+ _appData [ "all" ] . duration = { total :0 , trend :0 } ;
29
+ _appData [ "all" ] . avgduration = { total :0 , trend :0 } ;
30
+ _sessions [ "all" ] = { } ;
31
+ for ( var appID in countlyGlobal [ "apps" ] ) {
32
+ var sessionData = _sessionData [ appID ] ;
33
+ for ( var i in _sessions [ appID ] ) {
34
+ for ( var j = 0 , l = _sessions [ appID ] [ i ] . data . length ; j < l ; j ++ ) {
35
+ if ( ! _sessions [ "all" ] [ i ] ) {
36
+ _sessions [ "all" ] [ i ] = { } ;
37
+ _sessions [ "all" ] [ i ] . label = _sessions [ appID ] [ i ] . label ;
38
+ _sessions [ "all" ] [ i ] . data = [ ] ;
39
+ }
40
+ if ( ! _sessions [ "all" ] [ i ] . data [ j ] ) {
41
+ _sessions [ "all" ] [ i ] . data [ j ] = [ 0 , 0 ] ;
42
+ }
43
+ _sessions [ "all" ] [ i ] . data [ j ] [ 0 ] = _sessions [ appID ] [ i ] . data [ j ] [ 0 ] ;
44
+ _sessions [ "all" ] [ i ] . data [ j ] [ 1 ] += parseFloat ( _sessions [ appID ] [ i ] . data [ j ] [ 1 ] ) ;
45
+ if ( i == "#draw-total-users" )
46
+ _appData [ "all" ] . users . total += _sessions [ appID ] [ i ] . data [ j ] [ 1 ] ;
47
+ else if ( i == "#draw-new-users" )
48
+ _appData [ "all" ] . newusers . total += _sessions [ appID ] [ i ] . data [ j ] [ 1 ] ;
49
+ else if ( i == "#draw-total-sessions" )
50
+ _appData [ "all" ] . sessions . total += _sessions [ appID ] [ i ] . data [ j ] [ 1 ] ;
51
+ else if ( i == "#draw-total-time-spent" )
52
+ _appData [ "all" ] . duration . total += parseFloat ( _sessions [ appID ] [ i ] . data [ j ] [ 1 ] ) ;
53
+ }
54
+ }
55
+ _appData [ "all" ] . sessions . trend += fromShortNumber ( sessionData . usage [ 'total-sessions' ] . change ) ;
56
+ _appData [ "all" ] . users . trend += fromShortNumber ( sessionData . usage [ 'total-users' ] . change ) ;
57
+ _appData [ "all" ] . newusers . trend += fromShortNumber ( sessionData . usage [ 'new-users' ] . change ) ;
58
+ _appData [ "all" ] . duration . trend += fromShortNumber ( sessionData . usage [ 'total-duration' ] . change ) ;
59
+ _appData [ "all" ] . avgduration . trend += fromShortNumber ( sessionData . usage [ 'avg-duration-per-session' ] . change ) ;
60
+ }
61
+ for ( var i in _appData [ "all" ] ) {
62
+ if ( _appData [ "all" ] [ i ] . trend < 0 )
63
+ _appData [ "all" ] [ i ] . trend = "d" ;
64
+ else
65
+ _appData [ "all" ] [ i ] . trend = "u" ;
66
+ }
67
+ _appData [ "all" ] . avgduration . total = ( _appData [ "all" ] . sessions . total == 0 ) ? 0 : _appData [ "all" ] . duration . total / _appData [ "all" ] . sessions . total ;
68
+ //transform total duration
69
+ var timeSpentString = ( _appData [ "all" ] . duration . total . toFixed ( 1 ) ) + " " + jQuery . i18n . map [ "common.minute.abrv" ] ;
70
+ if ( _appData [ "all" ] . duration . total >= 142560 ) {
71
+ timeSpentString = ( _appData [ "all" ] . duration . total / 525600 ) . toFixed ( 1 ) + " " + jQuery . i18n . map [ "common.year.abrv" ] ;
72
+ } else if ( _appData [ "all" ] . duration . total >= 1440 ) {
73
+ timeSpentString = ( _appData [ "all" ] . duration . total / 1440 ) . toFixed ( 1 ) + " " + jQuery . i18n . map [ "common.day.abrv" ] ;
74
+ } else if ( _appData [ "all" ] . duration . total >= 60 ) {
75
+ timeSpentString = ( _appData [ "all" ] . duration . total / 60 ) . toFixed ( 1 ) + " " + jQuery . i18n . map [ "common.hour.abrv" ] ;
76
+ }
77
+ _appData [ "all" ] . duration . total = timeSpentString ;
78
+
79
+ //transform avg duration
80
+ var timeSpentString = ( _appData [ "all" ] . avgduration . total . toFixed ( 1 ) ) + " " + jQuery . i18n . map [ "common.minute.abrv" ] ;
81
+ if ( _appData [ "all" ] . avgduration . total >= 142560 ) {
82
+ timeSpentString = ( _appData [ "all" ] . avgduration . total / 525600 ) . toFixed ( 1 ) + " " + jQuery . i18n . map [ "common.year.abrv" ] ;
83
+ } else if ( _appData [ "all" ] . avgduration . total >= 1440 ) {
84
+ timeSpentString = ( _appData [ "all" ] . avgduration . total / 1440 ) . toFixed ( 1 ) + " " + jQuery . i18n . map [ "common.day.abrv" ] ;
85
+ } else if ( _appData [ "all" ] . avgduration . total >= 60 ) {
86
+ timeSpentString = ( _appData [ "all" ] . avgduration . total / 60 ) . toFixed ( 1 ) + " " + jQuery . i18n . map [ "common.hour.abrv" ] ;
87
+ }
88
+ _appData [ "all" ] . avgduration . total = timeSpentString ;
89
+ } ) ;
90
+ } else {
91
+ return true ;
92
+ }
93
+ } ;
94
+
95
+ countlyAllApps . reset = function ( ) {
96
+ _appIds = { } ;
97
+ } ;
98
+
99
+ countlyAllApps . getData = function ( ) {
100
+ var data = [ ] ;
101
+ for ( var i in _appData ) {
102
+ data . push ( _appData [ i ] ) ;
103
+ }
104
+ return data ;
105
+ } ;
106
+
107
+ countlyAllApps . getSessionData = function ( ) {
108
+ return _sessions ;
109
+ } ;
110
+
111
+ countlyAllApps . setApp = function ( app ) {
112
+ _tempApp = app ;
113
+ countlyCommon . setActiveApp ( _tempApp ) ;
114
+ } ;
115
+
116
+ var loadApp = function ( appID ) {
117
+ countlyCommon . setActiveApp ( appID ) ;
118
+ return $ . when ( countlySession . initialize ( ) ) . done ( function ( ) {
119
+ var sessionData = countlySession . getSessionData ( ) ;
120
+ if ( ! _appIds [ appID ] ) {
121
+ _sessionData [ appID ] = sessionData ;
122
+ _sessions [ appID ] = {
123
+ "#draw-total-users" : countlySession . getUserDPActive ( ) . chartDP [ 1 ] ,
124
+ "#draw-new-users" : countlySession . getUserDPNew ( ) . chartDP [ 1 ] ,
125
+ "#draw-total-sessions" : countlySession . getSessionDPTotal ( ) . chartDP [ 1 ] ,
126
+ "#draw-time-spent" : countlySession . getDurationDPAvg ( ) . chartDP [ 1 ] ,
127
+ "#draw-total-time-spent" : countlySession . getDurationDP ( ) . chartDP [ 1 ] ,
128
+ "#draw-avg-events-served" : countlySession . getEventsDPAvg ( ) . chartDP [ 1 ]
129
+ } ;
130
+ _appData [ appID ] = { _id :appID , name :countlyGlobal [ "apps" ] [ appID ] . name , sessions :sessionData . usage [ 'total-sessions' ] , users :sessionData . usage [ 'total-users' ] , newusers :sessionData . usage [ 'new-users' ] , duration :sessionData . usage [ 'total-duration' ] , avgduration :sessionData . usage [ 'avg-duration-per-session' ] } ;
131
+ _appIds [ appID ] = true ;
132
+ }
133
+ } ) ;
134
+ } ;
135
+
136
+ var fromShortNumber = function ( str ) {
137
+ if ( str == "NA" || str == "∞" ) {
138
+ return 0 ;
139
+ }
140
+ else {
141
+ str = str . slice ( 0 , - 1 ) ;
142
+ var rate = 1 ;
143
+ if ( str . slice ( - 1 ) == "K" ) {
144
+ str = str . slice ( 0 , - 1 ) ;
145
+ rate = 1000 ;
146
+ }
147
+ else if ( str . slice ( - 1 ) == "M" ) {
148
+ str = str . slice ( 0 , - 1 ) ;
149
+ rate = 1000000 ;
150
+ }
151
+ return parseFloat ( str ) * rate ;
152
+ }
153
+ } ;
154
+ } ( window . countlyAllApps = window . countlyAllApps || { } , jQuery ) ) ;
0 commit comments