@hmcts/ccd-case-ui-toolkit 7.0.11-manual-caseflag-lang → 7.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4534,6 +4534,7 @@ class Constants {
4534
4534
  }
4535
4535
  Constants.MANDATORY = 'MANDATORY';
4536
4536
  Constants.REGEX_WHITESPACES = '^[^ ]+(?:\\s+[^ ]+)*$';
4537
+ Constants.TASK_COMPLETION_ERROR = 'The associated task for this event failed to complete automatically. Please complete the task manually in the Tasks tab on the case';
4537
4538
  Constants.ɵfac = function Constants_Factory(t) { return new (t || Constants)(); };
4538
4539
  Constants.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Constants, factory: Constants.ɵfac });
4539
4540
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Constants, [{
@@ -8656,7 +8657,7 @@ ValidPageListCaseFieldsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({
8656
8657
  }], function () { return [{ type: FieldsUtils }]; }, null); })();
8657
8658
 
8658
8659
  class CaseEditComponent {
8659
- constructor(fb, caseNotifier, router, route, fieldsUtils, fieldsPurger, registrarService, wizardFactory, sessionStorageService, windowsService, formValueService, formErrorService, loadingService, validPageListCaseFieldsService, workAllocationService) {
8660
+ constructor(fb, caseNotifier, router, route, fieldsUtils, fieldsPurger, registrarService, wizardFactory, sessionStorageService, windowsService, formValueService, formErrorService, loadingService, validPageListCaseFieldsService, workAllocationService, alertService) {
8660
8661
  this.fb = fb;
8661
8662
  this.caseNotifier = caseNotifier;
8662
8663
  this.router = router;
@@ -8672,6 +8673,7 @@ class CaseEditComponent {
8672
8673
  this.loadingService = loadingService;
8673
8674
  this.validPageListCaseFieldsService = validPageListCaseFieldsService;
8674
8675
  this.workAllocationService = workAllocationService;
8676
+ this.alertService = alertService;
8675
8677
  this.cancelled = new EventEmitter();
8676
8678
  this.submitted = new EventEmitter();
8677
8679
  this.isEventCompletionChecksRequired = false;
@@ -8960,6 +8962,7 @@ class CaseEditComponent {
8960
8962
  const loadingSpinnerToken = this.loadingService.register();
8961
8963
  // keep the initial event response to finalise process after task completion
8962
8964
  let eventResponse;
8965
+ this.sessionStorageService.setItem('taskCompletionError', 'false');
8963
8966
  submit(caseEventData).pipe(switchMap((response) => {
8964
8967
  eventResponse = response;
8965
8968
  return this.postCompleteTaskIfRequired();
@@ -8981,10 +8984,13 @@ class CaseEditComponent {
8981
8984
  this.isSubmitting = false;
8982
8985
  }
8983
8986
  else {
8987
+ this.sessionStorageService.setItem('taskCompletionError', 'true');
8984
8988
  // task assignment/completion error - handled within workallocation service
8985
8989
  // could set task to be deleted (or completed later)?
8986
- // note: think error messages only shown if user is caseworker - might reqauire changing
8987
8990
  this.finishEventCompletionLogic(eventResponse);
8991
+ // below allows error to be shown on navigation to confirmation page
8992
+ this.alertService.setPreserveAlerts(true);
8993
+ this.alertService.error({ phrase: Constants.TASK_COMPLETION_ERROR });
8988
8994
  }
8989
8995
  });
8990
8996
  }
@@ -9040,14 +9046,14 @@ class CaseEditComponent {
9040
9046
  }
9041
9047
  CaseEditComponent.ORIGIN_QUERY_PARAM = 'origin';
9042
9048
  CaseEditComponent.ALERT_MESSAGE = 'Page is being refreshed so you will be redirected to the first page of this event.';
9043
- CaseEditComponent.ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(FieldsPurger), i0.ɵɵdirectiveInject(ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(WizardFactoryService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(WorkAllocationService)); };
9049
+ CaseEditComponent.ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(FieldsPurger), i0.ɵɵdirectiveInject(ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(WizardFactoryService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(WorkAllocationService), i0.ɵɵdirectiveInject(AlertService)); };
9044
9050
  CaseEditComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
9045
9051
  i0.ɵɵelement(0, "router-outlet");
9046
9052
  } }, dependencies: [i1$1.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:0px}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
9047
9053
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditComponent, [{
9048
9054
  type: Component,
9049
9055
  args: [{ selector: 'ccd-case-edit', providers: [GreyBarService], template: "<router-outlet></router-outlet>\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}\n"] }]
9050
- }], function () { return [{ type: i3.FormBuilder }, { type: CaseNotifier }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: FieldsUtils }, { type: FieldsPurger }, { type: ConditionalShowRegistrarService }, { type: WizardFactoryService }, { type: SessionStorageService }, { type: WindowService }, { type: FormValueService }, { type: FormErrorService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }, { type: WorkAllocationService }]; }, { eventTrigger: [{
9056
+ }], function () { return [{ type: i3.FormBuilder }, { type: CaseNotifier }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: FieldsUtils }, { type: FieldsPurger }, { type: ConditionalShowRegistrarService }, { type: WizardFactoryService }, { type: SessionStorageService }, { type: WindowService }, { type: FormValueService }, { type: FormErrorService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }, { type: WorkAllocationService }, { type: AlertService }]; }, { eventTrigger: [{
9051
9057
  type: Input
9052
9058
  }], submit: [{
9053
9059
  type: Input
@@ -11788,7 +11794,7 @@ class WriteCaseFlagFieldComponent extends AbstractFieldWriteComponent {
11788
11794
  // Extract all flags-related data from the CaseEventTrigger object in the snapshot data
11789
11795
  if (this.route.snapshot.data.eventTrigger) {
11790
11796
  // Get the HMCTSServiceId from supplementary data, if it exists (required for retrieving the available flag types in
11791
- // the first instance, only falling back on case type ID or jurisdiction if it's not present)
11797
+ // the first instance, only falling back on case type ID or jurisidiction if it's not present)
11792
11798
  if (this.route.snapshot.data.eventTrigger.supplementary_data
11793
11799
  && this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId) {
11794
11800
  this.hmctsServiceId = this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId;
@@ -12129,36 +12135,32 @@ class WriteCaseFlagFieldComponent extends AbstractFieldWriteComponent {
12129
12135
  this.flagCommentsOptional = true;
12130
12136
  }
12131
12137
  populateNewFlagDetailInstance() {
12132
- const langSearchTerm = this.caseFlagParentFormGroup?.value['languageSearchTerm'];
12133
- const manualLangEntry = this.caseFlagParentFormGroup?.value['manualLanguageEntry'];
12134
- const flagType = this.caseFlagParentFormGroup?.value['flagType'];
12135
- const otherDesc = this.caseFlagParentFormGroup?.value['otherDescription'];
12136
12138
  const formValues = this.caseFlagParentFormGroup?.value;
12137
12139
  return {
12138
- name: this.flagType?.name,
12139
- name_cy: flagType?.name_cy,
12140
+ name: formValues?.flagType?.name,
12141
+ name_cy: formValues?.flagType?.name_cy,
12140
12142
  // Currently, subTypeValue, subTypeValue_cy and subTypeKey are applicable only to language flag types
12141
- subTypeValue: langSearchTerm && this.rpxTranslationService.language === 'en'
12142
- ? langSearchTerm.value
12143
- : manualLangEntry && this.rpxTranslationService.language === 'en'
12144
- ? manualLangEntry
12143
+ subTypeValue: formValues?.languageSearchTerm && this.rpxTranslationService.language === 'en'
12144
+ ? formValues?.languageSearchTerm.value
12145
+ : formValues?.manualLanguageEntry && this.rpxTranslationService.language === 'en'
12146
+ ? formValues?.manualLanguageEntry
12145
12147
  : null,
12146
- subTypeValue_cy: langSearchTerm && this.rpxTranslationService.language === 'cy'
12147
- ? langSearchTerm?.value_cy
12148
- : manualLangEntry && this.rpxTranslationService.language === 'cy'
12149
- ? manualLangEntry
12148
+ subTypeValue_cy: formValues?.languageSearchTerm && this.rpxTranslationService.language === 'cy'
12149
+ ? formValues?.languageSearchTerm.value_cy
12150
+ : formValues?.manualLanguageEntry && this.rpxTranslationService.language === 'cy'
12151
+ ? formValues?.manualLanguageEntry
12150
12152
  : null,
12151
12153
  // For user-entered (i.e. non-Reference Data) languages, there is no key
12152
- subTypeKey: langSearchTerm
12153
- ? langSearchTerm.key
12154
+ subTypeKey: formValues?.languageSearchTerm
12155
+ ? formValues?.languageSearchTerm.key
12154
12156
  : null,
12155
- otherDescription: flagType?.flagCode === this.otherFlagTypeCode &&
12156
- otherDesc && this.rpxTranslationService.language === 'en'
12157
- ? otherDesc
12157
+ otherDescription: formValues?.flagType?.flagCode === this.otherFlagTypeCode &&
12158
+ formValues?.otherDescription && this.rpxTranslationService.language === 'en'
12159
+ ? formValues?.otherDescription
12158
12160
  : null,
12159
- otherDescription_cy: flagType?.flagCode === this.otherFlagTypeCode &&
12160
- otherDesc && this.rpxTranslationService.language === 'cy'
12161
- ? otherDesc
12161
+ otherDescription_cy: formValues?.flagType?.flagCode === this.otherFlagTypeCode &&
12162
+ formValues?.otherDescription && this.rpxTranslationService.language === 'cy'
12163
+ ? formValues?.otherDescription
12162
12164
  : null,
12163
12165
  flagComment: this.rpxTranslationService.language === 'en'
12164
12166
  ? formValues?.flagComments
@@ -12168,18 +12170,18 @@ class WriteCaseFlagFieldComponent extends AbstractFieldWriteComponent {
12168
12170
  : null,
12169
12171
  flagUpdateComment: formValues?.statusReason,
12170
12172
  dateTimeCreated: new Date().toISOString(),
12171
- path: flagType?.Path &&
12172
- flagType?.Path.map(pathValue => Object.assign({ id: null, value: pathValue })),
12173
- hearingRelevant: flagType?.hearingRelevant ? 'Yes' : 'No',
12174
- flagCode: flagType?.flagCode,
12173
+ path: formValues?.flagType?.Path &&
12174
+ formValues?.flagType?.Path.map(pathValue => Object.assign({ id: null, value: pathValue })),
12175
+ hearingRelevant: formValues?.flagType?.hearingRelevant ? 'Yes' : 'No',
12176
+ flagCode: formValues?.flagType?.flagCode,
12175
12177
  // Status should be set to whatever the default is for this flag type, if flag is being created by an external
12176
12178
  // user, otherwise it should be set to "Active" if Case Flags v2.1 is NOT enabled, or the selected status if it is
12177
12179
  status: this.isDisplayContextParameterExternal
12178
- ? flagType?.defaultStatus
12180
+ ? formValues?.flagType?.defaultStatus
12179
12181
  : !this.isDisplayContextParameter2Point1Enabled
12180
12182
  ? CaseFlagStatus.ACTIVE
12181
12183
  : CaseFlagStatus[formValues?.selectedStatus],
12182
- availableExternally: flagType?.externallyAvailable ? 'Yes' : 'No'
12184
+ availableExternally: formValues?.flagType?.externallyAvailable ? 'Yes' : 'No'
12183
12185
  };
12184
12186
  }
12185
12187
  moveToFinalReviewStage() {
@@ -30103,7 +30105,7 @@ function CaseEventTriggerComponent_div_0_Template(rf, ctx) { if (rf & 1) {
30103
30105
  i0.ɵɵproperty("caseDetails", ctx_r0.caseDetails)("submit", ctx_r0.submit())("validate", ctx_r0.validate())("eventTrigger", ctx_r0.eventTrigger);
30104
30106
  } }
30105
30107
  class CaseEventTriggerComponent {
30106
- constructor(ngZone, casesService, caseNotifier, router, alertService, route, caseReferencePipe, activityPollingService) {
30108
+ constructor(ngZone, casesService, caseNotifier, router, alertService, route, caseReferencePipe, activityPollingService, sessionStorageService) {
30107
30109
  this.ngZone = ngZone;
30108
30110
  this.casesService = casesService;
30109
30111
  this.caseNotifier = caseNotifier;
@@ -30112,6 +30114,7 @@ class CaseEventTriggerComponent {
30112
30114
  this.route = route;
30113
30115
  this.caseReferencePipe = caseReferencePipe;
30114
30116
  this.activityPollingService = activityPollingService;
30117
+ this.sessionStorageService = sessionStorageService;
30115
30118
  this.BANNER = DisplayMode.BANNER;
30116
30119
  }
30117
30120
  ngOnInit() {
@@ -30160,21 +30163,30 @@ class CaseEventTriggerComponent {
30160
30163
  }
30161
30164
  submitted(event) {
30162
30165
  const eventStatus = event['status'];
30166
+ const taskCompletionFailed = this.sessionStorageService.getItem('taskCompletionError') === 'true';
30163
30167
  this.router
30164
30168
  .navigate([this.parentUrl])
30165
30169
  .then(() => {
30166
30170
  const caseReference = this.caseReferencePipe.transform(this.caseDetails.case_id.toString());
30167
30171
  const replacements = { CASEREFERENCE: caseReference, NAME: this.eventTrigger.name };
30168
- if (EventStatusService.isIncomplete(eventStatus)) {
30172
+ this.alertService.setPreserveAlerts(true);
30173
+ if (taskCompletionFailed) {
30174
+ // if task still present in session storage, we know that the task has not been correctly completed
30175
+ this.alertService.warning({
30176
+ phrase: CaseEventTriggerComponent.EVENT_COMPLETION_MESSAGE + '. ' + Constants.TASK_COMPLETION_ERROR,
30177
+ replacements
30178
+ });
30179
+ this.sessionStorageService.removeItem('taskCompletionError');
30180
+ }
30181
+ else if (EventStatusService.isIncomplete(eventStatus)) {
30169
30182
  this.alertService.warning({
30170
- phrase: `Case #%CASEREFERENCE% has been updated with event: %NAME%
30171
- but the callback service cannot be completed`,
30183
+ phrase: CaseEventTriggerComponent.EVENT_COMPLETION_MESSAGE + CaseEventTriggerComponent.CALLBACK_FAILED_MESSAGE,
30172
30184
  replacements
30173
30185
  });
30174
30186
  }
30175
30187
  else {
30176
30188
  this.alertService.success({
30177
- phrase: 'Case #%CASEREFERENCE% has been updated with event: %NAME%',
30189
+ phrase: CaseEventTriggerComponent.EVENT_COMPLETION_MESSAGE,
30178
30190
  replacements,
30179
30191
  preserve: true
30180
30192
  });
@@ -30193,7 +30205,9 @@ class CaseEventTriggerComponent {
30193
30205
  return !!(this.eventTrigger && this.caseDetails);
30194
30206
  }
30195
30207
  }
30196
- CaseEventTriggerComponent.ɵfac = function CaseEventTriggerComponent_Factory(t) { return new (t || CaseEventTriggerComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CasesService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(AlertService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseReferencePipe), i0.ɵɵdirectiveInject(ActivityPollingService)); };
30208
+ CaseEventTriggerComponent.EVENT_COMPLETION_MESSAGE = `Case #%CASEREFERENCE% has been updated with event: %NAME%`;
30209
+ CaseEventTriggerComponent.CALLBACK_FAILED_MESSAGE = ' but the callback service cannot be completed';
30210
+ CaseEventTriggerComponent.ɵfac = function CaseEventTriggerComponent_Factory(t) { return new (t || CaseEventTriggerComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CasesService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(AlertService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseReferencePipe), i0.ɵɵdirectiveInject(ActivityPollingService), i0.ɵɵdirectiveInject(SessionStorageService)); };
30197
30211
  CaseEventTriggerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEventTriggerComponent, selectors: [["ccd-case-event-trigger"]], decls: 1, vars: 1, consts: [["class", "screen-990", 4, "ngIf"], [1, "screen-990"], [3, "caseId", "displayMode"], [3, "caseDetails", "submit", "validate", "eventTrigger", "cancelled", "submitted"]], template: function CaseEventTriggerComponent_Template(rf, ctx) { if (rf & 1) {
30198
30212
  i0.ɵɵtemplate(0, CaseEventTriggerComponent_div_0_Template, 3, 6, "div", 0);
30199
30213
  } if (rf & 2) {
@@ -30202,7 +30216,7 @@ CaseEventTriggerComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: C
30202
30216
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEventTriggerComponent, [{
30203
30217
  type: Component,
30204
30218
  args: [{ selector: 'ccd-case-event-trigger', template: "<div *ngIf=\"isDataLoaded()\" class=\"screen-990\">\n <ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n <ccd-case-edit [caseDetails]=\"caseDetails\"\n [submit]=\"submit()\"\n [validate]=\"validate()\"\n [eventTrigger]=\"eventTrigger\"\n (cancelled)=\"cancel()\"\n (submitted)=\"submitted($event)\"></ccd-case-edit>\n</div>\n" }]
30205
- }], function () { return [{ type: i0.NgZone }, { type: CasesService }, { type: CaseNotifier }, { type: i1$1.Router }, { type: AlertService }, { type: i1$1.ActivatedRoute }, { type: CaseReferencePipe }, { type: ActivityPollingService }]; }, null); })();
30219
+ }], function () { return [{ type: i0.NgZone }, { type: CasesService }, { type: CaseNotifier }, { type: i1$1.Router }, { type: AlertService }, { type: i1$1.ActivatedRoute }, { type: CaseReferencePipe }, { type: ActivityPollingService }, { type: SessionStorageService }]; }, null); })();
30206
30220
 
30207
30221
  function CaseViewComponent_div_0_Template(rf, ctx) { if (rf & 1) {
30208
30222
  i0.ɵɵelementStart(0, "div");