Module: check_mk
Branch: master
Commit: 08b7603aa6406de29bf479cd3b0a008524e688a3
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=08b7603aa6406d…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun May 20 18:26:39 2012 +0200
Better layout for checkbox button
---
web/htdocs/js/checkmk.js | 35 +++++++++++++++++++++++++----------
web/htdocs/views.py | 13 +++++++++++--
2 files changed, 36 insertions(+), 12 deletions(-)
diff --git a/web/htdocs/js/checkmk.js b/web/htdocs/js/checkmk.js
index d467597..7267e72 100644
--- a/web/htdocs/js/checkmk.js
+++ b/web/htdocs/js/checkmk.js
@@ -1626,21 +1626,36 @@ function view_toggle_form(oButton, idForm) {
}
-/* Switch number of view columns, refresh and checkboxes */
+/* Switch number of view columns, refresh and checkboxes. If the
+ choices are missing, we do a binary toggle. */
gColumnSwitchTimeout = null;
function view_switch_option(oDiv, viewname, option, choices) {
var current_title = oDiv.firstChild.innerHTML;
- var new_choice = choices[0]; // in case not contained in choices
- for (var c=0; c<choices.length; c++) {
- choice = choices[c];
- val = choice[0];
- title = choice[1];
- if (current_title == title) {
- var new_choice = choices[(c+1) % choices.length];
- break;
+ if (choices) {
+ var new_choice = choices[0]; // in case not contained in choices
+ for (var c=0; c<choices.length; c++) {
+ choice = choices[c];
+ val = choice[0];
+ title = choice[1];
+ if (current_title == title) {
+ var new_choice = choices[(c+1) % choices.length];
+ break;
+ }
}
+ oDiv.firstChild.innerHTML = "" + new_choice[1];
}
- oDiv.firstChild.innerHTML = "" + new_choice[1];
+ else {
+ if (oDiv.className.indexOf('down') != -1) {
+ new_value = false;
+ oDiv.className = 'columnswitcher';
+ }
+ else {
+ new_value = true;
+ oDiv.className = 'columnswitcher down';
+ }
+ new_choice = [ new_value, '' ];
+ }
+
get_url_sync("ajax_set_viewoption.py?view_name=" + viewname +
"&option=" + option + "&value=" +
new_choice[0]);
if (option == "refresh")
diff --git a/web/htdocs/views.py b/web/htdocs/views.py
index 1040912..4785f85 100644
--- a/web/htdocs/views.py
+++ b/web/htdocs/views.py
@@ -1535,6 +1535,16 @@ def view_option_switcher(view, option, choices):
'onclick="view_switch_option(this, \'%s\', \'%s\',
%r);"><div>%s</div></div>' % (
view["name"], option, choices, title))
+def view_option_toggler(view, option, title):
+ vo = view_options(view["name"])
+ value = vo.get(option, view.get(option, False))
+ html.begin_context_buttons() # just to be sure
+ html.write('<div class="columnswitcher %s"'
+ 'onclick="view_switch_option(this, \'%s\',
\'%s\');"><div>%s</div></div>' % (
+ value and "down" or "", view["name"], option,
title))
+
+
+
# Will be called when the user presses the upper button, in order
# to persist the new setting - and to make it active before the
# browser reload of the DIV containing the actual status data is done.
@@ -1594,8 +1604,7 @@ def show_context_links(thisview, active_filters, show_filters,
display_options,
if 'C' in display_options:
if command_form:
toggle_button("commands", False, "commands",
_("Execute commands on hosts, services and other objects"))
- choices = [ [ False, 'O' ], [ True, 'X' ] ]
- view_option_switcher(thisview, "show_checkboxes", choices)
+ view_option_toggler(thisview, "show_checkboxes", "X")
else:
empty_toggle_button()
empty_toggle_button()