From 88282c14cf521f195536370c004d953e289ea3e4 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 19 Jun 2019 11:21:18 +0200 Subject: luci-app-opkg: honor installed flag to skip half-installed packages Do not consider half-installed packages (which happens after an installation failure) to be installed. Ref: https://github.com/openwrt/luci/pull/2775 Signed-off-by: Dirk Brenken [split into multiple commits, refactored code, use local variables] Signed-off-by: Jo-Philipp Wich --- .../htdocs/luci-static/resources/view/opkg.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'applications') diff --git a/applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js b/applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js index 4a36b0a3c..9f10b2faf 100644 --- a/applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js +++ b/applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js @@ -134,7 +134,12 @@ function display(pattern) var btn, ver; if (currentDisplayMode === 'updates') { - var avail = packages.available.pkgs[name]; + var avail = packages.available.pkgs[name], + inst = packages.installed.pkgs[name]; + + if (!inst || !inst.installed) + continue; + if (!avail || compareVersion(avail.version, pkg.version) <= 0) continue; @@ -149,6 +154,9 @@ function display(pattern) }, _('Upgradeā€¦')); } else if (currentDisplayMode === 'installed') { + if (!pkg.installed) + continue; + ver = truncateVersion(pkg.version || '-'); btn = E('div', { 'class': 'btn cbi-button-negative', @@ -157,15 +165,17 @@ function display(pattern) }, _('Remove')); } else { + var inst = packages.installed.pkgs[name]; + ver = truncateVersion(pkg.version || '-'); - if (!packages.installed.pkgs[name]) + if (!inst || !inst.installed) btn = E('div', { 'class': 'btn cbi-button-action', 'data-package': name, 'click': handleInstall }, _('Installā€¦')); - else if (packages.installed.pkgs[name].version != pkg.version) + else if (inst.installed && inst.version != pkg.version) btn = E('div', { 'class': 'btn cbi-button-positive', 'data-package': name, -- cgit v1.2.3