aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/background-tasks/components/search.js
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2016-02-11 18:57:39 +0100
committerStas Vilchik <vilchiks@gmail.com>2016-02-16 14:44:59 +0100
commit4621ff0206176da5af9fc8c1c704a2ca5aded1ad (patch)
treeb2b6bbcb5ae6812c591f8c71e454454566f3d493 /server/sonar-web/src/main/js/apps/background-tasks/components/search.js
parente53211f03c6d95428b387cc3beddf5378579769a (diff)
downloadsonarqube-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.js118
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>
+ );
+ }
+});