@@ -401,10 +401,18 @@ function showLoadingIndicator(id) {
panelbody.innerHTML = '
';
}
+function getAppsToUpdate() {
+ var appsToUpdate = [];
+ appsInstalled.forEach(appInstalled => {
+ var app = appNameToApp(appInstalled.id);
+ if (app.version != appInstalled.version)
+ appsToUpdate.push(app);
+ });
+ return appsToUpdate;
+}
+
function refreshMyApps() {
var panelbody = document.querySelector("#myappscontainer .panel-body");
- var tab = document.querySelector("#tab-myappscontainer a");
- tab.setAttribute("data-badge", appsInstalled.length);
panelbody.innerHTML = appsInstalled.map(appInstalled => {
var app = appNameToApp(appInstalled.id);
var version = getVersionInfo(app, appInstalled);
@@ -436,6 +444,17 @@ return `
if (icon.classList.contains("icon-download")) handleAppInterface(app);
});
});
+ var appsToUpdate = getAppsToUpdate();
+ var tab = document.querySelector("#tab-myappscontainer a");
+ var updateApps = document.querySelector("#myappscontainer .updateapps");
+ if (appsToUpdate.length) {
+ updateApps.innerHTML = `Update ${appsToUpdate.length} apps`;
+ updateApps.classList.remove("hidden");
+ tab.setAttribute("data-badge", `${appsInstalled.length} ⬆${appsToUpdate.length}`);
+ } else {
+ updateApps.classList.add("hidden");
+ tab.setAttribute("data-badge", appsInstalled.length);
+ }
}
let haveInstalledApps = false;
@@ -471,6 +490,22 @@ htmlToArray(document.querySelectorAll(".btn.refresh")).map(button => button.addE
showToast("Getting app list failed, "+err,"error");
});
}));
+htmlToArray(document.querySelectorAll(".btn.updateapps")).map(button => button.addEventListener("click", () => {
+ var appsToUpdate = getAppsToUpdate();
+ var count = appsToUpdate.length;
+ function updater() {
+ if (!appsToUpdate.length) return;
+ var app = appsToUpdate.pop();
+ return updateApp(app).then(function() {
+ return updater();
+ });
+ }
+ updater().then(err => {
+ showToast(`Updated ${count} apps`,"success");
+ }).catch(err => {
+ showToast("Update failed, "+err,"error");
+ });
+}));
connectMyDeviceBtn.addEventListener("click", () => {
if (connectMyDeviceBtn.classList.contains('is-connected')) {
Comms.disconnectDevice();
@@ -621,4 +656,3 @@ document.getElementById("installfavourite").addEventListener("click",event=>{
showToast("App Install failed, "+err,"error");
});
});
-