From: Jo-Philipp Wich Date: Wed, 19 Jun 2019 09:21:18 +0000 (+0200) Subject: luci-app-opkg: honor installed flag to skip half-installed packages X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=16df8c93f2431c2804e81aace62210752c417466;p=oweals%2Fluci.git 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 (cherry picked from commit 88282c14cf521f195536370c004d953e289ea3e4) --- 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,