From 8770689a0ce2ae0dbe43b122dba32dc4c01413ca Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Thu, 18 Feb 2016 09:32:00 +0100 Subject: [PATCH] firmware: sort upgrade packages, needs more work for other types GUI sorting for now should be new, update, reinstall, remove. Later all those types ought to be merged into a single list with backwards- compatible behaviour. First of many neat firmware improvements on our way to 16.7. :) --- .../OPNsense/Core/Api/FirmwareController.php | 12 ++++++++++++ .../mvc/app/views/OPNsense/Core/firmware.volt | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php index 0c6fc02de..0d9f82b92 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php @@ -97,6 +97,18 @@ class FirmwareController extends ApiControllerBase $response = array('status' => 'unknown', 'status_msg' => gettext('Current status is unknown.')); } + /* XXX array isn't flat, need to refactor this */ + if (isset($response['upgrade_packages'])) { + $sorted = array(); + foreach ($response['upgrade_packages'] as $key => $value) { + $sorted[$value['name']] = $value; + } + uksort($sorted, function ($a, $b) { + return strnatcmp($a, $b); + }); + $response['upgrade_packages'] = $sorted; + } + return $response; } diff --git a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt index 633bbe2df..a9568daa4 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt @@ -57,7 +57,7 @@ POSSIBILITY OF SUCH DAMAGE. // show upgrade list $("#updatelist").html("{{ lang._('Package Name') }}" + "{{ lang._('Current Version') }}{{ lang._('New Version') }}"); - $.each(['upgrade_packages','new_packages','reinstall_packages'], function(type_idx,type_name){ + $.each(['new_packages', 'upgrade_packages', 'reinstall_packages'], function(type_idx,type_name){ if ( data[type_name] != undefined ) { $.each(data[type_name],function(index,row){ if (type_name == "new_packages") {