diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.element.ts index 4d263d2781..3ce0eb2275 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.element.ts @@ -5,6 +5,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html, LitElement, nothing } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { UmbWorkspaceLanguageContext } from './language-workspace.context'; +import 'src/backoffice/shared/components/workspace/actions/save/workspace-action-node-save.element.ts'; @customElement('umb-language-workspace') export class UmbLanguageWorkspaceElement extends UmbLitElement { @@ -70,57 +71,18 @@ export class UmbLanguageWorkspaceElement extends UmbLitElement { render() { if (!this.language) return nothing; - return html` - -
- - - - - -
- ${this.language.isoCode} -
-
- -
- -
- Default language -
An Umbraco site can only have one default language set.
-
-
-
- -
- Mandatory language -
Properties on this language have to be filled out before the node can be published.
-
-
-
- Switching default language may result in default content missing. -
-
-
- - - - No fall back language - - - -
-
-
`; + return html` + + + + `; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts index a346dc5488..0b25efc227 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/manifests.ts @@ -10,8 +10,34 @@ const workspace: ManifestWorkspace = { }, }; -const workspaceViews: Array = []; +const workspaceActions: Array = [ + { + type: 'workspaceAction', + alias: 'Umb.WorkspaceAction.Language.Save', + name: 'Save Language Workspace Action', + loader: () => import('src/backoffice/shared/components/workspace/actions/save/workspace-action-node-save.element'), + meta: { + workspaces: ['Umb.Workspace.Language'], + look: 'primary', + color: 'positive', + }, + }, +]; -const workspaceActions: Array = []; +const workspaceViews: Array = [ + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.Language.Edit', + name: 'Language Workspace Edit View', + loader: () => import('./views/edit/workspace-view-language-edit.element'), + weight: 90, + meta: { + workspaces: ['Umb.Workspace.Language'], + label: 'Edit', + pathname: 'edit', + icon: 'edit', + }, + }, +]; export const manifests = [workspace, ...workspaceViews, ...workspaceActions]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/views/edit/workspace-view-language-edit.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/views/edit/workspace-view-language-edit.element.ts new file mode 100644 index 0000000000..6d2607112c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/views/edit/workspace-view-language-edit.element.ts @@ -0,0 +1,79 @@ +import { UmbLitElement } from '@umbraco-cms/element'; +import { LanguageDetails } from '@umbraco-cms/models'; +import { UUITextStyles } from '@umbraco-ui/uui-css'; +import { css, html, LitElement, nothing } from 'lit'; +import { customElement, property } from 'lit/decorators.js'; +import { UmbWorkspaceLanguageContext } from '../../language-workspace.context'; + +@customElement('umb-workspace-view-language-edit') +export class UmbWorkspaceViewLanguageEditElement extends UmbLitElement { + static styles = [UUITextStyles, css``]; + + @property() + language?: LanguageDetails; + + private _languageWorkspaceContext?: UmbWorkspaceLanguageContext; + + constructor() { + super(); + + this.consumeContext('umbWorkspaceContext', (instance) => { + this._languageWorkspaceContext = instance; + + console.log('languagae', instance); + this._languageWorkspaceContext.data.subscribe((language) => { + this.language = language; + }); + }); + } + + render() { + if (!this.language) return nothing; + + return html` + + + + + +
${this.language.isoCode}
+
+ +
+ +
+ Default language +
An Umbraco site can only have one default language set.
+
+
+
+ +
+ Mandatory language +
Properties on this language have to be filled out before the node can be published.
+
+
+
Switching default language may result in default content missing.
+
+
+ + + + No fall back language + + + +
+ `; + } +} + +export default UmbWorkspaceViewLanguageEditElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-workspace-view-language-edit': UmbWorkspaceViewLanguageEditElement; + } +}