@umbraco-cms/backoffice 14.0.0-40e04294 → 14.0.0-43239cee
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cms/apps/app/app.element.js +0 -3
- package/dist-cms/assets/lang/da-dk.js +3 -0
- package/dist-cms/assets/lang/da-dk.ts +3 -0
- package/dist-cms/assets/lang/en-us.js +21 -18
- package/dist-cms/assets/lang/en-us.ts +21 -18
- package/dist-cms/custom-elements.json +288 -19
- package/dist-cms/external/tinymce/index.js +36 -36
- package/dist-cms/mocks/browser-handlers.js +1 -1
- package/dist-cms/mocks/data/entity.data.d.ts +1 -1
- package/dist-cms/mocks/data/entity.data.js +1 -9
- package/dist-cms/mocks/data/media.data.d.ts +2 -1
- package/dist-cms/mocks/data/media.data.js +11 -0
- package/dist-cms/mocks/data/user-group.data.d.ts +17 -0
- package/dist-cms/mocks/data/user-group.data.js +61 -0
- package/dist-cms/mocks/data/user.data.d.ts +15 -0
- package/dist-cms/mocks/data/{users.data.js → user.data.js} +27 -41
- package/dist-cms/mocks/handlers/dictionary.handlers.js +2 -2
- package/dist-cms/mocks/handlers/media.handlers.js +8 -0
- package/dist-cms/mocks/handlers/partial-views.handlers.js +3 -3
- package/dist-cms/mocks/handlers/user-group/collection.handlers.d.ts +1 -0
- package/dist-cms/mocks/handlers/user-group/collection.handlers.js +10 -0
- package/dist-cms/mocks/handlers/user-group/detail.handlers.d.ts +1 -0
- package/dist-cms/mocks/handlers/user-group/detail.handlers.js +37 -0
- package/dist-cms/mocks/handlers/user-group/index.js +4 -0
- package/dist-cms/mocks/handlers/user-group/item.handlers.d.ts +1 -0
- package/dist-cms/mocks/handlers/user-group/item.handlers.js +13 -0
- package/dist-cms/mocks/handlers/user-group/slug.d.ts +1 -0
- package/dist-cms/mocks/handlers/user-group/slug.js +1 -0
- package/dist-cms/mocks/handlers/user.handlers.js +15 -1
- package/dist-cms/packages/core/components/input-list-base/input-list-base.js +1 -1
- package/dist-cms/packages/core/components/input-section/input-section.element.d.ts +2 -2
- package/dist-cms/packages/core/components/input-section/input-section.element.js +5 -5
- package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +3 -2
- package/dist-cms/packages/core/extension-registry/models/index.d.ts +5 -1
- package/dist-cms/packages/core/extension-registry/models/index.js +2 -0
- package/dist-cms/packages/core/extension-registry/models/user-granular-permission.model.d.ts +8 -0
- package/dist-cms/packages/core/extension-registry/models/user-granular-permission.model.js +1 -0
- package/dist-cms/packages/core/extension-registry/models/user-permission.model.d.ts +11 -0
- package/dist-cms/packages/core/extension-registry/models/user-permission.model.js +1 -0
- package/dist-cms/packages/core/localization/index.d.ts +3 -0
- package/dist-cms/packages/core/localization/index.js +3 -0
- package/dist-cms/packages/core/localization/localize-date.element.d.ts +28 -0
- package/dist-cms/packages/core/localization/localize-date.element.js +42 -0
- package/dist-cms/packages/core/localization/localize-number.element.d.ts +28 -0
- package/dist-cms/packages/core/localization/localize-number.element.js +42 -0
- package/dist-cms/packages/core/localization/localize-relative-time.element.d.ts +34 -0
- package/dist-cms/packages/core/localization/localize-relative-time.element.js +54 -0
- package/dist-cms/packages/core/localization/localize.element.js +1 -1
- package/dist-cms/packages/core/modal/common/entity-user-permission-settings/entity-user-permission-settings-modal.element.d.ts +19 -0
- package/dist-cms/packages/core/modal/common/entity-user-permission-settings/entity-user-permission-settings-modal.element.js +97 -0
- package/dist-cms/packages/core/modal/common/manifests.js +6 -0
- package/dist-cms/packages/core/modal/common/tree-picker/tree-picker-modal.element.js +5 -3
- package/dist-cms/packages/core/modal/token/entity-user-permission-settings-modal.token.d.ts +7 -0
- package/dist-cms/packages/core/modal/token/entity-user-permission-settings-modal.token.js +4 -0
- package/dist-cms/packages/core/modal/token/index.d.ts +1 -0
- package/dist-cms/packages/core/modal/token/index.js +1 -0
- package/dist-cms/packages/core/picker-input/picker-input.context.js +1 -3
- package/dist-cms/packages/core/tree/tree.context.js +3 -2
- package/dist-cms/packages/documents/documents/components/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/components/index.js +1 -0
- package/dist-cms/packages/documents/documents/components/input-document/input-document.context.d.ts +6 -0
- package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +7 -0
- package/dist-cms/packages/documents/documents/components/input-document/input-document.element.d.ts +7 -12
- package/dist-cms/packages/documents/documents/components/input-document/input-document.element.js +51 -64
- package/dist-cms/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.d.ts +23 -0
- package/dist-cms/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.js +102 -0
- package/dist-cms/packages/documents/documents/entity-actions/create/manifests.js +9 -0
- package/dist-cms/packages/documents/documents/entity-actions/manifests.js +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/permissions.action.d.ts +2 -1
- package/dist-cms/packages/documents/documents/entity-actions/permissions.action.js +22 -2
- package/dist-cms/packages/documents/documents/index.d.ts +2 -0
- package/dist-cms/packages/documents/documents/index.js +2 -0
- package/dist-cms/packages/documents/documents/manifests.d.ts +4 -0
- package/dist-cms/packages/documents/documents/manifests.js +2 -0
- package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.d.ts +4 -0
- package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.js +6 -0
- package/dist-cms/packages/documents/documents/recycle-bin/manifests.d.ts +4 -0
- package/dist-cms/packages/documents/documents/repository/document.repository.js +4 -4
- package/dist-cms/packages/documents/documents/repository/manifests.d.ts +3 -2
- package/dist-cms/packages/documents/documents/repository/manifests.js +9 -1
- package/dist-cms/packages/documents/documents/user-permissions/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/user-permissions/index.js +1 -0
- package/dist-cms/packages/documents/documents/user-permissions/manifests.d.ts +19 -0
- package/dist-cms/packages/documents/documents/user-permissions/manifests.js +196 -0
- package/dist-cms/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.js +29 -28
- package/dist-cms/packages/documents/manifests.d.ts +4 -0
- package/dist-cms/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.js +1 -1
- package/dist-cms/packages/media/manifests.d.ts +2 -1
- package/dist-cms/packages/media/manifests.js +1 -0
- package/dist-cms/packages/media/media/components/index.d.ts +1 -0
- package/dist-cms/packages/media/media/components/index.js +1 -0
- package/dist-cms/packages/media/media/components/input-media/input-media.context.d.ts +6 -0
- package/dist-cms/packages/media/media/components/input-media/input-media.context.js +7 -0
- package/dist-cms/packages/media/media/components/input-media/input-media.element.d.ts +7 -15
- package/dist-cms/packages/media/media/components/input-media/input-media.element.js +50 -72
- package/dist-cms/packages/media/media/index.d.ts +2 -0
- package/dist-cms/packages/media/media/index.js +1 -1
- package/dist-cms/packages/media/media/manifests.d.ts +1 -1
- package/dist-cms/packages/media/media/manifests.js +2 -0
- package/dist-cms/packages/media/media/repository/manifests.d.ts +3 -2
- package/dist-cms/packages/media/media/repository/manifests.js +9 -1
- package/dist-cms/packages/media/media/repository/media-item.store.d.ts +20 -0
- package/dist-cms/packages/media/media/repository/media-item.store.js +23 -0
- package/dist-cms/packages/media/media/repository/media.repository.d.ts +6 -0
- package/dist-cms/packages/media/media/repository/media.repository.js +22 -0
- package/dist-cms/packages/media/media/repository/sources/media-item.server.data.d.ts +24 -0
- package/dist-cms/packages/media/media/repository/sources/media-item.server.data.js +31 -0
- package/dist-cms/packages/media/media/user-permissions/index.d.ts +1 -0
- package/dist-cms/packages/media/media/user-permissions/index.js +1 -0
- package/dist-cms/packages/media/media/user-permissions/manifests.d.ts +4 -0
- package/dist-cms/packages/media/media/user-permissions/manifests.js +27 -0
- package/dist-cms/packages/users/current-user/conditions/index.d.ts +1 -0
- package/dist-cms/packages/users/current-user/conditions/index.js +1 -0
- package/dist-cms/packages/users/current-user/conditions/user-permission.condition.d.ts +18 -0
- package/dist-cms/packages/users/current-user/conditions/user-permission.condition.js +23 -0
- package/dist-cms/packages/users/current-user/index.d.ts +1 -0
- package/dist-cms/packages/users/current-user/index.js +1 -0
- package/dist-cms/packages/users/current-user/manifests.js +7 -1
- package/dist-cms/packages/users/current-user/modals/current-user/current-user-modal.element.js +7 -7
- package/dist-cms/packages/users/index.d.ts +4 -2
- package/dist-cms/packages/users/index.js +4 -2
- package/dist-cms/packages/users/manifests.d.ts +2 -0
- package/dist-cms/packages/users/manifests.js +3 -0
- package/dist-cms/packages/users/user-groups/collection/user-group-collection-header.element.js +2 -2
- package/dist-cms/packages/users/user-groups/collection/user-group-collection-view.element.js +6 -6
- package/dist-cms/packages/users/user-groups/components/index.d.ts +1 -0
- package/dist-cms/packages/users/user-groups/components/index.js +1 -0
- package/dist-cms/packages/users/user-groups/entity-actions/manifests.d.ts +2 -0
- package/dist-cms/packages/users/user-groups/entity-actions/manifests.js +19 -0
- package/dist-cms/packages/users/user-groups/index.d.ts +2 -0
- package/dist-cms/packages/users/user-groups/index.js +2 -0
- package/dist-cms/packages/users/user-groups/manifests.d.ts +1 -1
- package/dist-cms/packages/users/user-groups/manifests.js +2 -0
- package/dist-cms/packages/users/user-groups/workspace/components/user-group-default-permission-list.element.d.ts +16 -0
- package/dist-cms/packages/users/user-groups/workspace/components/user-group-default-permission-list.element.js +69 -0
- package/dist-cms/packages/users/user-groups/workspace/components/user-group-granular-permission-list.element.d.ts +14 -0
- package/dist-cms/packages/users/user-groups/workspace/components/user-group-granular-permission-list.element.js +31 -0
- package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.d.ts +2 -0
- package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.js +57 -56
- package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.context.d.ts +12 -0
- package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.context.js +20 -0
- package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.element.js +1 -1
- package/dist-cms/packages/users/users/collection/user-collection-header.element.js +18 -11
- package/dist-cms/packages/users/users/collection/views/grid/user-collection-grid-view.element.js +6 -6
- package/dist-cms/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.js +3 -3
- package/dist-cms/packages/users/users/components/index.d.ts +3 -0
- package/dist-cms/packages/users/users/components/index.js +3 -0
- package/dist-cms/packages/users/users/components/user-input/user-input.element.js +2 -2
- package/dist-cms/packages/users/users/components/user-permission-setting/user-permission-setting.element.d.ts +15 -0
- package/dist-cms/packages/users/users/components/user-permission-setting/user-permission-setting.element.js +66 -0
- package/dist-cms/packages/users/users/index.d.ts +2 -0
- package/dist-cms/packages/users/users/index.js +2 -0
- package/dist-cms/packages/users/users/modals/user-picker/user-picker-modal.element.d.ts +3 -1
- package/dist-cms/packages/users/users/modals/user-picker/user-picker-modal.element.js +20 -25
- package/dist-cms/packages/users/users/repository/index.d.ts +1 -0
- package/dist-cms/packages/users/users/repository/index.js +1 -0
- package/dist-cms/packages/users/users/repository/user.repository.js +1 -1
- package/dist-cms/packages/users/users/workspace/user-workspace-editor.element.js +73 -56
- package/dist-cms/packages/users/utils.d.ts +5 -2
- package/dist-cms/packages/users/utils.js +14 -14
- package/dist-cms/shared/auth/auth-flow.d.ts +0 -4
- package/dist-cms/shared/auth/auth-flow.js +6 -25
- package/dist-cms/shared/repository/repository-items.manager.js +5 -0
- package/dist-cms/shared/umb-events/index.d.ts +1 -0
- package/dist-cms/shared/umb-events/index.js +1 -0
- package/dist-cms/shared/umb-events/selected.event.d.ts +3 -0
- package/dist-cms/shared/umb-events/selected.event.js +6 -0
- package/dist-cms/tinymce/CHANGELOG.md +48 -0
- package/dist-cms/tinymce/composer.json +1 -1
- package/dist-cms/tinymce/models/dom/model.js +1 -1
- package/dist-cms/tinymce/models/dom/model.min.js +1 -1
- package/dist-cms/tinymce/package.json +1 -1
- package/dist-cms/tinymce/plugins/accordion/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/accordion/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/advlist/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/advlist/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/anchor/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/anchor/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/autolink/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/autolink/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/autoresize/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/autoresize/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/autosave/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/autosave/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/charmap/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/charmap/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/code/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/code/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/codesample/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/codesample/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/directionality/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/directionality/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/emoticons/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/emoticons/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/fullscreen/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/fullscreen/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/help/plugin.js +5 -5
- package/dist-cms/tinymce/plugins/help/plugin.min.js +2 -2
- package/dist-cms/tinymce/plugins/image/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/image/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/importcss/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/importcss/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/insertdatetime/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/link/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/link/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/lists/plugin.js +63 -8
- package/dist-cms/tinymce/plugins/lists/plugin.min.js +2 -2
- package/dist-cms/tinymce/plugins/media/plugin.js +3 -23
- package/dist-cms/tinymce/plugins/media/plugin.min.js +2 -2
- package/dist-cms/tinymce/plugins/nonbreaking/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/pagebreak/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/pagebreak/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/preview/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/preview/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/quickbars/plugin.js +13 -4
- package/dist-cms/tinymce/plugins/quickbars/plugin.min.js +2 -2
- package/dist-cms/tinymce/plugins/save/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/save/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/searchreplace/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/searchreplace/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/table/plugin.js +2 -2
- package/dist-cms/tinymce/plugins/table/plugin.min.js +2 -2
- package/dist-cms/tinymce/plugins/template/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/template/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/visualblocks/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/visualblocks/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/visualchars/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/visualchars/plugin.min.js +1 -1
- package/dist-cms/tinymce/plugins/wordcount/plugin.js +1 -1
- package/dist-cms/tinymce/plugins/wordcount/plugin.min.js +1 -1
- package/dist-cms/tinymce/skins/ui/oxide/content.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide/content.inline.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide/content.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide/skin.css +51 -11
- package/dist-cms/tinymce/skins/ui/oxide/skin.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide-dark/content.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/oxide-dark/skin.css +54 -14
- package/dist-cms/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5/content.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5/skin.css +51 -11
- package/dist-cms/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
- package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.css +51 -11
- package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
- package/dist-cms/tinymce/themes/silver/theme.js +158 -55
- package/dist-cms/tinymce/themes/silver/theme.min.js +2 -2
- package/dist-cms/tinymce/tinymce.d.ts +4 -6
- package/dist-cms/tinymce/tinymce.js +911 -691
- package/dist-cms/tinymce/tinymce.min.js +2 -2
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package-schema.json +154 -0
- package/dist-cms/vscode-html-custom-data.json +167 -18
- package/package.json +2 -2
- package/dist-cms/mocks/data/user-groups.data.d.ts +0 -9
- package/dist-cms/mocks/data/user-groups.data.js +0 -21
- package/dist-cms/mocks/data/users.data.d.ts +0 -16
- package/dist-cms/mocks/handlers/user-group.handlers.js +0 -17
- /package/dist-cms/mocks/handlers/{user-group.handlers.d.ts → user-group/index.d.ts} +0 -0
|
@@ -106,8 +106,8 @@ export let UmbDocumentInfoWorkspaceViewElement = class UmbDocumentInfoWorkspaceV
|
|
|
106
106
|
}
|
|
107
107
|
render() {
|
|
108
108
|
return html `<div class="container">
|
|
109
|
-
<uui-box headline
|
|
110
|
-
<uui-box headline
|
|
109
|
+
<uui-box headline=${this.localize.term('general_links')} style="--uui-box-default-padding: 0;"> ${this.#renderLinksSection()} </uui-box>
|
|
110
|
+
<uui-box headline=${this.localize.term('general_history')}>
|
|
111
111
|
<umb-history-list>
|
|
112
112
|
${repeat(this._historyList, (item) => item.timestamp, (item) => this.#renderHistory(item))}
|
|
113
113
|
</umb-history-list>
|
|
@@ -127,41 +127,42 @@ export let UmbDocumentInfoWorkspaceViewElement = class UmbDocumentInfoWorkspaceV
|
|
|
127
127
|
</a>
|
|
128
128
|
<div class="link-item">
|
|
129
129
|
<span class="link-language">en-EN</span>
|
|
130
|
-
<span class="link-content italic"
|
|
130
|
+
<span class="link-content italic"><umb-localize key="content_parentNotPublishedAnomaly"></umb-localize></span>
|
|
131
131
|
</div>
|
|
132
132
|
</div>`;
|
|
133
133
|
}
|
|
134
134
|
#renderGeneralSection() {
|
|
135
135
|
return html `
|
|
136
136
|
<div class="general-item">
|
|
137
|
-
<strong
|
|
138
|
-
<span><uui-tag color="positive" look="primary" label="
|
|
137
|
+
<strong>${this.localize.term('content_publishStatus')}</strong>
|
|
138
|
+
<span><uui-tag color="positive" look="primary" label=${this.localize.term('content_published')}><umb-localize key="content_published"></umb-localize></uui-tag></span>
|
|
139
139
|
</div>
|
|
140
140
|
<div class="general-item">
|
|
141
|
-
<strong
|
|
142
|
-
<span
|
|
141
|
+
<strong><umb-localize key="content_createDate"></umb-localize></strong>
|
|
142
|
+
<span><umb-localize-date date="${new Date}"></umb-localize-date></span>
|
|
143
143
|
</div>
|
|
144
144
|
<div class="general-item">
|
|
145
|
-
<strong
|
|
145
|
+
<strong><umb-localize key="content_documentType"></umb-localize></strong>
|
|
146
146
|
<uui-button
|
|
147
147
|
href=${this._editDocumentTypePath + 'edit/' + this._documentTypeId}
|
|
148
|
-
label
|
|
148
|
+
label=${this.localize.term('general_edit')}></uui-button>
|
|
149
149
|
</div>
|
|
150
150
|
<div class="general-item">
|
|
151
|
-
<strong
|
|
152
|
-
<span>template picker?</span>
|
|
151
|
+
<strong><umb-localize key="template_template"></umb-localize></strong>
|
|
152
|
+
<span>IMPLEMENT template picker?</span>
|
|
153
153
|
</div>
|
|
154
154
|
<div class="general-item">
|
|
155
|
-
<strong
|
|
155
|
+
<strong><umb-localize key="template_id"></umb-localize></strong>
|
|
156
156
|
<span>...</span>
|
|
157
157
|
</div>
|
|
158
158
|
`;
|
|
159
159
|
}
|
|
160
160
|
#renderHistory(history) {
|
|
161
|
-
return html ` <umb-history-item .name="${history.userName}" .detail="${history.timestamp}">
|
|
162
|
-
<span class="log-type">${this.#renderTag(history.logType)} ${this.#renderTagDescription(history.logType)}</span>
|
|
163
|
-
<uui-button label
|
|
164
|
-
<uui-icon name="umb:undo"></uui-icon>
|
|
161
|
+
return html ` <umb-history-item .name="${history.userName}" .detail="${this.localize.date(history.timestamp)}">
|
|
162
|
+
<span class="log-type">${this.#renderTag(history.logType)} ${this.#renderTagDescription(history.logType, history)}</span>
|
|
163
|
+
<uui-button label=${this.localize.term('actions_rollback')} look="secondary" slot="actions">
|
|
164
|
+
<uui-icon name="umb:undo"></uui-icon>
|
|
165
|
+
<umb-localize key="actions_rollback"></umb-localize>
|
|
165
166
|
</uui-button>
|
|
166
167
|
</umb-history-item>`;
|
|
167
168
|
}
|
|
@@ -178,33 +179,33 @@ export let UmbDocumentInfoWorkspaceViewElement = class UmbDocumentInfoWorkspaceV
|
|
|
178
179
|
#renderTag(type) {
|
|
179
180
|
switch (type) {
|
|
180
181
|
case 'Publish':
|
|
181
|
-
return html `<uui-tag look="primary" color="positive" label="
|
|
182
|
+
return html `<uui-tag look="primary" color="positive" label=${this.localize.term('content_publish')}><umb-localize key="content_publish"></umb-localize></uui-tag>`;
|
|
182
183
|
case 'Unpublish':
|
|
183
|
-
return html `<uui-tag look="primary" color="warning" label="
|
|
184
|
+
return html `<uui-tag look="primary" color="warning" label=${this.localize.term('content_unpublish')}><umb-localize key="content_unpublish"></umb-localize></uui-tag>`;
|
|
184
185
|
case 'Save':
|
|
185
|
-
return html `<uui-tag look="primary" label="
|
|
186
|
+
return html `<uui-tag look="primary" label=${this.localize.term('auditTrails_smallSave')}><umb-localize key="auditTrails_smallSave"></umb-localize></uui-tag>`;
|
|
186
187
|
case 'ContentVersionEnableCleanup':
|
|
187
|
-
return html `<uui-tag look="secondary" label="
|
|
188
|
+
return html `<uui-tag look="secondary" label=${this.localize.term('contentTypeEditor_historyCleanupEnableCleanup')}><umb-localize key="contentTypeEditor_historyCleanupEnableCleanup"></umb-localize></uui-tag>`;
|
|
188
189
|
case 'ContentVersionPreventCleanup':
|
|
189
|
-
return html `<uui-tag look="secondary" label="
|
|
190
|
+
return html `<uui-tag look="secondary" label=${this.localize.term('contentTypeEditor_historyCleanupPreventCleanup')}><umb-localize key="contentTypeEditor_historyCleanupPreventCleanup"></umb-localize></uui-tag>`;
|
|
190
191
|
default:
|
|
191
|
-
return 'Could not
|
|
192
|
+
return 'Could not detect log type';
|
|
192
193
|
}
|
|
193
194
|
}
|
|
194
195
|
#renderTagDescription(type, params) {
|
|
195
196
|
switch (type) {
|
|
196
197
|
case 'Publish':
|
|
197
|
-
return
|
|
198
|
+
return this.localize.term('auditTrails_publish');
|
|
198
199
|
case 'Unpublish':
|
|
199
|
-
return
|
|
200
|
+
return this.localize.term('auditTrails_unpublish');
|
|
200
201
|
case 'Save':
|
|
201
|
-
return
|
|
202
|
+
return this.localize.term('auditTrails_save');
|
|
202
203
|
case 'ContentVersionEnableCleanup':
|
|
203
|
-
return
|
|
204
|
+
return this.localize.term('auditTrails_contentversionenablecleanup', [params?.nodeId]);
|
|
204
205
|
case 'ContentVersionPreventCleanup':
|
|
205
|
-
return
|
|
206
|
+
return this.localize.term('auditTrails_contentversionpreventcleanup', [params?.nodeId]);
|
|
206
207
|
default:
|
|
207
|
-
return 'Could not
|
|
208
|
+
return 'Could not detect log type';
|
|
208
209
|
}
|
|
209
210
|
}
|
|
210
211
|
static { this.styles = [
|
|
@@ -19,7 +19,7 @@ export let UmbLogViewerSavedSearchesOverviewElement = class UmbLogViewerSavedSea
|
|
|
19
19
|
<uui-menu-item
|
|
20
20
|
label="${searchListItem.name ?? ''}"
|
|
21
21
|
title="${searchListItem.name ?? ''}"
|
|
22
|
-
href=${`section/settings/workspace/logviewer/search/?lq=${encodeURIComponent(searchListItem.query ?? '')}`}>
|
|
22
|
+
href=${`section/settings/workspace/logviewer/view/search/?lq=${encodeURIComponent(searchListItem.query ?? '')}`}>
|
|
23
23
|
<uui-icon slot="icon" name="umb:search"></uui-icon>${searchListItem.name}
|
|
24
24
|
</uui-menu-item>
|
|
25
25
|
</li>`;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import './media/components/index.js';
|
|
2
|
+
export declare const manifests: (import("../core/index.js").ManifestSectionSidebarApp | import("../core/index.js").ManifestCollectionView | import("../core/index.js").ManifestDashboardCollection | import("../core/index.js").ManifestEntityAction | import("../core/index.js").ManifestEntityBulkAction | import("../core/index.js").ManifestItemStore | import("../core/index.js").ManifestMenu | import("../core/index.js").ManifestMenuItem | import("../core/index.js").ManifestRepository | import("../core/index.js").ManifestSection | import("../core/index.js").ManifestStore | import("../core/index.js").ManifestTree | import("../core/index.js").ManifestTreeItem | import("../core/index.js").ManifestTreeStore | import("../core/index.js").ManifestWorkspace | import("../core/index.js").ManifestWorkspaceAction | import("../core/index.js").ManifestWorkspaceEditorView | import("../core/index.js").ManifestWorkspaceViewCollection | import("../core/index.js").ManifestUserPermission)[];
|
|
@@ -2,4 +2,5 @@ import { manifests as mediaSectionManifests } from './section.manifests.js';
|
|
|
2
2
|
import { manifests as mediaMenuManifests } from './menu.manifests.js';
|
|
3
3
|
import { manifests as mediaManifests } from './media/manifests.js';
|
|
4
4
|
import { manifests as mediaTypesManifests } from './media-types/manifests.js';
|
|
5
|
+
import './media/components/index.js';
|
|
5
6
|
export const manifests = [...mediaSectionManifests, ...mediaMenuManifests, ...mediaManifests, ...mediaTypesManifests];
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { UmbPickerInputContext } from '../../../../core/picker-input/index.js';
|
|
2
|
+
import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
|
|
3
|
+
import { MediaItemResponseModel } from '../../../../../external/backend-api/index.js';
|
|
4
|
+
export declare class UmbMediaPickerContext extends UmbPickerInputContext<MediaItemResponseModel> {
|
|
5
|
+
constructor(host: UmbControllerHostElement);
|
|
6
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UmbPickerInputContext } from '../../../../core/picker-input/index.js';
|
|
2
|
+
import { UMB_MEDIA_TREE_PICKER_MODAL } from '../../../../core/modal/index.js';
|
|
3
|
+
export class UmbMediaPickerContext extends UmbPickerInputContext {
|
|
4
|
+
constructor(host) {
|
|
5
|
+
super(host, 'Umb.Repository.Media', UMB_MEDIA_TREE_PICKER_MODAL);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
|
|
2
2
|
declare const UmbInputMediaElement_base: (new (...args: any[]) => import("../../../../../external/uui/index.js").FormControlMixinInterface) & typeof UmbLitElement;
|
|
3
3
|
export declare class UmbInputMediaElement extends UmbInputMediaElement_base {
|
|
4
|
+
#private;
|
|
4
5
|
/**
|
|
5
6
|
* This is a minimum amount of selected items in this input.
|
|
6
7
|
* @type {number}
|
|
7
8
|
* @attr
|
|
8
|
-
* @default
|
|
9
|
+
* @default 0
|
|
9
10
|
*/
|
|
10
|
-
min
|
|
11
|
+
get min(): number;
|
|
12
|
+
set min(value: number);
|
|
11
13
|
/**
|
|
12
14
|
* Min validation message.
|
|
13
15
|
* @type {boolean}
|
|
@@ -19,9 +21,10 @@ export declare class UmbInputMediaElement extends UmbInputMediaElement_base {
|
|
|
19
21
|
* This is a maximum amount of selected items in this input.
|
|
20
22
|
* @type {number}
|
|
21
23
|
* @attr
|
|
22
|
-
* @default
|
|
24
|
+
* @default Infinity
|
|
23
25
|
*/
|
|
24
|
-
max
|
|
26
|
+
get max(): number;
|
|
27
|
+
set max(value: number);
|
|
25
28
|
/**
|
|
26
29
|
* Max validation message.
|
|
27
30
|
* @type {boolean}
|
|
@@ -29,24 +32,13 @@ export declare class UmbInputMediaElement extends UmbInputMediaElement_base {
|
|
|
29
32
|
* @default
|
|
30
33
|
*/
|
|
31
34
|
maxMessage: string;
|
|
32
|
-
private _selectedIds;
|
|
33
35
|
get selectedIds(): Array<string>;
|
|
34
36
|
set selectedIds(ids: Array<string>);
|
|
35
37
|
set value(idsString: string);
|
|
36
38
|
private _items?;
|
|
37
|
-
private _modalContext?;
|
|
38
|
-
private _pickedItemsObserver?;
|
|
39
|
-
private _repository;
|
|
40
39
|
constructor();
|
|
41
|
-
connectedCallback(): void;
|
|
42
40
|
protected getFormElement(): undefined;
|
|
43
|
-
private _observePickedMedias;
|
|
44
|
-
private _openPicker;
|
|
45
|
-
private _removeItem;
|
|
46
|
-
private _setSelection;
|
|
47
41
|
render(): import("lit-html").TemplateResult<1>;
|
|
48
|
-
private _renderButton;
|
|
49
|
-
private _renderItem;
|
|
50
42
|
static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
|
|
51
43
|
}
|
|
52
44
|
export default UmbInputMediaElement;
|
|
@@ -4,25 +4,46 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
8
|
-
import { css, html,
|
|
7
|
+
import { UmbMediaPickerContext } from './input-media.context.js';
|
|
8
|
+
import { css, html, customElement, property, state, ifDefined } from '../../../../../external/lit/index.js';
|
|
9
9
|
import { FormControlMixin } from '../../../../../external/uui/index.js';
|
|
10
|
-
import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_CONFIRM_MODAL, UMB_MEDIA_TREE_PICKER_MODAL, } from '../../../../core/modal/index.js';
|
|
11
10
|
import { UmbLitElement } from '../../../../../shared/lit-element/index.js';
|
|
12
11
|
export let UmbInputMediaElement = class UmbInputMediaElement extends FormControlMixin(UmbLitElement) {
|
|
12
|
+
/**
|
|
13
|
+
* This is a minimum amount of selected items in this input.
|
|
14
|
+
* @type {number}
|
|
15
|
+
* @attr
|
|
16
|
+
* @default 0
|
|
17
|
+
*/
|
|
18
|
+
get min() {
|
|
19
|
+
return this.#pickerContext.min;
|
|
20
|
+
}
|
|
21
|
+
set min(value) {
|
|
22
|
+
this.#pickerContext.min = value;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* This is a maximum amount of selected items in this input.
|
|
26
|
+
* @type {number}
|
|
27
|
+
* @attr
|
|
28
|
+
* @default Infinity
|
|
29
|
+
*/
|
|
30
|
+
get max() {
|
|
31
|
+
return this.#pickerContext.max;
|
|
32
|
+
}
|
|
33
|
+
set max(value) {
|
|
34
|
+
this.#pickerContext.max = value;
|
|
35
|
+
}
|
|
13
36
|
get selectedIds() {
|
|
14
|
-
return this.
|
|
37
|
+
return this.#pickerContext.getSelection();
|
|
15
38
|
}
|
|
16
39
|
set selectedIds(ids) {
|
|
17
|
-
this.
|
|
18
|
-
super.value = ids.join(',');
|
|
19
|
-
this._observePickedMedias();
|
|
40
|
+
this.#pickerContext.setSelection(ids);
|
|
20
41
|
}
|
|
21
42
|
set value(idsString) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
43
|
+
// Its with full purpose we don't call super.value, as thats being handled by the observation of the context selection.
|
|
44
|
+
this.selectedIds = idsString.split(/[ ,]+/);
|
|
25
45
|
}
|
|
46
|
+
#pickerContext;
|
|
26
47
|
constructor() {
|
|
27
48
|
super();
|
|
28
49
|
/**
|
|
@@ -39,89 +60,45 @@ export let UmbInputMediaElement = class UmbInputMediaElement extends FormControl
|
|
|
39
60
|
* @default
|
|
40
61
|
*/
|
|
41
62
|
this.maxMessage = 'This field exceeds the allowed amount of items';
|
|
42
|
-
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => {
|
|
48
|
-
this._modalContext = instance;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
connectedCallback() {
|
|
52
|
-
super.connectedCallback();
|
|
53
|
-
this._observePickedMedias();
|
|
63
|
+
this.#pickerContext = new UmbMediaPickerContext(this);
|
|
64
|
+
this.addValidator('rangeUnderflow', () => this.minMessage, () => !!this.min && this.#pickerContext.getSelection().length < this.min);
|
|
65
|
+
this.addValidator('rangeOverflow', () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max);
|
|
66
|
+
this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(',')));
|
|
67
|
+
this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems));
|
|
54
68
|
}
|
|
55
69
|
getFormElement() {
|
|
56
70
|
return undefined;
|
|
57
71
|
}
|
|
58
|
-
async _observePickedMedias() {
|
|
59
|
-
this._pickedItemsObserver?.destroy();
|
|
60
|
-
// TODO: consider changing this to the list data endpoint when it is available
|
|
61
|
-
const { asObservable } = await this._repository.requestItemsLegacy(this._selectedIds);
|
|
62
|
-
if (!asObservable)
|
|
63
|
-
return;
|
|
64
|
-
this._pickedItemsObserver = this.observe(asObservable(), (items) => {
|
|
65
|
-
this._items = items;
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
_openPicker() {
|
|
69
|
-
// We send a shallow copy(good enough as its just an array of ids) of our this._selectedIds, as we don't want the modal to manipulate our data:
|
|
70
|
-
const modalContext = this._modalContext?.open(UMB_MEDIA_TREE_PICKER_MODAL, {
|
|
71
|
-
multiple: this.max === 1 ? false : true,
|
|
72
|
-
selection: [...this._selectedIds],
|
|
73
|
-
});
|
|
74
|
-
modalContext?.onSubmit().then(({ selection }) => {
|
|
75
|
-
this._setSelection(selection);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
_removeItem(item) {
|
|
79
|
-
const modalContext = this._modalContext?.open(UMB_CONFIRM_MODAL, {
|
|
80
|
-
color: 'danger',
|
|
81
|
-
headline: `Remove ${item.name}?`,
|
|
82
|
-
content: 'Are you sure you want to remove this item',
|
|
83
|
-
confirmLabel: 'Remove',
|
|
84
|
-
});
|
|
85
|
-
modalContext?.onSubmit().then(() => {
|
|
86
|
-
const newSelection = this._selectedIds.filter((value) => value !== item.id);
|
|
87
|
-
this._setSelection(newSelection);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
_setSelection(newSelection) {
|
|
91
|
-
this.selectedIds = newSelection;
|
|
92
|
-
this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }));
|
|
93
|
-
}
|
|
94
72
|
render() {
|
|
95
|
-
return html ` ${this._items?.map((item) => this
|
|
73
|
+
return html ` ${this._items?.map((item) => this.#renderItem(item))} ${this.#renderButton()} `;
|
|
96
74
|
}
|
|
97
|
-
|
|
75
|
+
#renderButton() {
|
|
98
76
|
if (this._items && this.max && this._items.length >= this.max)
|
|
99
77
|
return;
|
|
100
|
-
return html
|
|
101
|
-
<uui-
|
|
102
|
-
|
|
103
|
-
|
|
78
|
+
return html `
|
|
79
|
+
<uui-button id="add-button" look="placeholder" @click=${() => this.#pickerContext.openPicker()} label="open">
|
|
80
|
+
<uui-icon name="umb:add"></uui-icon>
|
|
81
|
+
Add
|
|
82
|
+
</uui-button>
|
|
83
|
+
`;
|
|
104
84
|
}
|
|
105
|
-
|
|
106
|
-
// TODO: remove when we have a way to handle trashed items
|
|
107
|
-
const tempItem = item;
|
|
85
|
+
#renderItem(item) {
|
|
108
86
|
return html `
|
|
109
87
|
<uui-card-media
|
|
110
88
|
name=${ifDefined(item.name === null ? undefined : item.name)}
|
|
111
89
|
detail=${ifDefined(item.id)}
|
|
112
90
|
file-ext="jpg">
|
|
113
|
-
|
|
91
|
+
<!-- <uui-tag size="s" slot="tag" color="danger">Trashed</uui-tag> -->
|
|
114
92
|
<uui-action-bar slot="actions">
|
|
115
93
|
<uui-button label="Copy media">
|
|
116
94
|
<uui-icon name="umb:documents"></uui-icon>
|
|
117
95
|
</uui-button>
|
|
118
|
-
<uui-button @click=${() => this.
|
|
96
|
+
<uui-button @click=${() => this.#pickerContext.requestRemoveItem(item.id)} label="Remove media ${item.name}">
|
|
119
97
|
<uui-icon name="umb:trash"></uui-icon>
|
|
120
98
|
</uui-button>
|
|
121
99
|
</uui-action-bar>
|
|
122
100
|
</uui-card-media>
|
|
123
101
|
`;
|
|
124
|
-
//TODO: <uui-button-inline-create vertical></uui-button-inline-create>
|
|
125
102
|
}
|
|
126
103
|
static { this.styles = [
|
|
127
104
|
css `
|
|
@@ -130,6 +107,7 @@ export let UmbInputMediaElement = class UmbInputMediaElement extends FormControl
|
|
|
130
107
|
gap: var(--uui-size-space-3);
|
|
131
108
|
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
|
|
132
109
|
}
|
|
110
|
+
|
|
133
111
|
#add-button {
|
|
134
112
|
text-align: center;
|
|
135
113
|
height: 160px;
|
|
@@ -144,13 +122,13 @@ export let UmbInputMediaElement = class UmbInputMediaElement extends FormControl
|
|
|
144
122
|
};
|
|
145
123
|
__decorate([
|
|
146
124
|
property({ type: Number })
|
|
147
|
-
], UmbInputMediaElement.prototype, "min",
|
|
125
|
+
], UmbInputMediaElement.prototype, "min", null);
|
|
148
126
|
__decorate([
|
|
149
127
|
property({ type: String, attribute: 'min-message' })
|
|
150
128
|
], UmbInputMediaElement.prototype, "minMessage", void 0);
|
|
151
129
|
__decorate([
|
|
152
130
|
property({ type: Number })
|
|
153
|
-
], UmbInputMediaElement.prototype, "max",
|
|
131
|
+
], UmbInputMediaElement.prototype, "max", null);
|
|
154
132
|
__decorate([
|
|
155
133
|
property({ type: String, attribute: 'min-message' })
|
|
156
134
|
], UmbInputMediaElement.prototype, "maxMessage", void 0);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ContentTreeItemResponseModel } from '../../../external/backend-api/index.js';
|
|
2
|
+
export * from './components/index.js';
|
|
2
3
|
export interface ContentProperty {
|
|
3
4
|
alias: string;
|
|
4
5
|
label: string;
|
|
@@ -15,4 +16,5 @@ export interface MediaDetails extends ContentTreeItemResponseModel {
|
|
|
15
16
|
properties: Array<ContentProperty>;
|
|
16
17
|
data: Array<ContentPropertyData>;
|
|
17
18
|
variants: Array<any>;
|
|
19
|
+
icon?: string;
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './components/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const manifests: (import("../../core/index.js").ManifestCollectionView | import("../../core/index.js").ManifestEntityAction | import("../../core/index.js").ManifestEntityBulkAction | import("../../core/index.js").ManifestMenuItem | import("../../core/index.js").ManifestRepository | import("../../core/index.js").ManifestStore | import("../../core/index.js").ManifestTree | import("../../core/index.js").ManifestTreeItem | import("../../core/index.js").ManifestTreeStore | import("../../core/index.js").ManifestWorkspace | import("../../core/index.js").ManifestWorkspaceAction | import("../../core/index.js").ManifestWorkspaceEditorView | import("../../core/index.js").ManifestWorkspaceViewCollection)[];
|
|
1
|
+
export declare const manifests: (import("../../core/index.js").ManifestCollectionView | import("../../core/index.js").ManifestEntityAction | import("../../core/index.js").ManifestEntityBulkAction | import("../../core/index.js").ManifestItemStore | import("../../core/index.js").ManifestMenuItem | import("../../core/index.js").ManifestRepository | import("../../core/index.js").ManifestStore | import("../../core/index.js").ManifestTree | import("../../core/index.js").ManifestTreeItem | import("../../core/index.js").ManifestTreeStore | import("../../core/index.js").ManifestWorkspace | import("../../core/index.js").ManifestWorkspaceAction | import("../../core/index.js").ManifestWorkspaceEditorView | import("../../core/index.js").ManifestWorkspaceViewCollection | import("../../core/index.js").ManifestUserPermission)[];
|
|
@@ -5,6 +5,7 @@ import { manifests as treeManifests } from './tree/manifests.js';
|
|
|
5
5
|
import { manifests as workspaceManifests } from './workspace/manifests.js';
|
|
6
6
|
import { manifests as entityActionsManifests } from './entity-actions/manifests.js';
|
|
7
7
|
import { manifests as entityBulkActionsManifests } from './entity-bulk-actions/manifests.js';
|
|
8
|
+
import { manifests as userPermissionManifests } from './user-permissions/manifests.js';
|
|
8
9
|
export const manifests = [
|
|
9
10
|
...collectionViewManifests,
|
|
10
11
|
...repositoryManifests,
|
|
@@ -13,4 +14,5 @@ export const manifests = [
|
|
|
13
14
|
...workspaceManifests,
|
|
14
15
|
...entityActionsManifests,
|
|
15
16
|
...entityBulkActionsManifests,
|
|
17
|
+
...userPermissionManifests,
|
|
16
18
|
];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ManifestStore, ManifestTreeStore, ManifestRepository } from '../../../core/extension-registry/index.js';
|
|
1
|
+
import type { ManifestStore, ManifestTreeStore, ManifestRepository, ManifestItemStore } from '../../../core/extension-registry/index.js';
|
|
2
2
|
export declare const MEDIA_REPOSITORY_ALIAS = "Umb.Repository.Media";
|
|
3
3
|
export declare const MEDIA_STORE_ALIAS = "Umb.Store.Media";
|
|
4
4
|
export declare const MEDIA_TREE_STORE_ALIAS = "Umb.Store.MediaTree";
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const MEDIA_ITEM_STORE_ALIAS = "Umb.Store.MediaItem";
|
|
6
|
+
export declare const manifests: (ManifestItemStore | ManifestRepository | ManifestStore | ManifestTreeStore)[];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UmbMediaItemStore } from './media-item.store.js';
|
|
1
2
|
import { UmbMediaRepository } from './media.repository.js';
|
|
2
3
|
import { UmbMediaStore } from './media.store.js';
|
|
3
4
|
import { UmbMediaTreeStore } from './media.tree.store.js';
|
|
@@ -10,6 +11,7 @@ const repository = {
|
|
|
10
11
|
};
|
|
11
12
|
export const MEDIA_STORE_ALIAS = 'Umb.Store.Media';
|
|
12
13
|
export const MEDIA_TREE_STORE_ALIAS = 'Umb.Store.MediaTree';
|
|
14
|
+
export const MEDIA_ITEM_STORE_ALIAS = 'Umb.Store.MediaItem';
|
|
13
15
|
const store = {
|
|
14
16
|
type: 'store',
|
|
15
17
|
alias: MEDIA_STORE_ALIAS,
|
|
@@ -22,4 +24,10 @@ const treeStore = {
|
|
|
22
24
|
name: 'Media Tree Store',
|
|
23
25
|
class: UmbMediaTreeStore,
|
|
24
26
|
};
|
|
25
|
-
|
|
27
|
+
const itemStore = {
|
|
28
|
+
type: 'itemStore',
|
|
29
|
+
alias: MEDIA_ITEM_STORE_ALIAS,
|
|
30
|
+
name: 'Media Item Store',
|
|
31
|
+
class: UmbMediaItemStore,
|
|
32
|
+
};
|
|
33
|
+
export const manifests = [store, treeStore, itemStore, repository];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { UmbContextToken } from '../../../../libs/context-api/index.js';
|
|
2
|
+
import { UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
|
|
3
|
+
import { UmbItemStore, UmbStoreBase } from '../../../core/store/index.js';
|
|
4
|
+
import { MediaItemResponseModel } from '../../../../external/backend-api/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* @export
|
|
7
|
+
* @class UmbMediaItemStore
|
|
8
|
+
* @extends {UmbStoreBase}
|
|
9
|
+
* @description - Data Store for Media items
|
|
10
|
+
*/
|
|
11
|
+
export declare class UmbMediaItemStore extends UmbStoreBase<MediaItemResponseModel> implements UmbItemStore<MediaItemResponseModel> {
|
|
12
|
+
/**
|
|
13
|
+
* Creates an instance of UmbMediaItemStore.
|
|
14
|
+
* @param {UmbControllerHostElement} host
|
|
15
|
+
* @memberof UmbMediaItemStore
|
|
16
|
+
*/
|
|
17
|
+
constructor(host: UmbControllerHostElement);
|
|
18
|
+
items(ids: Array<string>): import("rxjs").Observable<MediaItemResponseModel[]>;
|
|
19
|
+
}
|
|
20
|
+
export declare const UMB_Media_ITEM_STORE_CONTEXT_TOKEN: UmbContextToken<UmbMediaItemStore, UmbMediaItemStore>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { UmbContextToken } from '../../../../libs/context-api/index.js';
|
|
2
|
+
import { UmbStoreBase } from '../../../core/store/index.js';
|
|
3
|
+
import { UmbArrayState } from '../../../../libs/observable-api/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* @export
|
|
6
|
+
* @class UmbMediaItemStore
|
|
7
|
+
* @extends {UmbStoreBase}
|
|
8
|
+
* @description - Data Store for Media items
|
|
9
|
+
*/
|
|
10
|
+
export class UmbMediaItemStore extends UmbStoreBase {
|
|
11
|
+
/**
|
|
12
|
+
* Creates an instance of UmbMediaItemStore.
|
|
13
|
+
* @param {UmbControllerHostElement} host
|
|
14
|
+
* @memberof UmbMediaItemStore
|
|
15
|
+
*/
|
|
16
|
+
constructor(host) {
|
|
17
|
+
super(host, UMB_Media_ITEM_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id));
|
|
18
|
+
}
|
|
19
|
+
items(ids) {
|
|
20
|
+
return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const UMB_Media_ITEM_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbMediaItemStore');
|
|
@@ -33,6 +33,12 @@ export declare class UmbMediaRepository implements UmbTreeRepository<EntityTreeI
|
|
|
33
33
|
rootTreeItems(): Promise<import("rxjs").Observable<EntityTreeItemResponseModel[]>>;
|
|
34
34
|
treeItemsOf(parentId: string | null): Promise<import("rxjs").Observable<EntityTreeItemResponseModel[]>>;
|
|
35
35
|
itemsLegacy(ids: Array<string>): Promise<import("rxjs").Observable<EntityTreeItemResponseModel[]>>;
|
|
36
|
+
requestItems(ids: Array<string>): Promise<{
|
|
37
|
+
data: import("../../../../external/backend-api/index.js").MediaItemResponseModel[] | undefined;
|
|
38
|
+
error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
|
|
39
|
+
asObservable: () => import("rxjs").Observable<import("../../../../external/backend-api/index.js").MediaItemResponseModel[]>;
|
|
40
|
+
}>;
|
|
41
|
+
items(ids: Array<string>): Promise<import("rxjs").Observable<import("../../../../external/backend-api/index.js").MediaItemResponseModel[]>>;
|
|
36
42
|
createScaffold(parentId: string | null): Promise<{
|
|
37
43
|
data: {
|
|
38
44
|
id: string;
|
|
@@ -2,6 +2,7 @@ import { UmbMediaTreeServerDataSource } from './sources/media.tree.server.data.j
|
|
|
2
2
|
import { UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN } from './media.tree.store.js';
|
|
3
3
|
import { UMB_MEDIA_STORE_CONTEXT_TOKEN } from './media.store.js';
|
|
4
4
|
import { UmbMediaDetailServerDataSource } from './sources/media.detail.server.data.js';
|
|
5
|
+
import { UmbMediaItemServerDataSource } from './sources/media-item.server.data.js';
|
|
5
6
|
import { UmbContextConsumerController } from '../../../../libs/context-api/index.js';
|
|
6
7
|
import { UMB_NOTIFICATION_CONTEXT_TOKEN } from '../../../core/notification/index.js';
|
|
7
8
|
export class UmbMediaRepository {
|
|
@@ -11,12 +12,15 @@ export class UmbMediaRepository {
|
|
|
11
12
|
#treeStore;
|
|
12
13
|
#detailDataSource;
|
|
13
14
|
#store;
|
|
15
|
+
#itemSource;
|
|
16
|
+
#itemStore;
|
|
14
17
|
#notificationContext;
|
|
15
18
|
constructor(host) {
|
|
16
19
|
this.#host = host;
|
|
17
20
|
// TODO: figure out how spin up get the correct data source
|
|
18
21
|
this.#treeSource = new UmbMediaTreeServerDataSource(this.#host);
|
|
19
22
|
this.#detailDataSource = new UmbMediaDetailServerDataSource(this.#host);
|
|
23
|
+
this.#itemSource = new UmbMediaItemServerDataSource(this.#host);
|
|
20
24
|
this.#init = Promise.all([
|
|
21
25
|
new UmbContextConsumerController(this.#host, UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN, (instance) => {
|
|
22
26
|
this.#treeStore = instance;
|
|
@@ -24,6 +28,9 @@ export class UmbMediaRepository {
|
|
|
24
28
|
new UmbContextConsumerController(this.#host, UMB_MEDIA_STORE_CONTEXT_TOKEN, (instance) => {
|
|
25
29
|
this.#store = instance;
|
|
26
30
|
}).asPromise(),
|
|
31
|
+
new UmbContextConsumerController(this.#host, UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN, (instance) => {
|
|
32
|
+
this.#itemStore = instance;
|
|
33
|
+
}).asPromise(),
|
|
27
34
|
new UmbContextConsumerController(this.#host, UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => {
|
|
28
35
|
this.#notificationContext = instance;
|
|
29
36
|
}).asPromise(),
|
|
@@ -79,6 +86,21 @@ export class UmbMediaRepository {
|
|
|
79
86
|
await this.#init;
|
|
80
87
|
return this.#treeStore.items(ids);
|
|
81
88
|
}
|
|
89
|
+
// ITEMS:
|
|
90
|
+
async requestItems(ids) {
|
|
91
|
+
if (!ids)
|
|
92
|
+
throw new Error('Keys are missing');
|
|
93
|
+
await this.#init;
|
|
94
|
+
const { data, error } = await this.#itemSource.getItems(ids);
|
|
95
|
+
if (data) {
|
|
96
|
+
this.#itemStore?.appendItems(data);
|
|
97
|
+
}
|
|
98
|
+
return { data, error, asObservable: () => this.#itemStore.items(ids) };
|
|
99
|
+
}
|
|
100
|
+
async items(ids) {
|
|
101
|
+
await this.#init;
|
|
102
|
+
return this.#itemStore.items(ids);
|
|
103
|
+
}
|
|
82
104
|
// DETAILS:
|
|
83
105
|
async createScaffold(parentId) {
|
|
84
106
|
if (parentId === undefined)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { UmbItemDataSource } from '../../../../../shared/repository/index.js';
|
|
2
|
+
import { MediaItemResponseModel } from '../../../../../external/backend-api/index.js';
|
|
3
|
+
import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* A data source for Media items that fetches data from the server
|
|
6
|
+
* @export
|
|
7
|
+
* @class UmbMediaItemServerDataSource
|
|
8
|
+
* @implements {MediaItemDataSource}
|
|
9
|
+
*/
|
|
10
|
+
export declare class UmbMediaItemServerDataSource implements UmbItemDataSource<MediaItemResponseModel> {
|
|
11
|
+
#private;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an instance of UmbMediaItemServerDataSource.
|
|
14
|
+
* @param {UmbControllerHostElement} host
|
|
15
|
+
* @memberof UmbMediaItemServerDataSource
|
|
16
|
+
*/
|
|
17
|
+
constructor(host: UmbControllerHostElement);
|
|
18
|
+
/**
|
|
19
|
+
* Fetches the items for the given ids from the server
|
|
20
|
+
* @param {Array<string>} ids
|
|
21
|
+
* @memberof UmbMediaItemServerDataSource
|
|
22
|
+
*/
|
|
23
|
+
getItems(ids: Array<string>): Promise<import("../../../../../shared/repository/index.js").DataSourceResponse<MediaItemResponseModel[]>>;
|
|
24
|
+
}
|