Module: check_mk
Branch: master
Commit: 1c4114b5f3c2a7f387604b85752a905ed1e499e9
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=1c4114b5f3c2a7…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Oct 21 12:24:23 2013 -0400
Multisite: make sidebar foldable
simply click on the left 10 pixels of the screen.
Tested on Firefox and Chrome. Please report problems
in IE if you experiance any...
---
ChangeLog | 3 ++-
web/htdocs/images/side_fold.png | Bin 0 -> 452 bytes
web/htdocs/js/sidebar.js | 38 +++++++++++++++++++++++++++++++++++++-
web/htdocs/sidebar.css | 17 ++++++++++++++++-
web/htdocs/sidebar.py | 5 +++--
5 files changed, 58 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b9d0fde..8b5b781 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -23,7 +23,8 @@
* Added host aliases filter to some views (host/service search)
* It is now possible to enforce checkboxes in views upon view loading
(needs to be confgured per view via the view editor)
- * Wiki Sitebar Snapin: showing navigation and quicksearch. OMD only.
+ * Wiki Sidebar Snapin: showing navigation and quicksearch. OMD only.
+ * Sidebar can now be folded. Simply click somewhere at the left 10 pixels.
* FIX: Fixed encoding problem in webservice column output
* FIX: Fix output format python for several numeric columns
* FIX: Fixed searching hosts by aliases/adresses
diff --git a/web/htdocs/images/side_fold.png b/web/htdocs/images/side_fold.png
new file mode 100644
index 0000000..8da7a90
Binary files /dev/null and b/web/htdocs/images/side_fold.png differ
diff --git a/web/htdocs/js/sidebar.js b/web/htdocs/js/sidebar.js
index be179e1..86f5b48 100644
--- a/web/htdocs/js/sidebar.js
+++ b/web/htdocs/js/sidebar.js
@@ -29,6 +29,8 @@ var weAreFirefox = browser.indexOf("firefox") != -1 ||
browser.indexOf("namor
var g_orig_title = null;
var g_content_loc = null;
+var sidebar_folded = false;
+
//
// Sidebar styling and scrolling stuff
//
@@ -461,10 +463,19 @@ function startDragScroll(event) {
if (!event)
event = window.event;
+ if (sidebar_folded) {
+ unfoldSidebar();
+ return false;
+ }
+ else if (!sidebar_folded && event.clientX < 10) {
+ foldSidebar();
+ return false;
+ }
+
+
var target = getTarget(event);
var button = getButton(event);
- // Evtl. auch nur mit Shift Taste: (e.button == 0 && (e["shiftKey"])
if (dragging === false && button == 'LEFT'
&& target.tagName != 'A'
&& target.tagName != 'INPUT'
@@ -522,6 +533,31 @@ function dragScroll(event) {
return false;
}
+function foldSidebar()
+{
+ document.getElementById('check_mk_sidebar').style.position =
"relative";
+ document.getElementById('check_mk_sidebar').style.left = "-265px";
+ if (isWebkit()) {
+ var oldcols = parent.document.body.cols.split(",");
+ var oldwidth = parseInt(oldcols[0]);
+ var new_width = 10.0 / 280.0 * oldwidth;
+ parent.document.body.cols = new_width.toString() + ",*";
+ }
+ else
+ parent.document.body.cols = "10,*";
+ sidebar_folded = true;
+}
+
+
+function unfoldSidebar()
+{
+ document.getElementById('check_mk_sidebar').style.position = "";
+ document.getElementById('check_mk_sidebar').style.left = "0";
+ parent.document.body.cols = "280,*";
+ sidebar_folded = false;
+}
+
+
/************************************************
* Mausrad scrollen
*************************************************/
diff --git a/web/htdocs/sidebar.css b/web/htdocs/sidebar.css
index 6dacbd7..0a8ed02 100644
--- a/web/htdocs/sidebar.css
+++ b/web/htdocs/sidebar.css
@@ -61,10 +61,25 @@ body.side {
#side_header a {
display: block;
- width: 100%;
+ width: 255px;
height: 55px;
text-decoration: none;
+ margin-left: 10px; /* space for sidebar folding */
+}
+
+#side_fold {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ width: 10px;
+ height: 55px;
}
+#side_fold:hover {
+ background-repeat: no-repeat;
+ background-position: -3px 7px;
+ background-image: url("images/side_fold.png");
+}
+
#side_version {
position: absolute;
diff --git a/web/htdocs/sidebar.py b/web/htdocs/sidebar.py
index 5f6b478..da0a521 100644
--- a/web/htdocs/sidebar.py
+++ b/web/htdocs/sidebar.py
@@ -131,8 +131,9 @@ def save_user_config(user_config):
config.save_user_file("sidebar", user_config)
def sidebar_head():
- html.write('<div id="side_header">'
- '<a title="%s" target="main"
href="%s">'
+ html.write('<div id="side_header">')
+ html.write('<div id="side_fold"></div>')
+ html.write('<a title="%s" target="main"
href="%s">'
'<div id="side_version">%s</div>'
'</a>'
'</div>\n' % (_("Go to main overview"),
config.start_url, defaults.check_mk_version))