@@ -15,27 +15,32 @@ function showWarningAlert(warningMessage, slideUpTime = 2000) {
15
15
} ) ;
16
16
}
17
17
18
- function checkGeoCoverage ( geoType , geoValue ) {
19
- var notCoveredSignals = [ ] ;
20
- $ . ajax ( {
21
- url : "epidata/covidcast/geo_coverage/" ,
22
- type : 'GET' ,
23
- async : false ,
24
- data : {
25
- 'geo' : `${ geoType } :${ geoValue } `
26
- } ,
27
- success : function ( result ) {
28
- checkedSignalMembers . forEach ( signal => {
29
- var covered = result [ "epidata" ] . some (
30
- e => ( e . source === signal . data_source && e . signal === signal . signal )
31
- )
32
- if ( ! covered ) {
33
- notCoveredSignals . push ( signal ) ;
34
- }
35
- } )
36
- }
37
- } )
38
- return notCoveredSignals ;
18
+ async function checkGeoCoverage ( geoType , geoValue ) {
19
+ const notCoveredSignals = [ ] ;
20
+
21
+ try {
22
+ const result = await $ . ajax ( {
23
+ url : "epidata/covidcast/geo_coverage/" ,
24
+ type : 'GET' ,
25
+ data : {
26
+ 'geo' : `${ geoType } :${ geoValue } `
27
+ }
28
+ } ) ;
29
+
30
+ checkedSignalMembers . forEach ( signal => {
31
+ const covered = result [ "epidata" ] . some (
32
+ e => ( e . source === signal . data_source && e . signal === signal . signal )
33
+ ) ;
34
+ if ( ! covered ) {
35
+ notCoveredSignals . push ( signal ) ;
36
+ }
37
+ } ) ;
38
+
39
+ return notCoveredSignals ;
40
+ } catch ( error ) {
41
+ console . error ( 'Error fetching geo coverage:' , error ) ;
42
+ return notCoveredSignals ;
43
+ }
39
44
}
40
45
41
46
@@ -123,6 +128,18 @@ function addSelectedSignal(element) {
123
128
}
124
129
}
125
130
131
+ $ ( "#showSelectedSignalsButton" ) . click ( function ( ) {
132
+ alertPlaceholder . innerHTML = "" ;
133
+ $ ( '#geographic_value' ) . select2 ( "data" ) . forEach ( geo => {
134
+ checkGeoCoverage ( geo . geoType , geo . id ) . then ( ( notCoveredSignals ) => {
135
+ if ( notCoveredSignals . length > 0 ) {
136
+ showNotCoveredGeoWarningMessage ( notCoveredSignals , geo . text ) ;
137
+ }
138
+ } )
139
+
140
+ } ) ;
141
+ } ) ;
142
+
126
143
// Add an event listener to each 'bulk-select' element
127
144
let bulkSelectDivs = document . querySelectorAll ( '.bulk-select' ) ;
128
145
bulkSelectDivs . forEach ( div => {
@@ -439,10 +456,12 @@ function showNotCoveredGeoWarningMessage(notCoveredSignals, geoValue) {
439
456
440
457
$ ( '#geographic_value' ) . on ( 'select2:select' , function ( e ) {
441
458
var geo = e . params . data ;
442
- var notCoveredSignals = checkGeoCoverage ( geo . geoType , geo . id )
443
- if ( notCoveredSignals . length > 0 ) {
444
- showNotCoveredGeoWarningMessage ( notCoveredSignals , geo . text ) ;
459
+ checkGeoCoverage ( geo . geoType , geo . id ) . then ( ( notCoveredSignals ) => {
460
+ if ( notCoveredSignals . length > 0 ) {
461
+ showNotCoveredGeoWarningMessage ( notCoveredSignals , geo . text ) ;
462
+ }
445
463
}
464
+ ) ;
446
465
} ) ;
447
466
448
467
@@ -454,9 +473,8 @@ function submitMode(event) {
454
473
appendAlert ( "Please select at least one geographic location" , "warning" )
455
474
return ;
456
475
}
457
-
476
+
458
477
if ( currentMode === 'epivis' ) {
459
- // appendAlert(warningMessage, "warning")
460
478
plotData ( ) ;
461
479
} else if ( currentMode === 'export' ) {
462
480
exportData ( ) ;
0 commit comments