summaryrefslogtreecommitdiffstats
path: root/app/helpers/projects_helper.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-03-10 13:32:04 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-03-10 13:32:04 +0000
commit8b98ceb92c8fba72315d28c3b7664f481547bf24 (patch)
tree8d64bdfea3a8d89f2193f983c0d00248058b407b /app/helpers/projects_helper.rb
parent7a20a4d32b718f803aa4e3af286ab6a2275b8b6f (diff)
downloadredmine-8b98ceb92c8fba72315d28c3b7664f481547bf24.tar.gz
redmine-8b98ceb92c8fba72315d28c3b7664f481547bf24.zip
improved search engine
* it's now possible to search for multiple words ("all words" or "one of the words" options) * added a fixed limit for result count git-svn-id: http://redmine.rubyforge.org/svn/trunk@321 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/helpers/projects_helper.rb')
-rw-r--r--app/helpers/projects_helper.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index a6c033d0f..694dd9124 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -16,8 +16,14 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
module ProjectsHelper
- def result_overview(text, token)
- match = excerpt(text, token)
- match ? highlight(match, token) : truncate(text, 150)
+
+ def highlight_tokens(text, tokens)
+ return text unless tokens && !tokens.empty?
+ regexp = Regexp.new "(#{tokens.join('|')})", Regexp::IGNORECASE
+ result = ''
+ text.split(regexp).each_with_index do |words, i|
+ result << (i.even? ? (words.length > 100 ? "#{words[0..44]} ... #{words[-45..-1]}" : words) : content_tag('span', words, :class => 'highlight'))
+ end
+ result
end
end