chore: fixes various warnings (#2554)
This commit is contained in:
parent
03028bca50
commit
6e44c65a07
@ -160,9 +160,9 @@ class Editable extends Component {
|
|||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
onClick={!useLongClick && this._openEdition}
|
onClick={useLongClick ? undefined : this._openEdition}
|
||||||
onMouseDown={useLongClick && this.__startTimer}
|
onMouseDown={useLongClick ? this.__startTimer : undefined}
|
||||||
onMouseUp={useLongClick && this.__stopTimer}
|
onMouseUp={useLongClick ? this.__stopTimer : undefined}
|
||||||
>
|
>
|
||||||
{this._renderDisplay()}
|
{this._renderDisplay()}
|
||||||
</span>
|
</span>
|
||||||
|
@ -114,8 +114,8 @@ export default class Select extends Component {
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={className}
|
className={className}
|
||||||
onClick={!disabled && (() => selectValue(option))}
|
onClick={disabled ? undefined : () => selectValue(option)}
|
||||||
onMouseOver={!disabled && (() => focusOption(option))}
|
onMouseOver={disabled ? undefined : () => focusOption(option)}
|
||||||
style={style}
|
style={style}
|
||||||
key={key}
|
key={key}
|
||||||
>
|
>
|
||||||
|
@ -9,12 +9,12 @@ import propTypes from '../prop-types-decorator'
|
|||||||
@uncontrollableInput()
|
@uncontrollableInput()
|
||||||
@propTypes({
|
@propTypes({
|
||||||
className: propTypes.string,
|
className: propTypes.string,
|
||||||
onChange: propTypes.func,
|
onChange: propTypes.func.isRequired,
|
||||||
icon: propTypes.string,
|
icon: propTypes.string,
|
||||||
iconOn: propTypes.string,
|
iconOn: propTypes.string,
|
||||||
iconOff: propTypes.string,
|
iconOff: propTypes.string,
|
||||||
iconSize: propTypes.number,
|
iconSize: propTypes.number,
|
||||||
value: propTypes.bool,
|
value: propTypes.bool.isRequired,
|
||||||
})
|
})
|
||||||
export default class Toggle extends Component {
|
export default class Toggle extends Component {
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
|
@ -13,19 +13,29 @@ import propTypes from './prop-types-decorator'
|
|||||||
// {children}
|
// {children}
|
||||||
// </NoObjects>
|
// </NoObjects>
|
||||||
// ````
|
// ````
|
||||||
const NoObjects = ({ children, collection, emptyMessage }) =>
|
const NoObjects = props => {
|
||||||
collection == null ? (
|
const { collection } = props
|
||||||
<img src='assets/loading.svg' alt='loading' />
|
|
||||||
) : isEmpty(collection) ? (
|
if (collection == null) {
|
||||||
<p>{emptyMessage}</p>
|
return <img src='assets/loading.svg' alt='loading' />
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isEmpty(collection)) {
|
||||||
|
return <p>{props.emptyMessage}</p>
|
||||||
|
}
|
||||||
|
|
||||||
|
const { children, component: Component, ...otherProps } = props
|
||||||
|
return children !== undefined ? (
|
||||||
|
children(otherProps)
|
||||||
) : (
|
) : (
|
||||||
<div>{children}</div>
|
<Component {...otherProps} />
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
propTypes(NoObjects)({
|
propTypes(NoObjects)({
|
||||||
children: propTypes.node.isRequired,
|
children: propTypes.func,
|
||||||
collection: propTypes.oneOfType([propTypes.array, propTypes.object])
|
collection: propTypes.oneOfType([propTypes.array, propTypes.object]),
|
||||||
.isRequired,
|
component: propTypes.func,
|
||||||
emptyMessage: propTypes.node.isRequired,
|
emptyMessage: propTypes.node.isRequired,
|
||||||
})
|
})
|
||||||
export default NoObjects
|
export default NoObjects
|
||||||
|
@ -173,7 +173,7 @@ export const CpuLineChart = injectIntl(
|
|||||||
export const PoolCpuLineChart = injectIntl(
|
export const PoolCpuLineChart = injectIntl(
|
||||||
propTypes({
|
propTypes({
|
||||||
addSumSeries: propTypes.bool,
|
addSumSeries: propTypes.bool,
|
||||||
data: propTypes.object.isRequired,
|
data: propTypes.array.isRequired,
|
||||||
options: propTypes.object,
|
options: propTypes.object,
|
||||||
})(({ addSumSeries, data, options = {}, intl }) => {
|
})(({ addSumSeries, data, options = {}, intl }) => {
|
||||||
const firstHostData = data[0]
|
const firstHostData = data[0]
|
||||||
@ -261,7 +261,7 @@ export const MemoryLineChart = injectIntl(
|
|||||||
export const PoolMemoryLineChart = injectIntl(
|
export const PoolMemoryLineChart = injectIntl(
|
||||||
propTypes({
|
propTypes({
|
||||||
addSumSeries: propTypes.bool,
|
addSumSeries: propTypes.bool,
|
||||||
data: propTypes.object.isRequired,
|
data: propTypes.array.isRequired,
|
||||||
options: propTypes.object,
|
options: propTypes.object,
|
||||||
})(({ addSumSeries, data, options = {}, intl }) => {
|
})(({ addSumSeries, data, options = {}, intl }) => {
|
||||||
const firstHostData = data[0]
|
const firstHostData = data[0]
|
||||||
@ -384,7 +384,7 @@ export const VifLineChart = injectIntl(
|
|||||||
export const PifLineChart = injectIntl(
|
export const PifLineChart = injectIntl(
|
||||||
propTypes({
|
propTypes({
|
||||||
addSumSeries: propTypes.bool,
|
addSumSeries: propTypes.bool,
|
||||||
data: propTypes.object.isRequired,
|
data: propTypes.array.isRequired,
|
||||||
options: propTypes.object,
|
options: propTypes.object,
|
||||||
})(({ addSumSeries, data, options = {}, intl }) => {
|
})(({ addSumSeries, data, options = {}, intl }) => {
|
||||||
const stats = data.stats.pifs
|
const stats = data.stats.pifs
|
||||||
@ -419,7 +419,7 @@ const ios = ['rx', 'tx']
|
|||||||
export const PoolPifLineChart = injectIntl(
|
export const PoolPifLineChart = injectIntl(
|
||||||
propTypes({
|
propTypes({
|
||||||
addSumSeries: propTypes.bool,
|
addSumSeries: propTypes.bool,
|
||||||
data: propTypes.object.isRequired,
|
data: propTypes.array.isRequired,
|
||||||
options: propTypes.object,
|
options: propTypes.object,
|
||||||
})(({ addSumSeries, data, options = {}, intl }) => {
|
})(({ addSumSeries, data, options = {}, intl }) => {
|
||||||
const firstHostData = data[0]
|
const firstHostData = data[0]
|
||||||
@ -508,7 +508,7 @@ export const LoadLineChart = injectIntl(
|
|||||||
export const PoolLoadLineChart = injectIntl(
|
export const PoolLoadLineChart = injectIntl(
|
||||||
propTypes({
|
propTypes({
|
||||||
addSumSeries: propTypes.bool,
|
addSumSeries: propTypes.bool,
|
||||||
data: propTypes.object.isRequired,
|
data: propTypes.array.isRequired,
|
||||||
options: propTypes.object,
|
options: propTypes.object,
|
||||||
})(({ addSumSeries, data, options = {}, intl }) => {
|
})(({ addSumSeries, data, options = {}, intl }) => {
|
||||||
const firstHostData = data[0]
|
const firstHostData = data[0]
|
||||||
|
@ -226,11 +226,13 @@ export default class Overview extends Component {
|
|||||||
collection={schedules}
|
collection={schedules}
|
||||||
emptyMessage={_('noScheduledJobs')}
|
emptyMessage={_('noScheduledJobs')}
|
||||||
>
|
>
|
||||||
<SortedTable
|
{() => (
|
||||||
columns={JOB_COLUMNS}
|
<SortedTable
|
||||||
collection={this._getScheduleCollection()}
|
columns={JOB_COLUMNS}
|
||||||
userData={isScheduleUserMissing}
|
collection={this._getScheduleCollection()}
|
||||||
/>
|
userData={isScheduleUserMissing}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</NoObjects>
|
</NoObjects>
|
||||||
</CardBlock>
|
</CardBlock>
|
||||||
</Card>
|
</Card>
|
||||||
|
@ -461,16 +461,18 @@ export default class Health extends Component {
|
|||||||
collection={props.areObjectsFetched ? props.userSrs : null}
|
collection={props.areObjectsFetched ? props.userSrs : null}
|
||||||
emptyMessage={_('noSrs')}
|
emptyMessage={_('noSrs')}
|
||||||
>
|
>
|
||||||
<Row>
|
{() => (
|
||||||
<Col>
|
<Row>
|
||||||
<SortedTable
|
<Col>
|
||||||
collection={props.userSrs}
|
<SortedTable
|
||||||
columns={SR_COLUMNS}
|
collection={props.userSrs}
|
||||||
rowLink={this._getSrUrl}
|
columns={SR_COLUMNS}
|
||||||
shortcutsTarget='body'
|
rowLink={this._getSrUrl}
|
||||||
/>
|
shortcutsTarget='body'
|
||||||
</Col>
|
/>
|
||||||
</Row>
|
</Col>
|
||||||
|
</Row>
|
||||||
|
)}
|
||||||
</NoObjects>
|
</NoObjects>
|
||||||
</CardBlock>
|
</CardBlock>
|
||||||
</Card>
|
</Card>
|
||||||
@ -489,26 +491,28 @@ export default class Health extends Component {
|
|||||||
}
|
}
|
||||||
emptyMessage={_('noOrphanedObject')}
|
emptyMessage={_('noOrphanedObject')}
|
||||||
>
|
>
|
||||||
<div>
|
{() => (
|
||||||
<Row>
|
<div>
|
||||||
<Col className='text-xs-right'>
|
<Row>
|
||||||
<TabButton
|
<Col className='text-xs-right'>
|
||||||
btnStyle='danger'
|
<TabButton
|
||||||
handler={this._deleteOrphanedVdis}
|
btnStyle='danger'
|
||||||
icon='delete'
|
handler={this._deleteOrphanedVdis}
|
||||||
labelId='removeAllOrphanedObject'
|
icon='delete'
|
||||||
/>
|
labelId='removeAllOrphanedObject'
|
||||||
</Col>
|
/>
|
||||||
</Row>
|
</Col>
|
||||||
<Row>
|
</Row>
|
||||||
<Col>
|
<Row>
|
||||||
<SortedTable
|
<Col>
|
||||||
collection={this.props.vdiOrphaned}
|
<SortedTable
|
||||||
columns={ORPHANED_VDI_COLUMNS}
|
collection={this.props.vdiOrphaned}
|
||||||
/>
|
columns={ORPHANED_VDI_COLUMNS}
|
||||||
</Col>
|
/>
|
||||||
</Row>
|
</Col>
|
||||||
</div>
|
</Row>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</NoObjects>
|
</NoObjects>
|
||||||
</CardBlock>
|
</CardBlock>
|
||||||
</Card>
|
</Card>
|
||||||
@ -525,13 +529,10 @@ export default class Health extends Component {
|
|||||||
collection={
|
collection={
|
||||||
props.areObjectsFetched ? props.controlDomainVdis : null
|
props.areObjectsFetched ? props.controlDomainVdis : null
|
||||||
}
|
}
|
||||||
|
columns={CONTROL_DOMAIN_VDI_COLUMNS}
|
||||||
|
component={SortedTable}
|
||||||
emptyMessage={_('noControlDomainVdis')}
|
emptyMessage={_('noControlDomainVdis')}
|
||||||
>
|
/>
|
||||||
<SortedTable
|
|
||||||
collection={props.controlDomainVdis}
|
|
||||||
columns={CONTROL_DOMAIN_VDI_COLUMNS}
|
|
||||||
/>
|
|
||||||
</NoObjects>
|
|
||||||
</CardBlock>
|
</CardBlock>
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
@ -545,14 +546,11 @@ export default class Health extends Component {
|
|||||||
<CardBlock>
|
<CardBlock>
|
||||||
<NoObjects
|
<NoObjects
|
||||||
collection={props.areObjectsFetched ? props.vmOrphaned : null}
|
collection={props.areObjectsFetched ? props.vmOrphaned : null}
|
||||||
|
columns={VM_COLUMNS}
|
||||||
|
component={SortedTable}
|
||||||
emptyMessage={_('noOrphanedObject')}
|
emptyMessage={_('noOrphanedObject')}
|
||||||
>
|
shortcutsTarget='.orphaned-vms'
|
||||||
<SortedTable
|
/>
|
||||||
collection={props.vmOrphaned}
|
|
||||||
columns={VM_COLUMNS}
|
|
||||||
shortcutsTarget='.orphaned-vms'
|
|
||||||
/>
|
|
||||||
</NoObjects>
|
|
||||||
</CardBlock>
|
</CardBlock>
|
||||||
</Card>
|
</Card>
|
||||||
</Col>
|
</Col>
|
||||||
@ -570,26 +568,28 @@ export default class Health extends Component {
|
|||||||
}
|
}
|
||||||
emptyMessage={_('noAlarms')}
|
emptyMessage={_('noAlarms')}
|
||||||
>
|
>
|
||||||
<div>
|
{() => (
|
||||||
<Row>
|
<div>
|
||||||
<Col className='text-xs-right'>
|
<Row>
|
||||||
<TabButton
|
<Col className='text-xs-right'>
|
||||||
btnStyle='danger'
|
<TabButton
|
||||||
handler={this._deleteAllLogs}
|
btnStyle='danger'
|
||||||
icon='delete'
|
handler={this._deleteAllLogs}
|
||||||
labelId='logRemoveAll'
|
icon='delete'
|
||||||
/>
|
labelId='logRemoveAll'
|
||||||
</Col>
|
/>
|
||||||
</Row>
|
</Col>
|
||||||
<Row>
|
</Row>
|
||||||
<Col>
|
<Row>
|
||||||
<SortedTable
|
<Col>
|
||||||
collection={this.state.messages}
|
<SortedTable
|
||||||
columns={ALARM_COLUMNS}
|
collection={this.state.messages}
|
||||||
/>
|
columns={ALARM_COLUMNS}
|
||||||
</Col>
|
/>
|
||||||
</Row>
|
</Col>
|
||||||
</div>
|
</Row>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</NoObjects>
|
</NoObjects>
|
||||||
</CardBlock>
|
</CardBlock>
|
||||||
</Card>
|
</Card>
|
||||||
|
@ -1083,7 +1083,9 @@ export default class Home extends Component {
|
|||||||
map(visibleItems, (item, index) => (
|
map(visibleItems, (item, index) => (
|
||||||
<div
|
<div
|
||||||
key={item.id}
|
key={item.id}
|
||||||
className={highlighted === index && styles.highlight}
|
className={
|
||||||
|
highlighted === index ? styles.highlight : undefined
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<Item
|
<Item
|
||||||
expandAll={expandAll}
|
expandAll={expandAll}
|
||||||
|
@ -17,14 +17,14 @@ import {
|
|||||||
import { FormattedRelative, FormattedTime } from 'react-intl'
|
import { FormattedRelative, FormattedTime } from 'react-intl'
|
||||||
import { Container, Row, Col } from 'grid'
|
import { Container, Row, Col } from 'grid'
|
||||||
import { createGetObjectsOfType, createSelector } from 'selectors'
|
import { createGetObjectsOfType, createSelector } from 'selectors'
|
||||||
import { map } from 'lodash'
|
import { map, noop } from 'lodash'
|
||||||
|
|
||||||
const ALLOW_INSTALL_SUPP_PACK = process.env.XOA_PLAN > 1
|
const ALLOW_INSTALL_SUPP_PACK = process.env.XOA_PLAN > 1
|
||||||
|
|
||||||
const forceReboot = host => restartHost(host, true)
|
const forceReboot = host => restartHost(host, true)
|
||||||
|
|
||||||
const formatPack = ({ name, author, description, version }) => (
|
const formatPack = ({ name, author, description, version }, key) => (
|
||||||
<tr>
|
<tr key={key}>
|
||||||
<th>{_('supplementalPackTitle', { author, name })}</th>
|
<th>{_('supplementalPackTitle', { author, name })}</th>
|
||||||
<td>{description}</td>
|
<td>{description}</td>
|
||||||
<td>{version}</td>
|
<td>{version}</td>
|
||||||
@ -116,7 +116,11 @@ export default connectStore(() => {
|
|||||||
<tr>
|
<tr>
|
||||||
<th>{_('hostPowerOnMode')}</th>
|
<th>{_('hostPowerOnMode')}</th>
|
||||||
<td>
|
<td>
|
||||||
<Toggle value={host.powerOnMode} disabled />
|
<Toggle
|
||||||
|
disabled
|
||||||
|
onChange={noop}
|
||||||
|
value={Boolean(host.powerOnMode)}
|
||||||
|
/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -413,13 +413,13 @@ export default class LogList extends Component {
|
|||||||
</span>
|
</span>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardBlock>
|
<CardBlock>
|
||||||
<NoObjects collection={logs} emptyMessage={_('noLogs')}>
|
<NoObjects
|
||||||
<SortedTable
|
collection={logs}
|
||||||
collection={logs}
|
columns={LOG_COLUMNS}
|
||||||
columns={LOG_COLUMNS}
|
component={SortedTable}
|
||||||
filters={this.filters}
|
emptyMessage={_('noLogs')}
|
||||||
/>
|
filters={this.filters}
|
||||||
</NoObjects>
|
/>
|
||||||
</CardBlock>
|
</CardBlock>
|
||||||
</Card>
|
</Card>
|
||||||
)
|
)
|
||||||
|
@ -76,7 +76,9 @@ export default connectStore({
|
|||||||
<Col size={9}>
|
<Col size={9}>
|
||||||
<ul className='list-group'>
|
<ul className='list-group'>
|
||||||
{map(gpuGroups, gpuGroup => (
|
{map(gpuGroups, gpuGroup => (
|
||||||
<li className='list-group-item'>{renderXoItem(gpuGroup)}</li>
|
<li key={gpuGroup.id} className='list-group-item'>
|
||||||
|
{renderXoItem(gpuGroup)}
|
||||||
|
</li>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
</Col>
|
</Col>
|
||||||
|
@ -834,8 +834,11 @@ export default class Self extends Component {
|
|||||||
</ActionButton>
|
</ActionButton>
|
||||||
</div>
|
</div>
|
||||||
{showNewResourceSetForm && [
|
{showNewResourceSetForm && [
|
||||||
<Edit onSave={this.toggleState('showNewResourceSetForm')} />,
|
<Edit
|
||||||
<hr />,
|
key={0}
|
||||||
|
onSave={this.toggleState('showNewResourceSetForm')}
|
||||||
|
/>,
|
||||||
|
<hr key={1} />,
|
||||||
]}
|
]}
|
||||||
{resourceSets
|
{resourceSets
|
||||||
? isEmpty(resourceSets)
|
? isEmpty(resourceSets)
|
||||||
|
@ -161,21 +161,23 @@ export default class Logs extends BaseComponent {
|
|||||||
message={_('noLogs')}
|
message={_('noLogs')}
|
||||||
predicate={this._getPredicate}
|
predicate={this._getPredicate}
|
||||||
>
|
>
|
||||||
<div>
|
{() => (
|
||||||
<span className='pull-right'>
|
<div>
|
||||||
<TabButton
|
<span className='pull-right'>
|
||||||
btnStyle='danger'
|
<TabButton
|
||||||
handler={this._deleteAllLogs}
|
btnStyle='danger'
|
||||||
icon='delete'
|
handler={this._deleteAllLogs}
|
||||||
labelId='logDeleteAll'
|
icon='delete'
|
||||||
|
labelId='logDeleteAll'
|
||||||
|
/>
|
||||||
|
</span>{' '}
|
||||||
|
<SortedTable
|
||||||
|
collection={logs}
|
||||||
|
columns={COLUMNS}
|
||||||
|
userData={this._getData()}
|
||||||
/>
|
/>
|
||||||
</span>{' '}
|
</div>
|
||||||
<SortedTable
|
)}
|
||||||
collection={logs}
|
|
||||||
columns={COLUMNS}
|
|
||||||
userData={this._getData()}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</NoObjects>
|
</NoObjects>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -137,7 +137,7 @@ const COLUMNS = [
|
|||||||
{
|
{
|
||||||
itemRenderer: server => (
|
itemRenderer: server => (
|
||||||
<Toggle
|
<Toggle
|
||||||
value={server.allowUnauthorized}
|
value={Boolean(server.allowUnauthorized)}
|
||||||
onChange={allowUnauthorized =>
|
onChange={allowUnauthorized =>
|
||||||
editServer(server, { allowUnauthorized })
|
editServer(server, { allowUnauthorized })
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@ export default class Tasks extends Component {
|
|||||||
props.pools,
|
props.pools,
|
||||||
pool =>
|
pool =>
|
||||||
this._showPoolTasks(pool) && (
|
this._showPoolTasks(pool) && (
|
||||||
<Row>
|
<Row key={pool.id}>
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader key={pool.id}>
|
<CardHeader key={pool.id}>
|
||||||
<Link to={`/pools/${pool.id}`}>{pool.name_label}</Link>
|
<Link to={`/pools/${pool.id}`}>{pool.name_label}</Link>
|
||||||
|
@ -209,26 +209,28 @@ class CoresPerSocket extends Component {
|
|||||||
onChange={this._onChange}
|
onChange={this._onChange}
|
||||||
value={selectedCoresPerSocket || ''}
|
value={selectedCoresPerSocket || ''}
|
||||||
>
|
>
|
||||||
{_('vmChooseCoresPerSocket', message => (
|
{_({ key: 'none' }, 'vmChooseCoresPerSocket', message => (
|
||||||
<option key='none' value=''>
|
<option value=''>{message}</option>
|
||||||
{message}
|
|
||||||
</option>
|
|
||||||
))}
|
))}
|
||||||
{this._selectedValueIsNotInOptions() &&
|
{this._selectedValueIsNotInOptions() &&
|
||||||
_('vmCoresPerSocketIncorrectValue', message => (
|
_(
|
||||||
<option key='incorrect' value={selectedCoresPerSocket}>
|
{ key: 'incorrect' },
|
||||||
{' '}
|
'vmCoresPerSocketIncorrectValue',
|
||||||
{message}
|
message => (
|
||||||
</option>
|
<option value={selectedCoresPerSocket}> {message}</option>
|
||||||
))}
|
)
|
||||||
{map(options, coresPerSocket => (
|
)}
|
||||||
<option key={coresPerSocket} value={coresPerSocket}>
|
{map(options, coresPerSocket =>
|
||||||
{_('vmCoresPerSocket', {
|
_(
|
||||||
|
{ key: coresPerSocket },
|
||||||
|
'vmCoresPerSocket',
|
||||||
|
{
|
||||||
nSockets: vm.CPUs.number / coresPerSocket,
|
nSockets: vm.CPUs.number / coresPerSocket,
|
||||||
nCores: coresPerSocket,
|
nCores: coresPerSocket,
|
||||||
})}
|
},
|
||||||
</option>
|
message => <option value={coresPerSocket}>{message}</option>
|
||||||
))}
|
)
|
||||||
|
)}
|
||||||
</select>{' '}
|
</select>{' '}
|
||||||
{this._selectedValueIsNotInOptions() && (
|
{this._selectedValueIsNotInOptions() && (
|
||||||
<Tooltip content={_('vmCoresPerSocketIncorrectValueSolution')}>
|
<Tooltip content={_('vmCoresPerSocketIncorrectValueSolution')}>
|
||||||
@ -398,7 +400,7 @@ export default connectStore(() => {
|
|||||||
<th>{_('autoPowerOn')}</th>
|
<th>{_('autoPowerOn')}</th>
|
||||||
<td>
|
<td>
|
||||||
<Toggle
|
<Toggle
|
||||||
value={vm.auto_poweron}
|
value={Boolean(vm.auto_poweron)}
|
||||||
onChange={value => editVm(vm, { auto_poweron: value })}
|
onChange={value => editVm(vm, { auto_poweron: value })}
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
|
Loading…
Reference in New Issue
Block a user