Ghost/ghost/admin/app/components/modals/settings/about.js
Daniel Lockyer db998e20ec Allowed version build info to be shown in Admin
refs https://ghost.slack.com/archives/C02G9E68C/p1679577089441659

- this allows the full Ghost version through the API so we can extract
  the build info from it and provide a link to GitHub
2023-03-23 16:31:43 +01:00

70 lines
1.9 KiB
JavaScript

import Component from '@glimmer/component';
import config from 'ghost-admin/config/environment';
import semverParse from 'semver/functions/parse';
import {inject} from 'ghost-admin/decorators/inject';
import {inject as service} from '@ember/service';
export default class AboutModal extends Component {
@service upgradeStatus;
@inject config;
constructor() {
super(...arguments);
if (this.isTesting === undefined) {
this.isTesting = config.environment === 'test';
}
}
get copyrightYear() {
const date = new Date();
return date.getFullYear();
}
get linkToGitHubReleases() {
if (this.config.version.includes('-pre.')) {
try {
const semverVersion = semverParse(this.config.version, {includePrerelease: true});
if (semverVersion && semverVersion.build?.[0]) {
return `https://github.com/TryGhost/Ghost/commit/${semverVersion.build[0]}`;
}
return false;
} catch (e) {
return false;
}
}
return `https://github.com/TryGhost/Ghost/releases/tag/v${this.config.version}`;
}
get showSystemInfo() {
const isPro = !!this.config.hostSettings?.siteId;
// Don't show any system info for Pro
if (isPro) {
return false;
}
return true;
}
get showDatabaseWarning() {
const isProduction = !!this.config.environment.match?.(/production/i);
const database = this.config.database;
// Show a warning if we're in production and not using MySQL 8
if (isProduction && database !== 'mysql8') {
return true;
}
// Show a warning if we're in development and using MySQL 5
if (!isProduction && database === 'mysql5') {
return true;
}
return false;
}
}