You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2013/03/28 02:23:56 UTC
svn commit: r1461914 - in
/accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets:
BasicServlet.java trace/ShowTrace.java
Author: elserj
Date: Thu Mar 28 01:23:56 2013
New Revision: 1461914
URL: http://svn.apache.org/r1461914
Log:
ACCUMULO-1205 Stub in an onload for the "Show Trace" page which display:table-row's any trace line which has the 'addl data' checkbox already checked.
Modified:
accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java
accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/trace/ShowTrace.java
Modified: accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java?rev=1461914&r1=1461913&r2=1461914&view=diff
==============================================================================
--- accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java (original)
+++ accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/BasicServlet.java Thu Mar 28 01:23:56 2013
@@ -153,7 +153,7 @@ abstract public class BasicServlet exten
sb.append("</head>\n");
// BEGIN BODY OPENING
- sb.append("\n<body>\n");
+ sb.append("\n<body ").append(getBodyAttributes()).append(">\n");
sb.append("<div id='content-wrapper'>\n");
sb.append("<div id='content'>\n");
sb.append("<div id='header'>");
@@ -222,6 +222,16 @@ abstract public class BasicServlet exten
sb.append("</body>\n");
sb.append("</html>\n");
}
+
+ /**
+ * Allow the concrete servlet implementation to provide attributes on the body HTML tag,
+ * such as 'onload', which can be used to call Javascript methods on page load.
+ * By default, nothing is specified.
+ * @return
+ */
+ protected String getBodyAttributes() {
+ return "";
+ }
public static String encode(String s) {
try {
Modified: accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/trace/ShowTrace.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/trace/ShowTrace.java?rev=1461914&r1=1461913&r2=1461914&view=diff
==============================================================================
--- accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/trace/ShowTrace.java (original)
+++ accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/monitor/servlets/trace/ShowTrace.java Thu Mar 28 01:23:56 2013
@@ -41,6 +41,8 @@ import org.apache.hadoop.io.Text;
public class ShowTrace extends Basic {
private static final long serialVersionUID = 1L;
+ private static final String checkboxIdSuffix = "_checkbox";
+ private static final String pageLoadFunctionName = "pageload";
String getTraceId(HttpServletRequest req) {
return getStringParameter(req, "id", null);
@@ -87,6 +89,18 @@ public class ShowTrace extends Basic {
sb.append(" elt.style.display='none';\n ");
sb.append(" }\n");
sb.append("}\n");
+
+ sb.append("function ").append(pageLoadFunctionName).append("() {\n");
+ sb.append(" var checkboxes = document.getElementsByTagName('input');\n");
+ sb.append(" for (var i = 0; i < checkboxes.length; i++) {\n");
+ sb.append(" if (checkboxes[i].checked) {\n");
+ sb.append(" var idSuffixOffset = checkboxes[i].id.indexOf('").append(checkboxIdSuffix).append("');\n");
+ sb.append(" var id = checkboxes[i].id.substring(0, idSuffixOffset);\n");
+ sb.append(" document.getElementById(id).style.display='table-row';\n");
+ sb.append(" }\n");
+ sb.append(" }\n");
+ sb.append("}\n");
+
sb.append("</script>\n");
sb.append("<div>");
sb.append("<table><caption>");
@@ -102,10 +116,15 @@ public class ShowTrace extends Basic {
sb.append(String.format("<td style='text-indent: %dpx'>%s@%s</td>%n", level * 5, node.svc, node.sender));
sb.append("<td>" + node.description + "</td>");
boolean hasData = node.data != null && !node.data.isEmpty();
- if (hasData)
- sb.append("<td><input type='checkbox' onclick='toggle(\"" + Long.toHexString(node.spanId) + "\")'></td>\n");
- else
+ if (hasData) {
+ String hexSpanId = Long.toHexString(node.spanId);
+ sb.append("<td><input type='checkbox' id=\"");
+ sb.append(hexSpanId);
+ sb.append(checkboxIdSuffix);
+ sb.append("\" onclick='toggle(\"" + Long.toHexString(node.spanId) + "\")'></td>\n");
+ } else {
sb.append("<td></td>\n");
+ }
sb.append("</tr>\n");
sb.append("<tr id='" + Long.toHexString(node.spanId) + "' style='display:none'>");
sb.append("<td colspan='5'>\n");
@@ -133,4 +152,9 @@ public class ShowTrace extends Basic {
sb.append("</table>\n");
sb.append("</div>\n");
}
+
+ @Override
+ protected String getBodyAttributes() {
+ return " onload=\"" + pageLoadFunctionName + "()\" ";
+ }
}