Commit Graph

348 Commits

Author SHA1 Message Date
Dominik Csapak
f36240c507 gui: pci passthrough: consider domain in PCISelector
but remove the default domain '0000' before sending to the backend,
and add it if no domain is given in the config

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-11-20 19:43:31 +01:00
Dominik Csapak
e4e36020aa gui: qemu/HDEdit: use propertyStringSet helper
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-11-06 21:12:35 +01:00
Dominik Csapak
18f57a2319 gui: qemu/HardwareView: use builtin reload function
ObjectGrid (an ancestor of PendingObjectGrid) does already have
a 'reload' function which does exactly the same, so get rid
of the local one here

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-11-06 21:12:35 +01:00
Thomas Lamprecht
417f904f78 ui: pending revert: detect parent pending grid automatically
but cache it to avoid frequent, potential costly, up() calls

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-30 15:49:31 +01:00
Thomas Lamprecht
3ee15859b2 ui: pending revert: rename baseurl config to apiurl
makes more sense and avoids confusion

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-30 15:48:33 +01:00
Thomas Lamprecht
591efb6725 ui: factor out pending changes revert button
makes no sense to have the, more or less, exact same 25 line method 5
times..

could be moved to widget TK, but that's for another time.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-30 11:48:03 +01:00
Oguz Bektas
141aba6b62 ui: qemu: update grid button status with events from correct store
as we noticed at the container side, we should use diffStore in order
to update the button status without delay.

Effectively alls ObjectGrids, and thus their descendants,
PendingObjectGrids use a DiffStore, where we have two effective
stores, a remote store and a local, in-memory, proxy store.

Co-developed-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-30 09:00:50 +01:00
Tim Marx
9d7d6ed71a gui: reset cdimage selector on change
to improve UX, disabled child fields shouldn't show validation errors
when the parent widget (radiofield) isn't selected anymore.

Signed-off-by: Tim Marx <t.marx@proxmox.com>
2019-10-25 17:40:48 +02:00
Dominik Csapak
4143529241 gui: qemu: allow move disk for EFI Disk again
with commit 0ea3b8499b we changed how
we define isUsedDisk, which was true for efidisks before, but not
after

use the existing 'isEfi' varable to include them for the move_btn
(but not the resize_btn)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-10-11 12:22:50 +02:00
Thomas Lamprecht
ea6a4b5251 ui: vm opts: clarify QGA option
To make it more clear that PVE does not somehow magically injects a
QHA into the VM, but that this can be set if one has installed the
QGA in the VM themself.

So slightly adapt the label by prepending "Use" and adding a hint for
further details.

Also ensure we call it the real name everywhere, i.e., "QEMU Guest
Agent", this makes it a bit more consistent and easier to find
information for users.

Suggested-by: Aaron Lauterer <t.lamprecht@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-10 17:50:23 +02:00
Thomas Lamprecht
cd8f0fc54b ui: refactor pveQemuBiosEdit widget
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-10 17:25:12 +02:00
Stoiko Ivanov
f71b7c28ff change .pve-hint to .pmx-hint css-class
With introducing pmx-hint to pmg as well, by adding a 'pmx-hint' css-class
to proxmox-widget-toolkit, it makes sense to use the definition everywhere.
this patch drops the .pve-hint class from pve's css and replaces all occurences
in the GUI-source.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-10-09 09:11:04 +02:00
Aaron Lauterer
9c22da325d ui: vm-options: add spice enhancements
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-10-07 16:16:34 +02:00
Stefan Reiter
06dd1330df Make CPU Model Selector a searchable grid view
Uses a ComboGrid with search feature and a column for vendor. Can be
sorted by both columns.

Default sort is as given in this file, I tried to align it as
* AMD
* Intel
* Other
alphabetically and in QEMU order (as before, seems to be release date?)
within those "groups".

Doesn't work with value set in widget definition (would need to be
preferredValue), but we always call setValue() anyway (and if we don't,
value will be '', aka the default, which is correct too), so just remove
that from ProcessorEdit.js.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 13:35:44 +02:00
Thomas Lamprecht
c570b6a96e ui: vm/efi: always allow to add EFI disk even if OVMF is not yet set
As this is annoying else, especially if the change from default to
ovmf BIOS is already a pending change..

A simple hint is enough, we do not do anything with the EFI disk if
OVMF is not set to be used anyway.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-01 09:30:06 +02:00
Aaron Lauterer
536336130a ui: qemubiosedit: add gettext to efi disk hint
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-09-30 16:46:17 +02:00
Aaron Lauterer
0d077e8150 ui: vm/usbedit: simplify USB3 handling
Enable USB3 by default. There are no restrictions anymore that the speed
of the dev must match the USB3 speed. The xhci controller can deal with
USB 2 and 1 devices. USB3 devices can be plugged in a USB2 (ehci)
controller. As discussed in [0]

When using a USB device for SPICE passthrough my tests showed that USB2
devices connecting to the xhci controller work but a USB3 device passed
via Spice cannot connect to an ehci controller (no USB3 enabled).

qemu-server 6.0-9 supports USB3 also for Spice USB passthrough. See
commit 733234b [1].

All this means we can get rid of the separate handling of USB3 and non
USB3 devices and leave the decision to the user if USB3 should be
enabled or not.

[0]: https://pve.proxmox.com/pipermail/pve-devel/2019-September/039131.html
[1]: https://git.proxmox.com/?p=qemu-server.git;a=commitdiff;h=733234be04d585febd74c655d8b82d17ebf9e133

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-26 17:02:23 +02:00
Thomas Lamprecht
d155bbc960 ui: usbselector/usbedit: make widths a bit larger
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-26 16:39:02 +02:00
Aaron Lauterer
cc9c5af4aa ui: vm/usbedit: add gettext to label
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-09-26 07:31:18 +02:00
Thomas Lamprecht
17f6a3f6f4 ui: vm/usbedit: don't use getUSBValue to avoid possible duplicate "usb3"
As getUSBValue() always added the "usb3" property if the selected
device was recognized as USB3. But we can now also pass such a device
as USB2 so lift this restriction - which also fixes a bug for USB3
selected devices with the USB3 checkbox set.

The solution also avoids the me.down query, which is nice too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-23 17:08:08 +02:00
Thomas Lamprecht
2e8f031f99 ui: vm/usbedit: code & indentation cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-23 10:01:27 +02:00
Thomas Lamprecht
7c72eb5112 ui: vm/usbedit: cleanup and refactor usb selector change
split the long ternary operation into a common if/else, to make it
readable.

Also, remove the usb3field.isDisabled check as:
1. we do not disable it anywhere anymore
2. if we would, it makes sense to do this anyhow

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-23 08:42:25 +02:00
Thomas Lamprecht
4292a318ee ui: vm/usbedit: use simple bind for radio button changes
reduces code and is more expressive

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-23 08:18:15 +02:00
Thomas Lamprecht
410313f8b2 ui: vm/usbedit: omit usb3 changes for spice completely
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-23 08:17:56 +02:00
Aaron Lauterer
4d51f6572b usb: Enable USB3 for Spice USB passthrough
Instead of having two times the check if the USB3 setting needs to be
added to the config string it is now checked at one place only.

If USB3 is checked for a non USB3 device it will be attached to the USB2
root hub of the xhci controller.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-09-23 07:44:57 +02:00
Aaron Lauterer
e7d6f69490 ui: Add online help reference to VM bios settings
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-09-19 15:07:34 +02:00
Aaron Lauterer
d2d16a78b8 ui: Add online help reference to VM display settings
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-09-19 15:07:17 +02:00
Thomas Lamprecht
f07d8e6050 ui: power menu: add more tooltips
For reset and reboot.
Shutdown and pause is pretty self-explanatory, so omit that

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-19 14:12:38 +02:00
Dominik Csapak
c48535b16c gui: qemu: add reboot button
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-09-19 13:21:17 +02:00
Thomas Lamprecht
e30cddd254 ui: vm memory: correctly set initial maxValue for balloon
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-22 14:08:50 +02:00
Thomas Lamprecht
0ea3b8499b ui: vm/Hardware: do not depent mapping of cdrom, cloudinit, .. on the CSS class
This was pretty brittle to begin with, on should not attach logic to
CSS class names or the like, if possible.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-24 18:08:12 +02:00
Thomas Lamprecht
a032a91a48 ui: vm/Hardware: convert more icons from bitmap to font awesome
since commit 03558174ef we can use the
Font Awesome icons without them being shown in the remove dialog, so
convert more to them - they are vectors and look a bit better.

Also ensure that all icons are rendered as fixed width, with fa-fw

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-24 10:48:19 +02:00
Thomas Lamprecht
fa9cdaa135 ui: vm/HW: use more font awesome icons and fix color
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-23 19:18:15 +02:00
Thomas Lamprecht
700434b2f6 pveAudioInputPanel: comment out onlineHelp doc reference for now
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-23 19:03:50 +02:00
Aaron Lauterer
171ca270a0 Add audio device to HardwareView
Adds the following:

* Menu entry to create a new audio device
  only clickable if:
    * permissions are there
    * no audio device exists
* listing in the hardwarew view

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-07-23 18:29:05 +02:00
Aaron Lauterer
da97bd3d88 Add edit dialog for audio device
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2019-07-23 18:29:05 +02:00
Stefan Reiter
0cd3abab50 fix #2265: enable discard for virtio-blk
QEMU 4.0 supports this. Guest needs to have at least Kernel 5.0 for it
to be used.

SSD emulation is still not supported AFAICT, so no change here.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2019-07-23 08:08:36 +02:00
Thomas Lamprecht
7b7ca5e1f8 ui: qemu/HWView: cloudinit: use the font-awesome provided cloud symbol
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-17 13:28:20 +02:00
Thomas Lamprecht
83b4bfc314 ui: qemu/HWView: small code cleanup for remove dialog
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-17 13:27:35 +02:00
Thomas Lamprecht
03558174ef ui: qemu/HWView: only render icon when in grid
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-17 13:26:59 +02:00
Dominik Csapak
3098f188b3 gui: fix debug-mode error
setData on an 'empty' store does not work in extjs debug mode
setting store to '{}' here does create a store on component creation
so the store is not 'empty'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-07-17 13:01:31 +02:00
Thomas Lamprecht
2711037a6f gui: smbios: followup: make declaration fully static
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-11 18:08:01 +02:00
Christian Ebner
150ad74a2c fix #2190: Base64 encode SMBIOS value strings in order to allow more characters
On some occasions e.g. license checking, the manufacturer string in the
SMBIOS settings edit has to allow characters such as whitespaces.
https://forum.proxmox.com/threads/proxmox-and-windows-rok-license-for-dell.53236/
In principle SMBIOS allows to pass any zero terminated string to the
corresponding fields in the structure type 1 (System Information).

By base64 encoding the values clashing of the config is avoided.

Relies on the corresponding patch to qemu-server to pass parameter verification
and correct parsing.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-06-11 17:42:33 +02:00
Thomas Lamprecht
06064872c2 gui: vm: add CPU flag selector with tri-state awareness
This allows to select the tri-state (enforce on, enforce off, default
from QEMU+CPU Model) for each CPU flag independently.

For this a grid with a widgetcolumn is used hosting tree radio
buttons for each state. They're marked '+' for enforce on, '-' for
enforce off and the default has no label, as it isn't easy to add in
such a way that it does not confuses people and does not looks
completely ugly.. But, to help people which have a hard time figuring
out what the states mean, a fake column was added showing the current
selected state's outcome in words.

For show casing the new nice interface add all currently supported
flags from out API-
It could be worth to add some selected CPU model awareness, so that
flags are only enabled if they can make sense with the selected
model. But one should be able to add this relative easily with this
as base.

The hardcoded flag lists is not ideal, we should try to generate this
in the future, but here already qemu-server is lacking and this is
rather independent of the fact and can be done later one just fine
too.

Note that this /is/ an *advanced* feature so not visible for all
directly, while I try to document in short what a flag does it surely
isn't perfect and to short to explain all nuances, they should give
enough pointers to know if it's relevant at all (amd / intel cpu) and
for what one should research

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 92572ead6d)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-07 17:45:33 +02:00
Dominik Csapak
2e1a8291d6 fix #2223: fix set_button_status isCDRom
value is not always a string (depending on the value that changed),
so we have to convert it to a string to have a 'match' function

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-05-31 11:03:58 +02:00
Thomas Lamprecht
10525ed71e fix #2197: ui: editing CDROM doesn't require VM.Config.Disk rights
A user which just has the default role PVEVMUser on a VM is able to
edit the CDROM, either to no media or if storage permissions are
available also to other ISOs, through the API. So reflect this again
for the WebUI. We could add a check for "VM.Config.CDROM", but that's
not really worth, if we keep in mind that the Ext.Caps state is
heuristically only.

fixes commit d35b5b2afb

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-13 17:27:49 +00:00
Dominik Csapak
d35b5b2afb fix #1814: do not enable disk related buttons for audit user
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-04-10 09:50:05 +02:00
Dominik Csapak
e09330e03f use correct icon for hibernate in cmdmenu
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-04-09 13:51:42 +02:00
Thomas Lamprecht
3a958fd5d7 ui: qemu system panel: set onlineHelp
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-04-08 17:24:32 +02:00
Thomas Lamprecht
af6390f0a9 ui: qemu: change suspend to disk icon to fa-download
it ressembles a state downloaded to disk, so quite fitting for
hibernate/suspend to disk

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-04-05 09:53:12 +02:00