Module: check_mk
Branch: master
Commit: ca031ce2e1000775e8e8b71082315985d42c501e
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ca031ce2e10007…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Jan 17 14:58:00 2017 +0100
Generalized snapin site choice code
Change-Id: I206bad7dd697163eafbda6801e1bdb30b321cffd
---
web/htdocs/js/sidebar.js | 4 ++--
web/htdocs/sidebar.py | 33 +++++++++++++++++++++++++++++----
web/plugins/pages/shipped.py | 2 +-
web/plugins/sidebar/mkeventd.py | 14 ++------------
4 files changed, 34 insertions(+), 19 deletions(-)
diff --git a/web/htdocs/js/sidebar.js b/web/htdocs/js/sidebar.js
index 6a7470d..9289f83 100644
--- a/web/htdocs/js/sidebar.js
+++ b/web/htdocs/js/sidebar.js
@@ -902,8 +902,8 @@ function add_html_var(url, varname, value) {
* Event console site selection
*************************************************/
-function mkeventd_performance_set_ec_site(select_field) {
- get_url('sidebar_ajax_set_ec_site.py?site=' +
encodeURIComponent(select_field.value));
+function set_snapin_site(ident, select_field) {
+ get_url('sidebar_ajax_set_snapin_site.py?ident=' + encodeURIComponent(ident)
+ '&site=' + encodeURIComponent(select_field.value));
location.reload();
}
diff --git a/web/htdocs/sidebar.py b/web/htdocs/sidebar.py
index d2baaa8..e61dd0a 100644
--- a/web/htdocs/sidebar.py
+++ b/web/htdocs/sidebar.py
@@ -132,10 +132,29 @@ def footnotelinks(links):
end_footnote_links()
-
def heading(text):
html.write("<h3>%s</h3>\n" % html.attrencode(text))
+
+def snapin_site_choice(ident, choices):
+ sites = config.user.load_file("sidebar_sites", {})
+ site = sites.get(ident, "")
+ if site == "":
+ only_sites = None
+ else:
+ only_sites = [site]
+
+ import wato
+ site_choices = wato.get_event_console_site_choices()
+ if len(site_choices) <= 1:
+ return None
+
+ site_choices = [ ("", _("All sites")), ] + site_choices
+ html.select("site", site_choices, site, onchange="set_snapin_site(%s,
this)" % json.dumps(ident))
+
+ return only_sites
+
+
# Load current state of user's sidebar. Convert from
# old format (just a snapin list) to the new format
# (dictionary) on the fly
@@ -622,8 +641,12 @@ def ajax_tag_tree_enter():
config.user.save_file("virtual_host_tree", tree_conf)
-def ajax_set_ec_site():
- site = html.var("site")
+def ajax_set_snapin_site():
+ ident = html.var("ident")
+ if ident not in sidebar_snapins:
+ raise MKUserError(None, _("Invalid ident"))
+
+ site = html.var("site")
import wato
site_choices = dict([ ("", _("All sites")), ] \
+ wato.get_event_console_site_choices())
@@ -631,7 +654,9 @@ def ajax_set_ec_site():
if site not in site_choices:
raise MKUserError(None, _("Invalid site"))
- config.user.save_file("mkeventd_performance_site", site)
+ sites = config.user.load_file("sidebar_sites", {}, lock=True)
+ sites[ident] = site
+ config.user.save_file("sidebar_sites", sites, unlock=True)
def ajax_switch_site():
diff --git a/web/plugins/pages/shipped.py b/web/plugins/pages/shipped.py
index 2d4e0f0..0d9da17 100644
--- a/web/plugins/pages/shipped.py
+++ b/web/plugins/pages/shipped.py
@@ -81,7 +81,7 @@ pagehandlers.update({
"sidebar_ajax_speedometer" : sidebar.ajax_speedometer,
"sidebar_ajax_tag_tree" : sidebar.ajax_tag_tree,
"sidebar_ajax_tag_tree_enter" : sidebar.ajax_tag_tree_enter,
- "sidebar_ajax_set_ec_site" : sidebar.ajax_set_ec_site,
+ "sidebar_ajax_set_snapin_site" : sidebar.ajax_set_snapin_site,
"sidebar_get_messages" : sidebar.ajax_get_messages,
"sidebar_message_read" : sidebar.ajax_message_read,
"ajax_search" : sidebar.ajax_search,
diff --git a/web/plugins/sidebar/mkeventd.py b/web/plugins/sidebar/mkeventd.py
index 51435d4..8356011 100644
--- a/web/plugins/sidebar/mkeventd.py
+++ b/web/plugins/sidebar/mkeventd.py
@@ -82,19 +82,9 @@ def mkeventd_performance_entries(only_sites):
def render_mkeventd_performance():
- site = config.user.load_file("mkeventd_performance_site", "")
- if site == "":
- only_sites = None
- else:
- only_sites = [site]
+ only_sites = snapin_site_choice("mkeventd_performance",
+ wato.get_event_console_site_choices())
- import wato
- site_choices = wato.get_event_console_site_choices()
- if len(site_choices) > 1:
- site_choices = [ ("", _("All sites")), ] + site_choices
- html.select("site", site_choices, site,
onchange="mkeventd_performance_set_ec_site(this)")
- else:
- only_sites = None
try:
entries = mkeventd_performance_entries(only_sites)