Module: check_mk
Branch: master
Commit: 8d0e201954f078cb4d94f5963686b17aa51c2bcd
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8d0e201954f078…
Author: Simon Betz <si(a)mathias-kettner.de>
Date: Mon May 15 13:08:38 2017 +0200
4659 Added bulk moving operation for BI rules
Change-Id: I92df2156f8ac9b168a83a450c82ba804996228d2
---
.werks/4659 | 10 ++++++++++
web/plugins/wato/bi.py | 44 +++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 53 insertions(+), 1 deletion(-)
diff --git a/.werks/4659 b/.werks/4659
new file mode 100644
index 0000000..1b5220e
--- /dev/null
+++ b/.werks/4659
@@ -0,0 +1,10 @@
+Title: Added bulk moving operation for BI rules
+Level: 1
+Component: bi
+Compatible: compat
+Edition: cre
+Version: 1.5.0i1
+Date: 1494846484
+Class: feature
+
+
diff --git a/web/plugins/wato/bi.py b/web/plugins/wato/bi.py
index b9c1c75..7085f09 100644
--- a/web/plugins/wato/bi.py
+++ b/web/plugins/wato/bi.py
@@ -1114,6 +1114,9 @@ class ModeBIRules(ModeBI):
elif html.var("_bulk_delete_bi_rules"):
return self._bulk_delete_rules_after_confirm()
+ elif html.var("_bulk_move_bi_rules"):
+ return self._bulk_move_rules_after_confirm()
+
def _delete_rule_after_confirm(self):
ruleid = html.var("_del_rule")
@@ -1162,6 +1165,35 @@ class ModeBIRules(ModeBI):
raise MKUserError(None, _("You cannot delete this rule: it is still used
by other rules."))
+ def _bulk_move_rules_after_confirm(self):
+ target = None
+ if html.has_var('bulk_moveto'):
+ target = html.var('bulk_moveto', '')
+ html.javascript('update_bulk_moveto("%s")' % target)
+
+ target_pack = None
+ if target in self._packs:
+ target_pack = self._packs[target]
+
+ selected_rules = self._get_selected_rules()
+ if selected_rules and target_pack is not None:
+ c = wato_confirm(_("Confirm moving of %d rules to %s") % \
+ (len(selected_rules), target_pack['title']),
+ _("Do you really want to move %d rules to %s?") %
\
+ (len(selected_rules), target_pack['title']))
+ if c:
+ for ruleid in selected_rules:
+ rule_attrs = self._pack["rules"][ruleid]
+ target_pack["rules"].setdefault(ruleid, rule_attrs)
+ del self._pack["rules"][ruleid]
+ self._add_change("bi-move-rule",
+ _("Moved BI rule with id %s to BI pack %s")
% (ruleid, target))
+ self.save_config()
+
+ elif c == False:
+ return ""
+
+
def _get_selected_rules(self):
selected_rules = []
for varname in html.all_varnames_with_prefix("_c_rule_"):
@@ -1191,7 +1223,17 @@ class ModeBIRules(ModeBI):
html.hidden_fields()
fieldstyle = "margin-top:10px"
- html.button("_bulk_delete_bi_rules", _("Bulk Delete"),
"submit", style=fieldstyle)
+ html.button("_bulk_delete_bi_rules", _("Bulk delete"),
"submit", style=fieldstyle)
+ html.button("_bulk_move_bi_rules", _("Bulk move"),
"submit", style=fieldstyle)
+
+ if html.has_var('bulk_moveto'):
+ html.javascript('update_bulk_moveto("%s")' %
html.var('bulk_moveto', ''))
+ choices = [ (pack_id, attrs["title"]) for pack_id, attrs in
self._packs.items()
+ if pack_id is not self._pack["id"] and
self.is_contact_for_pack(attrs) ]
+
+ html.select("bulk_moveto", choices, "@",
+ onchange = "update_bulk_moveto(this.value)",
+ attrs = {'class': 'bulk_moveto', 'style':
fieldstyle})
html.end_form()