Skip to content
Snippets Groups Projects
Commit 6d1042a7 authored by Florent Poittevin's avatar Florent Poittevin
Browse files

fix: preservation error null pointer exceptions

parent e10bd1d1
No related branches found
No related tags found
No related merge requests found
...@@ -74,13 +74,13 @@ export class JobFormPresentational extends SharedAbstractFormPresentational<Pres ...@@ -74,13 +74,13 @@ export class JobFormPresentational extends SharedAbstractFormPresentational<Pres
} }
this.form = this._fb.group({ this.form = this._fb.group({
[this.formDefinition.name]: [preservationJob.name, [Validators.required, SolidifyValidator]], [this.formDefinition.name]: [preservationJob.name, [Validators.required, SolidifyValidator]],
[this.formDefinition.enable]: [preservationJob["enable"], [SolidifyValidator]], [this.formDefinition.enable]: [preservationJob.enable, [SolidifyValidator]],
[this.formDefinition.jobRecurrence]: [preservationJob.jobRecurrence, [Validators.required, SolidifyValidator]], [this.formDefinition.jobRecurrence]: [preservationJob.jobRecurrence, [Validators.required, SolidifyValidator]],
[this.formDefinition.jobType]: [preservationJob.jobType, [Validators.required, SolidifyValidator]], [this.formDefinition.jobType]: [preservationJob.jobType, [Validators.required, SolidifyValidator]],
[this.formDefinition.hour]: [preservationJob.scheduling.hour, [Validators.min(0), Validators.max(23), SolidifyValidator]], [this.formDefinition.hour]: [this.getHours(preservationJob), [Validators.min(0), Validators.max(23), SolidifyValidator]],
[this.formDefinition.weekDay]: [this.getWeekDay(isNullOrUndefined(preservationJob.scheduling.weekDay) ? undefined : preservationJob.scheduling.weekDay.toString()), [SolidifyValidator]], [this.formDefinition.weekDay]: [this.getWeekDay(preservationJob), [SolidifyValidator]],
[this.formDefinition.monthDay]: [scheduling.monthDay, [Validators.min(1), Validators.max(31), SolidifyValidator]], [this.formDefinition.monthDay]: [scheduling.monthDay, [Validators.min(1), Validators.max(31), SolidifyValidator]],
[this.formDefinition.month]: [this.getMonth(isNullOrUndefined(preservationJob.scheduling.month) ? undefined : preservationJob.scheduling.month.toString()), [SolidifyValidator]], [this.formDefinition.month]: [this.getMonth(preservationJob), [SolidifyValidator]],
}); });
} }
...@@ -121,19 +121,23 @@ export class JobFormPresentational extends SharedAbstractFormPresentational<Pres ...@@ -121,19 +121,23 @@ export class JobFormPresentational extends SharedAbstractFormPresentational<Pres
} }
} }
private getMonth(id: string | undefined): string { private getHours(preservationJob: PreservationJob): number | undefined {
if (isNullOrUndefined(id)) { return isNullOrUndefined(preservationJob.scheduling) ? undefined : preservationJob.scheduling.hour;
return null; }
private getMonth(preservationJob: PreservationJob): string {
if (isNullOrUndefined(preservationJob.scheduling) || isNullOrUndefined(preservationJob.scheduling.month)) {
return undefined;
} }
const month = JobHelper.getMonths().find(item => item.key === id); const month = JobHelper.getMonths().find(item => item.key === "" + preservationJob.scheduling.month);
return month === undefined ? null : month.key; return month === undefined ? null : month.key;
} }
private getWeekDay(id: string | undefined): string { private getWeekDay(preservationJob: PreservationJob): string {
if (isNullOrUndefined(id)) { if (isNullOrUndefined(preservationJob.scheduling) || isNullOrUndefined(preservationJob.scheduling.weekDay)) {
return null; return undefined;
} }
const weekDay = JobHelper.getWeekDays().find(item => item.key === id); const weekDay = JobHelper.getWeekDays().find(item => item.key === "" + preservationJob.scheduling.weekDay);
return weekDay === undefined ? null : weekDay.key; return weekDay === undefined ? null : weekDay.key;
} }
} }
......
...@@ -75,7 +75,7 @@ export class JobDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl ...@@ -75,7 +75,7 @@ export class JobDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl
icon: "play_arrow", icon: "play_arrow",
labelToTranslate: TRANSLATE("preservation.jobExecution.button.start"), labelToTranslate: TRANSLATE("preservation.jobExecution.button.start"),
callback: () => this.jobExecutionList.start(), callback: () => this.jobExecutionList.start(),
displayCondition: (resource) => resource && (resource.jobRecurrence !== JobRecurrenceEnum.ONCE || (this.jobExecutionList && !this.jobExecutionList.atLeastOneExecution)), displayCondition: (resource) => !this.isEdit && resource && (resource.jobRecurrence !== JobRecurrenceEnum.ONCE || (this.jobExecutionList && !this.jobExecutionList.atLeastOneExecution)),
order: 31, order: 31,
}, },
{ {
...@@ -83,6 +83,7 @@ export class JobDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl ...@@ -83,6 +83,7 @@ export class JobDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl
icon: "refresh", icon: "refresh",
labelToTranslate: TRANSLATE("preservation.jobExecution.button.refresh"), labelToTranslate: TRANSLATE("preservation.jobExecution.button.refresh"),
callback: () => this.jobExecutionList.getAll(), callback: () => this.jobExecutionList.getAll(),
displayCondition: (resource) => !this.isEdit,
order: 41, order: 41,
}, },
]; ];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment