diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 6e6504ece..baf3f854d 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -11,6 +11,7 @@ - [Proxy] Can now upgrade proxies in VMs not connected to XO - [REST API] Expose VM snapshots and templates - [REST API] Expose VDI snapshots +- [Select license] Display product type in the options (PR [#6512](https://github.com/vatesfr/xen-orchestra/pull/6512)) ### Bug fixes @@ -35,7 +36,7 @@ -- xo-web patch - xo-server minor +- xo-web minor diff --git a/packages/xo-web/src/common/intl/messages.js b/packages/xo-web/src/common/intl/messages.js index 171ba7ce1..041c542cb 100644 --- a/packages/xo-web/src/common/intl/messages.js +++ b/packages/xo-web/src/common/intl/messages.js @@ -2409,7 +2409,7 @@ const messages = { // Licenses allHostsMustBeBound: 'All hosts must be bound to a license', - bound: 'Bound', + boundSelectLicense: 'Bound (Plan (ID), expiration date, host - pool)', bindXcpngLicenses: 'Bind XCP-ng licenses', confirmBindingOnUnsupportedHost: 'You are about to bind {nLicenses, number} professional support license{nLicenses, plural, one {} other {s}} on older and unsupported XCP-ng version{nLicenses, plural, one {} other {s}}. Are you sure you want to continue?', @@ -2417,7 +2417,7 @@ const messages = { licenses: 'Licenses', licensesBinding: 'Licenses binding', notEnoughXcpngLicenses: 'Not enough XCP-ng licenses', - notBound: 'Not bound', + notBoundSelectLicense: 'Not bound (Plan (ID), expiration date)', xosanUnregisteredDisclaimer: 'You are not registered and therefore will not be able to create or manage your XOSAN SRs. {link}', xosanSourcesDisclaimer: diff --git a/packages/xo-web/src/common/select-license.js b/packages/xo-web/src/common/select-license.js index 574ab76ed..d4296046f 100644 --- a/packages/xo-web/src/common/select-license.js +++ b/packages/xo-web/src/common/select-license.js @@ -8,27 +8,18 @@ import { map } from 'lodash' import { renderXoItemFromId } from './render-xo-item' -const LicenseOptions = ({ license, formatTime }) => - _( - 'expiresOn', - { - date: - license.expires !== undefined - ? formatTime(license.expires, { - day: 'numeric', - month: 'numeric', - year: 'numeric', - }) - : '', - }, - expirationDate => ( - - ) +const LicenseOptions = ({ license, formatDate }) => { + const productId = license.productId.split('-')[1] + return ( + ) +} const SelectLicense = decorate([ injectIntl, @@ -53,7 +44,7 @@ const SelectLicense = decorate([ }, }), injectState, - ({ state: { licenses }, intl: { formatTime }, onChange, showBoundLicenses }) => + ({ state: { licenses }, intl: { formatDate }, onChange, showBoundLicenses }) => licenses?.licenseError !== undefined ? ( {_('getLicensesError')} @@ -66,18 +57,18 @@ const SelectLicense = decorate([ ))} - {_('notBound', i18nNotBound => ( + {_('notBoundSelectLicense', i18nNotBound => ( {map(licenses?.notBound, license => ( - + ))} ))} {showBoundLicenses && - _('bound', i18nBound => ( + _('boundSelectLicense', i18nBound => ( {map(licenses?.bound, license => ( - + ))} ))}