sami.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. window.projectVersion = 'master';
  2. (function(root) {
  3. var bhIndex = null;
  4. var rootPath = '';
  5. var treeHtml = ' <ul> <li data-name="namespace:Qcloud" class="opened"> <div style="padding-left:0px" class="hd"> <span class="glyphicon glyphicon-play"></span><a href="Qcloud.html">Qcloud</a> </div> <div class="bd"> <ul> <li data-name="namespace:Qcloud_Sms" class="opened"> <div style="padding-left:18px" class="hd"> <span class="glyphicon glyphicon-play"></span><a href="Qcloud/Sms.html">Sms</a> </div> <div class="bd"> <ul> <li data-name="class:Qcloud_Sms_FileVoiceSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/FileVoiceSender.html">FileVoiceSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsMobileStatusPuller" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsMobileStatusPuller.html">SmsMobileStatusPuller</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsMultiSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsMultiSender.html">SmsMultiSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsSenderUtil" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsSenderUtil.html">SmsSenderUtil</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsSingleSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsSingleSender.html">SmsSingleSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsStatusPuller" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsStatusPuller.html">SmsStatusPuller</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsVoicePromptSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsVoicePromptSender.html">SmsVoicePromptSender</a> </div> </li> <li data-name="class:Qcloud_Sms_SmsVoiceVerifyCodeSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/SmsVoiceVerifyCodeSender.html">SmsVoiceVerifyCodeSender</a> </div> </li> <li data-name="class:Qcloud_Sms_TtsVoiceSender" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/TtsVoiceSender.html">TtsVoiceSender</a> </div> </li> <li data-name="class:Qcloud_Sms_VoiceFileUploader" > <div style="padding-left:44px" class="hd leaf"> <a href="Qcloud/Sms/VoiceFileUploader.html">VoiceFileUploader</a> </div> </li> </ul></div> </li> </ul></div> </li> </ul>';
  6. var searchTypeClasses = {
  7. 'Namespace': 'label-default',
  8. 'Class': 'label-info',
  9. 'Interface': 'label-primary',
  10. 'Trait': 'label-success',
  11. 'Method': 'label-danger',
  12. '_': 'label-warning'
  13. };
  14. var searchIndex = [
  15. {"type": "Namespace", "link": "Qcloud.html", "name": "Qcloud", "doc": "Namespace Qcloud"},{"type": "Namespace", "link": "Qcloud/Sms.html", "name": "Qcloud\\Sms", "doc": "Namespace Qcloud\\Sms"},
  16. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/FileVoiceSender.html", "name": "Qcloud\\Sms\\FileVoiceSender", "doc": "&quot;\u6309\u8bed\u97f3\u6587\u4ef6fid\u53d1\u9001\u8bed\u97f3\u901a\u77e5\u7c7b&quot;"},
  17. {"type": "Method", "fromName": "Qcloud\\Sms\\FileVoiceSender", "fromLink": "Qcloud/Sms/FileVoiceSender.html", "link": "Qcloud/Sms/FileVoiceSender.html#method___construct", "name": "Qcloud\\Sms\\FileVoiceSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  18. {"type": "Method", "fromName": "Qcloud\\Sms\\FileVoiceSender", "fromLink": "Qcloud/Sms/FileVoiceSender.html", "link": "Qcloud/Sms/FileVoiceSender.html#method_send", "name": "Qcloud\\Sms\\FileVoiceSender::send", "doc": "&quot;\u6309\u8bed\u97f3\u6587\u4ef6fid\u53d1\u9001\u8bed\u97f3\u901a\u77e5&quot;"},
  19. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html", "name": "Qcloud\\Sms\\SmsMobileStatusPuller", "doc": "&quot;\u62c9\u53d6\u5355\u4e2a\u624b\u673a\u77ed\u4fe1\u72b6\u6001\u7c7b&quot;"},
  20. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsMobileStatusPuller", "fromLink": "Qcloud/Sms/SmsMobileStatusPuller.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html#method___construct", "name": "Qcloud\\Sms\\SmsMobileStatusPuller::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  21. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsMobileStatusPuller", "fromLink": "Qcloud/Sms/SmsMobileStatusPuller.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html#method_pullCallback", "name": "Qcloud\\Sms\\SmsMobileStatusPuller::pullCallback", "doc": "&quot;\u62c9\u53d6\u56de\u6267\u7ed3\u679c&quot;"},
  22. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsMobileStatusPuller", "fromLink": "Qcloud/Sms/SmsMobileStatusPuller.html", "link": "Qcloud/Sms/SmsMobileStatusPuller.html#method_pullReply", "name": "Qcloud\\Sms\\SmsMobileStatusPuller::pullReply", "doc": "&quot;\u62c9\u53d6\u56de\u590d\u4fe1\u606f&quot;"},
  23. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsMultiSender.html", "name": "Qcloud\\Sms\\SmsMultiSender", "doc": "&quot;\u7fa4\u53d1\u77ed\u4fe1\u7c7b&quot;"},
  24. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsMultiSender", "fromLink": "Qcloud/Sms/SmsMultiSender.html", "link": "Qcloud/Sms/SmsMultiSender.html#method___construct", "name": "Qcloud\\Sms\\SmsMultiSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  25. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsMultiSender", "fromLink": "Qcloud/Sms/SmsMultiSender.html", "link": "Qcloud/Sms/SmsMultiSender.html#method_send", "name": "Qcloud\\Sms\\SmsMultiSender::send", "doc": "&quot;\u666e\u901a\u7fa4\u53d1&quot;"},
  26. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsMultiSender", "fromLink": "Qcloud/Sms/SmsMultiSender.html", "link": "Qcloud/Sms/SmsMultiSender.html#method_sendWithParam", "name": "Qcloud\\Sms\\SmsMultiSender::sendWithParam", "doc": "&quot;\u6307\u5b9a\u6a21\u677f\u7fa4\u53d1&quot;"},
  27. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsSenderUtil.html", "name": "Qcloud\\Sms\\SmsSenderUtil", "doc": "&quot;\u53d1\u9001Util\u7c7b&quot;"},
  28. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_getRandom", "name": "Qcloud\\Sms\\SmsSenderUtil::getRandom", "doc": "&quot;\u751f\u6210\u968f\u673a\u6570&quot;"},
  29. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateSig", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateSig", "doc": "&quot;\u751f\u6210\u7b7e\u540d&quot;"},
  30. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForTemplAndPhoneNumbers", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateSigForTemplAndPhoneNumbers", "doc": "&quot;\u751f\u6210\u7b7e\u540d&quot;"},
  31. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_phoneNumbersToArray", "name": "Qcloud\\Sms\\SmsSenderUtil::phoneNumbersToArray", "doc": "&quot;&quot;"},
  32. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForTempl", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateSigForTempl", "doc": "&quot;\u751f\u6210\u7b7e\u540d&quot;"},
  33. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateSigForPuller", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateSigForPuller", "doc": "&quot;\u751f\u6210\u7b7e\u540d&quot;"},
  34. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_calculateAuth", "name": "Qcloud\\Sms\\SmsSenderUtil::calculateAuth", "doc": "&quot;\u751f\u6210\u4e0a\u4f20\u6587\u4ef6\u6388\u6743&quot;"},
  35. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_sha1sum", "name": "Qcloud\\Sms\\SmsSenderUtil::sha1sum", "doc": "&quot;\u751f\u6210sha1sum&quot;"},
  36. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_sendCurlPost", "name": "Qcloud\\Sms\\SmsSenderUtil::sendCurlPost", "doc": "&quot;\u53d1\u9001\u8bf7\u6c42&quot;"},
  37. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSenderUtil", "fromLink": "Qcloud/Sms/SmsSenderUtil.html", "link": "Qcloud/Sms/SmsSenderUtil.html#method_fetch", "name": "Qcloud\\Sms\\SmsSenderUtil::fetch", "doc": "&quot;\u53d1\u9001\u8bf7\u6c42&quot;"},
  38. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsSingleSender.html", "name": "Qcloud\\Sms\\SmsSingleSender", "doc": "&quot;\u5355\u53d1\u77ed\u4fe1\u7c7b&quot;"},
  39. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSingleSender", "fromLink": "Qcloud/Sms/SmsSingleSender.html", "link": "Qcloud/Sms/SmsSingleSender.html#method___construct", "name": "Qcloud\\Sms\\SmsSingleSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  40. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSingleSender", "fromLink": "Qcloud/Sms/SmsSingleSender.html", "link": "Qcloud/Sms/SmsSingleSender.html#method_send", "name": "Qcloud\\Sms\\SmsSingleSender::send", "doc": "&quot;\u666e\u901a\u5355\u53d1&quot;"},
  41. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsSingleSender", "fromLink": "Qcloud/Sms/SmsSingleSender.html", "link": "Qcloud/Sms/SmsSingleSender.html#method_sendWithParam", "name": "Qcloud\\Sms\\SmsSingleSender::sendWithParam", "doc": "&quot;\u6307\u5b9a\u6a21\u677f\u5355\u53d1&quot;"},
  42. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsStatusPuller.html", "name": "Qcloud\\Sms\\SmsStatusPuller", "doc": "&quot;\u62c9\u53d6\u77ed\u4fe1\u72b6\u6001\u7c7b&quot;"},
  43. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsStatusPuller", "fromLink": "Qcloud/Sms/SmsStatusPuller.html", "link": "Qcloud/Sms/SmsStatusPuller.html#method___construct", "name": "Qcloud\\Sms\\SmsStatusPuller::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  44. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsStatusPuller", "fromLink": "Qcloud/Sms/SmsStatusPuller.html", "link": "Qcloud/Sms/SmsStatusPuller.html#method_pullCallback", "name": "Qcloud\\Sms\\SmsStatusPuller::pullCallback", "doc": "&quot;\u62c9\u53d6\u56de\u6267\u7ed3\u679c&quot;"},
  45. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsStatusPuller", "fromLink": "Qcloud/Sms/SmsStatusPuller.html", "link": "Qcloud/Sms/SmsStatusPuller.html#method_pullReply", "name": "Qcloud\\Sms\\SmsStatusPuller::pullReply", "doc": "&quot;\u62c9\u53d6\u56de\u590d\u4fe1\u606f&quot;"},
  46. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsVoicePromptSender.html", "name": "Qcloud\\Sms\\SmsVoicePromptSender", "doc": "&quot;\u53d1\u9001\u8bed\u97f3\u901a\u77e5\u7c7b&quot;"},
  47. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsVoicePromptSender", "fromLink": "Qcloud/Sms/SmsVoicePromptSender.html", "link": "Qcloud/Sms/SmsVoicePromptSender.html#method___construct", "name": "Qcloud\\Sms\\SmsVoicePromptSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  48. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsVoicePromptSender", "fromLink": "Qcloud/Sms/SmsVoicePromptSender.html", "link": "Qcloud/Sms/SmsVoicePromptSender.html#method_send", "name": "Qcloud\\Sms\\SmsVoicePromptSender::send", "doc": "&quot;\u53d1\u9001\u8bed\u97f3\u901a\u77e5&quot;"},
  49. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html", "name": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender", "doc": "&quot;\u53d1\u9001\u8bed\u97f3\u9a8c\u8bc1\u7801\u7c7b&quot;"},
  50. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender", "fromLink": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html", "link": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html#method___construct", "name": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  51. {"type": "Method", "fromName": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender", "fromLink": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html", "link": "Qcloud/Sms/SmsVoiceVerifyCodeSender.html#method_send", "name": "Qcloud\\Sms\\SmsVoiceVerifyCodeSender::send", "doc": "&quot;\u53d1\u9001\u8bed\u97f3\u9a8c\u8bc1\u7801&quot;"},
  52. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/TtsVoiceSender.html", "name": "Qcloud\\Sms\\TtsVoiceSender", "doc": "&quot;\u6307\u5b9a\u6a21\u677f\u53d1\u9001\u8bed\u97f3\u901a\u77e5\u7c7b&quot;"},
  53. {"type": "Method", "fromName": "Qcloud\\Sms\\TtsVoiceSender", "fromLink": "Qcloud/Sms/TtsVoiceSender.html", "link": "Qcloud/Sms/TtsVoiceSender.html#method___construct", "name": "Qcloud\\Sms\\TtsVoiceSender::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  54. {"type": "Method", "fromName": "Qcloud\\Sms\\TtsVoiceSender", "fromLink": "Qcloud/Sms/TtsVoiceSender.html", "link": "Qcloud/Sms/TtsVoiceSender.html#method_send", "name": "Qcloud\\Sms\\TtsVoiceSender::send", "doc": "&quot;\u6307\u5b9a\u6a21\u677f\u53d1\u9001\u8bed\u97f3\u77ed\u4fe1&quot;"},
  55. {"type": "Class", "fromName": "Qcloud\\Sms", "fromLink": "Qcloud/Sms.html", "link": "Qcloud/Sms/VoiceFileUploader.html", "name": "Qcloud\\Sms\\VoiceFileUploader", "doc": "&quot;\u4e0a\u4f20\u8bed\u97f3\u6587\u4ef6\u7c7b&quot;"},
  56. {"type": "Method", "fromName": "Qcloud\\Sms\\VoiceFileUploader", "fromLink": "Qcloud/Sms/VoiceFileUploader.html", "link": "Qcloud/Sms/VoiceFileUploader.html#method___construct", "name": "Qcloud\\Sms\\VoiceFileUploader::__construct", "doc": "&quot;\u6784\u9020\u51fd\u6570&quot;"},
  57. {"type": "Method", "fromName": "Qcloud\\Sms\\VoiceFileUploader", "fromLink": "Qcloud/Sms/VoiceFileUploader.html", "link": "Qcloud/Sms/VoiceFileUploader.html#method_upload", "name": "Qcloud\\Sms\\VoiceFileUploader::upload", "doc": "&quot;\u4e0a\u4f20\u8bed\u97f3\u6587\u4ef6&quot;"},
  58. // Fix trailing commas in the index
  59. {}
  60. ];
  61. /** Tokenizes strings by namespaces and functions */
  62. function tokenizer(term) {
  63. if (!term) {
  64. return [];
  65. }
  66. var tokens = [term];
  67. var meth = term.indexOf('::');
  68. // Split tokens into methods if "::" is found.
  69. if (meth > -1) {
  70. tokens.push(term.substr(meth + 2));
  71. term = term.substr(0, meth - 2);
  72. }
  73. // Split by namespace or fake namespace.
  74. if (term.indexOf('\\') > -1) {
  75. tokens = tokens.concat(term.split('\\'));
  76. } else if (term.indexOf('_') > 0) {
  77. tokens = tokens.concat(term.split('_'));
  78. }
  79. // Merge in splitting the string by case and return
  80. tokens = tokens.concat(term.match(/(([A-Z]?[^A-Z]*)|([a-z]?[^a-z]*))/g).slice(0,-1));
  81. return tokens;
  82. };
  83. root.Sami = {
  84. /**
  85. * Cleans the provided term. If no term is provided, then one is
  86. * grabbed from the query string "search" parameter.
  87. */
  88. cleanSearchTerm: function(term) {
  89. // Grab from the query string
  90. if (typeof term === 'undefined') {
  91. var name = 'search';
  92. var regex = new RegExp("[\\?&]" + name + "=([^&#]*)");
  93. var results = regex.exec(location.search);
  94. if (results === null) {
  95. return null;
  96. }
  97. term = decodeURIComponent(results[1].replace(/\+/g, " "));
  98. }
  99. return term.replace(/<(?:.|\n)*?>/gm, '');
  100. },
  101. /** Searches through the index for a given term */
  102. search: function(term) {
  103. // Create a new search index if needed
  104. if (!bhIndex) {
  105. bhIndex = new Bloodhound({
  106. limit: 500,
  107. local: searchIndex,
  108. datumTokenizer: function (d) {
  109. return tokenizer(d.name);
  110. },
  111. queryTokenizer: Bloodhound.tokenizers.whitespace
  112. });
  113. bhIndex.initialize();
  114. }
  115. results = [];
  116. bhIndex.get(term, function(matches) {
  117. results = matches;
  118. });
  119. if (!rootPath) {
  120. return results;
  121. }
  122. // Fix the element links based on the current page depth.
  123. return $.map(results, function(ele) {
  124. if (ele.link.indexOf('..') > -1) {
  125. return ele;
  126. }
  127. ele.link = rootPath + ele.link;
  128. if (ele.fromLink) {
  129. ele.fromLink = rootPath + ele.fromLink;
  130. }
  131. return ele;
  132. });
  133. },
  134. /** Get a search class for a specific type */
  135. getSearchClass: function(type) {
  136. return searchTypeClasses[type] || searchTypeClasses['_'];
  137. },
  138. /** Add the left-nav tree to the site */
  139. injectApiTree: function(ele) {
  140. ele.html(treeHtml);
  141. }
  142. };
  143. $(function() {
  144. // Modify the HTML to work correctly based on the current depth
  145. rootPath = $('body').attr('data-root-path');
  146. treeHtml = treeHtml.replace(/href="/g, 'href="' + rootPath);
  147. Sami.injectApiTree($('#api-tree'));
  148. });
  149. return root.Sami;
  150. })(window);
  151. $(function() {
  152. // Enable the version switcher
  153. $('#version-switcher').change(function() {
  154. window.location = $(this).val()
  155. });
  156. // Toggle left-nav divs on click
  157. $('#api-tree .hd span').click(function() {
  158. $(this).parent().parent().toggleClass('opened');
  159. });
  160. // Expand the parent namespaces of the current page.
  161. var expected = $('body').attr('data-name');
  162. if (expected) {
  163. // Open the currently selected node and its parents.
  164. var container = $('#api-tree');
  165. var node = $('#api-tree li[data-name="' + expected + '"]');
  166. // Node might not be found when simulating namespaces
  167. if (node.length > 0) {
  168. node.addClass('active').addClass('opened');
  169. node.parents('li').addClass('opened');
  170. var scrollPos = node.offset().top - container.offset().top + container.scrollTop();
  171. // Position the item nearer to the top of the screen.
  172. scrollPos -= 200;
  173. container.scrollTop(scrollPos);
  174. }
  175. }
  176. var form = $('#search-form .typeahead');
  177. form.typeahead({
  178. hint: true,
  179. highlight: true,
  180. minLength: 1
  181. }, {
  182. name: 'search',
  183. displayKey: 'name',
  184. source: function (q, cb) {
  185. cb(Sami.search(q));
  186. }
  187. });
  188. // The selection is direct-linked when the user selects a suggestion.
  189. form.on('typeahead:selected', function(e, suggestion) {
  190. window.location = suggestion.link;
  191. });
  192. // The form is submitted when the user hits enter.
  193. form.keypress(function (e) {
  194. if (e.which == 13) {
  195. $('#search-form').submit();
  196. return true;
  197. }
  198. });
  199. });