diff options
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.js | 38 |
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> + ); + } +}); |