else we would get vms for wrong hosts if the nodename is a pre/postfix
of another nodename (e.g. 'abc' and 'abc123')
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
with the commit
40342aa6c4
we introduced a validator on the guestidselector, but did not
notice that the wizard checks the validity on the field change event,
but the selector gets valid/invalid in an api callback(so a little later)
with this patch, we now validate the field correctly with validate()
and also listen on the validitychange event to catch it
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
(cherry picked from commit c5dc0be54ca75a11af86e7bbf1590407157c11b1)
instead of using markInvalid, use a validator, which also marks the
field dirty and marks the form correctly invalid.
also optimize the label/error message assignments
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
we expect a gettext on a single line and to not contain any
variable/logic, so we remove the long text from it altogether (since we
do not want to translate that at the moment), and we rearrange the code
so that gettext only contains strings
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a default filter for bulk start and stop, so that only the
relevant vms are visible (stopped and started respectively)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this is a form field which is a grid for selecting vms
if nodename is given, it will filter the vms only to the given node
you can filter the grid with the column header, and only the selected
and visible items are in the value of the field
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this shows the validation status immediatly if no node is selected (for
instance because no node is online or you have only one node and open
the migration window)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
the buffered renderer does not work with auto height, and was disabled.
to enable it, we set a fixed height
when nothing is found, display 'none' to indicate nothing was found
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This allows to display a 'CT', a 'VM', or a 'CT/VM' label
to be displayed, depending on the context.
Currently when restoring a CT backup or creating a CT via the
wizard, we are asked to enter a *VM* ID, which is confusing.
since most people do not have many login realms to choose from, making
this search/editable makes no sense
but by making this non-editable, you can now click anywhere on the text
to open the options, instead of only the little arrow
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a default sort for the user, group and realmselector
so that the entries are in a consistent order
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
since we often use the kvcombobox not statically but load its store at
runtime, we need to check the store and not the comboItems
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a subclass of Ext.form.field.Number with the settings for
Integers (allowDecimals: false and allowExponential: false and default
step size 1)
and use it where we only accept integers
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
sortedList was defined twice in the function
remove the declaration at the beginning of function as declaring a var
just before using it is more similar to the rest of code
This is a complementary fix for #1105 (Create Linux VM Wizard: use scsi
as default bus/device) and add some logic to the list of controllers
presented in the ControllerSelector combo box
Since we can have IDE, SCSI, Virtio(blk) as a controller during installation,
based on OS detection and personal preferences, we can reasonably assume
on 80 % of cases it will be the same controller we want to use for the
next time we add a hardisk.
This allows backward compatibility for Linux guests which were proposed a
virtio-blk as first choice, and also helps newly created Linux VMs by proposing
SCSI.
store.findRecord returns the first match, and by default
matches the beginning of the strings not the whole
without this, with multple realms with the same name, but different
tfa settings, the login window can show the tfa input box even
when the selected realm has no tfa active
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this is ExtJS recommended practise, follows most of our
conventions and is necessary for querying
components with Ext.ComponentQuery.query() without escaping the
dots in the component widget name.
this adds a field, the globalsearchfield
its use is to search across our resources (vm,nodes,storage,pools)
quickly and from everywhere
it filters by taking each word you write, and gives
points to resources based on how often the word matches or
if it is an exact match for a field (details in source), and
sorts after this relevance number
with enter or click on an entry, you go directly to the selected
resource
also supports key up/down selecting of the entries and
toggling the search globally with ctrl+space or ctrl+shift+f
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
the hotplugselector was not good to use,
and the options were confusing (empty was the default value, etc)
now we have checkboxes for each value, and if none are selected,
hotplug is disabled
also fixes the renderer when hotplug is set to '1' which
just means the default of 'disk,network,usb'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this fixes a nasty combogrid/multiselect/storeload bug
in which the value of a combogrid gets set to a string instead
of an array, under certain circumstances
we overwrite the getRawValue method of our ComboGrid,
and on multiselect ComboGrids, we just get the value out of
me.rawValue, else we call the method of the parent class
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
before ECMA5 trailing commas in arrays and objects
are forbidden
in jslint this is an error and cannot be deactivated
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
fix various type confusion, for example:
items: {} and items: []
style: string and style: {}
also fix object['property'] access with
object.property
also fix /=/ with either '=' or /\=/ where appropriate
(/=/ can be confused with /= according to jslint)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
instead of disabling a combogrid when its store loads,
we make the gridpanel bigger, to show its loading mask
since we do not disable/enable anymore, we have no reason
to suspend/resume the validitychange event anymore
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
previously, we had a disk/memory usage column in the resource grid,
whose raw data were the bytes used, but we added a renderer
to display it as percentage
with this, the columns sorted by bytes and not by percentage,
which made the column rather confusing
with this patch, we add a real percentage column (where the
data is a float from 0 to 1) so it sorts correctly
also make the old columns show the used size in B/KiB/etc.
by default we still only show the percentage column
since the disk usage part was always zero with qemu guests,
leave it empty there
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Calling setDisabled(true) on a component makes it valid, but calling setDisabled(false) afterwards did not retrigger a validation check
This fixes a serious bug which was happening in the following
conditions, for instance in the template tab of LXC Wizard:
1) user selects a storage
2) this triggers a reload of a related combogrid
3) this combogrid is marked valid, although its value is empty and it had allowedBlank: false