Module: check_mk
Branch: master
Commit: 2b4f2b357aa0f6462c4b590195e5a7030e0e1dff
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2b4f2b357aa0f6…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jan 20 15:06:05 2012 +0100
WATO: Only showing wato folder filter when at least one folder exists; Only showing
context button when at least one host/folder is defined in wato
---
.bugs/492 | 7 +++++--
web/htdocs/views.py | 3 ++-
web/htdocs/wato.py | 20 +++++++++++++++++++-
web/plugins/views/wato.py | 2 +-
4 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/.bugs/492 b/.bugs/492
index c93291c..f9b2f15 100644
--- a/.bugs/492
+++ b/.bugs/492
@@ -1,11 +1,14 @@
Title: Hide WATO filter if no WATO is used
Component: multisite
+State: done
+Class: feature
Benefit: 1
-State: open
Cost: 1
Date: 2011-12-13 16:46:00
Targetversion: future
-Class: feature
If you have no folders defined then the WATO filter is
useless and should not appear in the filter form.
+
+2012-01-20 15:05:26: changed state open -> done
+Added check if at least one folder exists in the root folder
diff --git a/web/htdocs/views.py b/web/htdocs/views.py
index 1a665f7..9f1d56e 100644
--- a/web/htdocs/views.py
+++ b/web/htdocs/views.py
@@ -1640,7 +1640,8 @@ def show_context_links(thisview, active_filters):
if html.has_var("host") \
and config.wato_enabled \
and config.may("wato.use") \
- and (config.may("wato.hosts") or config.may("wato.seeall")):
+ and (config.may("wato.hosts") or config.may("wato.seeall")) \
+ and wato.using_wato_hosts():
host = html.var("host")
if host:
url = wato.api.link_to_host(host)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index a0df5b0..2d73959 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -863,7 +863,6 @@ def mode_folder(phase):
"be used to navigate in the status GUI. Attributes can be
inherited along the "
"paths of that tree. The usage of folders is
optional."))])
-
def prepare_folder_info():
declare_host_tag_attributes() # create attributes out of tag definitions
declare_site_attribute() # create attribute for distributed WATO
@@ -9467,6 +9466,25 @@ def call_hook_roles_saved(roles):
# | Functions needed at various places |
# '----------------------------------------------------------------------'
+# Returns true when at least one folder is defined in WATO
+def have_folders():
+ root_folder = load_folder(root_dir)
+ if len(root_folder[".folders"]) > 0:
+ return True
+ return False
+
+# Returns true if at least one host or folder exists in the wato root
+def using_wato_hosts():
+ root_folder = load_folder(root_dir)
+ if len(root_folder[".folders"]) > 0:
+ return True
+
+ load_hosts(root_folder)
+ if len(root_folder[".hosts"]) > 0:
+ return True
+
+ return False
+
def host_status_button(hostname, viewname):
html.context_button(_("Status"),
"view.py?" + htmllib.urlencode_vars([
diff --git a/web/plugins/views/wato.py b/web/plugins/views/wato.py
index e684c19..367e12f 100644
--- a/web/plugins/views/wato.py
+++ b/web/plugins/views/wato.py
@@ -33,7 +33,7 @@ class FilterWatoFile(Filter):
self.last_wato_data_update = None
def available(self):
- return config.wato_enabled
+ return config.wato_enabled and wato.have_folders()
def load_wato_data(self):
self.tree = wato.api.get_folder_tree()