@@ -55,18 +55,45 @@ var data = {
5555 */
5656 changeFilteredTimePeriod : function ( eventNumber ) {
5757 data . filters . filteredTimePeriod = eventNumber ;
58+ $ ( ".current-event-number" ) . text ( eventNumber ) ;
5859 data . filters . updateActiveAndStats ( ) ;
5960 } ,
6061
6162 /**
6263 * Update a filter and update the data and statistics.
63- * @param {string } name The name of the variable whose filter
64- * we are updating.
64+ * @param {object } chart The chart we are filtering.
6565 * @param {object } extent A pair giving the extent of the filter.
6666 */
67- addFilter : function ( name , extent ) {
67+ addFilter : function ( chart , extent ) {
68+ var name = chart . name ;
6869 data . filters . activeFilters [ name ] = [ extent [ 0 ] , extent [ 1 ] ] ;
6970 data . filters . updateActiveAndStats ( ) ;
71+ $ ( ".no-filters" ) . hide ( ) ;
72+ $ ( ".remove-all-filters" ) . show ( ) ;
73+
74+ var button = $ ( "[data-remove-filter-button-name='" + name + "']" ) ;
75+ if ( button . length > 0 ) {
76+ button . empty ( ) ;
77+ } else {
78+ button = $ ( "<button/>" , {
79+ "class" : "btn btn-default show-chart-button" ,
80+ "style" : "display:none;" ,
81+ "data-remove-filter-button-name" : name
82+ } ) ;
83+ $ ( ".remove-filter-buttons" ) . append ( button ) ;
84+ button . fadeIn ( ) ;
85+ button . click ( function ( ) {
86+ button . fadeOut ( 400 , function ( ) {
87+ button . remove ( ) ;
88+ } ) ;
89+ chart . removeBrush ( ) ;
90+ } ) ;
91+ }
92+ button . append ( $ ( "<span/>" ,
93+ { "class" : "glyphicon glyphicon-minus" }
94+ ) ) ;
95+ var displayExtent = [ extent [ 0 ] . toFixed ( 2 ) , extent [ 1 ] . toFixed ( 2 ) ] ;
96+ button . append ( name + ", [" + displayExtent + "]" ) ;
7097 } ,
7198
7299 /**
@@ -76,6 +103,11 @@ var data = {
76103 */
77104 removeFilter : function ( name ) {
78105 delete data . filters . activeFilters [ name ] ;
106+ $ ( "[data-remove-filter-button-name='" + name + "']" ) . remove ( ) ;
107+ if ( Object . keys ( data . filters . activeFilters ) . length === 0 ) {
108+ $ ( ".no-filters" ) . show ( ) ;
109+ $ ( ".remove-all-filters" ) . hide ( ) ;
110+ }
79111 data . filters . updateActiveAndStats ( ) ;
80112 } ,
81113
@@ -85,8 +117,12 @@ var data = {
85117 clearFilters : function ( ) {
86118 for ( filter in data . filters . activeFilters ) {
87119 delete data . filters . activeFilters [ filter ] ;
120+ $ ( "[data-remove-filter-button-name='" + filter + "']" ) . remove ( ) ;
88121 }
122+ $ ( ".remove-all-filters" ) . hide ( ) ;
123+ $ ( ".no-filters" ) . show ( ) ;
89124 data . filters . updateActiveAndStats ( ) ;
125+ MDPVis . charts . updateAll ( ) ;
90126 } ,
91127
92128 /**
@@ -189,6 +225,7 @@ var data = {
189225 statistics . expectedValue = totalReward / activeRollouts . length ;
190226
191227 return statistics ;
192- } ,
228+ }
229+ }
193230
194- }
231+ $ ( ".remove-all-filters" ) . click ( data . filters . clearFilters ) ;
0 commit comments