diff --git a/dashboard/public/translation/en.json b/dashboard/public/translation/en.json index 53563cdcb..924925370 100644 --- a/dashboard/public/translation/en.json +++ b/dashboard/public/translation/en.json @@ -1315,7 +1315,8 @@ "packageVersion": "Package", "lastUpdated": "Last updated", "customAppUpdateInfo": "Auto-update is not available for custom apps.", - "installedAt": "Installed" + "installedAt": "Installed", + "packager": "Packager" }, "auto": { "description": "App updates are applied periodically based on the update schedule", diff --git a/dashboard/public/translation/nl.json b/dashboard/public/translation/nl.json index 44ed4b31c..0e8c95299 100644 --- a/dashboard/public/translation/nl.json +++ b/dashboard/public/translation/nl.json @@ -105,6 +105,9 @@ "appNotFoundDialog": { "title": "App niet gevonden", "description": "De app {{ appId }} met versie {{ version }} bestaat niet." + }, + "action": { + "addCustomApp": "Aangepaste app toevoegen" } }, "users": { @@ -1684,5 +1687,8 @@ }, "server": { "title": "Server" + }, + "communityapp": { + "installwarning": "Community-apps worden niet door Cloudron beoordeeld. Installeer alleen apps van betrouwbare ontwikkelaars. Code van derden kan uw systeem in gevaar brengen." } } diff --git a/dashboard/src/components/app/Info.vue b/dashboard/src/components/app/Info.vue index ed7474c82..2fdbf0af3 100644 --- a/dashboard/src/components/app/Info.vue +++ b/dashboard/src/components/app/Info.vue @@ -84,6 +84,13 @@ onMounted(() => {
{{ app.manifest.dockerImage }}
+
+
{{ $t('app.updates.info.packager') }}
+
+ {{ app.manifest.packagerName }} +
+
+
{{ $t('app.updates.info.appId') }}
diff --git a/src/community.js b/src/community.js index 06c502600..a748695a1 100644 --- a/src/community.js +++ b/src/community.js @@ -27,7 +27,7 @@ async function getAppVersion(url, version) { if (response.status !== 200) throw new BoxError(BoxError.EXTERNAL_ERROR, `Fetch failed: ${response.status}`); // if the content-type is incorrect, we will get a buffer - const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; + const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body.toString('utf8')) : response.body; const versionsError = manifestFormat.parseVersions(versionsRoot); if (versionsError) throw new BoxError(BoxError.EXTERNAL_ERROR, `Invalid CloudronVersions.json: ${versionsError.message}`); @@ -62,7 +62,7 @@ async function downloadManifest(versionsUrl) { if (response.status !== 200) throw new BoxError(BoxError.EXTERNAL_ERROR, `Fetch failed: ${response.status}`); // if the content-type is incorrect, we will get a buffer - const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; + const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body.toString('utf8')) : response.body; const versionsError = manifestFormat.parseVersions(versionsRoot); if (versionsError) throw new BoxError(BoxError.EXTERNAL_ERROR, `Invalid CloudronVersions.json: ${versionsError.message}`); @@ -86,7 +86,7 @@ async function getAppUpdate(app, options) { if (response.status !== 200) throw new BoxError(BoxError.EXTERNAL_ERROR, `Fetch failed: ${response.status}`); // if the content-type is incorrect, we will get a buffer - const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body) : response.body; + const versionsRoot = Buffer.isBuffer(response.body) ? safe.JSON.parse(response.body.toString('utf8')) : response.body; const versionsError = manifestFormat.parseVersions(versionsRoot); if (versionsError) throw new BoxError(BoxError.EXTERNAL_ERROR, `Invalid CloudronVersions.json: ${versionsError.message}`);