luci-app-aria2: fix bugs and add log option
[project/luci.git] / applications / luci-app-aria2 / luasrc / view / aria2 / overview_status.htm
diff --git a/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm b/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm
new file mode 100644 (file)
index 0000000..b14cca2
--- /dev/null
@@ -0,0 +1,77 @@
+<script type="text/javascript">//<![CDATA[
+XHR.poll(5, '<%=luci.dispatcher.build_url("admin/services/aria2/status")%>', null,
+       function(x, data) {
+               var tb = document.getElementById('aria2_status');
+               if (data && tb) {
+                       if (data.running) {
+                               var links = '<em><%:The Aria2 service is running.%></em>';
+                               if (data.yaaw) {
+                                       links += '<input class="cbi-button mar-10" type="button" value="<%:Open YAAW%>" onclick="openWebUI(\'yaaw\');" />';
+                               }
+                               if (data.webui) {
+                                       links += '<input class="cbi-button mar-10" type="button" value="<%:Open WebUI-Aria2%>" onclick="openWebUI(\'webui-aria2\');" />';
+                               }
+                               tb.innerHTML = links;
+                       } else {
+                               tb.innerHTML = '<em><%:The Aria2 service is not running.%></em>';
+                       }
+               }
+       }
+);
+
+function randomString(len) {
+       len = len || 32;
+       var $chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
+       var maxPos = $chars.length;
+       var pwd = '';
+       for (i = 0; i < len; i++) {
+               pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
+       }
+       return pwd;
+};
+
+function randomSecret() {
+       var Token = document.getElementById("cbid.aria2.main.rpc_secret");
+       Token.value = randomString(32);
+};
+
+function showRPCURL() {
+       var websocket = document.getElementById("use_websocket");
+       var protocol = (websocket.checked) ? "ws" : "http";
+       var newTextNode = document.getElementById("aria2rpcpath");
+       var auth_method = document.getElementById("cbid.aria2.main.rpc_auth_method");
+       var auth_port = document.getElementById("cbid.aria2.main.rpc_listen_port");
+       if (auth_port.value == "") {
+               auth_port_value = "6800"
+       } else {
+               auth_port_value = auth_port.value
+       };
+       if (auth_method.value == "token") {
+               var auth_token = document.getElementById("cbid.aria2.main.rpc_secret");
+               newTextNode.value = protocol + "://token:" + auth_token.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
+       } else if (auth_method.value == "user_pass") {
+               var auth_user = document.getElementById("cbid.aria2.main.rpc_user");
+               var auth_passwd = document.getElementById("cbid.aria2.main.rpc_passwd");
+               newTextNode.value = protocol + "://" + auth_user.value + ":" + auth_passwd.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
+       } else {
+               newTextNode.value = protocol + "://" + document.domain + ":" + auth_port_value + "/jsonrpc";
+       }
+};
+
+function openWebUI(path) {
+       var curWwwPath = window.document.location.href;
+       var pathName = window.document.location.pathname;
+       var pos = curWwwPath.indexOf(pathName);
+       var localhostPath = curWwwPath.substring(0, pos);
+       var url = "http:" + localhostPath.substring(window.location.protocol.length) + "/" + path;
+       window.open(url)
+};
+//]]>
+</script>
+<style>.mar-10 {margin-left: 10px; margin-right: 10px;}</style>
+<fieldset class="cbi-section">
+       <legend><%:Aria2 Status%></legend>
+       <p id="aria2_status">
+               <em><%:Collecting data...%></em>
+       </p>
+</fieldset>