[CalendarServer-changes] [12824] CalendarServer/trunk/calendarserver/webadmin/work.xhtml
source_changes at macosforge.org
source_changes at macosforge.org
Wed Mar 5 17:09:41 PST 2014
Revision: 12824
http://trac.calendarserver.org//changeset/12824
Author: wsanchez at apple.com
Date: 2014-03-05 17:09:41 -0800 (Wed, 05 Mar 2014)
Log Message:
-----------
Show job items in a table below the chart.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/webadmin/work.xhtml
Modified: CalendarServer/trunk/calendarserver/webadmin/work.xhtml
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/work.xhtml 2014-03-05 23:16:47 UTC (rev 12823)
+++ CalendarServer/trunk/calendarserver/webadmin/work.xhtml 2014-03-06 01:09:41 UTC (rev 12824)
@@ -43,6 +43,10 @@
display: none;
}
+ #debug {
+ display: none;
+ }
+
</style>
<script src="http://d3js.org/d3.v3.min.js"></script>
@@ -95,9 +99,9 @@
// been mapped; the mapped keys will be in a known order and the rest
// will be in whatever order they came in over the wire.
function keysInKindOfKnownOrder(obj1, obj2) {
- keys = [];
- for (key in obj1) { keys.push(key); }
- for (key in obj2) { if (! key in obj1) { keys.push(key); } }
+ var keys = [];
+ for (var key in obj1) { keys.push(key); }
+ for (var key in obj2) { if (! key in obj1) { keys.push(key); } }
return keys;
}
@@ -109,18 +113,21 @@
}
}
+ var debug = false;
+
var maxSeen = 30;
- var eventSource = undefined;
- var itemTypeEventListener = undefined;
+ var eventSource;
+ var itemTypeEventListener;
+ var itemTypeEventListenerWorkType;
function drawChart(data) {
- items = [];
+ var items = [];
- keys = keysInKindOfKnownOrder(workTypeDescriptions, data);
+ var keys = keysInKindOfKnownOrder(workTypeDescriptions, data);
- for (i in keys) {
- key = keys[i]; // OMG JavaScript, seriously?
+ for (var i in keys) {
+ var key = keys[i]; // OMG JavaScript, seriously?
if (key in data) {
items.push({
@@ -273,9 +280,9 @@
}
function initChart() {
- data = {};
+ var data = {};
- for (key in workTypeDescriptions) {
+ for (var key in workTypeDescriptions) {
data[key] = 0.1;
}
@@ -298,27 +305,37 @@
}
function showDetails(workType) {
- // DEBUG
- detailsDebug = document.getElementById("work_item_debug");
- detailsDebug.innerHTML = workType;
- eventDebug = document.getElementById("event_debug");
- eventDebug.innerHTML = "";
+ var debuggingContainer = document.getElementById("debug");
+ if (debug) {
+ debuggingContainer.style.display = "block";
+
+ var detailsDebug = document.getElementById("work_item_debug");
+ detailsDebug.innerHTML = workType;
+
+ var eventDebug = document.getElementById("event_debug");
+ eventDebug.innerHTML = "";
+
+ } else {
+ debuggingContainer.style.display = "none";
+ }
+
+ // Get description
if (workType in workTypeDescriptions) {
- description = workTypeDescriptions[workType];
+ var description = workTypeDescriptions[workType];
} else {
- description = workType;
+ var description = workType;
}
// Look up elements
- detailsTable = document.getElementById("work_item_details");
- detailsCaption = document.getElementById("work_item_details_caption");
- detailsHeader = document.getElementById("work_item_details_header");
- detailsBody = document.getElementById("work_item_details_body");
+ var detailsTable = document.getElementById("work_item_details");
+ var detailsCaption = document.getElementById("work_item_details_caption");
+ var detailsHeader = document.getElementById("work_item_details_header");
+ var detailsBody = document.getElementById("work_item_details_body");
// Unregister existing details listener
- if (itemTypeEventListener != undefined) {
- eventSource.removeEventListener(itemTypeEventListener)
+ if (typeof itemTypeEventListener !== "undefined") {
+ eventSource.removeEventListener(itemTypeEventListenerWorkType, itemTypeEventListener)
}
// Reset the details elements
@@ -328,30 +345,36 @@
detailsBody.innerHTML = "";
// Register requested details listener
+ itemTypeEventListenerWorkType = workType;
+
itemTypeEventListener = function(e) {
- // DEBUG
- eventDebug.innerHTML = e.data;
+ if (debug) {
+ eventDebug.innerHTML = e.data;
+ }
- jobItems = JSON.parse(e.data);
+ // Reset the rows; we're going to refill the table below
+ detailsBody.innerHTML = "";
- for (i in jobItems) {
- jobItem = jobItems[i]; // OMG JavaScript is so stupid.
+ var jobItems = JSON.parse(e.data);
+ for (var i in jobItems) {
+ var jobItem = jobItems[i]; // OMG JavaScript is so stupid.
+
// Unhide the table
detailsTable.style.display = "block";
+ var attributes = keysInKindOfKnownOrder(jobItemAttributeDescriptions, jobItem);
+
// Add the table headers if they aren't already there
if (detailsHeader.innerHTML == "") {
- row = document.createElement("tr");
+ var row = document.createElement("tr");
- attributes = keysInKindOfKnownOrder(jobItemAttributeDescriptions, jobItem);
-
- for (i in attributes) {
- attribute = attributes[i]; // OMG JavaScript, wow you so dumb
+ for (var i in attributes) {
+ var attribute = attributes[i]; // OMG JavaScript, wow you so dumb
attributeDescription = valueOrKey(jobItemAttributeDescriptions, attribute)
- header = document.createElement("th");
- text = document.createTextNode(attributeDescription);
+ var header = document.createElement("th");
+ var text = document.createTextNode(attributeDescription);
header.appendChild(text);
row.appendChild(header);
}
@@ -359,8 +382,19 @@
detailsHeader.appendChild(row);
}
+ // Add a table row for this job item
+ var row = document.createElement("tr");
+ for (var i in attributes) {
+ var attribute = attributes[i]; // OMG JavaScript the lameness
+ var cell = document.createElement("td");
+ var text = document.createTextNode(jobItem[attribute]);
+ cell.appendChild(text);
+ row.appendChild(cell);
+ }
+
+ detailsBody.appendChild(row);
}
}
@@ -396,9 +430,11 @@
<tbody id="work_item_details_body" />
</table>
- <hr />
- <div id="work_item_debug" />
- <div id="event_debug" />
+ <div id="debug">
+ <hr />
+ <div id="work_item_debug" />
+ <div id="event_debug" />
+ </div>
</body>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140305/299bb830/attachment-0001.html>
More information about the calendarserver-changes
mailing list