[pve-devel] applied: [PATCH proxmox-widget-toolkit] form: add Proxmox.form.field.ExpireDate
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Mar 31 18:13:53 CEST 2020
Behaves like a 'datefield' but treats the 0/empty value as "never",
and sets all defaults for behaving like one would expect from a date
expire field.
This allows to replaces hacks (e.g. [0]) from our various expire date
fields, mostly in PVE/PMG user accounts, and also for the soon to be
applied API token gui.
[0]: https://git.proxmox.com/?p=pve-manager.git;a=blob;f=www/manager6/dc/UserEdit.js;h=40c4044fd9364c9bcb8787507068378ed9936f67;hb=806edfe19f049f07db2628c68e4e5702bbedd9d7#l159
Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
Makefile | 1 +
form/ExpireDate.js | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
create mode 100644 form/ExpireDate.js
diff --git a/Makefile b/Makefile
index 7aa7f73..703b570 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,7 @@ JSSRC= \
data/ObjectStore.js \
data/RRDStore.js \
data/TimezoneStore.js \
+ form/ExpireDate.js \
form/IntegerField.js \
form/TextField.js \
form/DateTimeField.js \
diff --git a/form/ExpireDate.js b/form/ExpireDate.js
new file mode 100644
index 0000000..61ff96f
--- /dev/null
+++ b/form/ExpireDate.js
@@ -0,0 +1,34 @@
+// treats 0 as "never expires"
+Ext.define('Proxmox.form.field.ExpireDate', {
+ extend: 'Ext.form.field.Date',
+ alias: ['widget.pmxExpireDate'],
+
+ name: 'expire',
+ fieldLabel: gettext('Expire'),
+ emptyText: 'never',
+ format: 'Y-m-d',
+ submitFormat: 'U',
+
+ getSubmitValue: function() {
+ let me = this;
+
+ let value = me.callParent();
+ if (!value) value = 0;
+
+ return value;
+ },
+
+ setValue: function(value) {
+ let me = this;
+
+ if (Ext.isDefined(value)) {
+ if (!value) {
+ value = null;
+ } else if (!Ext.isDate(value)) {
+ value = new Date(value * 1000);
+ }
+ }
+ me.callParent([value]);
+ },
+
+});
--
2.20.1
More information about the pve-devel
mailing list