diff options
author | Christopher Lenz <cmlenz@apache.org> | 2009-01-26 20:38:52 +0000 |
---|---|---|
committer | Christopher Lenz <cmlenz@apache.org> | 2009-01-26 20:38:52 +0000 |
commit | 7d2eeb4026f84d92e43856080ac3dbad6da41817 (patch) | |
tree | acd6dd7353396075a7db967bc14a5b49599fa50c /share/www/status.html | |
parent | 60be7c2a8f3d88f47be7eef5cf0a973c868cfcbc (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.html | 106 |
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> |