Module: check_mk
Branch: master
Commit: 9e68746c7b4e2aaf1620086e1b370f170071b796
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=9e68746c7b4e2a…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Aug 15 10:32:54 2011 +0200
Fixed assumption button for services with non-Ascii-characters
---
.bugs/323 | 11 +++++++++++
ChangeLog | 3 ++-
web/htdocs/bi.py | 6 +++---
web/htdocs/js/check_mk.js | 7 +++++--
web/plugins/views/bi.py | 13 ++++++++-----
5 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/.bugs/323 b/.bugs/323
new file mode 100644
index 0000000..e9ba1f0
--- /dev/null
+++ b/.bugs/323
@@ -0,0 +1,11 @@
+Title: Service with Non-Ascii-Characters do not work
+Component: bi
+Benefit: 1
+State: open
+Cost: 1
+Date: 2011-08-14 16:17:13
+Class: bug
+
+Problems are (maybe not only)
+- Link to Service details
+- Assumption button not working
diff --git a/ChangeLog b/ChangeLog
index d28e0cb..348678d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -98,7 +98,8 @@
BI:
* FIX: Fixed displaying of host states (after i18n introduction)h
- * FiX: fixed filter for aggregation group
+ * FiX: Fixed filter for aggregation group
+ * FIX: Fixed assumption button for services with non-Ascii-characters
MK Livestatus:
* FIX: fix compile problem on Debian unstable (Thanks to Sven Velt)
diff --git a/web/htdocs/bi.py b/web/htdocs/bi.py
index 18c5807..dc8b211 100644
--- a/web/htdocs/bi.py
+++ b/web/htdocs/bi.py
@@ -901,9 +901,9 @@ def page_all():
def ajax_set_assumption():
- site = html.var("site")
- host = html.var("host")
- service = html.var("service")
+ site = html.var_utf8("site")
+ host = html.var_utf8("host")
+ service = html.var_utf8("service")
if service:
key = (site, host, service)
else:
diff --git a/web/htdocs/js/check_mk.js b/web/htdocs/js/check_mk.js
index 622ebc1..dae749a 100644
--- a/web/htdocs/js/check_mk.js
+++ b/web/htdocs/js/check_mk.js
@@ -637,6 +637,7 @@ function toggle_foldable_container(treename, id) {
oBox = null;
}
+// TODO: Why is this not in a bi.js?
function toggle_assumption(oImg, site, host, service)
{
// get current state
@@ -654,9 +655,11 @@ function toggle_assumption(oImg, site, host, service)
else
current = parseInt(current) + 1;
- var url = "bi_set_assumption.py?site=" + site + '&host=' +
host;
+ // TODO: This needs to be URL-encoded. Also test for non-Ascii-Characters!
+ var url = "bi_set_assumption.py?site=" + encodeURIComponent(site)
+ + '&host=' + encodeURIComponent(host);
if (service) {
- url += '&service=' + service;
+ url += '&service=' + encodeURIComponent(service);
}
url += '&state=' + current;
oImg.src = "images/assume_" + current + ".png";
diff --git a/web/plugins/views/bi.py b/web/plugins/views/bi.py
index 705e1ba..7a98af3 100644
--- a/web/plugins/views/bi.py
+++ b/web/plugins/views/bi.py
@@ -164,20 +164,23 @@ def render_assume_icon(site, host, service):
else:
key = (site, host)
ass = bi.g_assumptions.get(key)
+ # TODO: Non-Ascii-Characters do not work yet!
mousecode = \
- 'onmouseover="this.style.cursor=\'pointer\';" ' \
+ u'onmouseover="this.style.cursor=\'pointer\';" ' \
'onmouseout="this.style.cursor=\'auto\';" ' \
'title="%s" ' \
- 'onclick="toggle_assumption(this, %s, %s, %s);" ' % \
+ 'onclick="toggle_assumption(this, \'%s\', \'%s\',
\'%s\');" ' % \
(_("Assume another state for this item (reload page to activate)"),
- repr(site), repr(str(host)), service == None and 'null' or
repr(str(service)))
+ # MIST: DAS HIER MUSS verfünftig für Javascript encodiert werden.
+ # Das Ausgangsmaterial sind UTF-8 kodierte str-Objekte.
+ site, host, service != None and service or '')
current = str(ass).lower()
- return '<img state="%s" class=assumption %s
src="images/assume_%s.png">\n' % (current, mousecode, current)
+ return u'<img state="%s" class=assumption %s
src="images/assume_%s.png">\n' % (current, mousecode, current)
def aggr_render_leaf(tree, show_host):
site, host = tree[2]["host"]
service = tree[2].get("service")
- content = render_assume_icon(site, host, service)
+ content = u"" + render_assume_icon(site, host, service)
# Four cases:
# (1) zbghora17 . Host status (show_host == True, service == None)