diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/extension-table-action-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/extension-table-action-column-layout.element.ts deleted file mode 100644 index 761ac1ca38..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/extension-table-action-column-layout.element.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { umbExtensionsRegistry } from '../../index.js'; -import type { UmbExtensionCollectionFilterModel } from '../types.js'; -import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; -import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; -import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; -import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; - -@customElement('umb-extension-table-action-column-layout') -export class UmbExtensionTableActionColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value!: ManifestBase; - - #collectionContext?: UmbDefaultCollectionContext; - - constructor() { - super(); - - this.consumeContext(UMB_COLLECTION_CONTEXT, (instance) => { - this.#collectionContext = instance; - }); - } - - async #removeExtension() { - await umbConfirmModal(this, { - headline: 'Unload extension', - confirmLabel: 'Unload', - content: html`

Are you sure you want to unload the extension ${this.value.alias}?

`, - color: 'danger', - }); - - umbExtensionsRegistry.unregister(this.value.alias); - - this.#collectionContext?.requestCollection(); - } - - render() { - return html` - - - - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-extension-table-action-column-layout': UmbExtensionTableActionColumnLayoutElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/table/extension-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/table/extension-table-collection-view.element.ts index a480410afa..63875a9d04 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/table/extension-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/table/extension-table-collection-view.element.ts @@ -1,13 +1,12 @@ -import type { UmbExtensionCollectionFilterModel } from '../../types.js'; +import type { UmbExtensionCollectionFilterModel, UmbExtensionDetailModel } from '../../types.js'; import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; -import '../extension-table-action-column-layout.element.js'; +import './extension-table-entity-actions-column-layout.element.js'; @customElement('umb-extension-table-collection-view') export class UmbExtensionTableCollectionViewElement extends UmbLitElement { @@ -37,14 +36,14 @@ export class UmbExtensionTableCollectionViewElement extends UmbLitElement { { name: '', alias: 'extensionAction', - elementName: 'umb-extension-table-action-column-layout', + elementName: 'umb-extension-table-entity-actions-column-layout', }, ]; @state() private _tableItems: Array = []; - #collectionContext?: UmbDefaultCollectionContext; + #collectionContext?: UmbDefaultCollectionContext; constructor() { super(); @@ -60,10 +59,10 @@ export class UmbExtensionTableCollectionViewElement extends UmbLitElement { this.observe(this.#collectionContext.items, (items) => this.#createTableItems(items), 'umbCollectionItemsObserver'); } - #createTableItems(extensions: Array) { + #createTableItems(extensions: Array) { this._tableItems = extensions.map((extension) => { return { - id: extension.alias, + id: extension.unique, data: [ { columnAlias: 'extensionType', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/table/extension-table-entity-actions-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/table/extension-table-entity-actions-column-layout.element.ts new file mode 100644 index 0000000000..bec7683247 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/collection/views/table/extension-table-entity-actions-column-layout.element.ts @@ -0,0 +1,35 @@ +import type { UmbExtensionDetailModel } from '../../types.js'; +import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; + +const elementName = 'umb-extension-table-entity-actions-column-layout'; +@customElement(elementName) +export class UmbExtensionTableEntityActionsColumnLayoutElement extends UmbLitElement { + @property({ attribute: false }) + value!: UmbExtensionDetailModel; + + @state() + _isOpen = false; + + #onActionExecuted() { + this._isOpen = false; + } + + render() { + return html` + + + + + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbExtensionTableEntityActionsColumnLayoutElement; + } +}