Commit Graph

154 Commits

Author SHA1 Message Date
Dominik Csapak
74f2df2f5f ui: fix missing htmlEncodes
username can include some special characters, so we have
to escape them

backport from pve6

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-12 14:18:34 +02:00
Thomas Lamprecht
92572ead6d 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>
2019-06-07 16:24:26 +02:00
Dominik Csapak
c0d4a151fd ui: NodeSelector: check status field for offline nodes
the memory stat is not available if the user has no audit privilges on
/nodes/NODENAME but the status is always available

also it makes simple more sense to check if it is online not only if the
memory value is there

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-05-09 16:30:22 +00:00
Dominik Csapak
5d660cf56b gui: DiskStorageSelector: implement disabling
this patch implements disabling for the DiskStorageSelector, which
resets the storage and triggers a validity change

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-03-28 17:04:06 +01:00
Dominik Csapak
aef28e0430 add snippets content type to the gui
we only show that a storage can store snippets, but for now
we do not allow to set or upload them via the gui

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-01-31 11:05:55 +01:00
Christian Ebner
9f0b4e045b Add context menu to global search entries
This add a context menu to the entries of the global search field instead of
showing the browsers default one.
This allows to search and easily manage nodes, VMs and CTs similar to the
behaviour in the resource tree.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-01-29 14:04:10 +01:00
Dominik Csapak
6ad4be69ab gui: refactor render_full_name
this also fixes a missing  htmlEncode in UserSelector

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-11-26 12:30:30 +01:00
Thomas Lamprecht
523d5f486b api: move PCI from Scan to Hardware path
as discussed[0] lets move this to /nodes/{node}/hardware/pci

Put this in its own subfolder and adapt module names and paths in UI.

[0]: https://pve.proxmox.com/pipermail/pve-devel/2018-November/034694.html
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-11-22 14:20:09 +01:00
Dominik Csapak
02cebb1a46 gui: add MDevSelector
this is used to select a mediated device type

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-11-22 13:31:31 +01:00
Dominik Csapak
5fc4ccfb9f gui: add form/PCISelector
this adds a form field for selecting a pci device

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-11-22 13:31:31 +01:00
Thomas Lamprecht
35ce219cdc fix #1224: ui: ACLAdd: allow to filter by username
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-11-19 10:22:48 +01:00
Thomas Lamprecht
afc845791c ui: form/VMSelector: use SIMPLE mode for guest checkbox model
Switch the default mode 'MULTI' with 'SIMPLE', the same we use in the
dc/Backup guest selector. It allows to remove the 'checkOnly'
setting, which limited selection and deselection of elements on the
checkbox it self, doing nothing when clicking on rows.

Besides the friendlier and more streamlined UX this actually fixes a
bug in Firefox (confirmed in version 62, possible in other versions
too) where select/deselect di not worked when clicking in the white
area of the checkbox, but only when clicking on the surrounding
padding.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-09-11 10:25:02 +02:00
Alexandre Derumier
7dc494ab48 cpumodelselector : add EPYC
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-09-04 11:36:36 +02:00
Udo Rader
209923b3f1 ui: storage: Linux LIO/targetcli support
adding LIO option and dedicated "LIO target portal group" input field to the
"Add: ZFS via iSCSI" dialog

Signed-Off-By: Udo Rader <udo.rader@bestsolution.at>
2018-08-02 18:21:37 +02:00
Stoiko Ivanov
1662ccdbfd ui/qemu: Extend Qemu Guest agent
Change to agent now being a property_string, and including  fstrim_cloned_disks.

Co-Authored-By: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-08-02 16:20:12 +02:00
Dominik Csapak
1c73c6e524 move DiskSelector to its own file, for generic use
also set the default diskType to undefined and
change the api endpoint to /nodes/NODE/disks/list

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-08-02 12:40:45 +02:00
Thomas Lamprecht
6f32c97faf ui: vm hotplug selector: refactor for sane formatting
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-07-06 08:05:48 +02:00
Dominik Csapak
3b1cb257eb indentation fixes
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-25 17:24:49 +02:00
René Jochum
cd84df4c6e fix #1499 Implement a combobox for Permissions paths
Signed-off-by: René Jochum <r.jochum@proxmox.com>
2018-05-25 17:19:07 +02:00
René Jochum
7e3fe38af3 Modernize PVE.form.GroupSelector,
as example for future Uses.

Signed-off-by: René Jochum <r.jochum@proxmox.com>
2018-05-25 17:19:07 +02:00
Thomas Lamprecht
c48957e11e fixup: jslint errors
fix some small problems where jslint complains, introduced by
commit: 675e71d37a

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-05-16 10:05:07 +02:00
René Jochum
675e71d37a fixes #1503 Add role CRUD to the GUI.
As given in the subject this implements role create/update/delete over
the manager.

There's currently no coler highlightning for "special" roles.

Signed-off-by: René Jochum <r.jochum@proxmox.com>
2018-05-08 15:54:22 +02:00
Dominik Csapak
34c235bea6 lxc/MPEdit: rework for advanced options
this is a complete rework of the inputpanel (long overdue)
it uses a viewModel and viewcontroller to avoid the
multiple is zfs/root/bind checks and concentrate them
in one place

also some features get optimized (e.g. the noreplication checkbox)

adds a setNodename to the DiskStorageSelector so that we can bind
the nodename there

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
0718aefcc7 make clone window guest agnostic
so that we can reuse it for containers

while we do this, we also have to adapt the SnapshotSelector

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-21 15:54:32 +01:00
Thomas Lamprecht
f03db57eb6 ui: FileSelector: add setNodename to allow data binding
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-02-22 15:04:51 +01:00
Thomas Lamprecht
cb90483c5d form/FileSelector: move to declarative style
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-02-15 14:48:02 +01:00
Thomas Lamprecht
8a56fe1a87 ui: qemu: make DisplayEdit declarative and drop DisplaySelector
DisplayEdit did not get a cleanup during our ExtJS 4 to ExtJS 6
cleanup, in fact it was really touched in the last 5 years.

So refactor it to a declarative syntax, at least almost, we keep the
me.load in initComponent, just to much hassle to adress this for now.

Also purge DisplaySelector. It was a component inheriting from
KVComboBox with the possible VGA values as items only used here.
So just use a KVComboBox directly and set comboboxItems directly.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-02-09 14:46:14 +01:00
Dominik Csapak
07de011804 fix #1631: change units to binary prefix
we always expected MiB/GiB but labeled them incorrectly

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-31 14:08:34 +01:00
Dominik Csapak
369e3ecd0a fix #1635: correctly change maxIds in ControllerSelector in wizard
we want to change the maxIds value even when not rendered, since
in the wizard, the controller can change from a different panel in the
tabpanel

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-31 14:03:39 +01:00
Thomas Lamprecht
1cfd092907 RealmComboBox: use schematic declaration and ViewController
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-25 13:36:38 +01:00
Thomas Lamprecht
56a353b9e7 use RestProxy from widget toolkit
Split PVE specific models, which where not moved to the general
widget toolkit, in a separate folder: data/models/

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-25 13:36:38 +01:00
Thomas Lamprecht
09cacce778 use KVCombobox from widget toolkit
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-25 13:36:38 +01:00
Thomas Lamprecht
ce7eeea1bf use RRDTypeSelector from widget toolkit
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-25 13:36:38 +01:00
Thomas Lamprecht
896c0d5019 use Checkbox from widget toolkit
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-25 13:36:38 +01:00
Thomas Lamprecht
70fb5dc57a use BondModeSelector & BondPolicySelector from widget toolkit
widget name stayed the same, so no need to change

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-25 13:36:38 +01:00
Thomas Lamprecht
145806532d use LanguageSelector from widget toolkit
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2018-01-25 13:36:38 +01:00
Dominik Csapak
e7ade592e3 use Proxmox.Utils instead of PVE.Utils
some function are now in Proxmox.Utils instead, so we have to use that

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-01-25 13:36:38 +01:00
Dominik Csapak
bf96f60deb use IntegerField from widget toolkit
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>
2018-01-25 13:36:37 +01:00
Dominik Csapak
dbed4c1c05 use TextField from proxmox-widget-toolkit
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-01-25 13:36:37 +01:00
Dominik Csapak
0fc95a12ee use ComboGrid from proxmox-widget-toolkit
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-01-25 13:36:37 +01:00
Dominik Csapak
c6c8e2fcea add defaultSize parameter for DiskStorageSelector and set it to 8 for lxc
we had it previously on 8GB for containers, but with the refactoring,
this got lost. this patch changes this back

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-01-11 12:01:23 +01:00
Emmanuel Kasper
381828a192 Do not translate PC hardware specific terms
Signed-off-by: Emmanuel Kasper <e.kasper@proxmox.com>
2017-11-28 11:24:52 +01:00
Dominik Csapak
4d8a345568 reset FileSelector grid when changing the storage
otherwise, when the new storage returns an error, we show the content
of the old storage

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-11-14 13:27:03 +01:00
Dominik Csapak
acd0d10a2a add new DiskStorageSelector.js
this is a wrapper for selecting a storage/disk image

it is a simple container with 4 form fields inside
which can be reused, whenever we need to select a storage for a disk,
image etc.

we have code similar to this four times already
(qemu image creation, lxc mp creation, qemu cloning, qemu efidisk
creation)

so it was time to refactor this and use the storage information from the
backend instead of hardcoding values in the frontend

for this we need to pass the format=1 parameter to the storage api call,
and to not load the fileselector when it is initially disabled

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-11-14 13:27:03 +01:00
Emmanuel Kasper
41783c07d9 Render full name of VirtIO Block controller
This will hopefully reduce confusion with SCSI VirtIO controller

Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-10-19 11:46:24 +02:00
Emmanuel Kasper
5034f7833c Do not use the noVirtIO property to build the controller list
This property is only used for CDEdit, so we can deduce this from
the fact that autoselect is set to 'cdrom'

Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-10-19 11:46:23 +02:00
Emmanuel Kasper
0e09929dfe Save the components we found via down() in a variable for later reuse.
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-10-19 11:46:23 +02:00
Emmanuel Kasper
f5aea3f018 Remove unused noScsi parameter
SCSI is a valid bus for Disks and CD drives, so it should always
be appear in the bus list.

Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-10-19 11:46:23 +02:00
Emmanuel Kasper
7206af4b04 Do not use 'autoselect' as a boolean when preselecting a bus
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>
2017-10-19 11:46:23 +02:00
Thomas Lamprecht
a86b4daf7b ui: add VM ComboSelector
this is a mixture of the multi select VMSelector and the single
select pveGuestIDSelector.
Useful when a single VM must be selected but also complementary
information should be shown to the user.

Most of the times the VMID is not really useful for an user as
numbers are harder to remember and to associate as names.
So a dialog which need a VMID (e.g. HA resource addition) forced the
user to lookup the Guest Name -> Guest VMID mapping and then enter it
correctly in the respective input field.

This can be improved by using a combo grid based selector which shows
additional information in the edit window itself, can be sorted and
filtered to quickly select a guest.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Dominik Csapak <d.csapak@proxmox.com>
2017-10-16 14:54:00 +02:00