Without this, the summary grid in the end of the LXC creation
wizard needs to be scrolled to see some settings.
Note that we still want to use a fixed height, so that all wizard
panels have the same height and next/previous buttons
are always displayed at the same place.
this changes the vm add window in a pool
from a VMIDSelector (a numberfield)
to a grid of vms which are currently in no pool
where you can select more than one
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
fix format of commit
f2a6ce6cf1
(space before 'load')
also fix trailing whitespaces in those files
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Witouth this we can get into issues where only the picker is visible
and the rest of the GUI is completely grey when selecting a date
with the date picker, generally this happens when a scroll field is
involved (e.g., syslog).
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This is the ExtJS 6 version from commit
59e6da2d44
Same code as there.
A issue with the date picker which can be triggered by scrolling up
and then selecting a date will be fixed in ExtJS 6.0.2 (not yet
released), a workaround is in the next patch.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
* usability improvement for enabled buttons:
in the default theme, ExtJS uses two different nuances of grey to
distinguish enabled or disabled buttons
the problem is that compared to the full black of the panels titles, it gives
the impression that everything is disabled (the contrast is not strong
enough between the two grey nuances)
the fix is to replace the dark grey of an 'enabled' button with black, similar with
what we had in ExtJS and the Classic theme
* re add menu header
this was lost when moving to crisp theme
reasoning and fix identic to
198f2d837a
by default the title in extjs6 menus have no style
this patch uses the same style as the tab headers
this deactivates template creating for lxc in the gui,
since this does currently not work reliably
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
fix the double loadMask, (it exists, because extjs has a default
loadmask for gridpanels)
also move static configuration to class definition
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
in extjs 5/6 there is a caching issue, where they
save dom elements for reuse, but the garbage collector
can set them to null
when the framework now reuses the "cached" element it is null,
and any action on it produces an error, which breaks the site
for details see the forum link in the comment
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
when we click on a node/container/vm and quickly
click on something else, there might be a race condition,
where the store finished loading and we try to change
dom elements, which are not there anymore
so we change the store.on to me.mon, which
deletes the handler when the component is gone
in the logview panel we use API2Request, where
we cannot do this, so we check if the component
is destroyed manually
also we change this whenever we change a dom element
in a callback
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
* replace scrollable with autoScroll and move to prototype body
* use 'activate' to load store on F5
* do not set a height on the StatusView component: it hides some rows,
and the framework sets a good working default height
if the selected node has its status changed between stop &
running, the node was removed and then readded
during the remove / add process the 'selected' status of the node
was lost if it has one
instead of deleting / readding the node, we update now its content
this was the default behaviour for server nodes, but not for leaf nodes
this fixes a graphical bug where starting/stopping a VM/container would lose
the current selection in the ressource tree
instead of removing the current content and setting the new
we add the new content to the next card of the content container
(which now has the card layout, same as in the wizard)
then seamlessly change the active card, and then destroy the old card
with a delay
this has three reasons:
on a change, the panel does not flicker anymore
we give the old content time to finish ajax request (avoid race
conditions)
and we (hopefully) load the new content faster as the destroy
process can take some time
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
on destroy, stop the store loading, else
we try to update dom elements which are not there anymore
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
in the event of a destroyed or stopped object/updateStore,
we do not want to execute queued requests, thus we
need to unqueue them
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
with this patch, the upload/template buttons
are disabled, when the selected storage
has the respective contents disabled
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
move static configuration to class definition
change applyIf to apply
and change show event to activate
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
the framework triggers the convert function
when you click on a grouping header
since there is no volid there, we have to check this,
otherwise we get an error
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
we move the static configuration to the class definiton
change applyIf to apply
and change the show event to activate
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
we move the static configuration to the class definition
we change the deprecated autoScroll to scrollable
we change applyIf to apply (when appropriate)
we change "new Ext..." to Ext.create
we change the event from show to activate
also we change the button height of the upload to 32
so that it matches the textfield (looks weird otherwise)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
we fix this by moving the static configuration (especially value and
displayfield) to the class definition
also we remove the scrollbar hack (it works properly now)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
the initial loading of the storage selector fires a 'change'
event via the 'onLoad' method of its parent class
at that point the value of the storage selector is empty,
and the callback function fails