File tree Expand file tree Collapse file tree 6 files changed +2632
-3982
lines changed Expand file tree Collapse file tree 6 files changed +2632
-3982
lines changed Original file line number Diff line number Diff line change 1+ React Components Structure
2+ -------------------------- 
3+ 
4+ FilterBar
5+   -> FilterList
6+       -> FilterListOption
7+   -> ApplyFiltersButton
8+   -> ClearFiltersButton
9+   -> SaveFiltersButton
10+   -> SavedSearchesList
11+   -> ConfigurationButton *
12+   -> ExportResultsButton *
13+   -> BatchActionsList
14+   -> FilterDisplay
15+       -> FilterGroup
16+           -> FilterItem
17+           -> FilterButton
18+       -> FilterButton
  Load Diff Large diffs are not rendered by default. 
Original file line number Diff line number Diff line change @@ -18,10 +18,6 @@ export class FilterBar extends React.Component {
1818      < div > 
1919        < div > 
2020          < div  className = "btn-group margin-bottom-sm" > 
21-             < FilterList 
22-               disabledFilters = { this . context . filterBarStore . getDisabled ( ) } 
23-             /> 
24- 
2521            < ApplyFiltersButton 
2622              filterBarActor = { this . context . filterBarActor } 
2723            /> 
Original file line number Diff line number Diff line change 1+ import  {  FilterListOption  }  from  "../FilterList/FilterListOption.react" ; 
2+ export  class  FilterButton  extends  React . Component  { 
3+   constructor ( props )  { 
4+     super ( props ) ; 
5+ 
6+     this . state  =  {  filters : props . disabledFilters  } ; 
7+   } 
8+ 
9+   componentDidMount ( )  { 
10+     this . context . filterBarStore . addChangeListener ( this . onChange . bind ( this ) ) ; 
11+   } 
12+ 
13+   onChange ( )  { 
14+     this . setState ( this . getStateFromStores ( ) ) ; 
15+   } 
16+ 
17+   getStateFromStores ( )  { 
18+     return  { 
19+       filters : this . context . filterBarStore . getDisabled ( ) 
20+     } ; 
21+   } 
22+ 
23+   render ( )  { 
24+     var  optionKey  =  "" ; 
25+     var  filterOptions  =  Object . keys ( this . state . filters ) . map ( function ( filterUid )  { 
26+       optionKey  =  "option-"  +  filterUid ; 
27+       return  ( 
28+         < FilterListOption 
29+           filterUid = { filterUid } 
30+           key = { optionKey } 
31+           label = { this . state . filters [ filterUid ] . label } 
32+         /> 
33+       ) ; 
34+     } ,  this ) ; 
35+     return  ( 
36+       < div  className = 'btn-group' > 
37+         < button  className = 'btn btn-default dropdown-toggle'  data-toggle = 'dropdown'  type = 'button' > 
38+           < span > {  this . props . title  } </ span > 
39+           < i  className = 'icon icon-add' > </ i > 
40+         </ button > 
41+         < div  className = 'dropdown-menu'  role = 'menu' > 
42+           < ul  className = 'filter-options' > 
43+             { filterOptions } 
44+           </ ul > 
45+         </ div > 
46+       </ div > 
47+     ) 
48+   } 
49+ } 
50+ 
51+ FilterButton . contextTypes  =  { 
52+   filterBarActor : React . PropTypes . object , 
53+   filterBarStore : React . PropTypes . object 
54+ } ; 
55+ 
56+ FilterButton . propTypes  =  { 
57+   disabledFilters : React . PropTypes . object . isRequired 
58+ } ; 
Original file line number Diff line number Diff line change 11import  { FilterInput }  from  "./FilterInput.react" ; 
2- 
2+ import  { FilterButton }  from  "./FilterButton.react" ; 
3+ import  { FilterGroup }  from  "./FilterGroup.react" ; 
4+ import  {  FilterList  }  from  "../FilterList/FilterList.react" ; 
35export  class  FilterDisplay  extends  React . Component  { 
46  constructor ( props )  { 
57    super ( props ) ; 
@@ -41,29 +43,35 @@ export class FilterDisplay extends React.Component {
4143  } 
4244
4345  render ( )  { 
44-     var  filters  =  Object . keys ( this . state . filters ) . map ( function ( filterUid )  { 
45-       var  filter  =  this . state . filters [ filterUid ] ; 
46- 
46+     var  button  =  ( 
47+       < FilterButton 
48+         disabledFilters = { this . context . filterBarStore . getDisabled ( ) } 
49+         title = "OR" 
50+       /> 
51+     ) 
52+     var  filters  =  Object . keys ( this . state . filters ) . map ( function ( filterUID )  { 
4753      return  ( 
48-         < FilterInput 
49-           filterUid = { filterUid } 
50-           key = { filterUid } 
51-           label = { filter . label } 
52-           type = { filter . type } 
53-           value = { filter . value } 
54-           operator = { filter . operator } 
54+         < FilterGroup 
55+           filters = { this . state . filters } 
5556        /> 
5657      ) ; 
5758    } ,  this ) ; 
5859
5960    if  ( filters . length  ===  0 )  { 
60-       filters  =  ( < div > No Filters Enabled!</ div > ) ; 
61+       filters  =  ( 
62+         < FilterButton 
63+           disabledFilters = { this . context . filterBarStore . getDisabled ( ) } 
64+           title = "ADD FILTER" 
65+         /> 
66+       ) ; 
67+       button  =  "" ; 
6168    } 
6269
6370    return  ( 
6471      < div  className = "navbar filterbar" > 
6572        < div  className = "panel panel-default" > 
66-           { filters } 
73+           < div > { filters } </ div > 
74+           < div > { button } </ div > 
6775        </ div > 
6876      </ div > 
6977    ) ; 
Original file line number Diff line number Diff line change 1+ import  {  FilterInput  }  from  "./FilterInput.react" 
2+ import  {  FilterButton  }  from  "./FilterButton.react" 
3+ 
4+ export  class  FilterGroup  extends  React . Component  { 
5+   constructor ( props )  { 
6+     super ( props ) ; 
7+ 
8+     this . state  =  {  filters : props . filters  } ; 
9+   } 
10+ 
11+   addFilter ( )  { 
12+     alert ( "Add Filter" ) ; 
13+   } 
14+ 
15+   render ( )  { 
16+     var  button  =  ( 
17+       < FilterButton 
18+         disabledFilters = { this . context . filterBarStore . getDisabled ( ) } 
19+         title = "ADD" 
20+       /> 
21+     ) 
22+     var  filters  =  Object . keys ( this . state . filters ) . map ( function ( filterUid )  { 
23+       var  filter  =  this . state . filters [ filterUid ] ; 
24+ 
25+       return  ( 
26+         < div > 
27+           < FilterInput 
28+             filterUid = { filterUid } 
29+             key = { filterUid } 
30+             label = { filter . label } 
31+             type = { filter . type } 
32+             value = { filter . value } 
33+             operator = { filter . operator } 
34+           /> 
35+         </ div > 
36+       ) ; 
37+     } ,  this ) ; 
38+ 
39+     return  ( 
40+       < div > 
41+         { filters } 
42+         < div > 
43+           { button } 
44+         </ div > 
45+       </ div > 
46+     ) 
47+   } 
48+ } 
49+ 
50+ FilterGroup . contextTypes  =  { 
51+   filterBarActor : React . PropTypes . object , 
52+   filterBarStore : React . PropTypes . object 
53+ } ; 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments