proxmox-widget-toolkit/form/ExpireDate.js
Thomas Lamprecht 4645c3d413 form: add Proxmox.form.field.ExpireDate
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@proxmox.com>
2020-03-31 18:13:20 +02:00

35 lines
634 B
JavaScript

// 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]);
},
});