Skip to content

Commit 9b0ea04

Browse files
authored
Merge pull request #2260 from umbraco/feature/sysinfo
Feature: Show system information
2 parents 0e8de9a + 4161b07 commit 9b0ea04

23 files changed

+311
-25
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"./store": "./dist-cms/packages/core/store/index.js",
8484
"./style": "./dist-cms/packages/core/style/index.js",
8585
"./stylesheet": "./dist-cms/packages/templating/stylesheets/index.js",
86+
"./sysinfo": "./dist-cms/packages/sysinfo/index.js",
8687
"./tags": "./dist-cms/packages/tags/index.js",
8788
"./template": "./dist-cms/packages/templating/templates/index.js",
8889
"./temporary-file": "./dist-cms/packages/core/temporary-file/index.js",

src/apps/backoffice/backoffice.element.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const CORE_PACKAGES = [
3333
import('../../packages/search/umbraco-package.js'),
3434
import('../../packages/settings/umbraco-package.js'),
3535
import('../../packages/static-file/umbraco-package.js'),
36+
import('../../packages/sysinfo/umbraco-package.js'),
3637
import('../../packages/tags/umbraco-package.js'),
3738
import('../../packages/telemetry/umbraco-package.js'),
3839
import('../../packages/templating/umbraco-package.js'),

src/apps/backoffice/components/backoffice-header-logo.element.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1+
import { isCurrentUserAnAdmin } from '@umbraco-cms/backoffice/current-user';
12
import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js';
23
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
34
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
45
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
6+
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
7+
import { UMB_SYSINFO_MODAL } from '@umbraco-cms/backoffice/sysinfo';
58

69
@customElement('umb-backoffice-header-logo')
710
export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
811
@state()
912
private _version?: string;
1013

14+
@state()
15+
private _isUserAdmin = false;
16+
1117
constructor() {
1218
super();
1319

@@ -21,6 +27,12 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
2127
'_observeVersion',
2228
);
2329
});
30+
31+
this.#isAdmin();
32+
}
33+
34+
async #isAdmin() {
35+
this._isUserAdmin = await isCurrentUserAnAdmin(this);
2436
}
2537

2638
override render() {
@@ -31,15 +43,35 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
3143
<uui-popover-container id="logo-popover" placement="bottom-start">
3244
<umb-popover-layout>
3345
<div id="modal">
34-
<img src="/umbraco/backoffice/assets/umbraco_logo_blue.svg" alt="Umbraco" loading="lazy" />
46+
<img
47+
src="/umbraco/backoffice/assets/umbraco_logo_blue.svg"
48+
alt="Umbraco"
49+
width="300"
50+
height="82"
51+
loading="lazy" />
3552
<span>${this._version}</span>
3653
<a href="https://umbraco.com" target="_blank" rel="noopener">Umbraco.com</a>
54+
55+
${this._isUserAdmin
56+
? html`<uui-button
57+
@click=${this.#openSystemInformation}
58+
look="secondary"
59+
label="System information"></uui-button>`
60+
: ''}
3761
</div>
3862
</umb-popover-layout>
3963
</uui-popover-container>
4064
`;
4165
}
4266

67+
async #openSystemInformation() {
68+
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
69+
modalManager
70+
.open(this, UMB_SYSINFO_MODAL)
71+
.onSubmit()
72+
.catch(() => {});
73+
}
74+
4375
static override styles = [
4476
UmbTextStyles,
4577
css`

src/assets/lang/da-dk.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2223,6 +2223,7 @@ export default {
22232223
labelForArrayOfItems: 'Samling af %0%',
22242224
labelForRemoveAllEntries: 'Fjern alle elementer',
22252225
labelForClearClipboard: 'Ryd udklipsholder',
2226+
labelForCopyToClipboard: 'Kopier til udklipsholder',
22262227
},
22272228
propertyActions: {
22282229
tooltipForPropertyActionsMenu: 'Åben egenskabshandlinger',

src/assets/lang/de-de.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1967,6 +1967,14 @@ export default {
19671967
selectAllLogLevelFilters: 'Wählen Sie Alle',
19681968
deselectAllLogLevelFilters: 'Alle abwählen',
19691969
},
1970+
clipboard: {
1971+
labelForCopyAllEntries: '%0% kopieren',
1972+
labelForArrayOfItemsFrom: '%0% von %1%',
1973+
labelForArrayOfItems: 'Sammlung von %0%',
1974+
labelForRemoveAllEntries: 'Alle Elemente entfernen',
1975+
labelForClearClipboard: 'Zwischenablage löschen',
1976+
labelForCopyToClipboard: 'Kopieren in Zwischenablage',
1977+
},
19701978
formsDashboard: {
19711979
formsHeadline: 'Umbraco Forms',
19721980
formsDescription:

src/assets/lang/en-us.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2288,6 +2288,7 @@ export default {
22882288
labelForArrayOfItems: 'Collection of %0%',
22892289
labelForRemoveAllEntries: 'Remove all items',
22902290
labelForClearClipboard: 'Clear clipboard',
2291+
labelForCopyToClipboard: 'Copy to clipboard',
22912292
},
22922293
propertyActions: {
22932294
tooltipForPropertyActionsMenu: 'Open Property Actions',

src/assets/lang/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2354,6 +2354,7 @@ export default {
23542354
labelForArrayOfItems: 'Collection of %0%',
23552355
labelForRemoveAllEntries: 'Remove all items',
23562356
labelForClearClipboard: 'Clear clipboard',
2357+
labelForCopyToClipboard: 'Copy to clipboard',
23572358
},
23582359
propertyActions: {
23592360
tooltipForPropertyActionsMenu: 'Open Property Actions',

src/mocks/browser-handlers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ const handlers = [
7272
...userGroupsHandlers,
7373
...userHandlers,
7474
...documentBlueprintHandlers,
75-
serverHandlers.serverInformationHandler,
75+
...serverHandlers.serverInformationHandlers,
7676
];
7777

7878
switch (import.meta.env.VITE_UMBRACO_INSTALL_STATUS) {

src/mocks/e2e-handlers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { handlers as configHandlers } from './handlers/config.handlers.js';
1818

1919
export const handlers = [
2020
serverHandlers.serverRunningHandler,
21-
serverHandlers.serverInformationHandler,
21+
...serverHandlers.serverInformationHandlers,
2222
...manifestsHandlers.manifestEmptyHandlers,
2323
...installHandlers,
2424
...upgradeHandlers,

src/mocks/handlers/server.handlers.ts

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
const { rest } = window.MockServiceWorker;
2-
import type {
3-
ServerStatusResponseModel,
4-
ServerInformationResponseModel,
2+
import {
3+
type ServerStatusResponseModel,
4+
type ServerInformationResponseModel,
5+
type ServerTroubleshootingResponseModel,
6+
RuntimeLevelModel,
7+
RuntimeModeModel,
58
} from '@umbraco-cms/backoffice/external/backend-api';
6-
import { RuntimeLevelModel, RuntimeModeModel } from '@umbraco-cms/backoffice/external/backend-api';
79
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
810

911
export const serverRunningHandler = rest.get(umbracoPath('/server/status'), (_req, res, ctx) => {
@@ -36,15 +38,30 @@ export const serverMustUpgradeHandler = rest.get(umbracoPath('/server/status'),
3638
);
3739
});
3840

39-
export const serverInformationHandler = rest.get(umbracoPath('/server/information'), (_req, res, ctx) => {
40-
return res(
41-
// Respond with a 200 status code
42-
ctx.status(200),
43-
ctx.json<ServerInformationResponseModel>({
44-
version: '14.0.0-preview004',
45-
assemblyVersion: '14.0.0-preview004',
46-
baseUtcOffset: '01:00:00',
47-
runtimeMode: RuntimeModeModel.BACKOFFICE_DEVELOPMENT,
48-
}),
49-
);
50-
});
41+
export const serverInformationHandlers = [
42+
rest.get(umbracoPath('/server/information'), (_req, res, ctx) => {
43+
return res(
44+
// Respond with a 200 status code
45+
ctx.status(200),
46+
ctx.json<ServerInformationResponseModel>({
47+
version: '14.0.0-preview004',
48+
assemblyVersion: '14.0.0-preview004',
49+
baseUtcOffset: '01:00:00',
50+
runtimeMode: RuntimeModeModel.BACKOFFICE_DEVELOPMENT,
51+
}),
52+
);
53+
}),
54+
rest.get(umbracoPath('/server/troubleshooting'), (_req, res, ctx) => {
55+
return res(
56+
// Respond with a 200 status code
57+
ctx.status(200),
58+
ctx.json<ServerTroubleshootingResponseModel>({
59+
items: [
60+
{ name: 'Umbraco base url', data: location.origin },
61+
{ name: 'Mocked server', data: 'true' },
62+
{ name: 'Umbraco version', data: '14.0.0-preview004' },
63+
],
64+
}),
65+
);
66+
}),
67+
];

0 commit comments

Comments
 (0)