[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,36 +81,43 @@ 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;
const constraints = { uuid: [] }; if (itemEnabled) {
finalPayload.item = {
if (bitstreamEnabled && payload.state.bitstream.changesLimit === 'selected') { mode: payload.state.item.accessMode,
// @ts-ignore accessConditions: payload.itemAccess
constraints.uuid = payload.state.bitstream.selectedBitstreams.map((x) => x.id); }
} }
return { if (bitstreamEnabled) {
item: { const constraints = { uuid: [] };
mode: itemEnabled ? payload.state.item.accessMode : '',
accessConditions: itemEnabled ? payload.itemAccess : [] if (bitstreamEnabled && payload.state.bitstream.changesLimit === 'selected') {
}, // @ts-ignore
bitstream: { constraints.uuid = payload.state.bitstream.selectedBitstreams.map((x) => x.id);
constraints,
mode: bitstreamEnabled ? payload.state.bitstream.accessMode : '',
accessConditions: bitstreamEnabled ? payload.bitstreamAccess : []
} }
};
finalPayload.bitstream = {
constraints,
mode: payload.state.bitstream.accessMode,
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[];