public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
	Stefan Hanreich <s.hanreich@proxmox.com>
Subject: Re: [pve-devel] [PATCH manager v2 1/1] fix #4228: ui: Add checkbox to rollback dialog for automatically restarting VM/CT
Date: Mon, 12 Sep 2022 16:36:35 +0200	[thread overview]
Message-ID: <dd9b59b5-ae67-dae7-d82f-0dfdc46c585b@proxmox.com> (raw)
In-Reply-To: <20220912120008.1220711-4-s.hanreich@proxmox.com>

Am 12/09/2022 um 14:00 schrieb Stefan Hanreich:

some (short) commit message body can often be nice to have, especially if not
totally trivial (like a typo fix) and it definitively doesn't have to be a full
essay, but I yet have to see the patch here on the list where I'd feel like I
got a too lengthy commit message ;-)

> Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
> ---
> I've added a custom Window containing the dialog, since using MessageBox
> for this seemed a bit tricky. Maybe I could move the definition of the
> components outside the handler and only instantiate them there? I
> thought it was fine for now, since the Window is specific to the
> SnapshotTree anyway.

see below.

> 
>  www/manager6/tree/SnapshotTree.js | 62 +++++++++++++++++++++++++++----
>  1 file changed, 55 insertions(+), 7 deletions(-)
> 
> diff --git a/www/manager6/tree/SnapshotTree.js b/www/manager6/tree/SnapshotTree.js
> index 97268072..a6f25f19 100644
> --- a/www/manager6/tree/SnapshotTree.js
> +++ b/www/manager6/tree/SnapshotTree.js
> @@ -61,7 +61,9 @@ Ext.define('PVE.guest.SnapshotTree', {
>  	    me.mon(win, 'destroy', me.reload, me);
>  	},
>  
> -	snapshotAction: function(action, method) {
> +	snapshotAction: function(action, method, params) {
> +	    params = params || {};
> +
>  	    let me = this;
>  	    let view = me.getView();
>  	    let vm = me.getViewModel();
> @@ -75,6 +77,7 @@ Ext.define('PVE.guest.SnapshotTree', {
>  	    Proxmox.Utils.API2Request({
>  		url: `/nodes/${nodename}/${type}/${vmid}/snapshot/${snapname}/${action}`,
>  		method: method,
> +		params: params,
>  		waitMsgTarget: view,
>  		callback: function() {
>  		    me.reload();
> @@ -89,9 +92,8 @@ Ext.define('PVE.guest.SnapshotTree', {
>  		},
>  	    });
>  	},
> -
> -	rollback: function() {
> -	    this.snapshotAction('rollback', 'POST');
> +	rollback: function(params) {
> +	    this.snapshotAction('rollback', 'POST', params);
>  	},
>  	remove: function() {
>  	    this.snapshotAction('', 'DELETE');
> @@ -255,14 +257,60 @@ Ext.define('PVE.guest.SnapshotTree', {
>  	    bind: {
>  		disabled: '{!canRollback}',
>  	    },
> -	    confirmMsg: function() {
> +	    handler: function() {
>  		let view = this.up('treepanel');
> +
>  		let rec = view.getSelection()[0];
>  		let vmid = view.getViewModel().get('vmid');
> -		return Proxmox.Utils.format_task_description('qmrollback', vmid) +
> +		let label = Proxmox.Utils.format_task_description('qmrollback', vmid) +
>  		    ` '${rec.data.name}'? ${gettext("Current state will be lost.")}`;
> +

I'd rather go for using proxmoxWindowEdit here instead, gives you form, basic desired
window handling and API call for free, as the snapshotAction then could be actually
dropped by inlining the relevant code in "remove", which would be the only call side
left then, could maybe get eliminated completely by using a proxmoxStdRemoveButton
for that in a separate patch, but mostly mentioning for completeness sake, wouldn't
block this one here.

> +		let formPanel = Ext.create({
> +		    xtype: 'inputpanel',
> +		    bodyPadding: 10,
> +		    border: false,
> +		    items: [
> +			{
> +			    xtype: 'label',
> +			    html: label,
> +			},
> +			{
> +			    xtype: 'proxmoxcheckbox',
> +			    name: 'start',
> +			    margin: '5 0 0 0',
> +			    boxLabel: gettext('Start guest after rollback'),
> +			},
> +		    ],
> +		});
> +
> +		let win = Ext.create("Ext.window.Window", {
> +		    width: 400,
> +		    layout: 'fit',
> +		    title: gettext('Confirm'),
> +		    closable: true,
> +		    resizable: false,
> +		    modal: true,
> +		    buttons: [
> +			{
> +			    text: 'Yes',
> +			    handler: function() {
> +				view.controller.rollback(formPanel.getValues());
> +				win.close();
> +			    },
> +			},
> +			{
> +			    text: 'No',
> +			    handler: function() {
> +				win.close();
> +			    },
> +			},
> +		    ],
> +		    buttonAlign: 'center',
> +		    items: [formPanel],
> +		});
> +
> +		win.show();

use the `autoShow: true,` configuration for new code instead

>  	    },
> -	    handler: 'rollback',
>  	},
>  	'-',
>  	{





      reply	other threads:[~2022-09-12 14:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-12 12:00 [pve-devel] [PATCH manager/qemu-server/pve-container v2] Add checkbox for automatic restart of CT/VM after rollback Stefan Hanreich
2022-09-12 12:00 ` [pve-devel] [PATCH pve-container v2 1/1] fix #4228: add start parameter to rollback endpoint for automatic restarting of CT Stefan Hanreich
2022-09-12 14:12   ` Thomas Lamprecht
2022-09-12 12:00 ` [pve-devel] [PATCH qemu-server v2 1/1] fix #4228: add start parameter to rollback endpoint for automatic restarting of VM Stefan Hanreich
2022-09-12 14:15   ` Thomas Lamprecht
2022-09-12 12:00 ` [pve-devel] [PATCH manager v2 1/1] fix #4228: ui: Add checkbox to rollback dialog for automatically restarting VM/CT Stefan Hanreich
2022-09-12 14:36   ` Thomas Lamprecht [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dd9b59b5-ae67-dae7-d82f-0dfdc46c585b@proxmox.com \
    --to=t.lamprecht@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=s.hanreich@proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal