| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /* eslint-disable
- camelcase,
- handle-callback-err,
- max-len,
- no-return-assign,
- no-undef,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS101: Remove unnecessary use of Array.from
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- define(['base', 'services/algolia-search'], App =>
- App.controller('SearchWikiController', function($scope, algoliaSearch, _) {
- $scope.hits = []
- $scope.clearSearchText = function() {
- $scope.searchQueryText = ''
- return updateHits([])
- }
- $scope.safeApply = function(fn) {
- const phase = $scope.$root.$$phase
- if (phase === '$apply' || phase === '$digest') {
- return $scope.$eval(fn)
- } else {
- return $scope.$apply(fn)
- }
- }
- const buildHitViewModel = function(hit) {
- const page_underscored = hit.pageName.replace(/\s/g, '_')
- const section_underscored = hit.sectionName.replace(/\s/g, '_')
- let content = hit._highlightResult.content.value
- // Replace many new lines
- content = content.replace(/\n\n+/g, '\n\n')
- const lines = content.split('\n')
- // Only show the lines that have a highlighted match
- const matching_lines = []
- for (let line of Array.from(lines)) {
- if (!/^\[edit\]/.test(line)) {
- content += line + '\n'
- if (/<em>/.test(line)) {
- matching_lines.push(line)
- }
- }
- }
- content = matching_lines.join('\n...\n')
- const result = {
- name:
- hit._highlightResult.pageName.value +
- ' - ' +
- hit._highlightResult.sectionName.value,
- url: `/learn/${page_underscored}#${section_underscored}`,
- content
- }
- return result
- }
- var updateHits = hits => $scope.safeApply(() => ($scope.hits = hits))
- return ($scope.search = function() {
- const query = $scope.searchQueryText
- if (query == null || query.length === 0) {
- updateHits([])
- return
- }
- return algoliaSearch.searchWiki(query, function(err, response) {
- if (response.hits.length === 0) {
- return updateHits([])
- } else {
- const hits = _.map(response.hits, buildHitViewModel)
- return updateHits(hits)
- }
- })
- })
- }))
|