From 3834e2ef913bdf38f7d3fccc7125e1cac0abbf5c Mon Sep 17 00:00:00 2001 From: BCedric Date: Fri, 9 Jun 2017 15:55:26 +0200 Subject: [PATCH] expose vmGroup, remove subscription --- src/xo-app/home/index.js | 11 +++-------- src/xo-app/vm-group/index.js | 25 +++++++++++++------------ 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/xo-app/home/index.js b/src/xo-app/home/index.js index 330bb14e5..0fadc2760 100644 --- a/src/xo-app/home/index.js +++ b/src/xo-app/home/index.js @@ -51,8 +51,7 @@ import { startVms, stopHosts, stopVms, - subscribeServers, - subscribeVmGroups + subscribeServers } from 'xo' import { Container, Row, Col } from 'grid' import { @@ -222,8 +221,7 @@ const TYPES = { const DEFAULT_TYPE = 'VM' @addSubscriptions({ - servers: subscribeServers, - vmGroups: subscribeVmGroups + servers: subscribeServers }) @connectStore(() => { const noServersConnected = invoke( @@ -235,12 +233,9 @@ const DEFAULT_TYPE = 'VM' return (state, props) => { const type = getType(state, props) - return { areObjectsFetched: areObjectsFetched(state, props), - items: type === 'VM-group' - ? props.vmGroups - : getObjectsByType(state, props), + items: getObjectsByType(state, props), noServersConnected: noServersConnected(state, props), type, user: getUser(state, props) diff --git a/src/xo-app/vm-group/index.js b/src/xo-app/vm-group/index.js index a90a67f05..0c336b9c2 100644 --- a/src/xo-app/vm-group/index.js +++ b/src/xo-app/vm-group/index.js @@ -5,7 +5,6 @@ import { NavLink, NavTabs } from 'nav' import Page from '../page' import React, { cloneElement } from 'react' import { - addSubscriptions, connectStore, routes } from 'utils' @@ -16,7 +15,6 @@ import { import { Container, Row, Col } from 'grid' import { createGetObject } from 'selectors' import { Text } from 'editable' -import { subscribeVmGroups } from 'xo' import TabAdvanced from './tab-advanced' import TabGeneral from './tab-general' @@ -31,19 +29,22 @@ import VmGroupActionBar from './action-bar' management: TabManagement, stats: TabStats }) -@addSubscriptions({ - vmGroups: subscribeVmGroups -}) @connectStore(() => { + const getVmGroup = createGetObject() + return (state, props) => { + const vmGroup = getVmGroup(state, props) + if (!vmGroup) { + return {} + } + const vms = {} + forEach(vmGroup.$VMs, vmId => { + const getVM = createGetObject(() => vmId) + vms[vmId] = getVM(state, props) + }) return { - vmGroup: props.vmGroups ? props.vmGroups[props.params.id] : undefined, - vms: props.vmGroups - ? props.vmGroups[props.params.id].VMs.map(vmId => { - const getVM = createGetObject(() => vmId) - return getVM(state, props) - }) - : undefined + vmGroup, + vms } } })