Skip to content

Commit 73a31c8

Browse files
authored
Merge pull request #17 from jdestefano-mongo/master
DOCSP-726 - Implement Google Custom Search in new navbar
2 parents ca854b2 + f6802fc commit 73a31c8

File tree

4 files changed

+1338
-1541
lines changed

4 files changed

+1338
-1541
lines changed

themes/mongodb-tutorials/src/navbar-docs.js

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,44 @@ class NavbarDocs extends React.Component {
99
constructor (props) {
1010
super(props)
1111
}
12+
13+
componentDidMount () {
14+
var cx = '017213726194841070573:WMX6838984';
15+
var gcse = document.createElement('script');
16+
gcse.type = 'text/javascript';
17+
gcse.async = true;
18+
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
19+
gcse.onload = gcse.onreadystatechange = function() {
20+
$(function() {
21+
// hack to set a placeholder in google's custom search input
22+
var pollInput = window.setInterval(function() {
23+
var $input = $('.gsc-input input.gsc-input'),
24+
$div = $('.search-db');
25+
if ($input.length) {
26+
$input.on('focus', function(e) { $div.addClass('wide').removeClass('narrow'); });
27+
$input.on('blur', function(e) {
28+
if (!$input.val().length) { $div.addClass('narrow').removeClass('wide'); }
29+
});
30+
$input.attr('placeholder', "Search");
31+
window.clearInterval(pollInput);
32+
}
33+
}, 10);
34+
});
35+
};
36+
37+
var s = document.getElementsByTagName('script')[0];
38+
s.parentNode.insertBefore(gcse, s);
39+
}
1240

1341
render () {
1442
return (
1543
<Navbar baseURL={baseURL} assetsPrefix="/_static">
16-
<input type="search" className="navbar-search" placeholder="Search" />
44+
<div className="navbar-search">
45+
<div id="gsearch" className="gcse-searchbox-only" data-resultsUrl="http://docs.mongodb.com/manual/search/" data-queryParameterName="query"></div>
46+
</div>
1747
</Navbar>
1848
)
1949
}
2050
}
2151

22-
ReactDOM.render(<NavbarDocs />, document.getElementById('navbar-docs'))
52+
ReactDOM.render(<NavbarDocs />, document.getElementById('navbar-docs'))

0 commit comments

Comments
 (0)