Emmanuel Kasper [Mon, 15 Feb 2016 08:23:00 +0000 (09:23 +0100)]
ext6migrate: fix display of sport/dport/proto combo boxes
setting the field value of to '' would trigger
the 'change' event which would then disable
the sport/dport/proto comboboxes too early, an empty
form would have the comboboxes disabled too
instead keep the field to a null value if it is empty, but force
it to '' before sending to the pve-proxy
also makes the macro selector keyboard editable, similar to
the other comboboxes in the input panel
Emmanuel Kasper [Mon, 15 Feb 2016 08:22:59 +0000 (09:22 +0100)]
ext6migrate: set valueField as a class property
Also moves to full declarative style for
IPProtocolSelector, saves 11 lines of of boilerplate code
(works when the store is local and not pulled over the API)
Thomas Lamprecht [Fri, 12 Feb 2016 07:27:42 +0000 (08:27 +0100)]
ext6/triton: add some visual changes and fixes
They are mostly intended to save space as the "new theme", if it
gets applied, takes up space like it's worth pure gold.
Paddings get made smaller on buttons, tabs and grids.
Also let the main tree receive a sane space padding.
Further fix the height of the top info panel (the one with the logo,
PVE version, login button ...).
Also the "start/stop/more/..." buttons from the tool bar above the
navigation tab bar gets fixed.
Login panel got also some small fixes together with all input
fields.
We use simple CSS overrides to achieve this all.
Working with the scss (sass) files and rebuilding the theme would
be nicer, but as I have no intend to start working with senchas
"build system" and we self have no sane way for compiling the sass
stuff also, this is the preferred way for now.
We add a new css stylesheet so that the current manager remains
untouched by this changes.
add permissions to allow non root ceph configuration
Do not only allow root@pam to admin ceph server as some user do not
want to allow root logins and users with the Sys.Modify permission
should be able to modify ceph related stuff.
We use basically the following permissions:
Sys.Modify:
for any delete, add, modify action (POST, PUT, DELETE)
Sys.Audit and Datastore.Audit:
for any status/information view action (GET)
Sys.Log:
for viewing the Ceph log (was already implemented)
We have two exceptions creating and destroying osds. Those may only
be done by 'root@pam' for security reasons.
Also show users with any of those capabilities the ceph tab in the
web GUI.
Thomas Lamprecht [Wed, 10 Feb 2016 10:58:25 +0000 (11:58 +0100)]
use max_workers from datacenter.cfg for stopall/migrateall
If set limit the maximal worker count to the new datacenter.cfg
setting 'max_workers'.
For stopall we prefer this over the cpu count if it's set.
For migrateall we prefer the parameter but allow now to ommit
the parameter and then we use the new setting if set.
if both are not set we throw an error.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Emmanuel Kasper [Thu, 4 Feb 2016 16:01:28 +0000 (17:01 +0100)]
ext6migrate: fix minor selection bug in the ComboGrid
up to now we were only updating the picker selection when the picker
was created, which means that subsequent changes in the text field were
not propagated to the drop-down list
This patch creates a private syncSelection() method which is called each time
the picker is shown
This is roughly based on the ExtJS 4 ComboBox behaviour
Emmanuel Kasper [Thu, 4 Feb 2016 13:46:39 +0000 (14:46 +0100)]
ext6migrate: fix IPRefSelector ComboGrid
The IPrefSelector ComboGrid can have selected values which are not backed
by the component store, ie the store only contains IP aliases, but
the ComboGrid can contain an IP adress not registered as an IP alias.
In that case we should not try to update the selection in the dropdown,
as the dropdown only knows about the component store.
Implementation is similar to the syncSelection() private method of the
ExtJS4 ComboBox.
Emmanuel Kasper [Thu, 4 Feb 2016 13:46:37 +0000 (14:46 +0100)]
ext6migrate: replace unsafe pattern
using applyIf is not safe here as the tbar property has already been set
by the framework ( and anyway we would like to override any default
set by the framework )
this allows the toolbar of the component to be displayed
Dominik Csapak [Tue, 2 Feb 2016 10:43:24 +0000 (11:43 +0100)]
remove 'VZDump backup file' option from upload web gui
since we do not want to upload vzdump backup files (see bug #498),
it is confusing to expose this option in the gui, since currently
it can never succeed.
the correct way would probably allow it based on the users permissions
The last processor editing commit broke various parts of the
cpu editor window.
Most noticeably switching between the default and non-default
cpu types dealt with empty values wrongly and tried to
delete the 'cputype' property rather than the cputype
portion of the cpu property string.
Emmanuel Kasper [Thu, 28 Jan 2016 13:42:43 +0000 (14:42 +0100)]
ext6migrate: adapt the Checkbox column of the firewall panel to ExtJS6
API changes in ExtJS6 involved here:
* 'checkchange' event passes now the record index instead of the whole record
* record.fields is now an array of Field objects, before it was an Object
Emmanuel Kasper [Thu, 28 Jan 2016 09:59:25 +0000 (10:59 +0100)]
ext6migrate: remove 'comment' id from Comment column in our tables
The use of this field raise an error with ExtJS6 because it is not
unique inside the application.
Removing this is safe, because we never query the Comment column
with an id.
Emmanuel Kasper [Wed, 27 Jan 2016 13:13:00 +0000 (14:13 +0100)]
ext6migrate: fix picker dropdown on ViewSelector initial load
This fixes a nasty bug where an initial click on the ViewSelector
trigger would display the picker but hide it immediatly afterwards.
What was happening behind the scene, is that without queryMode 'local',
the store bound to the picker was loaded on each picker display.
Loading the store would then trigger our onLoad() override in ToolKit.js
which called setValue(), which fired a bunch of unwanted events
including 'collapse'.
It is safe here not to call onLoad() to set an initial value, because
the initial value is set in initComponent() (value: groupdef[0][0])
Emmanuel Kasper [Tue, 26 Jan 2016 16:15:55 +0000 (17:15 +0100)]
replace object creation via 'new' with ExtJS methods
This makes the code more homogeneous and allows us to use the ExtJS
class autoloader in the future if we want (autoloader idea: ExtJS tries to load the
JS class file over HTTP based on the class name, no need to maintain a list
of includes)
AnyEvent uses a built-in DH group defined as 'schmorp1539'
by default, which seems to trigger the bug in [1] for every
attempt of accessing the web GUI using IE11 and TLS1.2. By
switching to a bigger default DH group ('skip2048'), the
bug seems to be gone (or trigger sufficiently rarely).
Emmanuel Kasper [Mon, 25 Jan 2016 14:19:28 +0000 (15:19 +0100)]
ext6migrate: fix a long running bug where a logout from the GUI would break the workspace
If we pass true to the removeAll() , ExtJS6 will try to erase the leafes of a tree,
and then try to to iterate throuch these leaves in onNodeRemove() ( this obviously do not work)
The true parameter does not seem to be needed anyway anymore.
After a call to removeAll, the childNodes[] property of the rootNode is empty
Emmanuel Kasper [Wed, 13 Jan 2016 10:24:34 +0000 (11:24 +0100)]
ext6migrate: Update our ComboGrid component to work with ExtJS6
Instead of extending the framework ComboBox, we extend the abstract
parent class Picker, so we don't rely on private methods ( and hopefull survive the
next ExtJS upgrade )
Usability improvement:
The selection model is now a checkboxmodel, which makes more clear to the user that
we can select more than one element in the list.
Emmanuel Kasper [Thu, 10 Dec 2015 14:08:01 +0000 (15:08 +0100)]
Do not try to enforce a Picker size manually, let the framework do it
The Picker of the ComboBox, has by default a maxHeight of 300 px. If the list of elements is bigger that 300 pixels, then a scrollbar will be added.
This behaviour was broken with ExtJS4, but now works correctly with ExtJS6.
Emmanuel Kasper [Thu, 10 Dec 2015 14:08:00 +0000 (15:08 +0100)]
Ext6migrate: move static configuration from instantiation time to class declaration time.
This fixes the problem that this ComboGrid was displayed with an empty value
( similar the to the Keyboard Selection and Realm Selection in the login window)
Emmanuel Kasper [Thu, 3 Dec 2015 10:11:14 +0000 (11:11 +0100)]
Ext6migrate :remove unused column ID
An component id 'comment' is already defined for the column Comment of UserView.js causing here a conflict.
It seems ExtJS6 is more stringent about that than ExtJS4.