Module: check_mk
Branch: master
Commit: 51d8235a86dedb3117c5dddbda7a3621a6f8feee
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=51d8235a86dedb…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sat Jan 8 17:47:48 2011 +0100
Multisite: persist painter options on per-user-base
---
ChangeLog | 1 +
web/htdocs/views.py | 3 ++-
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a7f7bd8..8f880d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
Multisite:
* New reschedule icon now also works for non-local sites.
+ * painter options are now persisted on a per-user-base
Livestatus:
* Check for buffer overflows (replace strcat with strncat, etc.)
diff --git a/web/htdocs/views.py b/web/htdocs/views.py
index d8a0026..8c5aae5 100644
--- a/web/htdocs/views.py
+++ b/web/htdocs/views.py
@@ -1161,7 +1161,6 @@ def view_options(viewname):
if config.user_may(config.user, "painter_options"):
for on, opt in multisite_painter_options.items():
- v[on] = opt["default"]
if html.has_var(on):
must_save = True
# Make sure only allowed values are returned
@@ -1169,6 +1168,8 @@ def view_options(viewname):
for val, title in opt["values"]:
if value == val:
v[on] = value
+ elif on not in v:
+ v[on] = opt["default"]
opt["value"] = v[on]
else:
Module: check_mk
Branch: master
Commit: 87f95e3053ef4ae7a4e4ae22121e00c804143f1c
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=87f95e3053ef4a…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Fri Jan 7 17:35:13 2011 +0100
Updated internal docu
---
.bugs/52 | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/.bugs/52 b/.bugs/52
index 840caf2..a66773e 100644
--- a/.bugs/52
+++ b/.bugs/52
@@ -42,3 +42,21 @@ jetzt auf ein Kommando klickt, muss ich bei jedem Datensatz wieder die ID
berechnen. Dann schauen, ob es eine Check-Variable gibt. Falls ja, muss
diese auf "on" stehen, damit das Kommando ausgeführt wird. Wenn keines
gewält ist, soll ein Hinweis kommen (gelb).
+
+Checkboxen(3): Jetzt ist mir noch eine Idee für die Implementierung
+gekommen. Man könnte die Checkboxen anstellen von HTML-Formularen
+mit Icons machen wie sie bei den BI assumed states verwendet werden.
+Also per Ajax die angecheckten Dinge in einer Datei persistieren.
+Die Implementierung wäre sehr einfach. Und die Häckchen bleiben für
+spätere Zwecke auch da. Wenn man eine Aktion auslöst, müsste diese
+einfach nur noch bei jeder Zeile prüfen, ob das Item gecheckt ist.
+Die Aktionen uncheck all entfernt dann einfach alle Häckchen, die
+in der aktuellen View sichtbar sind. Wichtig ist allerdings hier
+umsomehr: Wenn mehrere Leute mit dem gleichen Account arbeiten, wirds
+gefährlich. Kann man ein Browserfenster identifizieren und evtl.
+transid und Checkboxen relativ zum Browserfenster machen???
+Evtl. könnte man in ein Formular eine zufällige ID einkodieren
+und mit der transid nur noch prüfen, ob dieses Formular bereits
+abgeschickt wurde? Man würde dann pro Benutzer mehrere Transids
+speichern.
+
Module: check_mk
Branch: master
Commit: f0f41d73757479e5cdc871dcc697737689222236
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=f0f41d73757479…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jan 7 10:40:42 2011 +0100
Updated changelog
---
ChangeLog | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 269fc89..686babf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -63,6 +63,7 @@
converted other checks from 'from datetime import...' to 'import datetime'.
* printer_supply: handle the case where the current value is missing
* megaraid_ldisks: Fixed item detection to be compatible with different versions of megaraid
+ * Linux Agent: Added new 3ware agent code to support multiple controllers
Livestatus:
* new column pnpgraph_present in table host and service. In order for this
Module: check_mk
Branch: master
Commit: 2a597512fa502b9c42395ced53d45b2aa75f4913
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2a597512fa502b…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Jan 5 16:21:39 2011 +0100
Updated bug entries
---
.bugs/35 | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/.bugs/35 b/.bugs/35
index f6f4478..f29b671 100644
--- a/.bugs/35
+++ b/.bugs/35
@@ -1,10 +1,11 @@
Title: View-Editor: Spalten-Editieren komfortabler machen
Component: multisite
+State: done
+Class: feature
+Date: 2010-12-21 20:51:19
Benefit: 3
-State: open
Cost: 4
-Date: 2010-12-21 20:51:19
-Class: feature
+Fun: 0
Das aktuelle Prinzip ist eh doof, weil man keine Spalten in der Mitte
einfügen kann. Das müsste man irgendwie über Javascript hinbekommen.
@@ -25,3 +26,13 @@ Apache trotzdem an. Und dass man dann nicht html.var()
verwendet, sondern eine Hilfsfunktion, die mehrfach genannte
Variablen konserviert und z.B. als Array zur Verfügung stellt.
+
+2011-01-05 16:21:34: changed state open -> done
+Ich habs nun so gebaut, dass die IDs/Namen im DOM Baum umgebogen werden. Das mit den gleichen
+HTML Variablen hätte - soweit ich das gesehen habe - zuviele Auswirkungen auf allgemeinen Code
+im Multisite. Da war es mir lieber die Arbeit in den speziellen Code für den View Editor zu stecken.
+
+Zudem musste ich um das dynamische Hinzufügen von Columns zu ermöglichen eine neue Ajax Anfrage
+einbauen um den Code zum zeichnen der Felder nicht zu duplizieren.
+
+Scheint nun ganz gut zu funktionieren.
Module: check_mk
Branch: master
Commit: 47554f3a6108b5a78e377aa92784f0a59dc93f60
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=47554f3a6108b5…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Jan 5 11:16:32 2011 +0100
Catching javascript errors when pages from other domain are opened in content frame
---
ChangeLog | 1 +
web/htdocs/js/sidebar.js | 51 +++++++++++++++++++++++++++++++++++----------
2 files changed, 40 insertions(+), 12 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a7f7bd8..93804b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -54,6 +54,7 @@
* Fixed header displaying on views when the edit button is not shown to the user
* View pages are not refreshed when at least one form (Filter, Commands,
Display Options) is open
+ * Catching javascript errors when pages from other domain are opened in content frame
Checks & Agents:
* Fixed problem with OnlyFrom: in Linux agent (df didn't work properly)
diff --git a/web/htdocs/js/sidebar.js b/web/htdocs/js/sidebar.js
index 4fce77b..d132fd6 100644
--- a/web/htdocs/js/sidebar.js
+++ b/web/htdocs/js/sidebar.js
@@ -69,17 +69,32 @@ if (window.addEventListener) {
// This is no 100% solution. When moving the mouse out of browser window
// without moving the mouse over the edge elements the dragging is not ended.
function registerEdgeListeners(obj) {
- var edges;
- if(!obj)
- edges = [ parent.frames[1], document.getElementById('side_header'), document.getElementById('side_footer') ];
- else
- edges = [ obj ];
- for(var i in edges)
- if (window.addEventListener)
- edges[i].addEventListener("mousemove", function(e) { stopDragScroll(e); snapinTerminateDrag(e); return false; }, false);
- else
- edges[i].onmousemove = function(e) { stopDragScroll(e); snapinTerminateDrag(e); return false; };
- edges = null;
+ var edges;
+ if (!obj)
+ edges = [ parent.frames[1], document.getElementById('side_header'), document.getElementById('side_footer') ];
+ else
+ edges = [ obj ];
+
+ for(var i in edges) {
+ // It is possible to open other domains in the content frame - don't register
+ // the event in that case. It is not permitted by most browsers!
+ if(!contentFrameAccessible())
+ continue;
+
+ if (window.addEventListener)
+ edges[i].addEventListener("mousemove", function(e) {
+ stopDragScroll(e);
+ snapinTerminateDrag(e);
+ return false;
+ }, false);
+ else
+ edges[i].onmousemove = function(e) {
+ stopDragScroll(e);
+ snapinTerminateDrag(e);
+ return false;
+ };
+ }
+ edges = null;
}
/************************************************
@@ -632,13 +647,25 @@ function sidebar_scheduler() {
}
// Detect page changes and re-register the mousemove event handler
// in the content frame. another bad hack ... narf
- if (contentLocation != parent.frames[1].document.location) {
+ if (contentFrameAccessible() && contentLocation != parent.frames[1].document.location) {
registerEdgeListeners(parent.frames[1]);
contentLocation = parent.frames[1].document.location;
}
setTimeout(function(){sidebar_scheduler();}, 1000);
}
+// Checks if the sidebar can access the content frame. It might be denied
+// by the browser since it blocks cross domain access.
+function contentFrameAccessible() {
+ try {
+ var d = parent.frames[1].document;
+ d = null;
+ return true;
+ } catch (e) {
+ return false;
+ }
+}
+
function addBookmark() {
href = parent.frames[1].location;
title = parent.frames[1].document.title;