From 99fea1617981b110d8e2f46620f8e66642002402 Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Mon, 25 Dec 2017 22:51:01 +0100 Subject: [PATCH] luci-app-attendedsysupgrade: separate js from html also use hide(), show() and $() like jquery Signed-off-by: Paul Spooren --- .../luasrc/view/attendedsysupgrade.htm | 403 +---------------- .../resources/attendedsysupgrade.js | 409 ++++++++++++++++++ 2 files changed, 413 insertions(+), 399 deletions(-) create mode 100644 applications/luci-app-attendedsysupgrade/root/www/luci-static/resources/attendedsysupgrade.js diff --git a/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm index 4ea67ce70a..d12ccba06b 100644 --- a/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm +++ b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm @@ -115,406 +115,11 @@ ++ <%+footer%> diff --git a/applications/luci-app-attendedsysupgrade/root/www/luci-static/resources/attendedsysupgrade.js b/applications/luci-app-attendedsysupgrade/root/www/luci-static/resources/attendedsysupgrade.js new file mode 100644 index 0000000000..90034f19e1 --- /dev/null +++ b/applications/luci-app-attendedsysupgrade/root/www/luci-static/resources/attendedsysupgrade.js @@ -0,0 +1,409 @@ +function $(s) { + return document.getElementById(s.substring(1)); +} + +function show(s) { + $(s).style.display = 'block'; +} + +function hide(s) { + $(s).style.display = 'none'; +} + +function set_server() { + hide("#error_box"); + data.url = $("#server").value; + ubus_call("uci", "set", { "config": "attendedsysupgrade", "section": "server", values: { "url": data.url } }) + ubus_call("uci", "commit", { "config": "attendedsysupgrade" }) + var server_button = $("#server") + server_button.type = 'button'; + server_button.className = 'cbi-button cbi-button-edit'; + server_button.parentElement.removeChild($("#button_set")); + server_button.onclick = edit_server; +} + +function edit_server() { + $("#server").type = 'text'; + $("#server").onkeydown = function(event) { + if(event.key === 'Enter') { + set_server(); + return false; + } + } + $("#server").className = ''; + $("#server").onclick = null; + + button_set = document.createElement("input"); + button_set.type = "button"; + button_set.value = "Save"; + button_set.name = "button_set"; + button_set.id = "button_set"; + button_set.className = 'cbi-button cbi-button-edit'; + button_set.style = 'background-image: url("/luci-static/resources/cbi/save.gif");' + button_set.onclick = set_server + $("#server").parentElement.appendChild(button_set); +} + +function edit_packages() { + data.edit_packages = true + hide("#edit_button"); + $("#edit_packages").value = data.packages.join("\n"); + show("#edit_packages"); +} + +// requests to the upgrade server +function server_request(request_dict, path, callback) { + request_dict.distro = data.release.distribution; + request_dict.target = data.release.target.split("\/")[0]; + request_dict.subtarget = data.release.target.split("\/")[1]; + var request = new XMLHttpRequest(); + request.open("POST", data.url + "/" + path, true); + request.setRequestHeader("Content-type", "application/json"); + request.send(JSON.stringify(request_dict)); + request.onerror = function(e) { + error_box("upgrade server down") + show("#server_div"); + } + request.addEventListener('load', function(event) { + callback(request) + }); +} + +// initial setup, get system information +function setup() { + data["ubus_rpc_session"] = "<%=luci.dispatcher.context.authsession%>" + ubus_call("rpc-sys", "packagelist", {}, "packages"); + ubus_call("system", "board", {}, "release"); + ubus_call("system", "board", {}, "board_name"); + ubus_call("system", "board", {}, "model"); + ubus_call("system", "info", {}, "memory"); + uci_get({ "config": "attendedsysupgrade", "section": "server", "option": "url" }) + uci_get({ "config": "attendedsysupgrade", "section": "client", "option": "upgrade_packages" }) + uci_get({ "config": "attendedsysupgrade", "section": "client", "option": "advanced_mode" }) + uci_get({ "config": "attendedsysupgrade", "section": "client", "option": "auto_search" }) + setup_ready(); +} + +function setup_ready() { + // checks if a async ubus calls have finished + if(ubus_counter != ubus_closed) { + setTimeout(setup_ready, 300) + } else { + if(data.auto_search == 1) { + upgrade_check(); + } else { + show("#upgrade_button"); + show("#server_div"); + $("#server").value = data.url; + } + } +} + +function uci_get(option) { + // simple wrapper to get a uci value store in data.