[CST-9639] Disable Execute button if none is enabled and dont send field in payload if not enabled in form

This commit is contained in:
Enea Jahollari
2023-05-15 12:27:44 +02:00
parent 11c844d973
commit 270e003328
2 changed files with 27 additions and 18 deletions

View File

@@ -142,7 +142,9 @@
<button class="btn btn-lg btn-outline-primary mr-3" (click)="reset()">
{{ 'access-control-reset' | translate }}
</button>
<button class="btn btn-lg btn-primary" (click)="submit()">
<button class="btn btn-lg btn-primary"
[disabled]="!state.item.toggleStatus && !state.bitstream.toggleStatus"
(click)="submit()">
{{ 'access-control-execute' | translate }}
</button>
</div>

View File

@@ -81,36 +81,43 @@ export class BulkAccessControlService {
}
export const convertToBulkAccessControlFileModel = (payload: { state: AccessControlFormState, bitstreamAccess: AccessCondition[], itemAccess: AccessCondition[] }): BulkAccessControlFileModel => {
let finalPayload: BulkAccessControlFileModel = {};
const itemEnabled = payload.state.item.toggleStatus;
const bitstreamEnabled = payload.state.bitstream.toggleStatus;
const constraints = { uuid: [] };
if (bitstreamEnabled && payload.state.bitstream.changesLimit === 'selected') {
// @ts-ignore
constraints.uuid = payload.state.bitstream.selectedBitstreams.map((x) => x.id);
if (itemEnabled) {
finalPayload.item = {
mode: payload.state.item.accessMode,
accessConditions: payload.itemAccess
}
}
return {
item: {
mode: itemEnabled ? payload.state.item.accessMode : '',
accessConditions: itemEnabled ? payload.itemAccess : []
},
bitstream: {
constraints,
mode: bitstreamEnabled ? payload.state.bitstream.accessMode : '',
accessConditions: bitstreamEnabled ? payload.bitstreamAccess : []
if (bitstreamEnabled) {
const constraints = { uuid: [] };
if (bitstreamEnabled && payload.state.bitstream.changesLimit === 'selected') {
// @ts-ignore
constraints.uuid = payload.state.bitstream.selectedBitstreams.map((x) => x.id);
}
};
finalPayload.bitstream = {
constraints,
mode: payload.state.bitstream.accessMode,
accessConditions: payload.bitstreamAccess
}
}
return finalPayload;
};
export interface BulkAccessControlFileModel {
item: {
item?: {
mode: string;
accessConditions: AccessCondition[];
},
bitstream: {
bitstream?: {
constraints: { uuid: string[] };
mode: string;
accessConditions: AccessCondition[];