[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()"> <button class="btn btn-lg btn-outline-primary mr-3" (click)="reset()">
{{ 'access-control-reset' | translate }} {{ 'access-control-reset' | translate }}
</button> </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 }} {{ 'access-control-execute' | translate }}
</button> </button>
</div> </div>

View File

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