Module: check_mk
Branch: master
Commit: a8e33592b14b1f7248789c232d652d4720a32e03
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a8e33592b14b1f…
Author: Andreas Boesl <ab(a)mathias-kettner.de>
Date: Tue May 30 11:04:12 2017 +0200
4702 FIX Quicksearch: fixed minor parsing issue when using specific filters
The first character of the entered search text was not evaluated correctly,
whenever specific filters, e.g. <tt>s: Check_MK</tt> where used.
This didn't cause much trouble, since the search itself was an infix search.
Change-Id: I2f9e83fca24e92e2d7fab22bcfda64bf1d0fde12
---
.werks/4702 | 14 ++++++++++++++
web/htdocs/sidebar.py | 16 +++++++---------
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/.werks/4702 b/.werks/4702
new file mode 100644
index 0000000..e8de533
--- /dev/null
+++ b/.werks/4702
@@ -0,0 +1,14 @@
+Title: Quicksearch: fixed minor parsing issue when using specific filters
+Level: 1
+Component: multisite
+Compatible: compat
+Edition: cre
+Version: 1.5.0i1
+Date: 1496134731
+Class: fix
+
+The first character of the entered search text was not evaluated correctly,
+whenever specific filters, e.g. <tt>s: Check_MK</tt> where used.
+This didn't cause much trouble, since the search itself was an infix search.
+
+
diff --git a/web/htdocs/sidebar.py b/web/htdocs/sidebar.py
index 9b1db5b..c369f4a 100644
--- a/web/htdocs/sidebar.py
+++ b/web/htdocs/sidebar.py
@@ -1055,24 +1055,23 @@ class LivestatusQuicksearch(object):
def _determine_search_objects(self):
- filter_names = set(map(lambda x: "(%s)" % x.get_filter_shortname(),
quicksearch_match_plugins))
+ filter_names = set(map(lambda x: "%s" % x.get_filter_shortname(),
quicksearch_match_plugins))
filter_regex = "|".join(filter_names)
- # Goal: "(^| )((hg)|h|(sg)|s|(al)|(tg)|(ad)):"
- regex = "(^| )(%(filter_regex)s):" % {"filter_regex":
filter_regex}
+ # Goal: "((^| )(hg|h|sg|s|al|tg|ad):)"
+ regex = "((^| )(%(filter_regex)s):)" % {"filter_regex":
filter_regex}
found_filters = []
matches = re.finditer(regex, self._query)
for match in matches:
- found_filters.append((match.group(2), match.start()))
+ found_filters.append((match.group(1), match.start()))
if found_filters:
- # I wasn't able to include the filter text into the regex match..
filter_spec = {}
current_string = self._query
for filter_type, offset in found_filters[-1::-1]:
- filter_text =
to_regex(current_string[offset+len(filter_type)+2:]).strip()
- filter_spec.setdefault(filter_type.strip(), [])
- filter_spec[filter_type.strip()].append(filter_text)
+ filter_text = to_regex(current_string[offset+len(filter_type):]).strip()
+ filter_name = filter_type.strip().rstrip(":")
+ filter_spec.setdefault(filter_name, []).append(filter_text)
current_string = current_string[:offset]
self._search_objects.append(LivestatusSearchConductor(filter_spec,
"continue"))
else:
@@ -1125,7 +1124,6 @@ class LivestatusQuicksearch(object):
if not search_object.num_rows():
continue
elements = search_object.get_elements()
- logger.error(elements)
elements.sort(key = lambda x: x["display_text"])
if show_match_topics:
match_topic = search_object.get_match_topic()