aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/project-permissions/search.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-web/src/main/js/apps/project-permissions/search.js')
-rw-r--r--server/sonar-web/src/main/js/apps/project-permissions/search.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/server/sonar-web/src/main/js/apps/project-permissions/search.js b/server/sonar-web/src/main/js/apps/project-permissions/search.js
new file mode 100644
index 00000000000..dfc243f8636
--- /dev/null
+++ b/server/sonar-web/src/main/js/apps/project-permissions/search.js
@@ -0,0 +1,38 @@
+import _ from 'underscore';
+import React from 'react';
+
+export default React.createClass({
+ propTypes: {
+ search: React.PropTypes.func.isRequired
+ },
+
+ componentWillMount: function () {
+ this.search = _.debounce(this.search, 250);
+ },
+
+ onSubmit(e) {
+ e.preventDefault();
+ this.search();
+ },
+
+ search() {
+ let q = React.findDOMNode(this.refs.input).value;
+ this.props.search(q);
+ },
+
+ render() {
+ if (this.props.componentId) {
+ return null;
+ }
+ return (
+ <div className="panel panel-vertical bordered-bottom spacer-bottom">
+ <form onSubmit={this.onSubmit} className="search-box">
+ <button className="search-box-submit button-clean">
+ <i className="icon-search"></i>
+ </button>
+ <input onChange={this.search} ref="input" className="search-box-input" type="search" placeholder="Search"/>
+ </form>
+ </div>
+ );
+ }
+});