@@ -3,41 +3,34 @@ joola.on('ready', function () {
3
3
4
4
joola . on ( 'query_updated' , function ( ) {
5
5
$ ( '.showingresults' ) . text ( 'Loading data...' ) ;
6
- while ( runningQueries . length > 0 ) {
7
- var lastQueryUUID = runningQueries . pop ( ) ;
6
+ stopRunningQueries ( ) ;
8
7
9
- if ( lastQueryUUID && lastQueryUUID . length > 0 ) {
10
- console . log ( 'stopping' , lastQueryUUID ) ;
11
- joola . query . stop ( lastQueryUUID ) ;
12
- }
13
- }
8
+ /*joola.query.fetch(query, function (err, docs ) {
9
+ if (err) {
10
+ console.error(err );
11
+ throw err;
12
+ }
14
13
15
- joola . query . fetch ( query , function ( err , docs ) {
16
- if ( err ) {
17
- console . error ( err ) ;
18
- throw err ;
19
- }
14
+ runningQueries.push(docs[0].query.realtimeUID);
15
+ buildShowingResults();
16
+ var data = docs[0].documents;
17
+ data.forEach(function (point) {
18
+ point.lat = point.location_lat;
19
+ point.lon = point.location_lon;
20
20
21
- runningQueries . push ( docs [ 0 ] . query . realtimeUID ) ;
22
- buildShowingResults ( ) ;
23
- var data = docs [ 0 ] . documents ;
24
- data . forEach ( function ( point ) {
25
- point . lat = point . location_lat ;
26
- point . lon = point . location_lon ;
27
-
28
- var marker = L . marker ( new L . LatLng ( point . lat , point . lon ) , {
29
- icon : L . mapbox . marker . icon ( { 'marker-color' : '#f86767' , 'marker-size' : 'small' } ) ,
30
- data : point
31
- } ) ;
32
- //markers.addLayer(marker);
33
- } ) ;
34
- markers . eachLayer ( function ( marker ) {
35
- //heat.addLatLng(marker.getLatLng());
36
-
37
- } ) ;
38
- } ) ;
21
+ var marker = L.marker(new L.LatLng(point.lat, point.lon), {
22
+ icon: L.mapbox.marker.icon({'marker-color': '#f86767', 'marker-size': 'small'}),
23
+ data: point
24
+ });
25
+ //markers.addLayer(marker);
26
+ });
27
+ markers.eachLayer(function (marker) {
28
+ //heat.addLatLng(marker.getLatLng());
39
29
30
+ });
31
+ });*/
40
32
33
+
41
34
new joola . viz . Table ( {
42
35
container : '#table' ,
43
36
query : query ,
@@ -62,46 +55,47 @@ joola.on('ready', function () {
62
55
var uuid = raw [ 0 ] . query . realtimeUID ;
63
56
if ( runningQueries . indexOf ( uuid ) === - 1 )
64
57
runningQueries . push ( uuid ) ;
58
+ buildShowingResults ( ) ;
65
59
} ,
66
60
enter : function ( data ) {
67
- var addMarker = function ( point ) {
68
- var marker = new google . maps . Marker ( {
69
- position : new google . maps . LatLng ( point . lat , point . lon ) ,
70
- map : map
71
- } ) ;
72
- var chHtml = "<h4>Event details</h4><div>" ;
73
- Object . keys ( point ) . forEach ( function ( key ) {
74
- var elem = point [ key ] ;
75
- if ( typeof elem !== 'object' )
76
- chHtml += '<strong>' + key + ':</strong> ' + elem + '<br/>' ;
77
- } ) ;
78
- var chInfoWindow = new google . maps . InfoWindow ( {
79
- content : chHtml ,
80
- maxWidth : 250
81
- } ) ;
82
- google . maps . event . addListener ( marker , 'click' , function ( ) {
83
- chInfoWindow . open ( map , marker ) ;
84
- } ) ;
85
- setTimeout ( function ( ) {
86
- marker . setMap ( null ) ;
87
- } , state . get ( 'config.tail.duration' ) ) ;
88
- } ;
89
-
90
61
data . forEach ( function ( point ) {
62
+ var key = point . key ;
91
63
point = point . raw ;
64
+
92
65
point . lat = point . location_lat ;
93
66
point . lon = point . location_lon ;
94
67
//addMarker(point);
95
68
96
- var marker = L . marker ( [ point . lat , point . lon ] , {
97
- icon : L . mapbox . marker . icon ( {
98
- 'marker-color' : '#f86767'
99
- } )
69
+ var marker = L . marker ( new L . LatLng ( point . lat , point . lon ) , {
70
+ icon : L . mapbox . marker . icon ( { 'marker-color' : '#f86767' , 'marker-size' : 'small' } ) ,
71
+ data : point ,
72
+ uuid : key
73
+ } ) ;
74
+ markers . addLayer ( marker ) ;
75
+ currentTableMarkers [ key ] = marker ;
76
+ markers . eachLayer ( function ( marker ) {
77
+ //heat.addLatLng(marker.getLatLng());
100
78
} ) ;
101
- //marker.addTo(map);
102
-
103
79
} ) ;
80
+
81
+ /*
82
+ var marker = L.marker([point.lat, point.lon], {
83
+ icon: L.mapbox.marker.icon({
84
+ 'marker-color': '#f86767'
85
+ })
86
+ });*/
87
+ //marker.addTo(map);
88
+
89
+
104
90
// L.mapbox.featureLayer(geojson).addTo(map);
91
+ } ,
92
+ exit : function ( data ) {
93
+ data . forEach ( function ( point ) {
94
+ var marker = currentTableMarkers [ point . key ] ;
95
+ // console.log('remove',marker);
96
+ markers . removeLayer ( marker ) ;
97
+ } ) ;
98
+
105
99
}
106
100
} ) ;
107
101
@@ -140,7 +134,8 @@ joola.on('ready', function () {
140
134
} ) ;
141
135
142
136
function buildShowingResults ( ) {
143
- var result = 'Showing results for date range ' ;
137
+ var count = Object . keys ( currentTableMarkers ) . length || 0 ;
138
+ var result = 'Showing <strong>' + count + '</strong> markers from ' ;
144
139
145
140
if ( typeof query . timeframe === 'string' )
146
141
result += '<strong>' + query . timeframe . replace ( / _ / ig, ' ' ) + '</strong>' ;
@@ -150,4 +145,15 @@ function buildShowingResults() {
150
145
result += '<strong>' + query . timeframe . end . toISOString ( ) + '</strong>' ;
151
146
}
152
147
$ ( '.showingresults' ) . html ( result ) ;
148
+ }
149
+
150
+ function stopRunningQueries ( ) {
151
+ while ( runningQueries . length > 0 ) {
152
+ var lastQueryUUID = runningQueries . pop ( ) ;
153
+
154
+ if ( lastQueryUUID && lastQueryUUID . length > 0 ) {
155
+ console . log ( 'stopping' , lastQueryUUID ) ;
156
+ joola . query . stop ( lastQueryUUID ) ;
157
+ }
158
+ }
153
159
}
0 commit comments