Skip to content

Commit f222f95

Browse files
Merge branch 'v15/dev' into v15/feature/emm-remove-dashboard-collection-manifest-type
2 parents da8b4e3 + f846856 commit f222f95

File tree

105 files changed

+2289
-10402
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+2289
-10402
lines changed

devops/openapi-ts/openapi-ts.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { defineConfig } from '@hey-api/openapi-ts';
22

33
export default defineConfig({
44
client: 'fetch',
5-
input: 'https://raw.githubusercontent.com/umbraco/Umbraco-CMS/v14/dev/src/Umbraco.Cms.Api.Management/OpenApi.json',
5+
input: 'https://raw.githubusercontent.com/umbraco/Umbraco-CMS/v15/dev/src/Umbraco.Cms.Api.Management/OpenApi.json',
66
output: {
77
path: 'src/external/backend-api/src',
88
format: 'prettier',

package-lock.json

Lines changed: 480 additions & 478 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@
190190
"@types/diff": "^5.2.1",
191191
"@types/dompurify": "^3.0.5",
192192
"@types/uuid": "^10.0.0",
193-
"@umbraco-ui/uui": "^1.9.0",
194-
"@umbraco-ui/uui-css": "^1.9.0",
193+
"@umbraco-ui/uui": "^v1.10.0-rc.0",
194+
"@umbraco-ui/uui-css": "^v1.10.0-rc.0",
195195
"base64-js": "^1.5.1",
196196
"diff": "^5.2.0",
197197
"dompurify": "^3.1.6",

src/apps/backoffice/backoffice.context.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
1010
import type { UmbExtensionManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
1111
import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth';
1212
import { UMB_CURRENT_USER_CONTEXT } from '@umbraco-cms/backoffice/current-user';
13+
import { UmbSysinfoRepository } from '@umbraco-cms/backoffice/sysinfo';
1314

1415
export class UmbBackofficeContext extends UmbContextBase<UmbBackofficeContext> {
1516
#activeSectionAlias = new UmbStringState(undefined);
@@ -76,6 +77,12 @@ export class UmbBackofficeContext extends UmbContextBase<UmbBackofficeContext> {
7677
public setActiveSectionAlias(alias: string) {
7778
this.#activeSectionAlias.setValue(alias);
7879
}
80+
81+
public async serverUpgradeCheck(): Promise<boolean> {
82+
const repository = new UmbSysinfoRepository(this);
83+
const check = await repository.serverUpgradeCheck();
84+
return !!check;
85+
}
7986
}
8087

8188
export const UMB_BACKOFFICE_CONTEXT = new UmbContextToken<UmbBackofficeContext>('UmbBackofficeContext');

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

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { isCurrentUserAnAdmin } from '@umbraco-cms/backoffice/current-user';
21
import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js';
2+
import { isCurrentUserAnAdmin } from '@umbraco-cms/backoffice/current-user';
33
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
44
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
55
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
66
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
7-
import { UMB_SYSINFO_MODAL } from '@umbraco-cms/backoffice/sysinfo';
7+
import { UMB_NEWVERSION_MODAL, UMB_SYSINFO_MODAL } from '@umbraco-cms/backoffice/sysinfo';
88

99
@customElement('umb-backoffice-header-logo')
1010
export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
@@ -14,6 +14,11 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
1414
@state()
1515
private _isUserAdmin = false;
1616

17+
@state()
18+
private _serverUpgradeCheck = false;
19+
20+
#backofficeContext?: typeof UMB_BACKOFFICE_CONTEXT.TYPE;
21+
1722
constructor() {
1823
super();
1924

@@ -26,13 +31,19 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
2631
},
2732
'_observeVersion',
2833
);
34+
35+
this.#backofficeContext = context;
2936
});
3037

3138
this.#isAdmin();
3239
}
3340

3441
async #isAdmin() {
3542
this._isUserAdmin = await isCurrentUserAnAdmin(this);
43+
44+
if (this._isUserAdmin) {
45+
this._serverUpgradeCheck = this.#backofficeContext ? await this.#backofficeContext.serverUpgradeCheck() : false;
46+
}
3647
}
3748

3849
override render() {
@@ -50,6 +61,14 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
5061
height="82"
5162
loading="lazy" />
5263
<span>${this._version}</span>
64+
65+
${this._serverUpgradeCheck
66+
? html`<uui-button
67+
@click=${this.#openNewVersion}
68+
color="danger"
69+
label=${this.localize.term('general_newVersionAvailable')}></uui-button>`
70+
: ''}
71+
5372
<a href="https://umbraco.com" target="_blank" rel="noopener">Umbraco.com</a>
5473
5574
${this._isUserAdmin
@@ -72,6 +91,14 @@ export class UmbBackofficeHeaderLogoElement extends UmbLitElement {
7291
.catch(() => {});
7392
}
7493

94+
async #openNewVersion() {
95+
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
96+
modalManager
97+
.open(this, UMB_NEWVERSION_MODAL)
98+
.onSubmit()
99+
.catch(() => {});
100+
}
101+
75102
static override styles = [
76103
UmbTextStyles,
77104
css`

src/assets/lang/da-dk.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -910,6 +910,7 @@ export default {
910910
lastUpdated: 'Last Updated',
911911
skipToMenu: 'Skip to menu',
912912
skipToContent: 'Skip to content',
913+
newVersionAvailable: 'Ny version tilgængelig',
913914
},
914915
colors: {
915916
blue: 'Blå',

src/assets/lang/de-de.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,7 @@ export default {
879879
header: 'Kopf',
880880
systemField: 'System Feld',
881881
lastUpdated: 'Zuletzt geändert',
882+
newVersionAvailable: 'Neue Version verfügbar',
882883
},
883884
colors: {
884885
blue: 'Blau',

src/assets/lang/en-us.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -921,6 +921,7 @@ export default {
921921
skipToMenu: 'Skip to menu',
922922
skipToContent: 'Skip to content',
923923
restore: 'Restore',
924+
newVersionAvailable: 'New version available',
924925
},
925926
colors: {
926927
blue: 'Blue',

src/assets/lang/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,7 @@ export default {
934934
media: 'Media',
935935
revert: 'Revert',
936936
validate: 'Validate',
937+
newVersionAvailable: 'New version available',
937938
},
938939
colors: {
939940
blue: 'Blue',
Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
export type ApiRequestOptions<T = unknown> = {
2-
readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';
3-
readonly url: string;
4-
readonly path?: Record<string, unknown>;
2+
readonly body?: any;
53
readonly cookies?: Record<string, unknown>;
4+
readonly errors?: Record<number | string, string>;
5+
readonly formData?: Record<string, unknown> | any[] | Blob | File;
66
readonly headers?: Record<string, unknown>;
7-
readonly query?: Record<string, unknown>;
8-
readonly formData?: Record<string, unknown>;
9-
readonly body?: any;
107
readonly mediaType?: string;
8+
readonly method:
9+
| 'DELETE'
10+
| 'GET'
11+
| 'HEAD'
12+
| 'OPTIONS'
13+
| 'PATCH'
14+
| 'POST'
15+
| 'PUT';
16+
readonly path?: Record<string, unknown>;
17+
readonly query?: Record<string, unknown>;
1118
readonly responseHeader?: string;
1219
readonly responseTransformer?: (data: unknown) => Promise<T>;
13-
readonly errors?: Record<number | string, string>;
20+
readonly url: string;
1421
};

0 commit comments

Comments
 (0)