X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fsparky-fe.git;a=blobdiff_plain;f=src%2Fgeneric-components%2FautoCompleteSearchBar%2FAutoCompleteSearchBar.jsx;h=3bc950898f516acc4440ed8b7f1c4a48e79e8736;hp=47cdc9ab97e0cab76d631f45ff2cc23f081e583b;hb=5ee7367a101143715c2869d72ea4a6fbf55f5af6;hpb=ddc05d4ea0254b427fea6ec80e2b03950eeca4ce diff --git a/src/generic-components/autoCompleteSearchBar/AutoCompleteSearchBar.jsx b/src/generic-components/autoCompleteSearchBar/AutoCompleteSearchBar.jsx index 47cdc9a..3bc9508 100644 --- a/src/generic-components/autoCompleteSearchBar/AutoCompleteSearchBar.jsx +++ b/src/generic-components/autoCompleteSearchBar/AutoCompleteSearchBar.jsx @@ -25,13 +25,16 @@ import AutoSuggest from 'react-autosuggest'; import Highlighter from 'react-highlight-words'; import debounce from 'lodash.debounce'; import {ButtonGroup} from 'react-bootstrap'; +import Modal from 'react-bootstrap/lib/Modal'; import {Link} from 'react-router-dom'; +import {genericRequest} from 'app/networking/NetworkCalls.js'; import {changeUrlAddress} from 'utils/Routes.js'; import { ICON_CLASS_SEARCH, ICON_CLASS_CLEAR, + ICON_CLASS_HELP, SEARCH_DEBOUNCE_TIME, NO_MATCHES_FOUND, SEARCH_PLACEHOLDER_TEXT @@ -45,6 +48,15 @@ export default class AutoCompleteSearchBar extends Component { suggestionName: PropTypes.string }; + constructor(props) { + console.log(props); + super(props); + this.state = { + helpModalShow: false, + searchable: [] + }; + }; + componentWillMount() { this.debouncedLoadSuggestions = debounce(this.props.onSuggestionsFetchRequested, SEARCH_DEBOUNCE_TIME); @@ -107,9 +119,40 @@ export default class AutoCompleteSearchBar extends Component { onChange: onInputChange }; + let closeHelpModal = () => { + this.setState({helpModalShow: false}); + }; + let showHelpModal = () => { + genericRequest('/schema/searchable', true, 'GET').then(res=>{ + let searchDOM = res.sort(function(a, b) { + var compareA = (a['node-type']).toLowerCase(); + var compareB = (b['node-type']).toLowerCase(); + if(compareA < compareB){ + return -1; + }; + if(compareA > compareB){ + return 1; + }; + return 0; + }).map((prop) => { + return ( +

{prop['node-type']}:

{prop['searchable-attributes']}

+ ); + }); + this.setState({searchable: searchDOM, helpModalShow: true}); + }, error => { + console.log(error); + this.setState({searchable: 'An error occurred, please try again later.', helpModalShow: true}); + }).catch(error => { + console.log(error); + this.setState({searchable: 'An error occurred, please try again later.', helpModalShow: true}); + }); + }; + let clearButtonClass = (value.length > 0) ? 'auto-complete-clear-button' : 'auto-complete-clear-button hidden'; + return (