there we implemented deleteEmpty, which we can use in some cases.
this also fixes a bug in the ControllerSelector where
an empty field would be allowed (but should not)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
also make the mechanism for the flag checkboxes generic
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
but not in wizard, and default is off
(because we do not know if the cpu supports it)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
The type confusion warnings arose from string and integer concatenation,
and object properties of the name which were alternatively set with
strings and integers.
Signed-off-by: Emmanuel Kasper <e.kasper@proxmox.com>
The SKU (Stock Keeping Unit) field was never translated anyway in our po files,
probably because nobody knew what the initials meant.
Signed-off-by: Emmanuel Kasper <e.kasper@proxmox.com>
when changing between elements in the tree, either the
start or shutdown buttons were visually flashing (meaning they are
enabled/disabled for a short time and change state shortly after)
this patch fixes that
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Acked-by: Emmanuel Kasper <e.kasper@proxmox.com>
This was done previously without any kind of user visible feedback, so users
would not know that they had a Virtio SCSI controller as default controller
for Linux VMs.
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
We keep the same logic as before: once the iothread option is selected,
the SCSI controller is switched to virtio-scsi-single, until iothread
is unselected again.
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
We use the field label 'SCSI Controller'. 'Type' is redundant, otherwise
we would have Network Card Type, Display Type, Network Card type, etc ...
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
The bus selector is displayed when we add a Hard Disk or CD Drive.
When it is displayed, we *always* preselect the next available
slot on the controller of our choice.
So this test is not needed.
We keep the test on the string value of 'autoselect' to select
a bus position when adding a CD Drive.
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Allows to add an unmanaged VM to HA or to edit the HA settings of a
managed one.
Fixes: #1518
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Dominik Csapak <d.csapak@proxmox.com>
add a 'More' Button to the VM and CT Config Panel (its base panel)
and move all buttons which may result in config changes there.
After that we have separated power/migrate actions from system
affecting actions (clone, remove, convert to template).
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Dominik Csapak <d.csapak@proxmox.com>
We had a single column for the CD/DVD panel, fill the second column
with the now in size reduced OS type selector, as ISO selection and
OS type selection are tied together.
Reduces steps needed for creating a VM.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Move from the radiogroup to two comboboxes, where the base OS and
then a specific Version can be choosen.
Avoids multiple occurences of strings like "Microsoft Windows" and
saves a lot of space - which will be used to merge this panel with
the ISO selector panel in the create wizard.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
encapuslation wise it makes sense to have a helper which assembles a
os specific setting object in the OSDefaults class, where those
settings are defined.
Else we always need to check if the current OSType on the user side
of this class, which is against encapsulation.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
First, there was an additional space between "'" and ")" which lead
me to this.
I could never trigger the case where vmname is undefined, and saw
that we have a almost same default handling in data/ResourceStore.js
So, just use that one instead here - it misses the single-quotes
inside the parentheses, but as there are already said parentheses
this is visually still very OK, IMO.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
A user may set the `iothread` option and then change the bus type to
something which does not support it (sata, ide), while we disable
it the previously set value remains, which is confusing.
An user could think he coulkd trick the Wizard into using iothreads
for SATA/IDE but we just ignore the value in this case.
Set iothread to false in the case it gets disabled.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
If not, the following could happen:
* user has a VM with two disks attached to a LSI controller
* adding a third disk, he notices the iothread option, and clicks it
* the scsihw type for all disks is changed now to virtio-scsi-single
* on next cold restart, STOP 0x0000007B INACCESSABLE_BOOT_DEVICE for a Windows VM
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
It isn't needed as its obvious that the table below show the
configuration. It just takes away space.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
this hides not usuable buttons for qemu
e.g. start/shutdown for templates
migrate for non-cluster setups
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Camel Case names for component alias follow Ext recommended practises
and are used otherwise everyelse in the code base.
No functionnal changes, aliases for these components were not used
anyway.
This will allow to disable replication, when for instance we
add a disk on a non-replicatable storage.
The option is hidden in the wizard, because at that time no VM
replication has been set.
there were a number of problems in how we reselected vms when they
migrated and selected:
we relied on the data in the configpanel to be static, but since
pveselnode is a reference, it actually changes when the resourcestore
changes
also, handling the reselection as a response to the statusstore failure
is very inconsistent, because we know exactly when a vm moves node in
the tree
this patch removes the whole configpanel vm migration code,
and lets the tree handle it
for this, we have to check if we have to reselect the entry,
deselect it manually and after the treeupdate reselect it
also in the right click selection check we have to check if it is
already selected, else the next selection will get canceled
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
the edit window has 3 radiobuttons (spice,device,port)
and a checkbox for usb3 (which gets disabled and checked
if you choose a usb3 device)
also it makes use of the help feature
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
By default when no target storage is selected in the clone panel, the clone
will use the same storage*s* as the source.
This was not obvious to guess that from the panel.
Up to now the Migrate function had a first class button in the toolbar,
but the Clone function didn't.
With this button the toolbar still fit correctly in a smaller
1280 pixel wide display.
This allows to add the components in each column in the order they
appear in the Clone Window.
References from child components are kept in an object in the parent
component so it should be the same performance-wise (contrary to to Ext.ComponentQuery
which is doing DOM parsing)
The pool membership relates here to the VM membership, not
the storage membership, so it makes sense to move it closer
to the VM ID / VM name form fields.
The snapshot selector was known to confuse first time pve users.
Some wondered that they had no snapshot called 'current' in their
snapshot trees, and other thought that snapshots would be included
in the copied image.
So before displaying the Clone Window, do an API call to verify
if the source VM has snapshots.
Until now we disabled the submit button, based on
the feature API call where we tested if the selected VM, and its snapshot
can be used as the source of a clone.
This had the following problems:
* the feature test for copy clone / linked clone always returned true,
since the passed paramaters were already filtered before user input
(ie we only allowed a linked clone to be selected if the source VM is
a template, or a snasphot to be selected if existed on source VM)
* the guest ID input field was not validated
With the current patch, the validation is now made on each of the form
fields. verifyFeature() is still used to populate a list of valid nodes
passed to the Node Selector.
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>
extjs saves the state including the sorter, but cannot serialize the
sorter function. when restoring the state, it is not a valid sorter,
so we delete it before saving
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.
when using fixed memory size, we implicitly deleted shares and
ballon, which removed a (manually) set balloon: 0,
to be able to set this via the gui, we add a checkbox to the fixed
memory edit (using variable memory always needs ballooning)
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>
this patch moves the onlineHelp ids into the javascript classes, instead
of defining them where we use the classes
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
(this means: rtl8139 as nic and lsi as hardware controller)
XP & 2003 ISO E1000 drivers are missing or do not work with Qemu
(source: https://pve.proxmox.com/wiki/Windows_2003_guest_best_practices)
(source: https://pve.proxmox.com/wiki/Windows_XP_Guest_Notes)
The lsi SCSI controller was the default SCSI controller until recently and works with Win2003.
(NB: An IDE controller is still selected during installation for these OSes)
The aim is to provide an out-of-the box besser experience when using the Create Wizard.
NB: we have a distinct OS type between wxp and w2k3 in QemuServer.pm but since they
use the same defaults we can still wxp for both of those.
since we introduced the vertical menus,
each panel is about 30px too wide for having
two side by side with a 1920x1080 resolution
this patch changes, the paddings/sizes so that
this fits again, at the cost of about 30 pixels width
per panel
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
instead of setting virtio-scsi for all newly created VMs, pass the
OS Optimal SCSI Controller to pveQemuCreateWizard which will
add it as an hidden paramater just before POSTing the wizard data
to the API.
when seabios is selected, we do not want to simply
disable the add efi button, because it is not clear
why it is disabled
so we give a meaningful error message instead
the button is still 'just' disabled when there
is already an efidisk, because then it is clear
that you alread have one
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
with the reorganizing of the tabs to
the treelist, we forgot to add /firewall to some
urls, making the url for source/destination invalid
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a new button "efi disk" to the
qemu hardware add menu
this is only enabled if the vm has ovmf enabled and
no active efidisk
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this will be used to add an efidisk,
mostly copied from hdedit, but stripped down,
because we do not use most of the functionality here
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
since we do not use tabpanels anymore,
the hide calls and listeners do nothing,
so we can drop them
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
use new tree functionality of configpanel
move options,monitor,console under hardware (now system)
move firewall subpanels into tree
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
When basic capabilities are missing, don't display the corresponding actions in
the tree menu.
Note that we *hide* the corresponding actions, instead of disabling by greying
out the menu command. Disabling here does not make sense, since a low privilege
user has no way to reenable the menu commands by himself.
This is mainly a usability improvement, as the real capabilities test is done in
the backend.
virtio-blk and virtio-net have been in the kernel since 2.6.25 released in 2008, so
it safe to assume distributions using the l26 type will have these drivers.
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.
we mistakenly sent
'name:'
instead of:
'delete:name'
in case of an empty name of qemu guest
which lead to an error message that it is
not a valid dns name
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
since most of the information on the summary page is
irrelevant for templates (e.g. status,ha,using memory,graphs, etc),
we only show just the information which is available and helpful
since we then have the vertical space, we move the notes panel
below the statuspanel, to allow visually more space for the description
(which makes sense for a template)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
it makes more sense to define the padding in context,
rather than directly in the component
especially if we want to use this panel elsewhere in the future
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
since we cannot create templates with existing snapshots,
and we cannot take snapshots of templates, showing
the tab on templates makes no sense
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
The framework value of 100 is not enough for many of our description
fields.
Setting this at the parent component level allow to remove
the end component setting.
this patch fixes an access to an undefined value
if a disk/cd/network device was pending
also improve how this is displayed:
instead of
****
undefined
new value
****
show just the new value
this occured when having a new disk under pending,
or having a disk removal under pending
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this patch checks if only the bootdisk changed,
using the multikey funcionality
also use this in the revert button handler,
to revert the bootdisk also
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>
refactor the test for the bootdisk, to make future changes easier,
also, only allow one bootdisk to be selected
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
we mistakenly did not reset the originalvalues after the inital
load, which meant that on reset we would not get the correct values
furthermore we have to suspend only the change event and not all,
otherwise the functions for enabling/disabling the ok/reset buttons
do not trigger (on validitychange and dirtychange)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
changed the way the boot order selection behaves:
now when choosing a value which already is chosen elsewhere,
switch them
also when assigning any device as none, move the remaining devices up
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
change the order of the contextmenu items to
group functions, also introducing separators
like this:
***
power options
***
moving options
***
console
***
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
start button should be disabled when suspended
use 'file' icon instead of 'sticky-note'
to be consistent with tree icons
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this patch makes use of font-awesome for
lxc/qemu action buttons (start/shutdown etc.)
node actions buttons (restart/shutdown etc.)
and lxc/qemu cmdmenus
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
uses the new split button for the shutdown action
to reduse the number of buttons, and reduce confusion
also make the stop button 'dangerous'
(shows just a different symbol on the confirm dialog)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>