summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-attendedsysupgrade/htdocs
diff options
context:
space:
mode:
Diffstat (limited to 'applications/luci-app-attendedsysupgrade/htdocs')
-rw-r--r--applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js36
1 files changed, 23 insertions, 13 deletions
diff --git a/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js b/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js
index a46bb3db44..f6d31a35be 100644
--- a/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js
+++ b/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js
@@ -24,6 +24,15 @@ var callUpgradeStart = rpc.declare({
params: ["keep"]
});
+function get_branch(version) {
+ // determine branch of a version
+ // SNAPSHOT -> SNAPSHOT
+ // 21.02-SNAPSHOT -> 21.02
+ // 21.02.0-rc1 -> 21.02
+ // 19.07.8 -> 19.07
+ return version.replace("-SNAPSHOT", "").split(".").slice(0, 2).join(".");
+}
+
function install_sysupgrade(url, keep, sha256) {
displayStatus("notice spinning", E('p', _('Downloading firmware from server to browser')));
request.get(url, {
@@ -77,6 +86,7 @@ function request_sysupgrade(server_url, data) {
} else {
req = request.post(server_url + "/api/build", {
profile: data.board_name,
+ target: data.target,
version: data.version,
packages: data.packages,
diff_packages: true,
@@ -88,7 +98,6 @@ function request_sysupgrade(server_url, data) {
case 200:
var res = response.json()
var image;
- console.log(res)
for (image of res.images) {
if (image.type == "sysupgrade") {
break;
@@ -213,10 +222,12 @@ function request_sysupgrade(server_url, data) {
});
}
-function check_sysupgrade(server_url, current_version, board_name, packages) {
+function check_sysupgrade(server_url, current_version, target, board_name, packages) {
displayStatus("notice spinning", E('p', _('Searching for an available sysupgrade')));
- var current_branch = current_version.split(".").slice(0, 2).join(".");
+ var current_branch = get_branch(current_version);
+ var advanced_mode = uci.get_first('attendedsysupgrade', 'client', 'advanced_mode') || 0;
var candidates = [];
+
fetch(server_url + "/api/latest")
.then(response => response.json())
.then(response => {
@@ -224,17 +235,17 @@ function check_sysupgrade(server_url, current_version, board_name, packages) {
candidates.push("SNAPSHOT");
} else {
for (let version of response["latest"]) {
- var branch = version.split(".").slice(0, 2).join(".");
+ var branch = get_branch(version);
// already latest version installed
if (current_version == version) {
break;
}
- // warn user that a new major release would be installed
- //if (current_branch != branch) {
- // branch["warn_branch_jump"] = true;
- //}
+ // skip branch upgrades outside the advanced mode
+ if (current_branch != branch && advanced_mode == 0) {
+ continue;
+ }
candidates.unshift(version);
@@ -246,13 +257,11 @@ function check_sysupgrade(server_url, current_version, board_name, packages) {
}
if (candidates) {
var m, s, o;
- var advanced_mode = uci.get_first('attendedsysupgrade', 'client', 'advanced_mode') || 0;
-
- console.log(candidates);
var mapdata = {
request: {
board_name: board_name,
+ target: target,
version: candidates[0],
packages: Object.keys(packages).sort(),
}
@@ -339,6 +348,7 @@ return view.extend({
render: function(res) {
var packages = res[0].packages;
var current_version = res[1].release.version;
+ var target = res[1].release.target;
var board_name = res[1].board_name;
var auto_search = uci.get_first('attendedsysupgrade', 'client', 'auto_search') || 1;
var server_url = uci.get_first('attendedsysupgrade', 'server', 'url');
@@ -350,13 +360,13 @@ return view.extend({
];
if (auto_search == 1) {
- check_sysupgrade(server_url, current_version, board_name, packages)
+ check_sysupgrade(server_url, current_version, target, board_name, packages)
}
view.push(E('p', {
'class': 'btn cbi-button-positive',
'click': function() {
- check_sysupgrade(server_url, current_version, board_name, packages)
+ check_sysupgrade(server_url, current_version, target, board_name, packages)
}
}, _('Search for sysupgrade')));