register media history

This commit is contained in:
Mads Rasmussen
2025-01-16 22:25:39 +01:00
parent 810b7d6de3
commit dc7f02f121
6 changed files with 56 additions and 24 deletions

View File

@@ -0,0 +1,21 @@
import { UMB_MEDIA_WORKSPACE_ALIAS } from '../../workspace/constants.js';
import { UMB_WORKSPACE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/workspace';
export const manifests: Array<UmbExtensionManifest> = [
{
type: 'workspaceInfoApp',
name: 'Media History Workspace Info App',
alias: 'Umb.WorkspaceInfoApp.Media.History',
element: () => import('./media-history-workspace-info-app.element.js'),
weight: 80,
meta: {
label: '#general_history',
},
conditions: [
{
alias: UMB_WORKSPACE_CONDITION_ALIAS,
match: UMB_MEDIA_WORKSPACE_ALIAS,
},
],
},
];

View File

@@ -1,7 +1,7 @@
import type { UmbMediaAuditLogModel } from '../../../audit-log/types.js';
import { UmbMediaAuditLogRepository } from '../../../audit-log/index.js';
import { UMB_MEDIA_WORKSPACE_CONTEXT } from '../../media-workspace.context-token.js';
import { TimeOptions, getMediaHistoryTagStyleAndText } from './utils.js';
import { UMB_MEDIA_WORKSPACE_CONTEXT } from '../../workspace/constants.js';
import type { UmbMediaAuditLogModel } from '../types.js';
import { UmbMediaAuditLogRepository } from '../repository/index.js';
import { getMediaHistoryTagStyleAndText, TimeOptions } from './utils.js';
import { css, html, customElement, state, nothing, repeat } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
@@ -10,8 +10,8 @@ import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui';
import type { UmbUserItemModel } from '@umbraco-cms/backoffice/user';
import { UmbUserItemRepository } from '@umbraco-cms/backoffice/user';
@customElement('umb-media-workspace-view-info-history')
export class UmbMediaWorkspaceViewInfoHistoryElement extends UmbLitElement {
@customElement('umb-media-history-workspace-info-app')
export class UmbMediaHistoryWorkspaceInfoAppElement extends UmbLitElement {
@state()
_currentPageNumber = 1;
@@ -172,10 +172,10 @@ export class UmbMediaWorkspaceViewInfoHistoryElement extends UmbLitElement {
];
}
export default UmbMediaWorkspaceViewInfoHistoryElement;
export default UmbMediaHistoryWorkspaceInfoAppElement;
declare global {
interface HTMLElementTagNameMap {
'umb-media-workspace-view-info-history': UmbMediaWorkspaceViewInfoHistoryElement;
'umb-media-workspace-view-info-history': UmbMediaHistoryWorkspaceInfoAppElement;
}
}

View File

@@ -1,5 +1,5 @@
import type { UmbMediaAuditLogType } from '../../../audit-log/utils/index.js';
import { UmbMediaAuditLog } from '../../../audit-log/utils/index.js';
import type { UmbMediaAuditLogType } from '../utils/index.js';
import { UmbMediaAuditLog } from '../utils/index.js';
interface HistoryStyleMap {
look: 'default' | 'primary' | 'secondary' | 'outline' | 'placeholder';

View File

@@ -0,0 +1,3 @@
import { manifests as infoAppManifests } from './info-app/manifests.js';
export const manifests: Array<UmbExtensionManifest> = [...infoAppManifests];

View File

@@ -1,7 +1,9 @@
import { manifests as auditLogManifests } from './audit-log/manifests.js';
import { manifests as collectionManifests } from './collection/manifests.js';
import { manifests as dropzoneManifests } from './dropzone/manifests.js';
import { manifests as entityActionsManifests } from './entity-actions/manifests.js';
import { manifests as entityBulkActionsManifests } from './entity-bulk-actions/manifests.js';
import { manifests as fileUploadPreviewManifests } from './components/input-upload-field/manifests.js';
import { manifests as menuManifests } from './menu/manifests.js';
import { manifests as modalManifests } from './modals/manifests.js';
import { manifests as propertyEditorsManifests } from './property-editors/manifests.js';
@@ -11,13 +13,14 @@ import { manifests as searchManifests } from './search/manifests.js';
import { manifests as sectionViewManifests } from './dashboard/manifests.js';
import { manifests as treeManifests } from './tree/manifests.js';
import { manifests as workspaceManifests } from './workspace/manifests.js';
import { manifests as fileUploadPreviewManifests } from './components/input-upload-field/manifests.js';
export const manifests: Array<UmbExtensionManifest> = [
...auditLogManifests,
...collectionManifests,
...dropzoneManifests,
...entityActionsManifests,
...entityBulkActionsManifests,
...fileUploadPreviewManifests,
...menuManifests,
...modalManifests,
...propertyEditorsManifests,
@@ -27,5 +30,4 @@ export const manifests: Array<UmbExtensionManifest> = [
...sectionViewManifests,
...treeManifests,
...workspaceManifests,
...fileUploadPreviewManifests,
];

View File

@@ -1,20 +1,20 @@
import { UMB_MEDIA_WORKSPACE_CONTEXT } from '../../media-workspace.context-token.js';
import { TimeOptions } from './utils.js';
import { TimeOptions } from '../../../audit-log/info-app/utils.js';
import { css, customElement, html, ifDefined, nothing, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import type { UmbMediaTypeItemModel } from '@umbraco-cms/backoffice/media-type';
import { UMB_MEDIA_TYPE_ENTITY_TYPE, UmbMediaTypeItemRepository } from '@umbraco-cms/backoffice/media-type';
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace';
import { UMB_WORKSPACE_MODAL, type ManifestWorkspaceInfoApp } from '@umbraco-cms/backoffice/workspace';
import type { MediaUrlInfoModel } from '@umbraco-cms/backoffice/external/backend-api';
import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
import { UMB_SETTINGS_SECTION_ALIAS } from '@umbraco-cms/backoffice/settings';
// import of local components
import './media-workspace-view-info-history.element.js';
import './media-workspace-view-info-reference.element.js';
import type { UmbExtensionElementInitializer } from '@umbraco-cms/backoffice/extension-api';
@customElement('umb-media-workspace-view-info')
export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
@@ -130,15 +130,10 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
override render() {
return html`
<div class="container">
<uui-box headline=${this.localize.term('general_links')} style="--uui-box-default-padding: 0;">
<div id="link-section">${this.#renderLinksSection()}</div>
</uui-box>
<umb-media-workspace-view-info-reference
.mediaUnique=${this._mediaUnique}></umb-media-workspace-view-info-reference>
<umb-media-workspace-view-info-history
.mediaUnique=${this._mediaUnique}></umb-media-workspace-view-info-history>
<umb-extension-slot
id="workspace-info-apps"
type="workspaceInfoApp"
.renderMethod=${this.#renderInfoApp}></umb-extension-slot>
</div>
<div class="container">
<uui-box headline=${this.localize.term('general_general')} id="general-section"
@@ -185,6 +180,17 @@ export class UmbMediaWorkspaceViewInfoElement extends UmbLitElement {
}
}
#renderInfoApp(initializer: UmbExtensionElementInitializer<ManifestWorkspaceInfoApp>) {
const headline = initializer.manifest?.meta.label;
return html`
<uui-box
headline=${ifDefined(headline ? this.localize.string(headline) : undefined)}
style="--uui-box-default-padding:0">
${initializer.component}</uui-box
>
`;
}
#renderGeneralSection() {
return html`
${this.#renderCreateDate()} ${this.#renderUpdateDate()}