This commit is contained in:
Mads Rasmussen
2024-01-26 09:10:59 +01:00
parent f208fecc11
commit e0402465f9
8 changed files with 28 additions and 31 deletions

View File

@@ -6,6 +6,7 @@ import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace';
import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry';
import { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type';
@customElement('umb-document-type-workspace-view-structure')
export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement {
@@ -63,12 +64,12 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement
element-types-only
.selectedIds=${this._allowedContentTypeIDs ?? []}
@change="${(e: CustomEvent) => {
const sortedContentTypesList = (e.target as UmbInputDocumentTypeElement).selectedIds.map(
(id, index) => ({
id: id,
sortOrder: index,
}),
);
const sortedContentTypesList: Array<UmbContentTypeSortModel> = (
e.target as UmbInputDocumentTypeElement
).selectedIds.map((id, index) => ({
contentType: { unique: id },
sortOrder: index,
}));
this.#workspaceContext?.setAllowedContentTypes(sortedContentTypesList);
}}">
</umb-input-document-type>

View File

@@ -1,4 +1,4 @@
import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js';
import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js';
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
import { UmbDocumentPermissionsEntityAction } from './permissions.action.js';
import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry';

View File

@@ -1,5 +1,5 @@
import { UmbDocumentPermissionRepository } from '../../user-permissions/index.js';
import { UmbDocumentRepository } from '../../repository/index.js';
import { UmbDocumentItemRepository } from '../../repository/index.js';
import { UmbUserGroupRepository } from '@umbraco-cms/backoffice/user-group';
import { html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
@@ -7,11 +7,12 @@ import type {
UmbEntityUserPermissionSettingsModalData,
UmbEntityUserPermissionSettingsModalValue,
UmbModalContext,
UmbModalManagerContext} from '@umbraco-cms/backoffice/modal';
UmbModalManagerContext,
} from '@umbraco-cms/backoffice/modal';
import {
UMB_ENTITY_USER_PERMISSION_MODAL,
UMB_MODAL_MANAGER_CONTEXT,
UMB_USER_GROUP_PICKER_MODAL
UMB_USER_GROUP_PICKER_MODAL,
} from '@umbraco-cms/backoffice/modal';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { UmbSelectedEvent } from '@umbraco-cms/backoffice/event';
@@ -40,7 +41,7 @@ export class UmbPermissionsModalElement extends UmbLitElement {
#userPermissions: Array<any> = [];
#userGroupRepository = new UmbUserGroupRepository(this);
#documentPermissionRepository = new UmbDocumentPermissionRepository(this);
#documentRepository = new UmbDocumentRepository(this);
#documentItemRepository = new UmbDocumentItemRepository(this);
#modalManagerContext?: UmbModalManagerContext;
#userGroupPickerModal?: UmbModalContext;
@@ -67,7 +68,7 @@ export class UmbPermissionsModalElement extends UmbLitElement {
}
async #getEntityItem(unique: string) {
const { data } = await this.#documentRepository.requestItems([unique]);
const { data } = await this.#documentItemRepository.requestItems([unique]);
if (!data) throw new Error('Could not load item');
this._entityItem = data[0];
}

View File

@@ -2,12 +2,8 @@ import type { UmbMediaTypeDetailModel } from '../../types.js';
import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../../entity.js';
import { UmbId } from '@umbraco-cms/backoffice/id';
import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository';
import type {
CreateMediaTypeRequestModel,
UpdateMediaTypeRequestModel} from '@umbraco-cms/backoffice/backend-api';
import {
MediaTypeResource
} from '@umbraco-cms/backoffice/backend-api';
import type { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api';
import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
@@ -87,7 +83,7 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource<UmbMedi
isElement: data.isElement,
properties: data.properties,
containers: data.containers,
allowedContentTypes: data.allowedContentTypes,
allowedContentTypes: data.allowedMediaTypes,
compositions: data.compositions,
};
@@ -116,7 +112,7 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource<UmbMedi
isElement: model.isElement,
properties: model.properties,
containers: model.containers,
allowedContentTypes: model.allowedContentTypes,
allowedMediaTypes: model.allowedContentTypes,
compositions: model.compositions,
id: model.unique,
containerId: model.parentUnique,

View File

@@ -3,7 +3,7 @@ import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from '../index.js';
import { UmbMediaTypeFolderServerDataSource } from './media-type-folder.server.data-source.js';
import type { UmbMediaTypeFolderTreeItemModel } from './types.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree';
import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree';
import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree';
export class UmbMediaTypeFolderRepository extends UmbFolderRepositoryBase<UmbMediaTypeFolderTreeItemModel> {
@@ -18,7 +18,6 @@ const folderToMediaTypeTreeItemMapper = (folder: UmbFolderModel) => {
parentUnique: folder.parentUnique,
name: folder.name,
entityType: UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE,
isContainer: false,
hasChildren: false,
isFolder: true,
};

View File

@@ -6,6 +6,7 @@ import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace';
import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry';
import { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type';
@customElement('umb-media-type-workspace-view-structure')
export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement {
@@ -33,7 +34,7 @@ export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement imp
this.observe(this.#workspaceContext.allowedContentTypes, (allowedContentTypes) => {
const oldValue = this._allowedContentTypeIDs;
this._allowedContentTypeIDs = allowedContentTypes
?.map((x) => x.id)
?.map((x) => x.contentType.unique)
.filter((x) => x !== undefined) as Array<string>;
this.requestUpdate('_allowedContentTypeIDs', oldValue);
});
@@ -62,8 +63,10 @@ export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement imp
<umb-input-media-type
.selectedIds=${this._allowedContentTypeIDs ?? []}
@change="${(e: CustomEvent) => {
const sortedContentTypesList = (e.target as UmbInputMediaTypeElement).selectedIds.map((id, index) => ({
id: id,
const sortedContentTypesList: Array<UmbContentTypeSortModel> = (
e.target as UmbInputMediaTypeElement
).selectedIds.map((id, index) => ({
contentType: { unique: id },
sortOrder: index,
}));
this.#workspaceContext?.updateProperty('allowedContentTypes', sortedContentTypesList);

View File

@@ -5,5 +5,4 @@ export interface UmbMediaTreeItemModel extends Omit<UmbEntityTreeItemModel, 'nam
isTrashed: boolean;
}
// TODO: TREE STORE TYPE PROBLEM:
export interface UmbMediaTreeRootModel extends UmbEntityTreeRootModel {}

View File

@@ -4,16 +4,14 @@ import '../template-card/template-card.element.js';
import { UmbTemplateRepository } from '../../repository/template.repository.js';
import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui';
import type {
UmbModalManagerContext} from '@umbraco-cms/backoffice/modal';
import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal';
import {
UMB_TEMPLATE_PICKER_MODAL,
UMB_TEMPLATE_MODAL,
UMB_MODAL_MANAGER_CONTEXT,
} from '@umbraco-cms/backoffice/modal';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import type { ItemResponseModelBaseModel} from '@umbraco-cms/backoffice/backend-api';
import { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api';
import type { TemplateItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
@customElement('umb-input-template')
export class UmbInputTemplateElement extends FormControlMixin(UmbLitElement) {
@@ -78,7 +76,7 @@ export class UmbInputTemplateElement extends FormControlMixin(UmbLitElement) {
private _templateRepository: UmbTemplateRepository = new UmbTemplateRepository(this);
@state()
_pickedTemplates: ItemResponseModelBaseModel[] = [];
_pickedTemplates: TemplateItemResponseModel[] = [];
constructor() {
super();