@umbraco-cms/backoffice 14.0.0--preview007-2aa9121f → 14.0.0--preview007-bcd459cf
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/custom-elements.json +98 -0
- package/dist-cms/external/backend-api/index.js +1 -1
- package/dist-cms/external/backend-api/src/models/DataTypeItemResponseModel.d.ts +1 -0
- package/dist-cms/external/backend-api/src/models/DataTypeResponseModel.d.ts +1 -0
- package/dist-cms/external/backend-api/src/models/DataTypeTreeItemResponseModel.d.ts +1 -0
- package/dist-cms/external/backend-api/src/services/MemberResource.d.ts +12 -12
- package/dist-cms/external/backend-api/src/services/TemporaryFileResource.d.ts +4 -4
- package/dist-cms/external/backend-api/src/services/UserResource.d.ts +13 -13
- package/dist-cms/mocks/data/data-type/data-type.data.js +39 -0
- package/dist-cms/mocks/data/data-type/data-type.db.js +4 -0
- package/dist-cms/mocks/data/dictionary/dictionary.data.js +6 -6
- package/dist-cms/mocks/data/document/document.db.js +1 -1
- package/dist-cms/mocks/data/language/language.data.js +2 -2
- package/dist-cms/mocks/handlers/dictionary/import-export.handlers.js +2 -2
- package/dist-cms/packages/core/components/index.d.ts +1 -0
- package/dist-cms/packages/core/components/index.js +1 -0
- package/dist-cms/packages/core/components/split-panel/index.d.ts +2 -0
- package/dist-cms/packages/core/components/split-panel/index.js +2 -0
- package/dist-cms/packages/core/components/split-panel/split-panel.element.d.ts +47 -0
- package/dist-cms/packages/core/components/split-panel/split-panel.element.js +298 -0
- package/dist-cms/packages/core/debug/debug.element.d.ts +1 -1
- package/dist-cms/packages/core/debug/debug.element.js +17 -16
- package/dist-cms/packages/core/extension-registry/collection/repository/extension-collection.repository.d.ts +8 -2
- package/dist-cms/packages/core/extension-registry/collection/repository/extension-collection.repository.js +4 -1
- package/dist-cms/packages/core/section/section-default.element.js +25 -10
- package/dist-cms/packages/core/temporary-file/temporary-file.server.data-source.js +3 -3
- package/dist-cms/packages/documents/documents/entity-actions/manifests.js +2 -2
- package/dist-cms/packages/documents/documents/entity-actions/publish.action.d.ts +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/publish.action.js +21 -3
- package/dist-cms/packages/documents/documents/entity-actions/unpublish.action.d.ts +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/unpublish.action.js +21 -3
- package/dist-cms/packages/documents/documents/global-contexts/document-variant-manager.context.d.ts +34 -0
- package/dist-cms/packages/documents/documents/global-contexts/document-variant-manager.context.js +104 -0
- package/dist-cms/packages/documents/documents/global-contexts/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/global-contexts/index.js +1 -0
- package/dist-cms/packages/documents/documents/global-contexts/manifests.d.ts +2 -0
- package/dist-cms/packages/documents/documents/global-contexts/manifests.js +8 -0
- package/dist-cms/packages/documents/documents/manifests.js +2 -0
- package/dist-cms/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.element.js +5 -0
- package/dist-cms/packages/documents/documents/modals/variant-picker/document-variant-picker-modal.token.js +0 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.js +20 -12
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +1 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +18 -42
- package/dist-cms/packages/language/app-language-select/app-language-select.element.js +2 -2
- package/dist-cms/packages/language/app-language-select/manifests.js +0 -6
- package/dist-cms/packages/language/{app-language-select → global-contexts}/app-language.context.d.ts +1 -0
- package/dist-cms/packages/language/{app-language-select → global-contexts}/app-language.context.js +1 -0
- package/dist-cms/packages/language/global-contexts/index.d.ts +1 -0
- package/dist-cms/packages/language/global-contexts/index.js +1 -0
- package/dist-cms/packages/language/global-contexts/manifests.d.ts +2 -0
- package/dist-cms/packages/language/global-contexts/manifests.js +8 -0
- package/dist-cms/packages/language/index.d.ts +1 -0
- package/dist-cms/packages/language/index.js +1 -0
- package/dist-cms/packages/language/manifests.js +2 -0
- package/dist-cms/packages/user/user/collection/repository/user-collection.server.data-source.js +1 -1
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/vscode-html-custom-data.json +30 -0
- package/package.json +1 -1
package/dist-cms/packages/documents/documents/global-contexts/document-variant-manager.context.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _UmbDocumentVariantManagerContext_publishingRepository, _UmbDocumentVariantManagerContext_documentRepository, _UmbDocumentVariantManagerContext_modalManagerContext, _UmbDocumentVariantManagerContext_appLanguageCulture;
|
|
13
|
+
import { UmbDocumentVariantState } from '../types.js';
|
|
14
|
+
import { UmbDocumentDetailRepository } from '../repository/detail/document-detail.repository.js';
|
|
15
|
+
import { UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, } from '../modals/variant-picker/index.js';
|
|
16
|
+
import { UmbDocumentPublishingRepository } from '../repository/publishing/index.js';
|
|
17
|
+
import { UmbContextBase } from '../../../../libs/class-api/index.js';
|
|
18
|
+
import { UmbContextToken } from '../../../../libs/context-api/index.js';
|
|
19
|
+
import { UMB_MODAL_MANAGER_CONTEXT } from '../../../core/modal/index.js';
|
|
20
|
+
import { UmbVariantId } from '../../../core/variant/index.js';
|
|
21
|
+
import { UMB_APP_LANGUAGE_CONTEXT } from '../../../language/index.js';
|
|
22
|
+
export class UmbDocumentVariantManagerContext extends UmbContextBase {
|
|
23
|
+
constructor(host) {
|
|
24
|
+
super(host, UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT);
|
|
25
|
+
_UmbDocumentVariantManagerContext_publishingRepository.set(this, new UmbDocumentPublishingRepository(this));
|
|
26
|
+
_UmbDocumentVariantManagerContext_documentRepository.set(this, new UmbDocumentDetailRepository(this));
|
|
27
|
+
_UmbDocumentVariantManagerContext_modalManagerContext.set(this, void 0);
|
|
28
|
+
_UmbDocumentVariantManagerContext_appLanguageCulture.set(this, void 0);
|
|
29
|
+
this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => {
|
|
30
|
+
__classPrivateFieldSet(this, _UmbDocumentVariantManagerContext_modalManagerContext, instance, "f");
|
|
31
|
+
});
|
|
32
|
+
this.consumeContext(UMB_APP_LANGUAGE_CONTEXT, (appLanguageContext) => {
|
|
33
|
+
this.observe(appLanguageContext.appLanguageCulture, (culture) => {
|
|
34
|
+
__classPrivateFieldSet(this, _UmbDocumentVariantManagerContext_appLanguageCulture, culture?.toLowerCase(), "f");
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Helps the user pick variants for a specific operation.
|
|
40
|
+
* If there is only one variant, it will be selected automatically.
|
|
41
|
+
* If there are multiple variants, a modal will be shown to the user.
|
|
42
|
+
* @param type The type of operation to perform.
|
|
43
|
+
* @param documentUnique The unique identifier of the document.
|
|
44
|
+
* @param activeVariantCulture The culture of the active variant (will be pre-selected in the modal).
|
|
45
|
+
* @param filterFn Optional filter function to filter the available variants.
|
|
46
|
+
* @returns The selected variants to perform the operation on.
|
|
47
|
+
*/
|
|
48
|
+
async pickVariants(availableVariants, type, activeVariantCulture) {
|
|
49
|
+
// If there is only one variant, we don't need to select anything.
|
|
50
|
+
if (availableVariants.length === 1) {
|
|
51
|
+
return [UmbVariantId.Create(availableVariants[0])];
|
|
52
|
+
}
|
|
53
|
+
if (!__classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_modalManagerContext, "f"))
|
|
54
|
+
throw new Error('Modal manager context is missing');
|
|
55
|
+
const modalData = {
|
|
56
|
+
type,
|
|
57
|
+
variants: availableVariants,
|
|
58
|
+
};
|
|
59
|
+
const modalContext = __classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_modalManagerContext, "f").open(UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, {
|
|
60
|
+
data: modalData,
|
|
61
|
+
value: { selection: activeVariantCulture ? [activeVariantCulture] : [] },
|
|
62
|
+
});
|
|
63
|
+
const result = await modalContext.onSubmit().catch(() => undefined);
|
|
64
|
+
if (!result?.selection.length)
|
|
65
|
+
return [];
|
|
66
|
+
const selectedVariants = result.selection.map((x) => x?.toLowerCase() ?? '');
|
|
67
|
+
// Match the result to the available variants.
|
|
68
|
+
const variantIds = availableVariants
|
|
69
|
+
.filter((x) => selectedVariants.includes(x.culture))
|
|
70
|
+
.map((x) => UmbVariantId.Create(x));
|
|
71
|
+
return variantIds;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Publish the latest version of a document indescriminately.
|
|
75
|
+
* @param documentUnique The unique identifier of the document.
|
|
76
|
+
*/
|
|
77
|
+
async publish(documentUnique) {
|
|
78
|
+
const { data } = await __classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_documentRepository, "f").requestByUnique(documentUnique);
|
|
79
|
+
if (!data)
|
|
80
|
+
throw new Error('Document not found');
|
|
81
|
+
const variantIds = await this.pickVariants(data.variants, 'publish', __classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_appLanguageCulture, "f"));
|
|
82
|
+
if (variantIds.length) {
|
|
83
|
+
await __classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_publishingRepository, "f").publish(documentUnique, variantIds);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Unpublish the latest version of a document indescriminately.
|
|
88
|
+
* @param documentUnique The unique identifier of the document.
|
|
89
|
+
*/
|
|
90
|
+
async unpublish(documentUnique) {
|
|
91
|
+
const { data } = await __classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_documentRepository, "f").requestByUnique(documentUnique);
|
|
92
|
+
if (!data)
|
|
93
|
+
throw new Error('Document not found');
|
|
94
|
+
// Only show published variants
|
|
95
|
+
const variants = data.variants.filter((variant) => variant.state === UmbDocumentVariantState.PUBLISHED);
|
|
96
|
+
const variantIds = await this.pickVariants(variants, 'unpublish', __classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_appLanguageCulture, "f"));
|
|
97
|
+
if (variantIds.length) {
|
|
98
|
+
await __classPrivateFieldGet(this, _UmbDocumentVariantManagerContext_publishingRepository, "f").unpublish(documentUnique, variantIds);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
_UmbDocumentVariantManagerContext_publishingRepository = new WeakMap(), _UmbDocumentVariantManagerContext_documentRepository = new WeakMap(), _UmbDocumentVariantManagerContext_modalManagerContext = new WeakMap(), _UmbDocumentVariantManagerContext_appLanguageCulture = new WeakMap();
|
|
103
|
+
export default UmbDocumentVariantManagerContext;
|
|
104
|
+
export const UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT = new UmbContextToken('UmbDocumentVariantManagerContext');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './document-variant-manager.context.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './document-variant-manager.context.js';
|
|
@@ -12,6 +12,7 @@ import { manifests as modalManifests } from './modals/manifests.js';
|
|
|
12
12
|
import { manifests as treeManifests } from './tree/manifests.js';
|
|
13
13
|
import { manifests as userPermissionManifests } from './user-permissions/manifests.js';
|
|
14
14
|
import { manifests as workspaceManifests } from './workspace/manifests.js';
|
|
15
|
+
import { manifests as globalContextManifests } from './global-contexts/manifests.js';
|
|
15
16
|
export const manifests = [
|
|
16
17
|
...breadcrumbManifests,
|
|
17
18
|
...collectionManifests,
|
|
@@ -27,4 +28,5 @@ export const manifests = [
|
|
|
27
28
|
...treeManifests,
|
|
28
29
|
...userPermissionManifests,
|
|
29
30
|
...workspaceManifests,
|
|
31
|
+
...globalContextManifests,
|
|
30
32
|
];
|
|
@@ -136,6 +136,11 @@ _UmbDocumentVariantPickerModalElement_renderVariantStatus = function _UmbDocumen
|
|
|
136
136
|
UmbDocumentVariantPickerModalElement.styles = [
|
|
137
137
|
UmbTextStyles,
|
|
138
138
|
css `
|
|
139
|
+
:host {
|
|
140
|
+
display: block;
|
|
141
|
+
width: 400px;
|
|
142
|
+
max-width: 90vw;
|
|
143
|
+
}
|
|
139
144
|
#subtitle {
|
|
140
145
|
margin-top: 0;
|
|
141
146
|
}
|
package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.js
CHANGED
|
@@ -25,18 +25,21 @@ let UmbDocumentWorkspaceSplitViewElement = class UmbDocumentWorkspaceSplitViewEl
|
|
|
25
25
|
}, '_observeActiveVariantsInfo');
|
|
26
26
|
}
|
|
27
27
|
render() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
if (!this._variants)
|
|
29
|
+
return nothing;
|
|
30
|
+
return html `<div id="splitViews">
|
|
31
|
+
<umb-split-panel snap="50%">
|
|
32
|
+
${repeat(this._variants, (view) => view.index + '_' + (view.culture ?? '') + '_' + (view.segment ?? '') + '_' + this._variants.length, (view, index) => html `
|
|
33
|
+
<umb-workspace-split-view
|
|
34
|
+
slot=${['start', 'end'][index] || ''}
|
|
35
|
+
alias="Umb.Workspace.Document"
|
|
36
|
+
.splitViewIndex=${view.index}
|
|
37
|
+
.displayNavigation=${view.index === this._variants.length - 1}></umb-workspace-split-view>
|
|
38
|
+
`)}
|
|
39
|
+
</umb-split-panel>
|
|
40
|
+
</div>
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
: nothing;
|
|
42
|
+
<umb-workspace-footer alias="Umb.Workspace.Document"></umb-workspace-footer>`;
|
|
40
43
|
}
|
|
41
44
|
};
|
|
42
45
|
UmbDocumentWorkspaceSplitViewElement.styles = [
|
|
@@ -52,11 +55,16 @@ UmbDocumentWorkspaceSplitViewElement.styles = [
|
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
#splitViews {
|
|
55
|
-
display: flex;
|
|
56
58
|
width: 100%;
|
|
57
59
|
height: calc(100% - var(--umb-footer-layout-height));
|
|
58
60
|
}
|
|
59
61
|
|
|
62
|
+
umb-split-panel {
|
|
63
|
+
--umb-split-panel-start-min-width: 25%;
|
|
64
|
+
--umb-split-panel-end-min-width: 25%;
|
|
65
|
+
--umb-split-panel-divider-color: var(--uui-color-border);
|
|
66
|
+
}
|
|
67
|
+
|
|
60
68
|
#breadcrumbs {
|
|
61
69
|
margin: 0 var(--uui-size-layout-1);
|
|
62
70
|
}
|
|
@@ -2,7 +2,7 @@ import { UmbDocumentPropertyDataContext } from '../property-dataset-context/docu
|
|
|
2
2
|
import { UmbDocumentDetailRepository } from '../repository/index.js';
|
|
3
3
|
import type { UmbDocumentDetailModel } from '../types.js';
|
|
4
4
|
import { UmbDocumentPublishingRepository } from '../repository/publishing/index.js';
|
|
5
|
-
import { UmbVariantId } from '../../../core/variant/index.js';
|
|
5
|
+
import type { UmbVariantId } from '../../../core/variant/index.js';
|
|
6
6
|
import { UmbContentTypePropertyStructureManager } from '../../../core/content-type/index.js';
|
|
7
7
|
import { UmbEditableWorkspaceContextBase, UmbWorkspaceSplitViewManager, type UmbVariantableWorkspaceContextInterface, type UmbPublishableWorkspaceContextInterface } from '../../../core/workspace/index.js';
|
|
8
8
|
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
|
|
@@ -9,19 +9,17 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _UmbDocumentWorkspaceContext_instances, _UmbDocumentWorkspaceContext_currentData, _UmbDocumentWorkspaceContext_getDataPromise,
|
|
12
|
+
var _UmbDocumentWorkspaceContext_instances, _UmbDocumentWorkspaceContext_currentData, _UmbDocumentWorkspaceContext_getDataPromise, _UmbDocumentWorkspaceContext_variantManagerContext, _UmbDocumentWorkspaceContext_createOrSave;
|
|
13
13
|
import { UmbDocumentTypeDetailRepository } from '../../document-types/repository/detail/document-type-detail.repository.js';
|
|
14
14
|
import { UmbDocumentPropertyDataContext } from '../property-dataset-context/document-property-dataset-context.js';
|
|
15
15
|
import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js';
|
|
16
16
|
import { UmbDocumentDetailRepository } from '../repository/index.js';
|
|
17
|
-
import { UMB_DOCUMENT_LANGUAGE_PICKER_MODAL } from '../modals/index.js';
|
|
18
17
|
import { UmbDocumentPublishingRepository } from '../repository/publishing/index.js';
|
|
18
|
+
import { UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT } from '../global-contexts/document-variant-manager.context.js';
|
|
19
19
|
import { UMB_DOCUMENT_WORKSPACE_ALIAS } from './manifests.js';
|
|
20
|
-
import { UmbVariantId } from '../../../core/variant/index.js';
|
|
21
20
|
import { UmbContentTypePropertyStructureManager } from '../../../core/content-type/index.js';
|
|
22
21
|
import { UmbEditableWorkspaceContextBase, UmbWorkspaceSplitViewManager, } from '../../../core/workspace/index.js';
|
|
23
22
|
import { appendToFrozenArray, partialUpdateFrozenArray, UmbObjectState } from '../../../../libs/observable-api/index.js';
|
|
24
|
-
import { UMB_MODAL_MANAGER_CONTEXT } from '../../../core/modal/index.js';
|
|
25
23
|
export class UmbDocumentWorkspaceContext extends UmbEditableWorkspaceContextBase {
|
|
26
24
|
isLoaded() {
|
|
27
25
|
return __classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_getDataPromise, "f");
|
|
@@ -45,9 +43,9 @@ export class UmbDocumentWorkspaceContext extends UmbEditableWorkspaceContextBase
|
|
|
45
43
|
this.templateId = __classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_currentData, "f").asObservablePart((data) => data?.template?.unique || null);
|
|
46
44
|
this.structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this));
|
|
47
45
|
this.splitView = new UmbWorkspaceSplitViewManager();
|
|
48
|
-
|
|
49
|
-
this.consumeContext(
|
|
50
|
-
__classPrivateFieldSet(this,
|
|
46
|
+
_UmbDocumentWorkspaceContext_variantManagerContext.set(this, void 0);
|
|
47
|
+
this.consumeContext(UMB_DOCUMENT_VARIANT_MANAGER_CONTEXT, (instance) => {
|
|
48
|
+
__classPrivateFieldSet(this, _UmbDocumentWorkspaceContext_variantManagerContext, instance, "f");
|
|
51
49
|
});
|
|
52
50
|
this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique));
|
|
53
51
|
/*
|
|
@@ -147,10 +145,10 @@ export class UmbDocumentWorkspaceContext extends UmbEditableWorkspaceContextBase
|
|
|
147
145
|
}
|
|
148
146
|
}
|
|
149
147
|
async save() {
|
|
148
|
+
await __classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_instances, "m", _UmbDocumentWorkspaceContext_createOrSave).call(this, 'save');
|
|
150
149
|
const data = this.getData();
|
|
151
150
|
if (!data)
|
|
152
151
|
throw new Error('Data is missing');
|
|
153
|
-
await __classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_instances, "m", _UmbDocumentWorkspaceContext_createOrSave).call(this, 'save');
|
|
154
152
|
this.saveComplete(data);
|
|
155
153
|
}
|
|
156
154
|
async publish() {
|
|
@@ -164,11 +162,12 @@ export class UmbDocumentWorkspaceContext extends UmbEditableWorkspaceContextBase
|
|
|
164
162
|
await this.publish();
|
|
165
163
|
}
|
|
166
164
|
async unpublish() {
|
|
167
|
-
const variantIds = await __classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_instances, "m", _UmbDocumentWorkspaceContext_selectVariants).call(this, 'unpublish');
|
|
168
165
|
const unique = this.getEntityId();
|
|
169
|
-
if (
|
|
170
|
-
|
|
171
|
-
|
|
166
|
+
if (!unique)
|
|
167
|
+
throw new Error('Unique is missing');
|
|
168
|
+
if (!__classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_variantManagerContext, "f"))
|
|
169
|
+
throw new Error('Variant manager context is missing');
|
|
170
|
+
__classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_variantManagerContext, "f").unpublish(unique);
|
|
172
171
|
}
|
|
173
172
|
async delete() {
|
|
174
173
|
const id = this.getEntityId();
|
|
@@ -192,41 +191,18 @@ export class UmbDocumentWorkspaceContext extends UmbEditableWorkspaceContextBase
|
|
|
192
191
|
super.destroy();
|
|
193
192
|
}
|
|
194
193
|
}
|
|
195
|
-
_UmbDocumentWorkspaceContext_currentData = new WeakMap(), _UmbDocumentWorkspaceContext_getDataPromise = new WeakMap(),
|
|
196
|
-
const currentData = this.getData();
|
|
197
|
-
if (!currentData)
|
|
198
|
-
throw new Error('Data is missing');
|
|
199
|
-
const variants = currentData.variants;
|
|
200
|
-
// If there is only one variant, we don't need to select anything.
|
|
201
|
-
if (variants.length === 1) {
|
|
202
|
-
return [UmbVariantId.Create(variants[0])];
|
|
203
|
-
}
|
|
204
|
-
if (!__classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_modalManagerContext, "f"))
|
|
205
|
-
throw new Error('Modal manager context is missing');
|
|
206
|
-
const modalData = {
|
|
207
|
-
type,
|
|
208
|
-
variants, // TODO: Filter out variants that do not have any changes unless it is the current variant.
|
|
209
|
-
};
|
|
210
|
-
const activeVariants = this.splitView.getActiveVariants();
|
|
211
|
-
const activeVariant = activeVariants[activeVariants.length - 1];
|
|
212
|
-
const modalContext = __classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_modalManagerContext, "f").open(UMB_DOCUMENT_LANGUAGE_PICKER_MODAL, {
|
|
213
|
-
data: modalData,
|
|
214
|
-
value: { selection: activeVariant ? [activeVariant.culture] : [] },
|
|
215
|
-
});
|
|
216
|
-
const result = await modalContext.onSubmit().catch(() => undefined);
|
|
217
|
-
if (!result?.selection.length)
|
|
218
|
-
return [];
|
|
219
|
-
const selectedVariants = result.selection.map((x) => x?.toLowerCase() ?? '');
|
|
220
|
-
// Match the result to the available variants.
|
|
221
|
-
const variantIds = variants.filter((x) => selectedVariants.includes(x.culture)).map((x) => UmbVariantId.Create(x));
|
|
222
|
-
return variantIds;
|
|
223
|
-
}, _UmbDocumentWorkspaceContext_createOrSave = async function _UmbDocumentWorkspaceContext_createOrSave(type) {
|
|
194
|
+
_UmbDocumentWorkspaceContext_currentData = new WeakMap(), _UmbDocumentWorkspaceContext_getDataPromise = new WeakMap(), _UmbDocumentWorkspaceContext_variantManagerContext = new WeakMap(), _UmbDocumentWorkspaceContext_instances = new WeakSet(), _UmbDocumentWorkspaceContext_createOrSave = async function _UmbDocumentWorkspaceContext_createOrSave(type) {
|
|
224
195
|
const data = this.getData();
|
|
225
196
|
if (!data)
|
|
226
197
|
throw new Error('Data is missing');
|
|
227
198
|
if (!data.unique)
|
|
228
199
|
throw new Error('Unique is missing');
|
|
229
|
-
|
|
200
|
+
if (!__classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_variantManagerContext, "f"))
|
|
201
|
+
throw new Error('Variant manager context is missing');
|
|
202
|
+
const activeVariants = this.splitView.getActiveVariants();
|
|
203
|
+
const activeVariant = activeVariants.length ? activeVariants[0] : undefined;
|
|
204
|
+
const selectedVariants = await __classPrivateFieldGet(this, _UmbDocumentWorkspaceContext_variantManagerContext, "f").pickVariants(data.variants, // TODO: Add a filter function to only show variants that have been changed
|
|
205
|
+
type, activeVariant?.culture ?? undefined);
|
|
230
206
|
// If no variants are selected, we don't save anything.
|
|
231
207
|
if (!selectedVariants.length)
|
|
232
208
|
return [];
|
|
@@ -17,7 +17,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
17
17
|
};
|
|
18
18
|
var _UmbAppLanguageSelectElement_instances, _UmbAppLanguageSelectElement_collectionRepository, _UmbAppLanguageSelectElement_appLanguageContext, _UmbAppLanguageSelectElement_languagesObserver, _UmbAppLanguageSelectElement_observeAppLanguage, _UmbAppLanguageSelectElement_observeLanguages, _UmbAppLanguageSelectElement_onPopoverToggle, _UmbAppLanguageSelectElement_onLabelClick, _UmbAppLanguageSelectElement_renderTrigger, _UmbAppLanguageSelectElement_renderContent;
|
|
19
19
|
import { UmbLanguageCollectionRepository } from '../collection/index.js';
|
|
20
|
-
import { UMB_APP_LANGUAGE_CONTEXT } from '
|
|
20
|
+
import { UMB_APP_LANGUAGE_CONTEXT } from '../global-contexts/index.js';
|
|
21
21
|
import { css, html, customElement, state, repeat, ifDefined, query } from '../../../external/lit/index.js';
|
|
22
22
|
import { UmbLitElement } from '../../core/lit-element/index.js';
|
|
23
23
|
let UmbAppLanguageSelectElement = class UmbAppLanguageSelectElement extends UmbLitElement {
|
|
@@ -104,7 +104,7 @@ UmbAppLanguageSelectElement.styles = [
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
#toggle {
|
|
107
|
-
width:
|
|
107
|
+
width: 100%;
|
|
108
108
|
text-align: left;
|
|
109
109
|
background: none;
|
|
110
110
|
border: none;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
const entityActions = [
|
|
2
|
-
{
|
|
3
|
-
type: 'globalContext',
|
|
4
|
-
alias: 'Umb.GlobalContext.AppLanguage',
|
|
5
|
-
name: 'App Language Context',
|
|
6
|
-
js: () => import('./app-language.context.js'),
|
|
7
|
-
},
|
|
8
2
|
{
|
|
9
3
|
type: 'sectionSidebarApp',
|
|
10
4
|
alias: 'Umb.SectionSidebarItem.LanguageSelect',
|
package/dist-cms/packages/language/{app-language-select → global-contexts}/app-language.context.d.ts
RENAMED
|
@@ -6,6 +6,7 @@ import type { UmbApi } from '../../../libs/extension-api/index.js';
|
|
|
6
6
|
export declare class UmbAppLanguageContext extends UmbBaseController implements UmbApi {
|
|
7
7
|
#private;
|
|
8
8
|
appLanguage: import("rxjs").Observable<UmbLanguageDetailModel | undefined>;
|
|
9
|
+
appLanguageCulture: import("rxjs").Observable<string | undefined>;
|
|
9
10
|
constructor(host: UmbControllerHost);
|
|
10
11
|
setLanguage(unique: string): void;
|
|
11
12
|
}
|
package/dist-cms/packages/language/{app-language-select → global-contexts}/app-language.context.js
RENAMED
|
@@ -22,6 +22,7 @@ export class UmbAppLanguageContext extends UmbBaseController {
|
|
|
22
22
|
_UmbAppLanguageContext_languages.set(this, []);
|
|
23
23
|
_UmbAppLanguageContext_appLanguage.set(this, new UmbObjectState(undefined));
|
|
24
24
|
this.appLanguage = __classPrivateFieldGet(this, _UmbAppLanguageContext_appLanguage, "f").asObservable();
|
|
25
|
+
this.appLanguageCulture = __classPrivateFieldGet(this, _UmbAppLanguageContext_appLanguage, "f").asObservablePart((x) => x?.unique);
|
|
25
26
|
this.provideContext(UMB_APP_LANGUAGE_CONTEXT, this);
|
|
26
27
|
__classPrivateFieldSet(this, _UmbAppLanguageContext_languageCollectionRepository, new UmbLanguageCollectionRepository(this), "f");
|
|
27
28
|
__classPrivateFieldGet(this, _UmbAppLanguageContext_instances, "m", _UmbAppLanguageContext_observeLanguages).call(this);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './app-language.context.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './app-language.context.js';
|
|
@@ -5,6 +5,7 @@ import { manifests as workspaceManifests } from './workspace/manifests.js';
|
|
|
5
5
|
import { manifests as appLanguageSelect } from './app-language-select/manifests.js';
|
|
6
6
|
import { manifests as modalManifests } from './modals/manifests.js';
|
|
7
7
|
import { manifests as collectionManifests } from './collection/manifests.js';
|
|
8
|
+
import { manifests as globalContextManifests } from './global-contexts/manifests.js';
|
|
8
9
|
export const manifests = [
|
|
9
10
|
...repositoryManifests,
|
|
10
11
|
...entityActions,
|
|
@@ -13,4 +14,5 @@ export const manifests = [
|
|
|
13
14
|
...appLanguageSelect,
|
|
14
15
|
...modalManifests,
|
|
15
16
|
...collectionManifests,
|
|
17
|
+
...globalContextManifests,
|
|
16
18
|
];
|
package/dist-cms/packages/user/user/collection/repository/user-collection.server.data-source.js
CHANGED
|
@@ -36,7 +36,7 @@ export class UmbUserCollectionServerDataSource {
|
|
|
36
36
|
* @memberof UmbUserCollectionServerDataSource
|
|
37
37
|
*/
|
|
38
38
|
async getCollection(filter) {
|
|
39
|
-
const { data, error } = await tryExecuteAndNotify(__classPrivateFieldGet(this, _UmbUserCollectionServerDataSource_host, "f"), UserResource.
|
|
39
|
+
const { data, error } = await tryExecuteAndNotify(__classPrivateFieldGet(this, _UmbUserCollectionServerDataSource_host, "f"), UserResource.getFilterUser(filter));
|
|
40
40
|
if (error) {
|
|
41
41
|
return { error };
|
|
42
42
|
}
|