diff --git a/src/main/webapp/app/pages/companyPage/CompanyAdditionalInfo.tsx b/src/main/webapp/app/pages/companyPage/CompanyAdditionalInfo.tsx index 6f16aa74d..b5342fc77 100644 --- a/src/main/webapp/app/pages/companyPage/CompanyAdditionalInfo.tsx +++ b/src/main/webapp/app/pages/companyPage/CompanyAdditionalInfo.tsx @@ -48,6 +48,7 @@ export default function CompanyAdditionalInfo({ setAdditionalInfo({ license: { ...additionalInfo?.license, + autoRenewal: !!event.target.value, activation: event.target.value ? new Date(event.target.value).toISOString() : undefined, @@ -59,7 +60,7 @@ export default function CompanyAdditionalInfo({ labelText="Auto-Renewal" name="auto-renewal" boldLabel={boldLabel} - defaultValue={{ + value={{ value: additionalInfo?.license?.autoRenewal ?? false, label: additionalInfo?.license?.autoRenewal ? 'Yes' : 'No', }} @@ -79,88 +80,99 @@ export default function CompanyAdditionalInfo({ {mode === 'update' && ( <> {additionalInfo?.license?.activation && ( - { - const terminationDate = event.target.value - ? new Date(event.target.value) - : undefined; - setAdditionalInfo({ - license: { - ...additionalInfo?.license, - termination: { - ...additionalInfo?.license?.termination, - date: terminationDate?.toISOString(), - notificationDays: - additionalInfo?.license?.termination - ?.notificationDays !== undefined - ? additionalInfo?.license?.termination - ?.notificationDays - : 90, - }, - }, - }); - }} - /> - )} - {additionalInfo?.license?.termination?.date && ( <> { - const value = event?.target?.value; - setAdditionalInfo({ - license: { - ...additionalInfo?.license, - termination: { - ...additionalInfo?.license?.termination, - notificationDays: value - ? +value - : ((undefined as unknown) as number), - }, + id="termination.date" + label="Termination Date" + type="date" + validate={{ + dateRange: { + format: 'YYYY-MM-DD', + start: { + value: additionalInfo?.license?.activation?.split('T')[0], }, - }); + end: { + value: new Date(8640000000000000) + .toISOString() + .split('T')[0], + }, + }, }} - /> - - { + onChange={event => { + const terminationDate = event.target.value + ? new Date(event.target.value) + : undefined; setAdditionalInfo({ license: { ...additionalInfo?.license, termination: { ...additionalInfo?.license?.termination, - notes: e.target.value, + date: terminationDate?.toISOString(), + notificationDays: + additionalInfo?.license?.termination + ?.notificationDays !== undefined + ? additionalInfo?.license?.termination + ?.notificationDays + : 90, }, }, }); }} /> + {additionalInfo?.license?.termination?.date && ( + <> + { + const value = event?.target?.value; + setAdditionalInfo({ + license: { + ...additionalInfo?.license, + termination: { + ...additionalInfo?.license?.termination, + notificationDays: value + ? +value + : ((undefined as unknown) as number), + }, + }, + }); + }} + /> + + { + setAdditionalInfo({ + license: { + ...additionalInfo?.license, + termination: { + ...additionalInfo?.license?.termination, + notes: e.target.value, + }, + }, + }); + }} + /> + + )} )} diff --git a/src/main/webapp/app/pages/companyPage/CompanyPage.tsx b/src/main/webapp/app/pages/companyPage/CompanyPage.tsx index 1c188d87f..551989794 100644 --- a/src/main/webapp/app/pages/companyPage/CompanyPage.tsx +++ b/src/main/webapp/app/pages/companyPage/CompanyPage.tsx @@ -21,6 +21,7 @@ import { UserDTO, UserOverviewUsage, CompanyAdditionalInfoDTO, + CompanyTermination, } from 'app/shared/api/generated/API'; import client from 'app/shared/api/clientInstance'; import { action, computed, observable } from 'mobx'; @@ -211,6 +212,15 @@ export default class CompanyPage extends React.Component { ); if (this.selectedLicenseStatus === 'TRIAL') { this.company.additionalInfo = (null as unknown) as CompanyAdditionalInfoDTO; + } else if (this.company.additionalInfo?.license) { + const license = this.company.additionalInfo?.license; + if (!license.activation) { + license.autoRenewal = false; + license.termination = (undefined as unknown) as CompanyTermination; + } else if (license.termination && !license.termination.date) { + license.termination.notes = (undefined as unknown) as string; + license.termination.notificationDays = (undefined as unknown) as number; + } } const updatedCompany: CompanyVM = { ...this.company,