Commit 7caef3e5 authored by Ujvari Gergely's avatar Ujvari Gergely

Highlight in annotation's body for text search results

parent 7cc1fe45
......@@ -322,3 +322,22 @@ svg { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }
display: inline;
}
}
//SEARCH HIGHLIGHTS////////////////////////////////
.search-hl-active {
background: $highlightColor;
box-shadow:3px 3px 4px -1px #999999;
&::-moz-selection {
background: $highlightColor;
box-shadow:3px 3px 4px #999999;
}
&::-moz-selection, &::-moz-window-inactive, &::window-inactive {
background: $highlightColor;
box-shadow:3px 3px 4px #999999;
}
&::selection, &::selection:window-inactive {
background: $highlightColor;
box-shadow:3px 3px 4px #999999;
}
}
......@@ -429,9 +429,12 @@ class Viewer
class Search
this.$inject = ['$location', '$routeParams', '$scope', 'annotator']
constructor: ($location, $routeParams, $scope, annotator) ->
console.log 'SearchController'
$scope.highlighter = '<span class="search-hl-active">$&</span>'
refresh = =>
console.log 'routeParams'
console.log $routeParams
$scope.text_regexp = new RegExp($routeParams.in_body_text,"ig")
$scope.search_filter = $routeParams.matched
$scope.thread = null
heatmap = annotator.plugins.Heatmap
......@@ -446,11 +449,17 @@ class Search
for child in children
if child.id in $scope.search_filter
hit_in_children = true
break
if $routeParams.in_body_text and
child.text.toLowerCase().indexOf($routeParams.in_body_text) > -1
#Add highlight
child.text = child.text.replace $scope.text_regexp, $scope.highlighter
unless annotation.id in $scope.search_filter or hit_in_children
continue
if $routeParams.whole_document or annotation in $scope.annotations
if $routeParams.in_body_text and
annotation.text.toLowerCase().indexOf($routeParams.in_body_text) > -1
#Add highlight
annotation.text = annotation.text.replace $scope.text_regexp, $scope.highlighter
threads.push thread
$scope.threads = threads
#Replace this with threading call
......
......@@ -132,10 +132,15 @@ class Hypothesis extends Annotator
matched = []
whole_document = true
in_body_text = ''
for searchItem in searchCollection.models
if searchItem.attributes.category is 'area' and
searchItem.attributes.value is 'sidebar'
whole_document = false
if searchItem.attributes.category is 'text'
in_body_text = searchItem.attributes.value.toLowerCase()
if whole_document
annotations = @plugins.Store.annotations
else
......@@ -190,12 +195,11 @@ class Hypothesis extends Annotator
if matches
matched.push annotation.id
#$rootScope.search_filter = matched
# Set the path
search =
whole_document : whole_document
matched : matched
in_body_text: in_body_text
$location.path('/page_search').search(search)
$rootScope.$digest()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment