Commit Graph

11 Commits

Author SHA1 Message Date
Dominik Csapak
013cbd6425 fix #2421: ComboGrid: correctly validate multiSelect variant
on multiSelect we have to check the values that is in the values
array, but we get the 'displaystring' in the validator so we
have to get the 'real' value (aka the underlying array of values)
before checking if they are in the store

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-11-25 18:18:43 +01:00
Tim Marx
35eec238b2 fix comboBox validation when forceSelection is true
Prevent the comboBox from displaying a validation error although
forceSelection is true. If you change a valid selection by removing
characters manually and click somewhere else, the comboBox restores
the selection with the previous value. The validation logic then
checked the restored value, but couldn't find it in the store,
because the store is still filtered with the erroneous query.

We now clear the local filter before the actual check to prevent
this.

[Thomas]:
This was fixed in the 6.2 based GPL release of ExtJS, and can be seen
as backport.

Signed-off-by: Tim Marx <t.marx@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-25 17:43:23 +02:00
Thomas Lamprecht
c59a0a3e43 combogrid: fix validation if valueField is different than displayField
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-16 12:44:33 +02:00
Dominik Csapak
94953ba8ea ComboGrid: add trigger to delete from ComboGrid
when we have a combogrid that may be empty, we now show a
little 'x' where the user can delete the content

this is not shown when the field is not allowed to be empty

we add a new css for this because triggers need a background image
with a very specific layout:

110x22px which is 5 icons in one image for the various states
(normal, hover, active, focused, focused hover)

the icon is taken from the theme-crisp
form/tag-field-item-close.png but rearranged to fit the size

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-08-13 15:37:26 +02:00
Thomas Lamprecht
1ccb53ecdb combogrid: add handling for historic set values currently not available
We can often run into situations where a value set in the past is not
valid anymore. An example could be a deleted network bridge, e.g., we
set the vNIC of a VM to 'vmbr1' but then we decide to obsolete that
and delete that one, one would now expect that the field gets marked
as invalid when editing the VM's vNIC, so add that behavior.

As sometimes this can be valid and wanted behavior (e.g., usb
passthrough, which is hot-pluggable), also add a switch do restore
the old behavior.

Note that the empty value is not handled by this change, we let the
existing "allowBlank" config switch handle that one.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-18 15:55:38 +02:00
Thomas Lamprecht
f59a7b2350 combogrid: always set the initial value, even if not found
as else one lies to the user and only creates strange behavior,
one should see the values even if not there anymore, if this is a
invalid state is left for a later patch.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-17 16:17:59 +02:00
Thomas Lamprecht
227159eca2 combogrid: add deleteEmpty and skipEmptyText
Slightly adapted from the proxmox textfield version of this

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-27 14:21:46 +02:00
Thomas Lamprecht
a8131b5bce combo grid: add setAllowBlank to help bindings
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-26 16:05:56 +02:00
Dominik Csapak
39d9914990 ComboGrid: open picker also when focusing an editable field
port commit
851c032d69ad5ae23725dd1add9e4084ebc12650
from pve-manager

commit message:

    ComboBoxes provided by UI frameworks normally show their selection
    possibilities once focused, ExtJS does this too but not on editable
    (and thus filterable) input fields. Add a logic which allows this too
    and streamlines the behavior of ComboGrid/Box like components.

    To avoid a glitch, where clicking the "picker trigger" (the down
    arrow which normally toggles the selection picker) would first focus
    the element - thus expanding it - and only then causing a toggle
    which collapses it again, we overwrite the 'Ext.form.trigger.Trigger'
    onMouseDown so that we can skip a expansion on this event.

    Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-01-11 14:48:13 +01:00
Dominik Csapak
3ab80554c6 ComboGrid: improve setting 'editable' default value
port commit
bff876ecb5f3388b7d65c491680b9a40574e4744
from pve-manager

commit message:

    This allows child classes to use another default, the initialConfig
    didn't allowed that.
    This is also the ExtJS like way to set defaults.

    Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-01-11 14:48:13 +01:00
Dietmar Maurer
066babdc65 form/ComboGrid.js: imported from pve-manager 2017-03-27 11:04:46 +02:00