diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2016-02-11 18:57:39 +0100 |
---|---|---|
committer | Stas Vilchik <vilchiks@gmail.com> | 2016-02-16 14:44:59 +0100 |
commit | 4621ff0206176da5af9fc8c1c704a2ca5aded1ad (patch) | |
tree | b2b6bbcb5ae6812c591f8c71e454454566f3d493 /server/sonar-web/src/main/js/apps/background-tasks/components/search.js | |
parent | e53211f03c6d95428b387cc3beddf5378579769a (diff) | |
download | sonarqube-4621ff0206176da5af9fc8c1c704a2ca5aded1ad.tar.gz sonarqube-4621ff0206176da5af9fc8c1c704a2ca5aded1ad.zip |
SONAR-7191 Update the background tasks page to reflect latest WS changes
Diffstat (limited to 'server/sonar-web/src/main/js/apps/background-tasks/components/search.js')
-rw-r--r-- | server/sonar-web/src/main/js/apps/background-tasks/components/search.js | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/search.js b/server/sonar-web/src/main/js/apps/background-tasks/components/search.js new file mode 100644 index 00000000000..349b62ad9c3 --- /dev/null +++ b/server/sonar-web/src/main/js/apps/background-tasks/components/search.js @@ -0,0 +1,118 @@ +/* + * SonarQube + * Copyright (C) 2009-2016 SonarSource SA + * mailto:contact AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +import React from 'react'; + +import StatusFilter from './StatusFilter'; +import TypesFilter from './TypesFilter'; +import CurrentsFilter from './CurrentsFilter'; +import DateFilter from './DateFilter'; +import { translate } from '../../../helpers/l10n'; + +export default React.createClass({ + + onSearchFormSubmit(e) { + e.preventDefault(); + this.onSearch(); + }, + + onSearch() { + let searchInput = this.refs.searchInput; + let query = searchInput.value; + this.props.onSearch(query); + }, + + renderSearchBox() { + if (this.props.options && this.props.options.component) { + // do not render search form on the project-level page + return null; + } + return ( + <input onChange={this.onSearch} + value={this.props.query} + ref="searchInput" + className="input-large" + type="search" + placeholder="Search"/> + ); + }, + + refresh(e) { + e.preventDefault(); + this.props.onRefresh(); + }, + + render() { + return ( + <section className="big-spacer-top big-spacer-bottom"> + <ul className="bt-search-form"> + <li> + <h6 className="bt-search-form-label"> + Status + </h6> + <StatusFilter + value={this.props.status} + onChange={this.props.onStatusChange}/> + </li> + {this.props.types.length > 1 && ( + <li> + <h6 className="bt-search-form-label"> + Type + </h6> + <TypesFilter + value={this.props.taskType} + onChange={this.props.onTypeChange} + types={this.props.types}/> + </li> + )} + <li> + <h6 className="bt-search-form-label"> + Only Latest Analysis + </h6> + <CurrentsFilter + value={this.props.currents} + onChange={this.props.onCurrentsChange}/> + </li> + <li> + <h6 className="bt-search-form-label"> + Date + </h6> + <DateFilter + value={this.props.date} + onChange={this.props.onDateChange}/> + </li> + <li> + <h6 className="bt-search-form-label"> + Component + </h6> + {this.renderSearchBox()} + </li> + <li className="bt-search-form-right"> + <button + ref="reloadButton" + onClick={this.refresh} + disabled={this.props.fetching}> + {translate('reload')} + </button> + </li> + </ul> + </section> + ); + } +}); |