From: Bill Erickson Date: Fri, 8 Jul 2022 15:17:51 +0000 (-0400) Subject: LP1956790 Support applying item alerts via templates X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=d3d540f778b25e0dd3764454c0dbe15560fdc81e;p=Evergreen.git LP1956790 Support applying item alerts via templates Fixes an issue where item alerts contained within copy templates failed to apply when using the new Angular holdings editor. Testing note: if you add an item alert by applying a template, it currently will not be displayed in the item alerts dialog until you save the item. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/eg2/src/app/staff/cat/volcopy/copy-attrs.component.ts b/Open-ILS/src/eg2/src/app/staff/cat/volcopy/copy-attrs.component.ts index 51621aed39..805f88835c 100644 --- a/Open-ILS/src/eg2/src/app/staff/cat/volcopy/copy-attrs.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/cat/volcopy/copy-attrs.component.ts @@ -528,9 +528,38 @@ export class CopyAttrsComponent implements OnInit, AfterViewInit { if (field === 'statcats') { Object.keys(value).forEach(catId => { - this.statCatValues[+catId] = value[+catId]; - this.statCatChanged(+catId); + if (value[+catId] !== null) { + this.statCatValues[+catId] = value[+catId]; + this.statCatChanged(+catId); + } + }); + return; + } + + // Copy alerts are stored as hashes of the bits we need. + // Templates can be used to create alerts, but not edit them. + if (field === 'copy_alerts' && Array.isArray(value)) { + value.forEach(a => { + this.context.copyList().forEach(copy => { + const newAlert = this.idl.create('aca'); + newAlert.isnew(true); + newAlert.copy(copy.id()); + newAlert.alert_type(a.alert_type); + newAlert.temp(a.temp); + newAlert.note(a.note); + newAlert.create_staff(this.auth.user().id()); + newAlert.create_time('now'); + + if (Array.isArray(copy.copy_alerts())) { + copy.copy_alerts().push(newAlert); + } else { + copy.copy_alerts([newAlert]); + } + + copy.ischanged(true); + }); }); + return; } diff --git a/Open-ILS/src/eg2/src/app/staff/cat/volcopy/volcopy.service.ts b/Open-ILS/src/eg2/src/app/staff/cat/volcopy/volcopy.service.ts index 1d42d97d6f..400825e6e4 100644 --- a/Open-ILS/src/eg2/src/app/staff/cat/volcopy/volcopy.service.ts +++ b/Open-ILS/src/eg2/src/app/staff/cat/volcopy/volcopy.service.ts @@ -226,6 +226,7 @@ export class VolCopyService { copy.parts([]); copy.tags([]); copy.notes([]); + copy.copy_alerts([]); copy.stat_cat_entries([]); return copy;