summaryrefslogtreecommitdiff
path: root/share/www/status.html
diff options
context:
space:
mode:
authorChristopher Lenz <cmlenz@apache.org>2009-01-26 20:38:52 +0000
committerChristopher Lenz <cmlenz@apache.org>2009-01-26 20:38:52 +0000
commit7d2eeb4026f84d92e43856080ac3dbad6da41817 (patch)
treeacd6dd7353396075a7db967bc14a5b49599fa50c /share/www/status.html
parent60be7c2a8f3d88f47be7eef5cf0a973c868cfcbc (diff)
Add a page to Futon that shows the currently active tasks (compaction, view indexing, etc).
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@737829 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/www/status.html')
-rw-r--r--share/www/status.html106
1 files changed, 106 insertions, 0 deletions
diff --git a/share/www/status.html b/share/www/status.html
new file mode 100644
index 00000000..fa2e1d24
--- /dev/null
+++ b/share/www/status.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<!--
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+-->
+<html lang="en">
+ <head>
+ <title>Status</title>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+ <link rel="stylesheet" href="style/layout.css?0.9.0" type="text/css">
+ <script src="script/json2.js"></script>
+ <script src="script/jquery.js?1.3.1"></script>
+ <script src="script/jquery.cookies.js?0.9.0"></script>
+ <script src="script/jquery.couch.js?0.9.0"></script>
+ <script src="script/futon.js?0.9.0"></script>
+ </head>
+ <body><div id="wrap">
+ <h1>
+ <a href="index.html">Overview</a>
+ <strong>Status</strong>
+ </h1>
+ <div id="content">
+ <div id="interval">
+ <label>Poll interval:
+ <input type="range" min="1" max="30" value="5" size="3">
+ <span class="secs">5</span> second(s)
+ </label>
+ </div>
+ <table id="status" class="listing" cellspacing="0">
+ <caption>Active Tasks</caption>
+ <thead><tr>
+ <th>Type</th>
+ <th>Object</th>
+ <th>PID</th>
+ <th>Status</th>
+ </tr></thead>
+ <tbody class="content"></tbody>
+ </table>
+
+ </div>
+ </div></body>
+ <script>
+ var refreshTimeout = null;
+
+ function refresh() {
+ $.couch.activeTasks({
+ success: function(tasks) {
+ clearTimeout(refreshTimeout);
+ $("#status tbody.content").empty();
+ if (!tasks.length) {
+ $("<tr class='none'><th colspan='4'>No tasks running</th></tr>")
+ .appendTo("#status tbody.content");
+ } else {
+ $.each(tasks, function(idx, task) {
+ $("<tr><th></th><td class='object'></td><td class='pid'></td><td class='status'></td></tr>")
+ .find("th").text(task.type).end()
+ .find("td.object").text(task.task).end()
+ .find("td.pid").text(task.pid).end()
+ .find("td.status").text(task.status).end()
+ .appendTo("#status tbody.content");
+ });
+ }
+ refreshTimeout = setTimeout(refresh,
+ parseInt($("#interval input").val(), 10) * 1000);
+ }
+ });
+ }
+
+ function updateInterval(value) {
+ if (isNaN(value)) {
+ value = 5;
+ $("#interval input").val(value);
+ }
+ $("#interval .secs").text(value);
+ refresh();
+ $.cookies.set("pollinterval", value);
+ }
+
+ $(function() {
+ var slider = $("#interval input");
+ slider.val(parseInt($.cookies.get("pollinterval", "5")) || 5);
+ if (slider[0].type == "range") {
+ slider.bind("input", function() {
+ updateInterval(this.value);
+ });
+ $("#interval .secs").text($("#interval input").val());
+ } else {
+ slider.bind("change", function() {
+ updateInterval(this.value);
+ });
+ $("#interval .secs").hide();
+ }
+ refresh();
+ });
+ </script>
+</html>