Merge branch 'RED-9722' into 'master'
RED-9722: split bulk remove-from-dict request into batches. See merge request redactmanager/red-ui!594
This commit is contained in:
commit
cdf39fd838
@ -277,7 +277,6 @@ export class AnnotationActionsService {
|
||||
const text = annotation.AREA ? annotation.value : isImageText;
|
||||
const isApprover = this._permissionsService.isApprover(dossier);
|
||||
const dossierTemplate = this._dossierTemplatesService.find(this._state.dossierTemplateId);
|
||||
const isUnprocessed = annotation.pending;
|
||||
|
||||
const data: ResizeRedactionData = {
|
||||
redaction: annotation,
|
||||
@ -308,7 +307,7 @@ export class AnnotationActionsService {
|
||||
|
||||
await this.cancelResize(annotation);
|
||||
|
||||
const { fileId, dossierId, file } = this._state;
|
||||
const { fileId, dossierId } = this._state;
|
||||
const request = this._manualRedactionService.resize([resizeRequest], dossierId, fileId, includeUnprocessed);
|
||||
return this.#processObsAndEmit(request);
|
||||
}
|
||||
@ -471,6 +470,36 @@ export class AnnotationActionsService {
|
||||
// todo: might not be correct, probably shouldn't get to this point if they are not all the same
|
||||
const isHint = redactions.every(r => r.isHint);
|
||||
const { dossierId, fileId } = this._state;
|
||||
const maximumNumberEntries = 100;
|
||||
if (removeFromDictionary && (body as List<IRemoveRedactionRequest>).length > maximumNumberEntries) {
|
||||
const requests = body as List<IRemoveRedactionRequest>;
|
||||
const splitNumber = Math.floor(requests.length / maximumNumberEntries);
|
||||
const remainder = requests.length % maximumNumberEntries;
|
||||
const splitRequests = [];
|
||||
for (let i = 0; i < splitNumber; i++) {
|
||||
splitRequests.push(requests.slice(i * maximumNumberEntries, (i + 1) * maximumNumberEntries));
|
||||
}
|
||||
splitRequests.push(requests.slice(splitNumber * maximumNumberEntries, splitNumber * maximumNumberEntries + remainder));
|
||||
|
||||
const promises = [];
|
||||
for (const split of splitRequests) {
|
||||
promises.push(
|
||||
firstValueFrom(
|
||||
this._manualRedactionService.removeRedaction(
|
||||
split,
|
||||
dossierId,
|
||||
fileId,
|
||||
removeFromDictionary,
|
||||
isHint,
|
||||
includeUnprocessed,
|
||||
dialogResult.bulkLocal,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
Promise.all(promises).finally(() => this._fileDataService.annotationsChanged());
|
||||
return;
|
||||
}
|
||||
this.#processObsAndEmit(
|
||||
this._manualRedactionService.removeRedaction(
|
||||
body,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user