diff --git a/l10n b/l10n
index bfcfcf1a..6f103b0a 160000
--- a/l10n
+++ b/l10n
@@ -1 +1 @@
-Subproject commit bfcfcf1aab410bbf67a7dfac412487b7138b957b
+Subproject commit 6f103b0af5fe57e667eaf6d032ce0a48065a33f1
diff --git a/src/browser/base/content/zen-components b/src/browser/base/content/zen-components
index 36306fd1..d87cd1fe 160000
--- a/src/browser/base/content/zen-components
+++ b/src/browser/base/content/zen-components
@@ -1 +1 @@
-Subproject commit 36306fd148143a4a2c502b56e7d5f21b61996545
+Subproject commit d87cd1fed63ef7e5efbc49e8ffe737aed6702059
diff --git a/src/browser/components/preferences/zen-settings.js b/src/browser/components/preferences/zen-settings.js
index 383c1095..3148742c 100644
--- a/src/browser/components/preferences/zen-settings.js
+++ b/src/browser/components/preferences/zen-settings.js
@@ -26,7 +26,23 @@ var gZenMarketplaceManager = {
Services.prefs.addObserver(this.updatePref, this._buildThemesList.bind(this));
this._buildThemesList();
document.getElementById("zenThemeMarketplaceCheckForUpdates").addEventListener("click", (event) => {
- this._checkForThemeUpdates(event);
+ if (event.target === document.getElementById("zenThemeMarketplaceCheckForUpdates")) {
+ event.preventDefault();
+ this._checkForThemeUpdates(event);
+ }
+ });
+ document.addEventListener("ZenThemeMarketplace:CheckForUpdatesFinished", (event) => {
+ document.getElementById("zenThemeMarketplaceCheckForUpdates").disabled = false;
+ const updates = event.detail.updates;
+ const success = document.getElementById("zenThemeMarketplaceUpdatesSuccess");
+ const error = document.getElementById("zenThemeMarketplaceUpdatesFailure");
+ if (updates) {
+ success.hidden = false;
+ error.hidden = true;
+ } else {
+ success.hidden = true;
+ error.hidden = false;
+ }
});
},
@@ -140,7 +156,7 @@ var gZenMarketplaceManager = {
`);
- fragment.querySelector(".zenThemeMarketplaceItemTitle").textContent = theme.name;
+ fragment.querySelector(".zenThemeMarketplaceItemTitle").textContent = `${theme.name} (v${theme.version || "1.0.0"})`;
fragment.querySelector(".zenThemeMarketplaceItemDescription").textContent = theme.description;
fragment.querySelector(".zenThemeMarketplaceItemUninstallButton").addEventListener("click", async (event) => {
if (!confirm("Are you sure you want to remove this theme?")) {
diff --git a/src/browser/components/preferences/zenMarketplace.inc.xhtml b/src/browser/components/preferences/zenMarketplace.inc.xhtml
index 1d2f3316..2e121889 100644
--- a/src/browser/components/preferences/zenMarketplace.inc.xhtml
+++ b/src/browser/components/preferences/zenMarketplace.inc.xhtml
@@ -14,6 +14,9 @@
+
+
+