firmware: support repository info for updates #4500

This commit is contained in:
Franco Fichtner 2021-02-12 00:03:06 +01:00
parent 07738f2654
commit 35d88e8da4
3 changed files with 27 additions and 11 deletions

View File

@ -167,6 +167,7 @@ class FirmwareController extends ApiControllerBase
'old' => $value['current_version'],
'new' => $value['new_version'],
'name' => $value['name'],
'repository' => $value['repository'],
);
break;
case 'new_packages':
@ -174,6 +175,7 @@ class FirmwareController extends ApiControllerBase
'new' => $value['version'],
'reason' => gettext('new'),
'name' => $value['name'],
'repository' => $value['repository'],
'old' => gettext('N/A'),
);
break;
@ -182,6 +184,7 @@ class FirmwareController extends ApiControllerBase
'reason' => gettext('reinstall'),
'new' => $value['version'],
'old' => $value['version'],
'repository' => $value['repository'],
'name' => $value['name'],
);
break;
@ -191,6 +194,7 @@ class FirmwareController extends ApiControllerBase
'new' => gettext('N/A'),
'old' => $value['version'],
'name' => $value['name'],
'repository' => gettext('N/A'),
);
break;
case 'upgrade_packages':
@ -199,6 +203,7 @@ class FirmwareController extends ApiControllerBase
'old' => empty($value['current_version']) ?
gettext('N/A') : $value['current_version'],
'new' => $value['new_version'],
'repository' => $value['repository'],
'name' => $value['name'],
);
break;

View File

@ -81,12 +81,12 @@
$('#updatelist > tbody').empty();
$('#updatetab > a').tab('show');
$("#updatelist > thead").html("<tr><th>{{ lang._('Package Name') }}</th>" +
"<th>{{ lang._('Current Version') }}</th><th>{{ lang._('New Version') }}</th>" +
"<th>{{ lang._('Required Action') }}</th></tr>");
"<th>{{ lang._('Repository') }}</th><th>{{ lang._('Current Version') }}</th>" +
"<th>{{ lang._('New Version') }}</th><th>{{ lang._('Required Action') }}</th></tr>");
$.each(data['all_packages'], function (index, row) {
$('#updatelist > tbody').append('<tr><td>'+row['name']+'</td>' +
'<td>'+row['old']+'</td><td>'+row['new']+'</td><td>' +
row['reason'] + '</td></tr>');
'<td>'+row['repository']+'</td><td>'+row['old']+'</td><td>' +
row['new']+'</td><td>'+row['reason'] + '</td></tr>');
if (row['name'] == data['product_name'] && row['new'] != 'N/A') {
$.upgrade_show_log = row['new'].replace(/[_-].*/, '');
@ -359,7 +359,7 @@
var local_count = 0;
var plugin_count = 0;
var missing_plugins = 0;
var broken_plugins = 0;
var changelog_count = 0;
var changelog_max = 15;
if ($.changelog_keep_full != undefined) {
@ -415,11 +415,12 @@
status_text = ' ({{ lang._('misconfigured') }})';
bold_on = '<b>';
bold_off = '</b>';
broken_plugins = 1;
} else if (row['installed'] == "0" && row['configured'] == "1") {
status_text = ' ({{ lang._('missing') }})';
bold_on = '<span class="text-danger plugin_missing"><b>';
bold_off = '</b></span>';
missing_plugins = 1;
broken_plugins = 1;
} else if (row['installed'] == "1") {
status_text = ' ({{ lang._('installed') }})';
bold_on = '<b>';
@ -461,7 +462,7 @@
$("#plugin_search").keyup();
$("#package_search").keyup();
if (missing_plugins) {
if (broken_plugins) {
$('#plugin_actions').show();
} else {
$('#plugin_actions').hide();
@ -815,6 +816,7 @@
<td colspan="2" style="vertical-align:middle">
<strong><div class="updatestatus"></div></strong>
</td>
<td></td>
</tr>
</tfoot>
</table>

View File

@ -42,6 +42,7 @@ LOCKFILE="/tmp/pkg_upgrade.progress"
OUTFILE="/tmp/pkg_update.out"
PACKAGE=${1}
TEE="/usr/bin/tee -a"
UPSTREAM="OPNsense"
rm -f ${JSONFILE}
: > ${LOCKFILE}
@ -144,7 +145,12 @@ fi
MODE=
for i in $(cat ${OUTFILE} | tr '[' '(' | cut -d '(' -f1); do
while read LINE; do
REPO=$(echo "${LINE}" | grep -o '\[.*\]' | tr -d '[]')
if [ -z "${REPO}" ]; then
REPO=${UPSTREAM}
fi
for i in $(echo "${LINE}" | tr '[' '(' | cut -d '(' -f1); do
case ${MODE} in
DOWNGRADED:)
if [ "$(expr $linecount + 4)" -eq "$itemcount" ]; then
@ -158,6 +164,7 @@ fi
else
packages_downgraded=$packages_downgraded", {\"name\":\"$i\","
fi
packages_downgraded=$packages_downgraded"\"repository\":\"${REPO}\","
fi
fi
if [ "$(expr $linecount + 3)" -eq "$itemcount" ]; then
@ -178,7 +185,7 @@ fi
if [ -n "$packages_new" ]; then
packages_new=$packages_new","
fi
packages_new=$packages_new"{\"name\":\"$i\","
packages_new=$packages_new"{\"name\":\"$i\",\"repository\":\"${REPO}\","
fi
fi
if [ "$(expr $linecount + 1)" -eq "$itemcount" ]; then
@ -198,7 +205,7 @@ fi
if [ -n "$packages_reinstall" ]; then
packages_reinstall=$packages_reinstall"," # separator for next item
fi
packages_reinstall=$packages_reinstall"{\"name\":\"$name\",\"version\":\"$version\"}"
packages_reinstall=$packages_reinstall"{\"name\":\"$name\",\"version\":\"$version\",\"repository\":\"${REPO}\"}"
fi
fi
;;
@ -232,6 +239,7 @@ fi
else
packages_upgraded=$packages_upgraded", {\"name\":\"$i\","
fi
packages_upgraded=$packages_upgraded"\"repository\":\"${REPO}\","
fi
fi
if [ "$(expr $linecount + 3)" -eq "$itemcount" ]; then
@ -261,7 +269,8 @@ fi
;;
esac
done
fi
done < ${OUTFILE}
fi
# the main update from package will provide this during upgrade
if [ -n "${PACKAGE}" ]; then