@@ -90,10 +90,10 @@ var region = {
90
90
* @returns [*]
91
91
*/
92
92
buildBiocacheQuery : function ( customParams , start , forChartValue ) {
93
- forChart = forChartValue || $ ( "#taxonomyTab" ) . attr ( 'aria-expanded' ) === 'true' ;
94
-
95
93
var currentState = regionWidget . getCurrentState ( ) ;
96
94
95
+ forChart = forChartValue || regionWidget . getCurrentState ( ) . tab === 'taxonomyTab' ;
96
+
97
97
var params = customParams || [ ] ;
98
98
99
99
//q= must be first
@@ -138,7 +138,7 @@ var region = {
138
138
params . push ( "start=" + start ) ;
139
139
}
140
140
141
- if ( timeFacet && ! forChart ) {
141
+ if ( timeFacet ) {
142
142
params . push ( "fq=" + timeFacet ) ;
143
143
}
144
144
@@ -263,10 +263,17 @@ var RegionWidget = function (config) {
263
263
*
264
264
*/
265
265
var initializeTabs = function ( ) {
266
- // Initialize tabs
267
- $ ( '#explorerTabs' ) . find ( 'a' ) . on ( 'show' , function ( e ) {
268
- var tabId = $ ( e . target ) . attr ( 'id' ) ;
269
- updateState ( { tab : tabId , group : 'ALL_SPECIES' , fq : '' , subgroup : '' , guid : '' } ) ;
266
+
267
+ $ ( '#speciesTab' ) . on ( 'click' , function ( event ) {
268
+ // reset species tab to all species, updating the map
269
+ if ( regionWidget ) regionWidget . getTimeControls ( ) . stop ( ) ;
270
+ updateState ( { tab : 'speciesTab' } ) ;
271
+ $ ( '#ALL_SPECIES-row i' ) . click ( ) ;
272
+ } ) ;
273
+ $ ( '#taxonomyTab' ) . on ( 'click' , function ( event ) {
274
+ if ( regionWidget ) regionWidget . getTimeControls ( ) . stop ( ) ;
275
+ updateState ( { tab : 'taxonomyTab' , group : 'ALL_SPECIES' , fq : '' , subgroup : '' , guid : '' } ) ;
276
+ taxonomyChart . reset ( ) ;
270
277
} ) ;
271
278
$ ( '#' + state . tab ) . click ( ) ;
272
279
@@ -337,22 +344,29 @@ var RegionWidget = function (config) {
337
344
* Code to execute when a group is selected
338
345
*/
339
346
var selectGroup = function ( group , fq ) {
347
+ var toggleExpansion = ! regionWidget . getTimeControls ( ) . isRunning ( )
340
348
341
349
$ ( '.group-row' ) . removeClass ( 'groupSelected' ) ;
342
- $ ( "tr[parent]" ) . hide ( ) ;
350
+
351
+ if ( toggleExpansion ) {
352
+ $ ( "tr[parent]" ) . hide ( ) ;
353
+ }
354
+
343
355
if ( group !== state . group ) {
344
356
$ ( '#' + state . group + '-row i' ) . removeClass ( 'fa-chevron-down' ) . addClass ( 'fa-chevron-right' ) ;
345
357
}
346
358
var groupId = group . replace ( / [ ^ A - Z a - z 0 - 9 \\ d _ ] / g, "" ) + '-row' ;
347
359
348
360
var grp = $ ( '#' + groupId + ' i' ) ;
349
361
var isAlreadyExpanded = grp . hasClass ( 'fa-chevron-down' ) ;
350
- if ( isAlreadyExpanded ) {
351
- $ ( "tr[parent='" + groupId + "']" ) . hide ( ) ;
352
- grp . removeClass ( 'fa-chevron-down' ) . addClass ( 'fa-chevron-right' ) ;
353
- } else {
354
- $ ( "tr[parent='" + groupId + "']" ) . show ( ) ;
355
- grp . removeClass ( 'fa-chevron-right' ) . addClass ( 'fa-chevron-down' ) ;
362
+ if ( toggleExpansion ) {
363
+ if ( isAlreadyExpanded ) {
364
+ $ ( "tr[parent='" + groupId + "']" ) . hide ( ) ;
365
+ grp . removeClass ( 'fa-chevron-down' ) . addClass ( 'fa-chevron-right' ) ;
366
+ } else {
367
+ $ ( "tr[parent='" + groupId + "']" ) . show ( ) ;
368
+ grp . removeClass ( 'fa-chevron-right' ) . addClass ( 'fa-chevron-down' ) ;
369
+ }
356
370
}
357
371
358
372
// Update widget state
@@ -652,7 +666,7 @@ var RegionTimeControls = function (config) {
652
666
$ ( '#timeSlider' ) . slider ( 'values' , [ regionWidget . getDefaultFromYear ( ) , regionWidget . getDefaultToYear ( ) ] ) ;
653
667
stop ( ) ;
654
668
regionWidget . updateDateRange ( regionWidget . getDefaultFromYear ( ) , regionWidget . getDefaultToYear ( ) ) ;
655
- taxonomyChart . reset ( ) ;
669
+ regionWidget . updateDateRange ( regionWidget . getDefaultFromYear ( ) , regionWidget . getDefaultToYear ( ) ) ; // called for a 2nd time for the use case when a "group" is select to restore the expansion toggle state
656
670
} ;
657
671
658
672
var updateTimeRange = function ( values ) {
@@ -663,6 +677,9 @@ var RegionTimeControls = function (config) {
663
677
var _public = {
664
678
isRunning : function ( ) {
665
679
return state === CONTROL_STATES . PLAYING ;
680
+ } ,
681
+ stop : function ( ) {
682
+ stop ( ) ;
666
683
}
667
684
} ;
668
685
@@ -677,7 +694,7 @@ var TaxonomyWidget = function (config) {
677
694
var TaxonomyWidget = function ( config ) {
678
695
var currentState = regionWidget . getCurrentState ( ) ;
679
696
680
- var query = '' ;
697
+ query = '' ;
681
698
$ . each ( region . buildBiocacheQuery ( [ ] , 0 , true ) , function ( i , v ) {
682
699
if ( query . length === 0 ) {
683
700
query = v
0 commit comments