diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9523c1b69..be15d21c7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,7 @@
- [Backup NG] Show all advanced settings with non-default values in overview [#3549](https://github.com/vatesfr/xen-orchestra/issues/3549) (PR [#3554](https://github.com/vatesfr/xen-orchestra/pull/3554))
- [Backup NG] Collapse advanced settings by default [#3551](https://github.com/vatesfr/xen-orchestra/issues/3551) (PR [#3559](https://github.com/vatesfr/xen-orchestra/pull/3559))
- [Scheduling] Merge selection and interval tabs [#1902](https://github.com/vatesfr/xen-orchestra/issues/1902) (PR [#3519](https://github.com/vatesfr/xen-orchestra/pull/3519))
+- [Backup NG/Restore] The backup selector now also shows the job name [#3366](https://github.com/vatesfr/xen-orchestra/issues/3366) (PR [#3564](https://github.com/vatesfr/xen-orchestra/pull/3564))
### Bug fixes
diff --git a/packages/xo-web/src/common/intl/messages.js b/packages/xo-web/src/common/intl/messages.js
index 884583d0d..20210a481 100644
--- a/packages/xo-web/src/common/intl/messages.js
+++ b/packages/xo-web/src/common/intl/messages.js
@@ -1376,6 +1376,7 @@ const messages = {
'Are you sure you want to delete all the backups from {nVms, number} VM{nVms, plural, one {} other {s}}?',
deleteVmBackupsBulkConfirmText:
'delete {nBackups} backup{nBackups, plural, one {} other {s}}',
+ unknownJob: 'Unknown job',
// ----- Restore files view -----
listRemoteBackups: 'List remote backups',
diff --git a/packages/xo-web/src/common/render-xo-item.js b/packages/xo-web/src/common/render-xo-item.js
index bcb5b0e11..6f20f713b 100644
--- a/packages/xo-web/src/common/render-xo-item.js
+++ b/packages/xo-web/src/common/render-xo-item.js
@@ -317,6 +317,9 @@ const xoItemToRender = {
{backup.mode}
{' '}
{backup.remote.name}{' '}
+
+ {backup.jobName !== undefined ? backup.jobName : _('unknownJob')}
+ {' '}
{
- const remotes = keyBy(filter(_, { enabled: true }), 'id')
+ _refreshBackupList = async (
+ _remotes = this.props.remotes,
+ jobs = this.props.jobs
+ ) => {
+ const remotes = keyBy(filter(_remotes, { enabled: true }), 'id')
const backupsByRemote = await listVmBackups(toArray(remotes))
const backupDataByVm = {}
@@ -116,7 +125,10 @@ export default class Restore extends Component {
}
backupDataByVm[vmId].backups.push(
- ...map(vmBackups, bkp => ({ ...bkp, remote }))
+ ...map(vmBackups, bkp => {
+ const job = find(jobs, { id: bkp.jobId })
+ return { ...bkp, remote, jobName: job && job.name }
+ })
)
})
})
diff --git a/packages/xo-web/src/xo-app/backup-ng/restore/index.js b/packages/xo-web/src/xo-app/backup-ng/restore/index.js
index 21170805a..c9da36c6a 100644
--- a/packages/xo-web/src/xo-app/backup-ng/restore/index.js
+++ b/packages/xo-web/src/xo-app/backup-ng/restore/index.js
@@ -11,6 +11,7 @@ import { FormattedDate } from 'react-intl'
import {
assign,
filter,
+ find,
flatMap,
forEach,
keyBy,
@@ -23,6 +24,7 @@ import {
deleteBackups,
listVmBackups,
restoreBackup,
+ subscribeBackupNgJobs,
subscribeRemotes,
} from 'xo'
@@ -93,6 +95,7 @@ const BACKUPS_COLUMNS = [
// -----------------------------------------------------------------------------
@addSubscriptions({
+ jobs: subscribeBackupNgJobs,
remotes: subscribeRemotes,
})
export default class Restore extends Component {
@@ -101,13 +104,19 @@ export default class Restore extends Component {
}
componentWillReceiveProps (props) {
- if (props.remotes !== this.props.remotes) {
- this._refreshBackupList(props.remotes)
+ if (
+ props.remotes !== this.props.remotes ||
+ props.jobs !== this.props.jobs
+ ) {
+ this._refreshBackupList(props.remotes, props.jobs)
}
}
- _refreshBackupList = async (_ = this.props.remotes) => {
- const remotes = keyBy(filter(_, { enabled: true }), 'id')
+ _refreshBackupList = async (
+ _remotes = this.props.remotes,
+ jobs = this.props.jobs
+ ) => {
+ const remotes = keyBy(filter(_remotes, { enabled: true }), 'id')
const backupsByRemote = await listVmBackups(toArray(remotes))
const backupDataByVm = {}
@@ -119,7 +128,14 @@ export default class Restore extends Component {
}
backupDataByVm[vmId].backups.push(
- ...map(vmBackups, bkp => ({ ...bkp, remote }))
+ ...map(vmBackups, bkp => {
+ const job = find(jobs, { id: bkp.jobId })
+ return {
+ ...bkp,
+ remote,
+ jobName: job && job.name,
+ }
+ })
)
})
})