public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com, pmg-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH widget-toolkit] datetimefield: fix changing date to end of month from short months
Date: Tue, 27 Feb 2024 14:23:24 +0100	[thread overview]
Message-ID: <20240227132324.948467-1-d.csapak@proxmox.com> (raw)

When selecting a new date, we get a date object from the currently
selected date before the change. If that month has less days than what
was selected for the new month, `setDate` will wrap that to the
following month since the old month is still selected there.

For example:

select any date in april (has 30 days)
then select the 31th of january

this will actually select the 1st of january since we first get

setDate: 20xx-04-XX -> 20xx-04-31 (wrap) -> 20xx-05-01
setMonth: 20xx-05-01 -> 20xx-01-01

To fix this, use the additional parameters of setFullYear[0] to set
all of them simultaneously

0: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setFullYear

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 src/form/DateTimeField.js | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/form/DateTimeField.js b/src/form/DateTimeField.js
index 4bfa9bd..ea09f8a 100644
--- a/src/form/DateTimeField.js
+++ b/src/form/DateTimeField.js
@@ -24,9 +24,7 @@ Ext.define('Proxmox.DateTimeField', {
 			return;
 		    }
 		    let datetime = new Date(this.get('datetime'));
-		    datetime.setDate(date.getDate());
-		    datetime.setMonth(date.getMonth());
-		    datetime.setFullYear(date.getFullYear());
+		    datetime.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
 		    this.set('datetime', datetime);
 		},
 	    },
-- 
2.30.2





             reply	other threads:[~2024-02-27 13:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-27 13:23 Dominik Csapak [this message]
2024-02-27 13:34 ` [pve-devel] applied: [pmg-devel] " Thomas Lamprecht

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=20240227132324.948467-1-d.csapak@proxmox.com \
    --to=d.csapak@proxmox.com \
    --cc=pmg-devel@lists.proxmox.com \
    --cc=pve-devel@lists.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