47ea57080b515e5dad5f658c58feb8944a7e7d61 chmalee Thu Jan 29 15:30:26 2026 -0800 Replace clade/assembly dropdowns with a search bar on most CGIs. Add a recents list to hgGateway and to the species bar and to the 'Genomes' dropdown menu. Track recently selected species in localStorage. Add toGenome and fromGenome arguemnts to hubApi/liftOver in order to find appropriate liftover assemblies, refs #36232 diff --git src/hg/js/react/lib/CladeOrgDb.jsx src/hg/js/react/lib/CladeOrgDb.jsx index 257b83dd3d4..cd45f05fe08 100644 --- src/hg/js/react/lib/CladeOrgDb.jsx +++ src/hg/js/react/lib/CladeOrgDb.jsx @@ -1,40 +1,34 @@ /** @jsx React.DOM */ /* global ImmutableUpdate, PathUpdate, LabeledSelect */ var pt = React.PropTypes; var CladeOrgDb = React.createClass({ // LabeledSelect's for clade, org and db. mixins: [PathUpdate, ImmutableUpdate], // update(path + clade|org|db, newValue) called when user changes clade|org|db propTypes: { menuData: pt.object.isRequired, // Immutable.Map { // clade: x, cladeOptions: (LabeledSelect opts) // org: x, orgOptions: ..., db...} }, render: function() { var menuData = this.props.menuData; var path = this.props.path || []; return ( <div> - <LabeledSelect label='group' selected={menuData.get('clade')} - className='sectionItem' - options={menuData.get('cladeOptions')} - update={this.props.update} path={path.concat('clade')} /> - <LabeledSelect label='genome' selected={menuData.get('org')} - className='sectionItem' - options={menuData.get('orgOptions')} - update={this.props.update} path={path.concat('org')} /> - <LabeledSelect label='assembly' selected={menuData.get('db')} - className='sectionItem' - options={menuData.get('dbOptions')} - update={this.props.update} path={path.concat('db')} /> + <SpeciesSearch className="flexContainer" + db={menuData.get('db')} + org={menuData.get('org')} + update={this.props.update} + path={path.concat('db')} + /> </div> ); } }); // Without this, jshint complains that CladeOrgDb is not used. Module system would help. CladeOrgDb = CladeOrgDb;