From ea0a326f466d75dc2985e0b99309844b24c4bd5c Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 27 Mar 2024 11:37:26 +0100 Subject: [PATCH] update media workspace for tracked relations --- ...a-workspace-view-info-reference.element.ts | 80 +++++++++++++++---- 1 file changed, 64 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-workspace-view-info-reference.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-workspace-view-info-reference.element.ts index f0d7c333bb..53c62841ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-workspace-view-info-reference.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-workspace-view-info-reference.element.ts @@ -2,9 +2,14 @@ import { css, html, customElement, state, nothing, repeat, property } from '@umb import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { RelationItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbMediaTrackedReferenceRepository } from '@umbraco-cms/backoffice/media'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { + isDefaultReference, + isDocumentReference, + isMediaReference, + type UmbReferenceModel, +} from '@umbraco-cms/backoffice/relations'; @customElement('umb-media-workspace-view-info-reference') export class UmbMediaWorkspaceViewInfoReferenceElement extends UmbLitElement { @@ -24,7 +29,7 @@ export class UmbMediaWorkspaceViewInfoReferenceElement extends UmbLitElement { private _total = 0; @state() - private _items?: Array = []; + private _items?: Array = []; constructor() { super(); @@ -63,6 +68,49 @@ export class UmbMediaWorkspaceViewInfoReferenceElement extends UmbLitElement { this.#getReferences(); } + #getIcon(item: UmbReferenceModel) { + if (isDocumentReference(item)) { + return item.documentType.icon ?? 'icon-document'; + } + if (isMediaReference(item)) { + return item.mediaType.icon ?? 'icon-picture'; + } + if (isDefaultReference(item)) { + return item.icon ?? 'icon-document'; + } + return 'icon-document'; + } + + #getPublishedStatus(item: UmbReferenceModel) { + return isDocumentReference(item) ? item.published : true; + } + + #getContentTypeName(item: UmbReferenceModel) { + if (isDocumentReference(item)) { + return item.documentType.name; + } + if (isMediaReference(item)) { + return item.mediaType.name; + } + if (isDefaultReference(item)) { + return item.type; + } + return ''; + } + + #getContentType(item: UmbReferenceModel) { + if (isDocumentReference(item)) { + return item.documentType.alias; + } + if (isMediaReference(item)) { + return item.mediaType.alias; + } + if (isDefaultReference(item)) { + return item.type; + } + return ''; + } + render() { if (this._items && this._items.length > 0) { return html` @@ -76,34 +124,34 @@ export class UmbMediaWorkspaceViewInfoReferenceElement extends UmbLitElement { Status Type Name Type - - Relation - ${repeat( this._items, - (item) => item.nodeId, + (item) => item.id, (item) => html` - + - - ${item.nodeName} - + ${isDocumentReference(item) + ? html` + + ${item.name} + + ` + : item.name} - ${item.nodePublished + ${this.#getPublishedStatus(item) ? this.localize.term('content_published') : this.localize.term('content_unpublished')} - ${item.contentTypeName} - ${item.nodeType} - ${item.relationTypeName} + ${this.#getContentTypeName(item)} + ${this.#getContentType(item)} `, )}