parent
2a71e28253
commit
99a1dbeae1
@ -8,7 +8,6 @@
|
|||||||
> Users must be able to say: “Nice enhancement, I'm eager to test it”
|
> Users must be able to say: “Nice enhancement, I'm eager to test it”
|
||||||
|
|
||||||
- [Backup/Restore file] Implement File level restore for s3 and encrypted backups (PR [#6409](https://github.com/vatesfr/xen-orchestra/pull/6409))
|
- [Backup/Restore file] Implement File level restore for s3 and encrypted backups (PR [#6409](https://github.com/vatesfr/xen-orchestra/pull/6409))
|
||||||
|
|
||||||
- [Backup] Improve listing speed by updating caches instead of regenerating them on backup creation/deletion (PR [#6411](https://github.com/vatesfr/xen-orchestra/pull/6411))
|
- [Backup] Improve listing speed by updating caches instead of regenerating them on backup creation/deletion (PR [#6411](https://github.com/vatesfr/xen-orchestra/pull/6411))
|
||||||
- [Backup] Add `mergeBlockConcurrency` and `writeBlockConcurrency` to allow tuning of backup resources consumptions (PR [#6416](https://github.com/vatesfr/xen-orchestra/pull/6416))
|
- [Backup] Add `mergeBlockConcurrency` and `writeBlockConcurrency` to allow tuning of backup resources consumptions (PR [#6416](https://github.com/vatesfr/xen-orchestra/pull/6416))
|
||||||
|
|
||||||
@ -19,6 +18,7 @@
|
|||||||
- [Plugin/auth-saml] Certificate input support multiline (PR [#6403](https://github.com/vatesfr/xen-orchestra/pull/6403))
|
- [Plugin/auth-saml] Certificate input support multiline (PR [#6403](https://github.com/vatesfr/xen-orchestra/pull/6403))
|
||||||
- [Backup] Launch Health Check after a full backup (PR [#6401](https://github.com/vatesfr/xen-orchestra/pull/6401))
|
- [Backup] Launch Health Check after a full backup (PR [#6401](https://github.com/vatesfr/xen-orchestra/pull/6401))
|
||||||
- [Backup] Fix `Lock file is already being held` error when deleting a VM backup while the VM is currently being backed up
|
- [Backup] Fix `Lock file is already being held` error when deleting a VM backup while the VM is currently being backed up
|
||||||
|
- [Tasks] Fix the pool filter that did not display tasks even if they existed (PR [#6424](https://github.com/vatesfr/xen-orchestra/pull/6424))
|
||||||
|
|
||||||
### Packages to release
|
### Packages to release
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import { addSubscriptions, connectStore, resolveIds } from 'utils'
|
|||||||
import { FormattedDate, FormattedRelative, injectIntl } from 'react-intl'
|
import { FormattedDate, FormattedRelative, injectIntl } from 'react-intl'
|
||||||
import { SelectPool } from 'select-objects'
|
import { SelectPool } from 'select-objects'
|
||||||
import { Col, Container, Row } from 'grid'
|
import { Col, Container, Row } from 'grid'
|
||||||
import { differenceBy, flatMap, groupBy, isEmpty, keys, map, some } from 'lodash'
|
import { differenceBy, isEmpty, map, some } from 'lodash'
|
||||||
import {
|
import {
|
||||||
createFilter,
|
createFilter,
|
||||||
createGetObject,
|
createGetObject,
|
||||||
@ -192,20 +192,18 @@ const GROUPED_ACTIONS = [
|
|||||||
permissions: subscribePermissions,
|
permissions: subscribePermissions,
|
||||||
})
|
})
|
||||||
@connectStore(() => {
|
@connectStore(() => {
|
||||||
const getResolvedPendingTasksByPool = createSelector(getResolvedPendingTasks, resolvedPendingTasks =>
|
const getPools = createGetObjectsOfType('pool').pick(
|
||||||
groupBy(resolvedPendingTasks, '$pool')
|
createSelector(getResolvedPendingTasks, resolvedPendingTasks => resolvedPendingTasks.map(task => task.$poolId))
|
||||||
)
|
)
|
||||||
|
|
||||||
const getPools = createGetObjectsOfType('pool').pick(createSelector(getResolvedPendingTasksByPool, keys))
|
|
||||||
|
|
||||||
return (state, props) => {
|
return (state, props) => {
|
||||||
// true: useResourceSet to bypass permissions
|
// true: useResourceSet to bypass permissions
|
||||||
const resolvedPendingTasksByPool = getResolvedPendingTasks(state, props, true)
|
const resolvedPendingTasks = getResolvedPendingTasks(state, props, true)
|
||||||
return {
|
return {
|
||||||
isAdmin: isAdmin(state, props),
|
isAdmin: isAdmin(state, props),
|
||||||
nResolvedTasks: resolvedPendingTasksByPool.length,
|
nResolvedTasks: resolvedPendingTasks.length,
|
||||||
pools: getPools(state, props, true),
|
pools: getPools(state, props, true),
|
||||||
resolvedPendingTasksByPool,
|
resolvedPendingTasks,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -216,7 +214,7 @@ export default class Tasks extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(props) {
|
componentWillReceiveProps(props) {
|
||||||
const finishedTasks = differenceBy(this.props.resolvedPendingTasksByPool, props.resolvedPendingTasksByPool, 'id')
|
const finishedTasks = differenceBy(this.props.resolvedPendingTasks, props.resolvedPendingTasks, 'id')
|
||||||
if (!isEmpty(finishedTasks)) {
|
if (!isEmpty(finishedTasks)) {
|
||||||
this.setState({
|
this.setState({
|
||||||
finishedTasks: finishedTasks
|
finishedTasks: finishedTasks
|
||||||
@ -226,22 +224,14 @@ export default class Tasks extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_getTasks = createSelector(
|
_getPoolFilter = createSelector(
|
||||||
createSelector(() => this.state.pools, resolveIds),
|
createSelector(() => this.state.pools, resolveIds),
|
||||||
() => this.props.resolvedPendingTasksByPool,
|
poolIds => (isEmpty(poolIds) ? null : ({ $poolId }) => poolIds.includes($poolId))
|
||||||
(poolIds, resolvedPendingTasksByPool) =>
|
|
||||||
isEmpty(poolIds)
|
|
||||||
? resolvedPendingTasksByPool
|
|
||||||
: flatMap(poolIds, poolId => resolvedPendingTasksByPool[poolId] || [])
|
|
||||||
)
|
)
|
||||||
|
|
||||||
_getFinishedTasks = createFilter(
|
_getTasks = createFilter(() => this.props.resolvedPendingTasks, this._getPoolFilter)
|
||||||
() => this.state.finishedTasks,
|
|
||||||
createSelector(
|
_getFinishedTasks = createFilter(() => this.state.finishedTasks, this._getPoolFilter)
|
||||||
createSelector(() => this.state.pools, resolveIds),
|
|
||||||
poolIds => (isEmpty(poolIds) ? null : ({ $poolId }) => poolIds.includes($poolId))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
_getItemsPerPageContainer = () => this.state.itemsPerPageContainer
|
_getItemsPerPageContainer = () => this.state.itemsPerPageContainer
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user