diff --git a/src/app/collection-page/edit-collection-page/collection-access-control/collection-access-control.component.html b/src/app/collection-page/edit-collection-page/collection-access-control/collection-access-control.component.html index c53bf9c6ac..4e957cf867 100644 --- a/src/app/collection-page/edit-collection-page/collection-access-control/collection-access-control.component.html +++ b/src/app/collection-page/edit-collection-page/collection-access-control/collection-access-control.component.html @@ -1,7 +1,7 @@ -

{{'collection-access-control-title' | translate}}

diff --git a/src/app/community-page/edit-community-page/community-access-control/community-access-control.component.html b/src/app/community-page/edit-community-page/community-access-control/community-access-control.component.html index 89999955eb..b4f2123b86 100644 --- a/src/app/community-page/edit-community-page/community-access-control/community-access-control.component.html +++ b/src/app/community-page/edit-community-page/community-access-control/community-access-control.component.html @@ -1,6 +1,6 @@ -

{{'community-access-control-title' | translate }}

diff --git a/src/app/item-page/edit-item-page/item-access-control/item-access-control.component.html b/src/app/item-page/edit-item-page/item-access-control/item-access-control.component.html index 7bef310717..782e24fa2d 100644 --- a/src/app/item-page/edit-item-page/item-access-control/item-access-control.component.html +++ b/src/app/item-page/edit-item-page/item-access-control/item-access-control.component.html @@ -1,6 +1,6 @@ -

{{ 'item-access-control-title' | translate }}

diff --git a/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.html b/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.html index 9b1f018ffb..71f327423f 100644 --- a/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.html +++ b/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.html @@ -1,5 +1,5 @@
-
+
{{'access-control-no-access-conditions-warning-message' | translate}}
diff --git a/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.ts b/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.ts index 1e978d9aa9..d4cd923128 100644 --- a/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.ts +++ b/src/app/shared/access-control-form-container/access-control-array-form/access-control-array-form.component.ts @@ -34,6 +34,13 @@ export class AccessControlArrayFormComponent implements OnInit, OnDestroy { return this.form.get('accessControl') as FormArray; } + get allControlsAreEmpty() { + if (this.accessControl.length === 0) { + return true; + } + return this.accessControl.value.every(x => x.itemName === null || x.itemName === ''); + } + /** * Add a new access control item to the form. * Start and end date are disabled by default. diff --git a/src/app/shared/access-control-form-container/access-control-form-container.component.html b/src/app/shared/access-control-form-container/access-control-form-container.component.html index 5e5c8311c4..a5965839c1 100644 --- a/src/app/shared/access-control-form-container/access-control-form-container.component.html +++ b/src/app/shared/access-control-form-container/access-control-form-container.component.html @@ -1,7 +1,11 @@
-
+
- + +
@@ -75,7 +79,7 @@
- @@ -85,9 +89,9 @@ diff --git a/src/app/shared/access-control-form-container/access-control-form-container.component.ts b/src/app/shared/access-control-form-container/access-control-form-container.component.ts index 7e46a53ed5..f27fb4b5f0 100644 --- a/src/app/shared/access-control-form-container/access-control-form-container.component.ts +++ b/src/app/shared/access-control-form-container/access-control-form-container.component.ts @@ -16,6 +16,7 @@ import { import { BulkAccessConfigDataService } from '../../core/config/bulk-access-config-data.service'; import { getFirstCompletedRemoteData } from '../../core/shared/operators'; import { BulkAccessConditionOptions } from '../../core/config/models/bulk-access-condition-options.model'; +import { AlertType } from '../alert/aletr-type'; @Component({ selector: 'ds-access-control-form-container', @@ -30,6 +31,11 @@ export class AccessControlFormContainerComponent impleme */ @Input() showLimitToSpecificBitstreams = false; + /** + * The title message of the access control form (translate key) + */ + @Input() titleMessage = ''; + /** * The item to which the access control form applies */ @@ -45,6 +51,8 @@ export class AccessControlFormContainerComponent impleme @ViewChild('bitstreamAccessCmp', { static: true }) bitstreamAccessCmp: AccessControlArrayFormComponent; @ViewChild('itemAccessCmp', { static: true }) itemAccessCmp: AccessControlArrayFormComponent; + readonly AlertType = AlertType; + constructor( private bulkAccessConfigService: BulkAccessConfigDataService, private bulkAccessControlService: BulkAccessControlService, @@ -145,18 +153,19 @@ export class AccessControlFormContainerComponent impleme ngOnDestroy(): void { this.selectableListService.deselectAll(ITEM_ACCESS_CONTROL_SELECT_BITSTREAMS_LIST_ID); } + } const initialState: AccessControlFormState = { item: { toggleStatus: false, - accessMode: '', + accessMode: 'replace', }, bitstream: { toggleStatus: false, - accessMode: '', - changesLimit: '', // 'all' | 'selected' + accessMode: 'replace', + changesLimit: 'all', // 'all' | 'selected' selectedBitstreams: [] as ListableObject[], }, }; diff --git a/src/app/shared/access-control-form-container/bulk-access-control.service.ts b/src/app/shared/access-control-form-container/bulk-access-control.service.ts index 77fbcbffb2..057a64906f 100644 --- a/src/app/shared/access-control-form-container/bulk-access-control.service.ts +++ b/src/app/shared/access-control-form-container/bulk-access-control.service.ts @@ -43,22 +43,25 @@ export class BulkAccessControlService { } export const convertToBulkAccessControlFileModel = (payload: { state: AccessControlFormState, bitstreamAccess: AccessCondition[], itemAccess: AccessCondition[] }): BulkAccessControlFileModel => { + const itemEnabled = payload.state.item.toggleStatus; + const bitstreamEnabled = payload.state.bitstream.toggleStatus; + const constraints = { uuid: [] }; - if (payload.state.bitstream.changesLimit === 'selected') { + if (bitstreamEnabled && payload.state.bitstream.changesLimit === 'selected') { // @ts-ignore constraints.uuid = payload.state.bitstream.selectedBitstreams.map((x) => x.id); } return { item: { - mode: payload.state.item.accessMode, - accessConditions: payload.itemAccess + mode: itemEnabled ? payload.state.item.accessMode : '', + accessConditions: itemEnabled ? payload.itemAccess : [] }, bitstream: { constraints, - mode: payload.state.bitstream.accessMode, - accessConditions: payload.bitstreamAccess + mode: bitstreamEnabled ? payload.state.bitstream.accessMode : '', + accessConditions: bitstreamEnabled ? payload.bitstreamAccess : [] } }; }; diff --git a/src/app/shared/access-control-form-container/item-access-control-select-bitstreams-modal/item-access-control-select-bitstreams-modal.component.html b/src/app/shared/access-control-form-container/item-access-control-select-bitstreams-modal/item-access-control-select-bitstreams-modal.component.html index e4159f3505..8cf0ecea38 100644 --- a/src/app/shared/access-control-form-container/item-access-control-select-bitstreams-modal/item-access-control-select-bitstreams-modal.component.html +++ b/src/app/shared/access-control-form-container/item-access-control-select-bitstreams-modal/item-access-control-select-bitstreams-modal.component.html @@ -1,5 +1,7 @@ diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 00f2bd46b0..315b0e03fc 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -5326,7 +5326,7 @@ "admin.system-wide-alert.title": "System-wide Alerts", - "item-access-control-title": "This form allows you to perform changes to the access condition of all the items owned by collection under this community. Changes can be performed on the access condition for the metadata (item) or for the content (bitstream).", + "item-access-control-title": "This form allows you to perform changes to the access condition of all the item's metadata and all its bitstreams.", "collection-access-control-title": "This form allows you to perform changes to the access condition of all the items owned by collection under this community. Changes can be performed on the access condition for the metadata (item) or for the content (bitstream).", "community-access-control-title": "This form allows you to perform changes to the access condition of all the items owned by collection under this community. Changes can be performed on the access condition for the metadata (item) or for the content (bitstream).", "access-control-item-header-toggle": "Item's Metadata", @@ -5341,8 +5341,9 @@ "access-control-bitstreams-selected": "bitstreams selected", "access-control-reset": "Reset", "access-control-execute": "Execute", - "access-control-add-more": "Add more" - - + "access-control-add-more": "Add more", + "access-control-select-bitstreams-modal.title": "Select bitstreams", + "access-control-select-bitstreams-modal.no-items": "No items to show.", + "access-control-select-bitstreams-modal.close": "Close" }