diff --git a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts index 76bd60a064..f1c9cccc3c 100644 --- a/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/libs/modal/modal.context.ts @@ -18,7 +18,7 @@ import { UmbModalChangePasswordData } from './layouts/modal-layout-change-passwo import { UmbIconPickerModalData } from '../../src/backoffice/shared/modals/icon-picker'; import type { UmbModalConfirmData } from './layouts/confirm/modal-layout-confirm.element'; import type { UmbModalPropertyEditorUIPickerData } from './layouts/property-editor-ui-picker/modal-layout-property-editor-ui-picker.element'; -import type { UmbModalMediaPickerData } from '../../src/backoffice/media/media/modals/media-picker/media-picker-modal.element'; +import { UmbMediaPickerModalData } from '../../src/backoffice/media/media/modals/media-picker'; import type { UmbModalLinkPickerData } from './layouts/link-picker/modal-layout-link-picker.element'; import { UmbModalHandler } from './modal-handler'; import type { UmbBasicModalData } from './layouts/basic/modal-layout-basic.element'; @@ -72,11 +72,11 @@ export class UmbModalContext { /** * Opens a Media Picker sidebar modal * @public - * @param {UmbModalMediaPickerData} [data] + * @param {UmbMediaPickerModalData} [data] * @return {*} {UmbModalHandler} * @memberof UmbModalContext */ - public mediaPicker(data?: UmbModalMediaPickerData): UmbModalHandler { + public mediaPicker(data?: UmbMediaPickerModalData): UmbModalHandler { return this.open('umb-modal-layout-media-picker', { data, type: 'sidebar', size: 'small' }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts index fc474fba0e..d6d9e1ec59 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/entity-bulk-actions/move/move.action.ts @@ -1,4 +1,5 @@ import type { UmbMediaRepository } from '../../repository/media.repository'; +import { UMB_MEDIA_PICKER_MODAL_TOKEN } from '../../modals/media-picker'; import { UmbEntityBulkActionBase } from '@umbraco-cms/entity-action'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; import { UmbContextConsumerController } from '@umbraco-cms/context-api'; @@ -17,7 +18,10 @@ export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase = [ + { + type: 'modal', + alias: 'Umb.Modal.MediaPicker', + name: 'Media Picker Modal', + loader: () => import('./media-picker/media-picker-modal.element'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts new file mode 100644 index 0000000000..c38fa5dc7f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/index.ts @@ -0,0 +1,11 @@ +import { UmbModalToken } from 'libs/modal'; + +export interface UmbMediaPickerModalData { + multiple?: boolean; + selection: Array; +} + +export const UMB_MEDIA_PICKER_MODAL_TOKEN = new UmbModalToken('Umb.Modal.MediaPicker', { + type: 'sidebar', + size: 'small', +}); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts index 8a806f524a..097925b7ac 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/modals/media-picker/media-picker-modal.element.ts @@ -3,15 +3,11 @@ import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalLayoutElement } from '../../../../../../libs/modal/layouts/modal-layout.element'; -export interface UmbModalMediaPickerData { - multiple?: boolean; - selection: Array; -} - import { UmbTreeElement } from '../../../../shared/components/tree/tree.element'; +import { UmbMediaPickerModalData } from '.'; @customElement('umb-media-picker-modal') -export class UmbMediaPickerModalElement extends UmbModalLayoutElement { +export class UmbMediaPickerModalElement extends UmbModalLayoutElement { static styles = [ UUITextStyles, css` @@ -95,6 +91,8 @@ export class UmbMediaPickerModalElement extends UmbModalLayoutElement { this._setSelection(selection); });