diff --git a/dashboard/src/components/AppInstallDialog.vue b/dashboard/src/components/AppInstallDialog.vue
index e3b1ff00e..64d648e9e 100644
--- a/dashboard/src/components/AppInstallDialog.vue
+++ b/dashboard/src/components/AppInstallDialog.vue
@@ -277,7 +277,8 @@ defineExpose({
![]()
{{ manifest.title }}
{{ manifest.title }} {{ packageData.manifest.upstreamVersion }} - {{ $t('app.updates.info.packageVersion') }} {{ packageData.manifest.version }}
-
{{ $t('appstore.installDialog.lastUpdated', { date: prettyDate(packageData.creationDate) }) }}
+
+
{{ $t('appstore.installDialog.lastUpdated', { date: prettyDate(packageData.creationDate) }) }}
{{ $t('appstore.installDialog.memoryRequirement', { size: prettyBinarySize(manifest.memoryLimit || (256 * 1024 * 1024)) }) }}
diff --git a/dashboard/src/utils.js b/dashboard/src/utils.js
index 30d82eb93..2658e22be 100644
--- a/dashboard/src/utils.js
+++ b/dashboard/src/utils.js
@@ -175,7 +175,11 @@ function eventlogDetails(eventLog, app = null, appIdContext = '') {
case EVENTS.APP_INSTALL:
if (!data.app) return '';
- return data.app.manifest.title + ' (package v' + data.app.manifest.version + ') was installed ' + appName('at', data.app);
+ details = data.app.versionsUrl ? 'Community app ' : '';
+ details += data.app.manifest.title + ' (package v' + data.app.manifest.version + ')';
+ details += data.sourceBuild ? ' was built and installed' : ' was installed';
+ details += appIdContext ? '' : ` at ${data.app.fqdn}`;
+ return details;
case EVENTS.APP_RESTORE:
if (!data.app) return '';
diff --git a/src/apps.js b/src/apps.js
index 302685339..9884ff4fd 100644
--- a/src/apps.js
+++ b/src/apps.js
@@ -1925,7 +1925,7 @@ async function install(data, auditSource) {
newApp.redirectDomains.forEach(function (ad) { ad.fqdn = dns.fqdn(ad.subdomain, ad.domain); });
newApp.aliasDomains.forEach(function (ad) { ad.fqdn = dns.fqdn(ad.subdomain, ad.domain); });
- await eventlog.add(eventlog.ACTION_APP_INSTALL, auditSource, { appId, app: newApp, taskId });
+ await eventlog.add(eventlog.ACTION_APP_INSTALL, auditSource, { appId, sourceBuild: !!data.sourceArchiveFilePath, app: newApp, taskId });
return { id : appId, taskId };
}
@@ -2379,7 +2379,7 @@ async function updateApp(app, data, auditSource) {
};
const taskId = await addTask(appId, ISTATE_PENDING_UPDATE, task, auditSource);
- await eventlog.add(eventlog.ACTION_APP_UPDATE, auditSource, { appId, app, skipBackup, toManifest: manifest, fromManifest: app.manifest, force: data.force, taskId });
+ await eventlog.add(eventlog.ACTION_APP_UPDATE, auditSource, { appId, app, sourceBuild: !!data.sourceArchiveFilePath, skipBackup, toManifest: manifest, fromManifest: app.manifest, force: data.force, taskId });
return { taskId };
}