feat(xo-web/self-service): add the internal networks to the networks' select (#2664)
This commit is contained in:
parent
89e25c9b81
commit
80187e2789
@ -19,6 +19,7 @@ import React from 'react'
|
|||||||
import remove from 'lodash/remove'
|
import remove from 'lodash/remove'
|
||||||
import renderXoItem from 'render-xo-item'
|
import renderXoItem from 'render-xo-item'
|
||||||
import ResourceSetQuotas from 'resource-set-quotas'
|
import ResourceSetQuotas from 'resource-set-quotas'
|
||||||
|
import some from 'lodash/some'
|
||||||
import Upgrade from 'xoa-upgrade'
|
import Upgrade from 'xoa-upgrade'
|
||||||
import { Container, Row, Col } from 'grid'
|
import { Container, Row, Col } from 'grid'
|
||||||
import { createGetObjectsOfType, createSelector } from 'selectors'
|
import { createGetObjectsOfType, createSelector } from 'selectors'
|
||||||
@ -254,10 +255,12 @@ export class Edit extends Component {
|
|||||||
|
|
||||||
_updateSelectedPools = (newPools, newSrs, newNetworks) => {
|
_updateSelectedPools = (newPools, newSrs, newNetworks) => {
|
||||||
const predicate = object => includes(resolveIds(newPools), object.$pool)
|
const predicate = object => includes(resolveIds(newPools), object.$pool)
|
||||||
|
const internalNetworkPredicate = network =>
|
||||||
|
predicate(network) && isEmpty(network.PIFs)
|
||||||
|
|
||||||
this.setState(
|
this.setState(
|
||||||
{
|
{
|
||||||
nPools: newPools.length,
|
internalNetworkPredicate,
|
||||||
pools: newPools,
|
pools: newPools,
|
||||||
srPredicate: predicate,
|
srPredicate: predicate,
|
||||||
vmTemplatePredicate: predicate,
|
vmTemplatePredicate: predicate,
|
||||||
@ -272,20 +275,17 @@ export class Edit extends Component {
|
|||||||
newSrs,
|
newSrs,
|
||||||
this.props.hostsByPool
|
this.props.hostsByPool
|
||||||
)
|
)
|
||||||
const networkPredicate = network => {
|
const networkPredicate = network =>
|
||||||
let kept = false
|
this.state.internalNetworkPredicate(network) ||
|
||||||
forEach(
|
some(
|
||||||
availableHosts,
|
availableHosts,
|
||||||
host => !(kept = intersection(network.PIFs, host.PIFs).length > 0)
|
host => intersection(network.PIFs, host.PIFs).length > 0
|
||||||
)
|
)
|
||||||
return kept
|
|
||||||
}
|
|
||||||
|
|
||||||
this.setState(
|
this.setState(
|
||||||
{
|
{
|
||||||
availableHosts,
|
availableHosts,
|
||||||
networkPredicate,
|
networkPredicate,
|
||||||
nSrs: newSrs.length,
|
|
||||||
srs: newSrs,
|
srs: newSrs,
|
||||||
},
|
},
|
||||||
() => this._updateSelectedNetworks(newNetworks || this.state.networks)
|
() => this._updateSelectedNetworks(newNetworks || this.state.networks)
|
||||||
@ -418,7 +418,7 @@ export class Edit extends Component {
|
|||||||
<Col mediumSize={4}>
|
<Col mediumSize={4}>
|
||||||
<SelectVmTemplate
|
<SelectVmTemplate
|
||||||
autoSelectSingleOption={false}
|
autoSelectSingleOption={false}
|
||||||
disabled={!state.nPools}
|
disabled={isEmpty(state.pools)}
|
||||||
hasSelectAll
|
hasSelectAll
|
||||||
multi
|
multi
|
||||||
onChange={this.linkState('templates')}
|
onChange={this.linkState('templates')}
|
||||||
@ -430,7 +430,7 @@ export class Edit extends Component {
|
|||||||
<Col mediumSize={4}>
|
<Col mediumSize={4}>
|
||||||
<SelectSr
|
<SelectSr
|
||||||
autoSelectSingleOption={false}
|
autoSelectSingleOption={false}
|
||||||
disabled={!state.nPools}
|
disabled={isEmpty(state.pools)}
|
||||||
hasSelectAll
|
hasSelectAll
|
||||||
multi
|
multi
|
||||||
onChange={this._updateSelectedSrs}
|
onChange={this._updateSelectedSrs}
|
||||||
@ -442,11 +442,13 @@ export class Edit extends Component {
|
|||||||
<Col mediumSize={4}>
|
<Col mediumSize={4}>
|
||||||
<SelectNetwork
|
<SelectNetwork
|
||||||
autoSelectSingleOption={false}
|
autoSelectSingleOption={false}
|
||||||
disabled={!state.nSrs}
|
disabled={isEmpty(state.pools)}
|
||||||
hasSelectAll
|
hasSelectAll
|
||||||
multi
|
multi
|
||||||
onChange={this._updateSelectedNetworks}
|
onChange={this._updateSelectedNetworks}
|
||||||
predicate={state.networkPredicate}
|
predicate={
|
||||||
|
state.networkPredicate || state.internalNetworkPredicate
|
||||||
|
}
|
||||||
required
|
required
|
||||||
value={state.networks}
|
value={state.networks}
|
||||||
/>
|
/>
|
||||||
|
Loading…
Reference in New Issue
Block a user