@umbraco-cms/backoffice 14.0.0--preview006-e321634a → 14.0.0--preview006-2af5bef5
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 +11 -0
- package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.js +1 -1
- package/dist-cms/packages/core/data-type/components/data-type-flow-input/data-type-flow-input.element.js +1 -1
- package/dist-cms/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.js +2 -3
- package/dist-cms/packages/documents/documents/components/input-document-root-picker/input-document-root-picker.element.js +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/index.js +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/manifests.js +2 -13
- package/dist-cms/packages/documents/documents/entity-actions/permissions/permissions-modal.element.js +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/public-access/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/index.js +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/manifests.d.ts +2 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/manifests.js +27 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/modal/index.d.ts +2 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/modal/index.js +2 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/modal/public-access-modal.element.d.ts +24 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/modal/public-access-modal.element.js +271 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/modal/public-access-modal.token.d.ts +7 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/modal/public-access-modal.token.js +7 -0
- package/dist-cms/packages/documents/documents/entity-actions/{public-access.action.d.ts → public-access/public-access.action.d.ts} +4 -3
- package/dist-cms/packages/documents/documents/entity-actions/public-access/public-access.action.js +28 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/index.d.ts +2 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/index.js +2 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/manifests.d.ts +3 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/manifests.js +9 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/public-access.repository.d.ts +21 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/public-access.repository.js +67 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/public-access.server.data.d.ts +43 -0
- package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/public-access.server.data.js +74 -0
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/vscode-html-custom-data.json +5 -0
- package/package.json +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/public-access.action.js +0 -10
|
@@ -6595,6 +6595,17 @@
|
|
|
6595
6595
|
}
|
|
6596
6596
|
]
|
|
6597
6597
|
},
|
|
6598
|
+
{
|
|
6599
|
+
"name": "umb-public-access-modal",
|
|
6600
|
+
"path": "./../src/packages/documents/documents/entity-actions/public-access/modal/public-access-modal.element.ts",
|
|
6601
|
+
"properties": [
|
|
6602
|
+
{
|
|
6603
|
+
"name": "styles",
|
|
6604
|
+
"type": "array",
|
|
6605
|
+
"default": "[\"UmbTextStyles\",null]"
|
|
6606
|
+
}
|
|
6607
|
+
]
|
|
6608
|
+
},
|
|
6598
6609
|
{
|
|
6599
6610
|
"name": "umb-property-editor-ui-document-picker",
|
|
6600
6611
|
"path": "./../src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts",
|
package/dist-cms/packages/block/block-list/components/ref-list-block/ref-list-block.element.js
CHANGED
|
@@ -21,7 +21,7 @@ let UmbRefListBlockElement = class UmbRefListBlockElement extends UmbLitElement
|
|
|
21
21
|
}
|
|
22
22
|
render() {
|
|
23
23
|
// href=${this._workspaceEditPath ?? '#'}
|
|
24
|
-
return html `<uui-ref-node
|
|
24
|
+
return html `<uui-ref-node standalone .name=${this.label ?? ''}></uui-ref-node>`;
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
UmbRefListBlockElement.styles = [
|
|
@@ -79,7 +79,7 @@ let UmbInputDataTypeElement = class UmbInputDataTypeElement extends FormControlM
|
|
|
79
79
|
// TODO: Could use something smarter for workspace modals, as I would like to avoid setting the rest of the URL here:
|
|
80
80
|
__classPrivateFieldGet(this, _UmbInputDataTypeElement_editDataTypeModal, "f")?.open({}, 'edit/' + this._ids[0]);
|
|
81
81
|
}}
|
|
82
|
-
|
|
82
|
+
standalone>
|
|
83
83
|
<!-- TODO: Get the icon from property editor UI -->
|
|
84
84
|
<uui-icon name="${'document'}" slot="icon"></uui-icon>
|
|
85
85
|
<uui-action-bar slot="actions">
|
|
@@ -13,7 +13,7 @@ var _UmbDataTypeDetailsWorkspaceViewEditElement_instances, _UmbDataTypeDetailsWo
|
|
|
13
13
|
import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '../../data-type-workspace.context-token.js';
|
|
14
14
|
import { UmbTextStyles } from '../../../../../../shared/style/index.js';
|
|
15
15
|
import { css, html, customElement, state } from '../../../../../../external/lit/index.js';
|
|
16
|
-
import { UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_EDITOR_UI_PICKER_MODAL
|
|
16
|
+
import { UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_EDITOR_UI_PICKER_MODAL } from '../../../../modal/index.js';
|
|
17
17
|
import { UmbLitElement } from '../../../../../../shared/lit-element/index.js';
|
|
18
18
|
let UmbDataTypeDetailsWorkspaceViewEditElement = class UmbDataTypeDetailsWorkspaceViewEditElement extends UmbLitElement {
|
|
19
19
|
constructor() {
|
|
@@ -75,13 +75,12 @@ _UmbDataTypeDetailsWorkspaceViewEditElement_renderPropertyEditorReference = func
|
|
|
75
75
|
<umb-property-layout label="Property Editor" description="Select a property editor">
|
|
76
76
|
${this._propertyEditorUiAlias && this._propertyEditorSchemaAlias
|
|
77
77
|
? html `
|
|
78
|
-
<!-- TODO: border is a bit weird attribute name. Maybe single or standalone would be better? -->
|
|
79
78
|
<umb-ref-property-editor-ui
|
|
80
79
|
slot="editor"
|
|
81
80
|
name=${this._propertyEditorUiName ?? ''}
|
|
82
81
|
alias=${this._propertyEditorUiAlias}
|
|
83
82
|
property-editor-schema-alias=${this._propertyEditorSchemaAlias}
|
|
84
|
-
|
|
83
|
+
standalone>
|
|
85
84
|
${this._propertyEditorUiIcon
|
|
86
85
|
? html ` <uui-icon name="${this._propertyEditorUiIcon}" slot="icon"></uui-icon> `
|
|
87
86
|
: ''}
|
|
@@ -197,7 +197,7 @@ _UmbInputDocumentRootPickerElement_renderQueryStep = function _UmbInputDocumentR
|
|
|
197
197
|
return;
|
|
198
198
|
const step = __classPrivateFieldGet(this, _UmbInputDocumentRootPickerElement_instances, "m", _UmbInputDocumentRootPickerElement_getQueryStepMeta).call(this, item);
|
|
199
199
|
return html `
|
|
200
|
-
<uui-ref-node
|
|
200
|
+
<uui-ref-node standalone id=${step.unique} name=${step.label} detail="${ifDefined(step.description)}">
|
|
201
201
|
<uui-icon slot="icon" name=${step.icon}></uui-icon>
|
|
202
202
|
<uui-action-bar slot="actions">
|
|
203
203
|
<uui-button
|
|
@@ -2,16 +2,17 @@ import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js';
|
|
|
2
2
|
import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js';
|
|
3
3
|
import { UmbPublishDocumentEntityAction } from './publish.action.js';
|
|
4
4
|
import { UmbCreateDocumentBlueprintEntityAction } from './create-blueprint.action.js';
|
|
5
|
-
import { UmbDocumentPublicAccessEntityAction } from './public-access.action.js';
|
|
6
5
|
import { UmbUnpublishDocumentEntityAction } from './unpublish.action.js';
|
|
7
6
|
import { UmbRollbackDocumentEntityAction } from './rollback.action.js';
|
|
8
7
|
import { manifests as createManifests } from './create/manifests.js';
|
|
9
8
|
import { manifests as permissionManifests } from './permissions/manifests.js';
|
|
9
|
+
import { manifests as publicAccessManifests } from './public-access/manifests.js';
|
|
10
10
|
import { manifests as cultureAndHostnamesManifests } from './culture-and-hostnames/manifests.js';
|
|
11
11
|
import { UmbCopyEntityAction, UmbMoveEntityAction, UmbSortChildrenOfEntityAction, } from '../../../core/entity-action/index.js';
|
|
12
12
|
const entityActions = [
|
|
13
13
|
...createManifests,
|
|
14
14
|
...permissionManifests,
|
|
15
|
+
...publicAccessManifests,
|
|
15
16
|
...cultureAndHostnamesManifests,
|
|
16
17
|
{
|
|
17
18
|
type: 'entityAction',
|
|
@@ -65,18 +66,6 @@ const entityActions = [
|
|
|
65
66
|
entityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE],
|
|
66
67
|
},
|
|
67
68
|
},
|
|
68
|
-
{
|
|
69
|
-
type: 'entityAction',
|
|
70
|
-
alias: 'Umb.EntityAction.Document.PublicAccess',
|
|
71
|
-
name: 'Document Permissions Entity Action',
|
|
72
|
-
api: UmbDocumentPublicAccessEntityAction,
|
|
73
|
-
meta: {
|
|
74
|
-
icon: 'icon-lock',
|
|
75
|
-
label: 'Public Access (TBD)',
|
|
76
|
-
repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS,
|
|
77
|
-
entityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
69
|
{
|
|
81
70
|
type: 'entityAction',
|
|
82
71
|
alias: 'Umb.EntityAction.Document.Publish',
|
|
@@ -61,7 +61,7 @@ let UmbPermissionsModalElement = class UmbPermissionsModalElement extends UmbLit
|
|
|
61
61
|
name=${ifDefined(userGroup.name)}
|
|
62
62
|
.userPermissionAliases=${userGroup.permissions}
|
|
63
63
|
@open=${() => __classPrivateFieldGet(this, _UmbPermissionsModalElement_instances, "m", _UmbPermissionsModalElement_openUserPermissionsModal).call(this, userGroup.id)}
|
|
64
|
-
|
|
64
|
+
standalone>
|
|
65
65
|
${userGroup.icon ? html `<uui-icon slot="icon" name=${userGroup.icon}></uui-icon>` : nothing}
|
|
66
66
|
</umb-user-group-ref>`)}
|
|
67
67
|
</uui-ref-list>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './modal/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './modal/index.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js';
|
|
2
|
+
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
|
|
3
|
+
import { UMB_DOCUMENT_PUBLIC_ACCESS_REPOSITORY_ALIAS } from './repository/manifests.js';
|
|
4
|
+
import { UmbDocumentPublicAccessEntityAction } from './public-access.action.js';
|
|
5
|
+
const entityActions = [
|
|
6
|
+
{
|
|
7
|
+
type: 'entityAction',
|
|
8
|
+
alias: 'Umb.EntityAction.Document.PublicAccess',
|
|
9
|
+
name: 'Document Permissions Entity Action',
|
|
10
|
+
api: UmbDocumentPublicAccessEntityAction,
|
|
11
|
+
meta: {
|
|
12
|
+
icon: 'icon-lock',
|
|
13
|
+
label: 'Restrict Public Access',
|
|
14
|
+
repositoryAlias: UMB_DOCUMENT_PUBLIC_ACCESS_REPOSITORY_ALIAS,
|
|
15
|
+
entityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
const manifestModals = [
|
|
20
|
+
{
|
|
21
|
+
type: 'modal',
|
|
22
|
+
alias: 'Umb.Modal.PublicAccess',
|
|
23
|
+
name: 'Public Access Modal',
|
|
24
|
+
js: () => import('./modal/public-access-modal.element.js'),
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
export const manifests = [...entityActions, ...manifestModals];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { UmbModalBaseElement } from '../../../../../core/modal/index.js';
|
|
2
|
+
import { type UmbPublicAccessModalData, type UmbPublicAccessModalValue } from '../../../index.js';
|
|
3
|
+
export declare class UmbPublicAccessModalElement extends UmbModalBaseElement<UmbPublicAccessModalData, UmbPublicAccessModalValue> {
|
|
4
|
+
#private;
|
|
5
|
+
private _documentName;
|
|
6
|
+
private _specific?;
|
|
7
|
+
private _startPage;
|
|
8
|
+
private _selectedIds;
|
|
9
|
+
private _loginPageId?;
|
|
10
|
+
private _errorPageId?;
|
|
11
|
+
firstUpdated(): void;
|
|
12
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
13
|
+
renderSelectGroup(): import("lit-html").TemplateResult<1>;
|
|
14
|
+
renderEditPage(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
renderMemberType(): import("lit-html").TemplateResult<1>;
|
|
16
|
+
renderActions(): import("lit-html").TemplateResult<1>;
|
|
17
|
+
static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
|
|
18
|
+
}
|
|
19
|
+
export default UmbPublicAccessModalElement;
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
'umb-public-access-modal': UmbPublicAccessModalElement;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
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");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
14
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
15
|
+
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");
|
|
16
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
17
|
+
};
|
|
18
|
+
var _UmbPublicAccessModalElement_instances, _UmbPublicAccessModalElement_publicAccessRepository, _UmbPublicAccessModalElement_unique, _UmbPublicAccessModalElement_isNew, _UmbPublicAccessModalElement_getDocumentName, _UmbPublicAccessModalElement_getPublicAccessModel, _UmbPublicAccessModalElement_handleNext, _UmbPublicAccessModalElement_handleSave, _UmbPublicAccessModalElement_handleDelete, _UmbPublicAccessModalElement_handleCancel, _UmbPublicAccessModalElement_onChangeLoginPage, _UmbPublicAccessModalElement_onChangeErrorPage, _UmbPublicAccessModalElement_onChangeGroup, _UmbPublicAccessModalElement_onChangeMember;
|
|
19
|
+
import { UmbDocumentPublicAccessRepository } from '../repository/public-access.repository.js';
|
|
20
|
+
import { html, customElement, state, css, nothing } from '../../../../../../external/lit/index.js';
|
|
21
|
+
import { UmbTextStyles } from '../../../../../../shared/style/index.js';
|
|
22
|
+
import { UmbModalBaseElement } from '../../../../../core/modal/index.js';
|
|
23
|
+
import { UmbDocumentDetailRepository, } from '../../../index.js';
|
|
24
|
+
let UmbPublicAccessModalElement = class UmbPublicAccessModalElement extends UmbModalBaseElement {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
_UmbPublicAccessModalElement_instances.add(this);
|
|
28
|
+
_UmbPublicAccessModalElement_publicAccessRepository.set(this, new UmbDocumentPublicAccessRepository(this));
|
|
29
|
+
_UmbPublicAccessModalElement_unique.set(this, void 0);
|
|
30
|
+
_UmbPublicAccessModalElement_isNew.set(this, true);
|
|
31
|
+
this._documentName = '';
|
|
32
|
+
this._startPage = true;
|
|
33
|
+
this._selectedIds = [];
|
|
34
|
+
}
|
|
35
|
+
// Init
|
|
36
|
+
firstUpdated() {
|
|
37
|
+
__classPrivateFieldSet(this, _UmbPublicAccessModalElement_unique, this.data?.unique, "f");
|
|
38
|
+
__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_getDocumentName).call(this);
|
|
39
|
+
__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_getPublicAccessModel).call(this);
|
|
40
|
+
}
|
|
41
|
+
// Renders
|
|
42
|
+
render() {
|
|
43
|
+
return html `
|
|
44
|
+
<umb-body-layout headline=${this.localize.term('actions_protect')}>
|
|
45
|
+
<uui-box>${this._startPage ? this.renderSelectGroup() : this.renderEditPage()}</uui-box> ${this.renderActions()}
|
|
46
|
+
</umb-body-layout>
|
|
47
|
+
`;
|
|
48
|
+
}
|
|
49
|
+
// First page when no Restricting Public Access is set.
|
|
50
|
+
renderSelectGroup() {
|
|
51
|
+
return html `<umb-localize key="publicAccess_paHowWould" .args=${[this._documentName]}>
|
|
52
|
+
Choose how you want to restrict public access to the page '${this._documentName}'.
|
|
53
|
+
</umb-localize>
|
|
54
|
+
<uui-radio-group
|
|
55
|
+
@change=${(e) => e.target.value === 'members' ? (this._specific = true) : (this._specific = false)}>
|
|
56
|
+
<uui-radio label=${this.localize.term('publicAccess_paMembers')} value="members">
|
|
57
|
+
<strong>${this.localize.term('publicAccess_paMembers')}</strong><br />
|
|
58
|
+
${this.localize.term('publicAccess_paMembersHelp')}
|
|
59
|
+
</uui-radio>
|
|
60
|
+
<uui-radio label=${this.localize.term('publicAccess_paGroups')} value="groups">
|
|
61
|
+
<strong>${this.localize.term('publicAccess_paGroups')}</strong><br />
|
|
62
|
+
${this.localize.term('publicAccess_paGroupsHelp')}
|
|
63
|
+
</uui-radio>
|
|
64
|
+
</uui-radio-group>`;
|
|
65
|
+
}
|
|
66
|
+
// Second page when editing Restricting Public Access
|
|
67
|
+
renderEditPage() {
|
|
68
|
+
return html `${this.renderMemberType()}
|
|
69
|
+
<p>
|
|
70
|
+
<umb-localize key="publicAccess_paSelectPages">
|
|
71
|
+
Select the pages that contain login form and error messages
|
|
72
|
+
</umb-localize>
|
|
73
|
+
</p>
|
|
74
|
+
<div class="select-item">
|
|
75
|
+
<strong><umb-localize key="publicAccess_paLoginPage">Login Page</umb-localize></strong>
|
|
76
|
+
<small>
|
|
77
|
+
<umb-localize key="publicAccess_paLoginPageHelp"> Choose the page that contains the login form </umb-localize>
|
|
78
|
+
</small>
|
|
79
|
+
<umb-input-document max="1" @change=${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_onChangeLoginPage)}></umb-input-document>
|
|
80
|
+
</div>
|
|
81
|
+
<br />
|
|
82
|
+
<div class="select-item">
|
|
83
|
+
<strong><umb-localize key="publicAccess_paErrorPage">Error Page</umb-localize></strong>
|
|
84
|
+
<small>
|
|
85
|
+
<umb-localize key="publicAccess_paErrorPageHelp">
|
|
86
|
+
Used when people are logged on, but do not have access
|
|
87
|
+
</umb-localize>
|
|
88
|
+
</small>
|
|
89
|
+
<umb-input-document max="1" @change=${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_onChangeErrorPage)}></umb-input-document>
|
|
90
|
+
</div>`;
|
|
91
|
+
}
|
|
92
|
+
renderMemberType() {
|
|
93
|
+
return this._specific
|
|
94
|
+
? html `<umb-localize key="publicAccess_paSelectMembers" .args=${[this._documentName]}>
|
|
95
|
+
Select the members who have access to the page <strong>${this._documentName}</strong>
|
|
96
|
+
</umb-localize>
|
|
97
|
+
<umb-input-member .selectedIds=${this._selectedIds} @change=${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_onChangeMember)}></umb-input-member>`
|
|
98
|
+
: html `<umb-localize key="publicAccess_paSelectGroups" .args=${[this._documentName]}>
|
|
99
|
+
Select the groups who have access to the page <strong>${this._documentName}</strong>
|
|
100
|
+
</umb-localize>
|
|
101
|
+
<umb-input-member-type
|
|
102
|
+
.selectedIds=${this._selectedIds}
|
|
103
|
+
@change=${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_onChangeGroup)}></umb-input-member-type>`;
|
|
104
|
+
}
|
|
105
|
+
// Action buttons
|
|
106
|
+
renderActions() {
|
|
107
|
+
// Check for Save or Next button
|
|
108
|
+
const confirm = !this._startPage
|
|
109
|
+
? html `<uui-button
|
|
110
|
+
slot="actions"
|
|
111
|
+
id="save"
|
|
112
|
+
look="primary"
|
|
113
|
+
color="positive"
|
|
114
|
+
label=${this.localize.term('buttons_save')}
|
|
115
|
+
?disabled=${!this._loginPageId || !this._errorPageId || this._selectedIds.length === 0}
|
|
116
|
+
@click="${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_handleSave)}"></uui-button>`
|
|
117
|
+
: html `<uui-button
|
|
118
|
+
slot="actions"
|
|
119
|
+
id="save"
|
|
120
|
+
look="primary"
|
|
121
|
+
label=${this.localize.term('general_next')}
|
|
122
|
+
?disabled=${this._specific === undefined}
|
|
123
|
+
@click="${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_handleNext)}"></uui-button>`;
|
|
124
|
+
// Check for Remove button
|
|
125
|
+
const remove = !__classPrivateFieldGet(this, _UmbPublicAccessModalElement_isNew, "f")
|
|
126
|
+
? html `<uui-button
|
|
127
|
+
slot="actions"
|
|
128
|
+
id="save"
|
|
129
|
+
look="primary"
|
|
130
|
+
color="warning"
|
|
131
|
+
@click="${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_handleDelete)}"
|
|
132
|
+
label=${this.localize.term('publicAccess_paRemoveProtection')}></uui-button>`
|
|
133
|
+
: nothing;
|
|
134
|
+
//Render the buttons
|
|
135
|
+
return html ` <uui-button
|
|
136
|
+
slot="actions"
|
|
137
|
+
id="cancel"
|
|
138
|
+
label=${this.localize.term('buttons_confirmActionCancel')}
|
|
139
|
+
@click="${__classPrivateFieldGet(this, _UmbPublicAccessModalElement_instances, "m", _UmbPublicAccessModalElement_handleCancel)}"></uui-button
|
|
140
|
+
>${remove}${confirm}`;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
_UmbPublicAccessModalElement_publicAccessRepository = new WeakMap();
|
|
144
|
+
_UmbPublicAccessModalElement_unique = new WeakMap();
|
|
145
|
+
_UmbPublicAccessModalElement_isNew = new WeakMap();
|
|
146
|
+
_UmbPublicAccessModalElement_instances = new WeakSet();
|
|
147
|
+
_UmbPublicAccessModalElement_getDocumentName = async function _UmbPublicAccessModalElement_getDocumentName() {
|
|
148
|
+
if (!__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"))
|
|
149
|
+
return;
|
|
150
|
+
// Should this be done here or in the action file?
|
|
151
|
+
const { data } = await new UmbDocumentDetailRepository(this).requestByUnique(__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"));
|
|
152
|
+
if (!data)
|
|
153
|
+
return;
|
|
154
|
+
//TODO How do we ensure we get the correct variant?
|
|
155
|
+
this._documentName = data.variants[0]?.name;
|
|
156
|
+
};
|
|
157
|
+
_UmbPublicAccessModalElement_getPublicAccessModel = async function _UmbPublicAccessModalElement_getPublicAccessModel() {
|
|
158
|
+
if (!__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"))
|
|
159
|
+
return;
|
|
160
|
+
//const { data } = (await this.#publicAccessRepository.read(this.#unique));
|
|
161
|
+
// TODO Currently returning "void". Remove mock data when API is ready. Will it be Response or Request model?
|
|
162
|
+
const data = undefined;
|
|
163
|
+
/*const data: PublicAccessResponseModel = {
|
|
164
|
+
members: [{ name: 'Agent', id: '007' }],
|
|
165
|
+
groups: [],
|
|
166
|
+
loginPageId: '123',
|
|
167
|
+
errorPageId: '456',
|
|
168
|
+
};*/
|
|
169
|
+
if (!data)
|
|
170
|
+
return;
|
|
171
|
+
__classPrivateFieldSet(this, _UmbPublicAccessModalElement_isNew, false, "f");
|
|
172
|
+
this._startPage = false;
|
|
173
|
+
// Specific or Groups
|
|
174
|
+
this._specific = data.members.length > 0 ? true : false;
|
|
175
|
+
//SelectedIds
|
|
176
|
+
if (data.members.length > 0) {
|
|
177
|
+
this._selectedIds = data.members.map((m) => m.id);
|
|
178
|
+
}
|
|
179
|
+
else if (data.groups.length > 0) {
|
|
180
|
+
this._selectedIds = data.groups.map((g) => g.id);
|
|
181
|
+
}
|
|
182
|
+
this._loginPageId = data.loginPageId;
|
|
183
|
+
this._errorPageId = data.errorPageId;
|
|
184
|
+
};
|
|
185
|
+
_UmbPublicAccessModalElement_handleNext = function _UmbPublicAccessModalElement_handleNext() {
|
|
186
|
+
this._startPage = false;
|
|
187
|
+
};
|
|
188
|
+
_UmbPublicAccessModalElement_handleSave = async function _UmbPublicAccessModalElement_handleSave() {
|
|
189
|
+
if (!this._loginPageId || !this._errorPageId || !__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"))
|
|
190
|
+
return;
|
|
191
|
+
const groups = this._specific ? [] : this._selectedIds;
|
|
192
|
+
const members = this._specific ? this._selectedIds : [];
|
|
193
|
+
const requestBody = {
|
|
194
|
+
memberGroupNames: groups,
|
|
195
|
+
memberUserNames: members,
|
|
196
|
+
loginDocument: { id: this._loginPageId },
|
|
197
|
+
errorDocument: { id: this._errorPageId },
|
|
198
|
+
};
|
|
199
|
+
if (__classPrivateFieldGet(this, _UmbPublicAccessModalElement_isNew, "f")) {
|
|
200
|
+
__classPrivateFieldGet(this, _UmbPublicAccessModalElement_publicAccessRepository, "f").create(__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"), requestBody);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
__classPrivateFieldGet(this, _UmbPublicAccessModalElement_publicAccessRepository, "f").update(__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"), requestBody);
|
|
204
|
+
}
|
|
205
|
+
this.modalContext?.submit();
|
|
206
|
+
};
|
|
207
|
+
_UmbPublicAccessModalElement_handleDelete = function _UmbPublicAccessModalElement_handleDelete() {
|
|
208
|
+
if (!__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"))
|
|
209
|
+
return;
|
|
210
|
+
__classPrivateFieldGet(this, _UmbPublicAccessModalElement_publicAccessRepository, "f").delete(__classPrivateFieldGet(this, _UmbPublicAccessModalElement_unique, "f"));
|
|
211
|
+
this.modalContext?.submit();
|
|
212
|
+
};
|
|
213
|
+
_UmbPublicAccessModalElement_handleCancel = function _UmbPublicAccessModalElement_handleCancel() {
|
|
214
|
+
this.modalContext?.reject();
|
|
215
|
+
};
|
|
216
|
+
_UmbPublicAccessModalElement_onChangeLoginPage = function _UmbPublicAccessModalElement_onChangeLoginPage(e) {
|
|
217
|
+
this._loginPageId = e.target.selectedIds[0];
|
|
218
|
+
};
|
|
219
|
+
_UmbPublicAccessModalElement_onChangeErrorPage = function _UmbPublicAccessModalElement_onChangeErrorPage(e) {
|
|
220
|
+
this._errorPageId = e.target.selectedIds[0];
|
|
221
|
+
};
|
|
222
|
+
_UmbPublicAccessModalElement_onChangeGroup = function _UmbPublicAccessModalElement_onChangeGroup(e) {
|
|
223
|
+
this._selectedIds = e.target.selectedIds;
|
|
224
|
+
};
|
|
225
|
+
_UmbPublicAccessModalElement_onChangeMember = function _UmbPublicAccessModalElement_onChangeMember(e) {
|
|
226
|
+
this._selectedIds = e.target.selectedIds;
|
|
227
|
+
};
|
|
228
|
+
UmbPublicAccessModalElement.styles = [
|
|
229
|
+
UmbTextStyles,
|
|
230
|
+
css `
|
|
231
|
+
uui-box,
|
|
232
|
+
uui-radio-group {
|
|
233
|
+
display: flex;
|
|
234
|
+
flex-direction: column;
|
|
235
|
+
gap: var(--uui-size-4);
|
|
236
|
+
}
|
|
237
|
+
uui-radio-group {
|
|
238
|
+
margin-top: var(--uui-size-4);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
p {
|
|
242
|
+
margin: var(--uui-size-6) 0 var(--uui-size-2);
|
|
243
|
+
}
|
|
244
|
+
small {
|
|
245
|
+
display: block;
|
|
246
|
+
}
|
|
247
|
+
`,
|
|
248
|
+
];
|
|
249
|
+
__decorate([
|
|
250
|
+
state()
|
|
251
|
+
], UmbPublicAccessModalElement.prototype, "_documentName", void 0);
|
|
252
|
+
__decorate([
|
|
253
|
+
state()
|
|
254
|
+
], UmbPublicAccessModalElement.prototype, "_specific", void 0);
|
|
255
|
+
__decorate([
|
|
256
|
+
state()
|
|
257
|
+
], UmbPublicAccessModalElement.prototype, "_startPage", void 0);
|
|
258
|
+
__decorate([
|
|
259
|
+
state()
|
|
260
|
+
], UmbPublicAccessModalElement.prototype, "_selectedIds", void 0);
|
|
261
|
+
__decorate([
|
|
262
|
+
state()
|
|
263
|
+
], UmbPublicAccessModalElement.prototype, "_loginPageId", void 0);
|
|
264
|
+
__decorate([
|
|
265
|
+
state()
|
|
266
|
+
], UmbPublicAccessModalElement.prototype, "_errorPageId", void 0);
|
|
267
|
+
UmbPublicAccessModalElement = __decorate([
|
|
268
|
+
customElement('umb-public-access-modal')
|
|
269
|
+
], UmbPublicAccessModalElement);
|
|
270
|
+
export { UmbPublicAccessModalElement };
|
|
271
|
+
export default UmbPublicAccessModalElement;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UmbModalToken } from '../../../../../core/modal/index.js';
|
|
2
|
+
export interface UmbPublicAccessModalData {
|
|
3
|
+
unique: string;
|
|
4
|
+
}
|
|
5
|
+
export interface UmbPublicAccessModalValue {
|
|
6
|
+
}
|
|
7
|
+
export declare const UMB_PUBLIC_ACCESS_MODAL: UmbModalToken<UmbPublicAccessModalData, UmbPublicAccessModalValue>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import type { UmbControllerHostElement } from '
|
|
1
|
+
import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
|
|
2
|
+
import type { UmbDocumentDetailRepository } from '../../index.js';
|
|
3
|
+
import type { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
|
|
4
4
|
export declare class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase<UmbDocumentDetailRepository> {
|
|
5
|
+
#private;
|
|
5
6
|
constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string);
|
|
6
7
|
execute(): Promise<void>;
|
|
7
8
|
}
|
package/dist-cms/packages/documents/documents/entity-actions/public-access/public-access.action.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
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 _UmbDocumentPublicAccessEntityAction_modalContext;
|
|
13
|
+
import { UMB_PUBLIC_ACCESS_MODAL } from './modal/public-access-modal.token.js';
|
|
14
|
+
import { UmbEntityActionBase } from '../../../../core/entity-action/index.js';
|
|
15
|
+
import { UMB_MODAL_MANAGER_CONTEXT } from '../../../../core/modal/index.js';
|
|
16
|
+
export class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase {
|
|
17
|
+
constructor(host, repositoryAlias, unique, entityType) {
|
|
18
|
+
super(host, repositoryAlias, unique, entityType);
|
|
19
|
+
_UmbDocumentPublicAccessEntityAction_modalContext.set(this, void 0);
|
|
20
|
+
this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => {
|
|
21
|
+
__classPrivateFieldSet(this, _UmbDocumentPublicAccessEntityAction_modalContext, instance, "f");
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async execute() {
|
|
25
|
+
__classPrivateFieldGet(this, _UmbDocumentPublicAccessEntityAction_modalContext, "f")?.open(UMB_PUBLIC_ACCESS_MODAL, { data: { unique: this.unique } });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
_UmbDocumentPublicAccessEntityAction_modalContext = new WeakMap();
|
package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/manifests.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ManifestRepository } from '../../../../../core/extension-registry/index.js';
|
|
2
|
+
export declare const UMB_DOCUMENT_PUBLIC_ACCESS_REPOSITORY_ALIAS = "Umb.Repository.Document.PublicAccess";
|
|
3
|
+
export declare const manifests: ManifestRepository<import("../../../../../../libs/extension-api/index.js").UmbApi>[];
|
package/dist-cms/packages/documents/documents/entity-actions/public-access/repository/manifests.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UmbDocumentPublicAccessRepository } from './public-access.repository.js';
|
|
2
|
+
export const UMB_DOCUMENT_PUBLIC_ACCESS_REPOSITORY_ALIAS = 'Umb.Repository.Document.PublicAccess';
|
|
3
|
+
const repository = {
|
|
4
|
+
type: 'repository',
|
|
5
|
+
alias: UMB_DOCUMENT_PUBLIC_ACCESS_REPOSITORY_ALIAS,
|
|
6
|
+
name: 'Document Public Access Repository',
|
|
7
|
+
api: UmbDocumentPublicAccessRepository,
|
|
8
|
+
};
|
|
9
|
+
export const manifests = [repository];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { UmbControllerHost } from '../../../../../../libs/controller-api/index.js';
|
|
2
|
+
import { UmbBaseController } from '../../../../../../libs/class-api/index.js';
|
|
3
|
+
import type { UmbApi } from '../../../../../../libs/extension-api/index.js';
|
|
4
|
+
import type { PublicAccessRequestModel } from '../../../../../../external/backend-api/index.js';
|
|
5
|
+
export declare class UmbDocumentPublicAccessRepository extends UmbBaseController implements UmbApi {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(host: UmbControllerHost);
|
|
8
|
+
create(unique: string, data: PublicAccessRequestModel): Promise<{
|
|
9
|
+
error: import("../../../../../../external/backend-api/index.js").ApiError | import("../../../../../../external/backend-api/index.js").CancelError | undefined;
|
|
10
|
+
}>;
|
|
11
|
+
read(unique: string): Promise<{
|
|
12
|
+
data: void | undefined;
|
|
13
|
+
error: import("../../../../../../external/backend-api/index.js").ApiError | import("../../../../../../external/backend-api/index.js").CancelError | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
update(unique: string, data: PublicAccessRequestModel): Promise<{
|
|
16
|
+
error: import("../../../../../../external/backend-api/index.js").ApiError | import("../../../../../../external/backend-api/index.js").CancelError | undefined;
|
|
17
|
+
}>;
|
|
18
|
+
delete(unique: string): Promise<{
|
|
19
|
+
error: import("../../../../../../external/backend-api/index.js").ApiError | import("../../../../../../external/backend-api/index.js").CancelError | undefined;
|
|
20
|
+
}>;
|
|
21
|
+
}
|