update to new workspace interface
This commit is contained in:
@@ -3,6 +3,7 @@ import { css, html } from 'lit';
|
||||
import { customElement, state } from 'lit/decorators.js';
|
||||
import { UmbLanguageStore, UmbLanguageStoreItemType, UMB_LANGUAGE_STORE_CONTEXT_TOKEN } from '../../language.store';
|
||||
import { UmbTableColumn, UmbTableConfig, UmbTableItem } from '../../../../shared/components/table';
|
||||
import { UmbWorkspaceEntityElement } from '../../../../shared/components/workspace/workspace-entity-element.interface';
|
||||
import { UmbLitElement } from '@umbraco-cms/element';
|
||||
|
||||
import '../language/language-workspace.element';
|
||||
@@ -10,7 +11,7 @@ import './language-root-table-delete-column-layout.element';
|
||||
import './language-root-table-name-column-layout.element';
|
||||
|
||||
@customElement('umb-language-root-workspace')
|
||||
export class UmbLanguageRootWorkspaceElement extends UmbLitElement {
|
||||
export class UmbLanguageRootWorkspaceElement extends UmbLitElement implements UmbWorkspaceEntityElement {
|
||||
static styles = [
|
||||
UUITextStyles,
|
||||
css`
|
||||
@@ -80,6 +81,14 @@ export class UmbLanguageRootWorkspaceElement extends UmbLitElement {
|
||||
});
|
||||
}
|
||||
|
||||
load(): void {
|
||||
// Not relevant for this workspace
|
||||
}
|
||||
|
||||
create(): void {
|
||||
// Not relevant for this workspace
|
||||
}
|
||||
|
||||
private _observeLanguages() {
|
||||
this._languageStore?.getAll().subscribe((languages) => {
|
||||
this._createTableItems(languages);
|
||||
@@ -127,7 +136,7 @@ export class UmbLanguageRootWorkspaceElement extends UmbLitElement {
|
||||
render() {
|
||||
return html`
|
||||
<umb-body-layout no-header-background>
|
||||
<a id="add-language" slot="header" href="section/settings/language/edit/new">
|
||||
<a id="add-language" slot="header" href="section/settings/language/create/root">
|
||||
<uui-button label="Add language" look="outline" color="default"></uui-button>
|
||||
</a>
|
||||
<umb-table .config=${this._tableConfig} .columns=${this._tableColumns} .items=${this._tableItems}></umb-table>
|
||||
|
||||
@@ -13,7 +13,7 @@ const DefaultLanguageData: UmbLanguageStoreItemType = {
|
||||
export class UmbWorkspaceLanguageContext {
|
||||
public host: UmbControllerHostInterface;
|
||||
|
||||
private _entityKey!: string;
|
||||
private _entityKey: string | null;
|
||||
|
||||
private _data;
|
||||
public readonly data;
|
||||
@@ -21,7 +21,7 @@ export class UmbWorkspaceLanguageContext {
|
||||
private _store: UmbLanguageStore | null = null;
|
||||
protected _storeObserver?: UmbObserverController<UmbLanguageStoreItemType>;
|
||||
|
||||
constructor(host: UmbControllerHostInterface, entityKey: string) {
|
||||
constructor(host: UmbControllerHostInterface, entityKey: string | null) {
|
||||
this.host = host;
|
||||
this._entityKey = entityKey;
|
||||
|
||||
@@ -35,7 +35,7 @@ export class UmbWorkspaceLanguageContext {
|
||||
}
|
||||
|
||||
private _observeStore(): void {
|
||||
if (!this._store || this._entityKey === 'new') {
|
||||
if (!this._store || this._entityKey === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,12 +3,13 @@ import { css, html, nothing } from 'lit';
|
||||
import { customElement, property } from 'lit/decorators.js';
|
||||
import { UUIInputElement, UUIInputEvent } from '@umbraco-ui/uui';
|
||||
import { UmbLanguageStoreItemType } from '../../language.store';
|
||||
import { UmbWorkspaceEntityElement } from '../../../../shared/components/workspace/workspace-entity-element.interface';
|
||||
import { UmbWorkspaceLanguageContext } from './language-workspace.context';
|
||||
import { UmbLitElement } from '@umbraco-cms/element';
|
||||
import '../../../../shared/components/workspace/actions/save/workspace-action-node-save.element.ts';
|
||||
|
||||
@customElement('umb-language-workspace')
|
||||
export class UmbLanguageWorkspaceElement extends UmbLitElement {
|
||||
export class UmbLanguageWorkspaceElement extends UmbLitElement implements UmbWorkspaceEntityElement {
|
||||
static styles = [
|
||||
UUITextStyles,
|
||||
css`
|
||||
@@ -27,22 +28,18 @@ export class UmbLanguageWorkspaceElement extends UmbLitElement {
|
||||
@property()
|
||||
language?: UmbLanguageStoreItemType;
|
||||
|
||||
private _entityKey!: string;
|
||||
@property()
|
||||
public get entityKey(): string {
|
||||
return this._entityKey;
|
||||
}
|
||||
public set entityKey(value: string) {
|
||||
this._entityKey = value;
|
||||
if (this._entityKey && !this._languageWorkspaceContext) {
|
||||
this.provideLanguageWorkspaceContext();
|
||||
}
|
||||
}
|
||||
|
||||
private _languageWorkspaceContext?: UmbWorkspaceLanguageContext;
|
||||
|
||||
public provideLanguageWorkspaceContext() {
|
||||
this._languageWorkspaceContext = new UmbWorkspaceLanguageContext(this, this._entityKey);
|
||||
load(key: string): void {
|
||||
this.provideLanguageWorkspaceContext(key);
|
||||
}
|
||||
|
||||
create(parentKey: string | null): void {
|
||||
this.provideLanguageWorkspaceContext(parentKey);
|
||||
}
|
||||
|
||||
public provideLanguageWorkspaceContext(entityKey: string | null) {
|
||||
this._languageWorkspaceContext = new UmbWorkspaceLanguageContext(this, entityKey);
|
||||
this.provideContext('umbWorkspaceContext', this._languageWorkspaceContext);
|
||||
this._languageWorkspaceContext.data.subscribe((language) => {
|
||||
this.language = language;
|
||||
|
||||
Reference in New Issue
Block a user