feat(xo-web/vm/tab-backups): open edit form in same tab (#10342)

Opening the form in a new tab reloaded the whole app, so every object
was fetched again from scratch. Until that fetch finished, the form
could not be properly auto-filled. Navigating in the same tab reuses
the already loaded objects, so the form is populated right away.
This commit is contained in:
Pierre Donias
2026-09-08 16:38:00 +02:00
committed by GitHub
parent 77d07cf4ac
commit 43f81f87e3
2 changed files with 3 additions and 7 deletions

View File

@@ -15,6 +15,7 @@
- [XO6] Allow changing which PIF a host uses for its management interface, without deleting and recreating the network config (PR [#10110](https://github.com/vatesfr/xen-orchestra/pull/10110))
- [XO6/SR] Add dedicated Storage Repository page hosts sidepanel (PR [#10140](https://github.com/vatesfr/xen-orchestra/pull/10140))
- [Rolling pool update/reboot] A pool can now skip the phase which brings the VMs back to the host they were running on, which halves the migrations of the run (PR [#10295](https://github.com/vatesfr/xen-orchestra/pull/10295))
- [XO5/Backups] Open the backup job edition form in the same tab when editing a backup job from the VM page (PR [#10342](https://github.com/vatesfr/xen-orchestra/pull/10342))
### Bug fixes
@@ -50,5 +51,6 @@
- @xen-orchestra/web minor
- @xen-orchestra/web-core minor
- xo-server minor
- xo-web minor
<!--packages-end-->

View File

@@ -407,7 +407,7 @@ class JobsTable extends React.Component {
icon: 'preview',
},
{
handler: (job, { goTo, goToNewTab, main }) => (main ? goTo : goToNewTab)(`/backup/${job.id}/edit`),
handler: (job, { goTo }) => goTo(`/backup/${job.id}/edit`),
label: _('formEdit'),
icon: 'edit',
level: 'primary',
@@ -434,10 +434,6 @@ class JobsTable extends React.Component {
this.context.router.push(path)
}
_goToNewTab = path => {
window.open(this.context.router.createHref(path))
}
_getCollection = createFilter(
createSelector(
() => this.props.jobs,
@@ -455,8 +451,6 @@ class JobsTable extends React.Component {
actions={this._getActions()}
collection={this._getCollection()}
data-goTo={this._goTo}
data-goToNewTab={this._goToNewTab}
data-main={this.props.main}
data-schedulesByJob={this.props.schedulesByJob}
data-scrollIntoLogs={this.props.scrollIntoLogs}
stateUrlParam='s'