Skip to content

Commit d14362c

Browse files
authored
Merge branch 'main' into v14/feature/document-notifications
2 parents 7501c4c + 15302db commit d14362c

File tree

121 files changed

+1757
-990
lines changed

Some content is hidden

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

121 files changed

+1757
-990
lines changed

.sonarlint/connectedMode.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"sonarCloudOrganization": "umbraco",
3+
"projectKey": "umbraco_Umbraco.CMS.Backoffice"
4+
}

devops/tsconfig/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ DON'T EDIT THIS FILE DIRECTLY. It is generated by /devops/tsconfig/index.js
1818
const tsConfigBase = {
1919
compilerOptions: {
2020
module: 'esnext',
21+
moduleResolution: 'bundler',
22+
moduleDetection: 'force',
23+
verbatimModuleSyntax: true,
2124
target: 'es2022',
2225
lib: ['es2022', 'dom', 'dom.iterable'],
2326
outDir: './types',
@@ -29,8 +32,6 @@ const tsConfigBase = {
2932
incremental: true,
3033
skipLibCheck: true,
3134
noImplicitOverride: true,
32-
/* Bundler mode */
33-
moduleResolution: 'bundler',
3435
allowImportingTsExtensions: true,
3536
resolveJsonModule: true,
3637
isolatedModules: true,

examples/sorter-with-nested-containers/sorter-item.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
2-
import { css, html, customElement, LitElement, state, repeat, property } from '@umbraco-cms/backoffice/external/lit';
2+
import { css, html, customElement, LitElement, property } from '@umbraco-cms/backoffice/external/lit';
33
import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';
4-
import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter';
54

65
@customElement('example-sorter-item')
76
export class ExampleSorterItem extends UmbElementMixin(LitElement) {

examples/sorter-with-two-containers/sorter-group.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import type ExampleSorterItem from './sorter-item.js';
12
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
23
import { css, html, customElement, LitElement, repeat, property } from '@umbraco-cms/backoffice/external/lit';
34
import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';
4-
import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter';
5+
import { UmbSorterController } from '@umbraco-cms/backoffice/sorter';
56

67
import './sorter-item.js';
7-
import ExampleSorterItem from './sorter-item.js';
88

99
export type ModelEntryType = {
1010
name: string;

examples/sorter-with-two-containers/sorter-item.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
2-
import { css, html, customElement, LitElement, state, repeat, property } from '@umbraco-cms/backoffice/external/lit';
2+
import { css, html, customElement, LitElement, property } from '@umbraco-cms/backoffice/external/lit';
33
import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api';
4-
import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter';
54

65
@customElement('example-sorter-item')
76
export class ExampleSorterItem extends UmbElementMixin(LitElement) {

package-lock.json

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

package.json

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -131,35 +131,7 @@
131131
"url": "https://umbraco.com"
132132
},
133133
"workspaces": [
134-
"./src/packages/block",
135-
"./src/packages/code-editor",
136-
"./src/packages/core",
137-
"./src/packages/data-type",
138-
"./src/packages/dictionary",
139-
"./src/packages/documents",
140-
"./src/packages/health-check",
141-
"./src/packages/language",
142-
"./src/packages/log-viewer",
143-
"./src/packages/markdown-editor",
144-
"./src/packages/media",
145-
"./src/packages/members",
146-
"./src/packages/models-builder",
147-
"./src/packages/multi-url-picker",
148-
"./src/packages/packages",
149-
"./src/packages/performance-profiling",
150-
"./src/packages/property-editors",
151-
"./src/packages/publish-cache",
152-
"./src/packages/relations",
153-
"./src/packages/search",
154-
"./src/packages/static-file",
155-
"./src/packages/tags",
156-
"./src/packages/telemetry",
157-
"./src/packages/templating",
158-
"./src/packages/tiny-mce",
159-
"./src/packages/ufm",
160-
"./src/packages/umbraco-news",
161-
"./src/packages/user",
162-
"./src/packages/webhook"
134+
"./src/packages/*"
163135
],
164136
"scripts": {
165137
"backoffice:test:e2e": "npx playwright test",
@@ -216,8 +188,8 @@
216188
"@types/diff": "^5.2.1",
217189
"@types/dompurify": "^3.0.5",
218190
"@types/uuid": "^10.0.0",
219-
"@umbraco-ui/uui": "^1.9.0",
220-
"@umbraco-ui/uui-css": "^1.9.0",
191+
"@umbraco-ui/uui": "^v1.10.0-rc.0",
192+
"@umbraco-ui/uui-css": "^v1.10.0-rc.0",
221193
"base64-js": "^1.5.1",
222194
"diff": "^5.2.0",
223195
"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/bs.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1532,12 +1532,12 @@ export default {
15321532
andAllMediaItems: 'i sve medijske stavke koje koriste ovu vrstu',
15331533
andAllMembers: 'i svi članovi koji koriste ovaj tip',
15341534
memberCanEdit: 'Član može uređivati',
1535-
memberCanEditDescription: 'Dozvolite da ovu vrijednost svojstva uređuje član na svojoj stranici profila\n ',
1535+
memberCanEditDescription: 'Dozvolite da ovu vrijednost svojstva uređuje član na svojoj stranici profila',
15361536
isSensitiveData: 'Osjetljivi podaci',
15371537
isSensitiveDataDescription:
1538-
'Sakrij ovu vrijednost svojstva od uređivača sadržaja koji nemaju pristup pregledu\n osjetljive informacije\n ',
1538+
'Sakrij ovu vrijednost svojstva od uređivača sadržaja koji nemaju pristup pregledu osjetljive informacije',
15391539
showOnMemberProfile: 'Prikaži na profilu člana',
1540-
showOnMemberProfileDescription: 'Dozvolite da se ova vrijednost svojstva prikaže na stranici profila člana\n ',
1540+
showOnMemberProfileDescription: 'Dozvolite da se ova vrijednost svojstva prikaže na stranici profila člana',
15411541
tabHasNoSortOrder: 'kartica nema redoslijed sortiranja',
15421542
compositionUsageHeading: 'Gdje se koristi ovaj sastav?',
15431543
compositionUsageSpecification: 'Ovaj sastav se trenutno koristi u sastavu sljedećih\n tipa sadržaja:\n ',

0 commit comments

Comments
 (0)