While we nowadays can work much better with package upgrades relating
the cluster stack it still happens that a pve-cluster upgrade can
produce a false-positive 401 (auth failure) code for a currently
valid ticket, e.g., because a pmxcfs lock was requested but the
pmxcfs was currently not mounted due an upgrade triggered restart.
A frequent case for a few false positive 401 is also a cluster
creation, especially if not done over the web GUI.
Thus add a counter, which gets set to 0 on each successful login or
ticket renewal and gets increased on each 401 error. Only show the
logged out window if we get five or more 401 responses. While 5 may
sound a bit much one needs to remember that we always have quite a
few API call in flight (resource update store, stores from current
panel ...) and thus, if one got really auth denied it will still show
quite fast (1 to 5 seconds, depending on which panel is currently
opened). Further, the backend naturally does not allows to do
anything during this time, this has no security implications
whatsoever.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Wit commit a74ba607d4 we switched over
to using the dpkg-dev provided helpers to set package version,
architecture and such in the buildsystem.
But unlike other repositories we used the version also for giving it
back over the API through the during build generated PVE::pvecfg
module, which wasn't fully updated to the new style.
This patch does that, and also cleans up semantics a bit, the
following two changed:
release is now the Debian release, instead of the "package release"
(i.e., the -X part of a full package version).
version is now simply the full (pve-manager) version, e.g., 6.0-1 or
the currently for testing used 6.0-0+1
This allows to do everything we used this information for even in a
slightly easier way (no string concat needed anymore), and fits also
with the terminology we often used in our public channels (mailing
lists, forum, website)
Remove some cruft as we touch things.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Finally make the "Create VM/CT" button distinct from the User
(earlier "Logout") button, this should make them stand out more
As main color the "Proxmox Dark Grey" from our branding guide was
choosen
https://www.proxmox.com/images/proxmox/Proxmox-Corporate-Brandguideline-2018.pdf
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
so we have a more 'web-app' like appearance for the user
the menu contains links to:
* browser localstorage settings
* password change
* tfa change
* logout
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
If we get the cluster name (successful login with '/' Sys.Audit
permissions) then display it in the resource tree's root node.
This updated on login and all ticket refreshs (every 15 minutes).
I currently have no functionallity to refresh it actively on cluster
create over WebUI, as it's not a straight forward change there.
Further, this is something which does not changes often (in
production), and we cannot detect CLI or API triggered (from non-pve
clients) cluster creations anyway.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
this is now all in the widget-toolkit and needs to be
set/read to/from there, else we possibly get an inconsistent view on
those
this fixes as issue, where after login the ResourceStore would not update
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>
Proxmox.button.Help renamed the css class for the button styling, as
this class is only used rarely and the widget toolkit does not
provides a (shared) css file itself, just rename it here too.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
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>
To make it more clear that this will always end you on the
Documentation index.
Also, multiple Help buttons which all may or may not do something
different are a bit weird/confusing - thus distinction can here be
really helpful, IMO.
We target HD ready (1280x720) as minimal target resolution where this
still fits nicely. This (or bigger) resolution is also used by our
screenshot framework for the documentation - so it also fits there.
Adapt the icon displayed to `fa-book` which resembles the one often
used for manuals and is clearer than a '?', IMO.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Dominik Csapak <d.csapak@proxmox.com>
commit 2ddb072661 removed showing the
short SHA1 commit hash in the version info field but did not
realigned the search field so that it got a asymmetric space.
Adapt the Version info minimal width so that this is again the case.
Acked-by: Dominik Csapak <d.csapak@proxmox.com>
This string is ugly and unfit for human consumption for 99% of our users.
The same information is available in a number of place in the GUI via Node
Summary, Package Versions, Subscription (Report)
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>
since we access novnc always with the NoVncIndex.pm and never in extjs
itself, we can delete this code
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this patch fixes that moving your mouse over the top help button or the
settings button, does not change your mouse cursor like on every other
link/button/etc
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
instead of having a menu with one entry, directly open the my settings
window. also change the icon from a down caret to a gear, to make it
more visible
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a menu right to the username with an entry 'my settings',
this opens a window with (for now) browser specific settings
and a place to reset them
the plan would be to add password change, 2fa setup etc here
one remark: the reset layout button reloads the window,
to really apply the reset
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Removing a node via updateTree() would cause the selection to be lost temporary
which in turn via the selectionchange listener would select an
empty content.
Now we only set a content if we have a selection.
This fix a graphical glitch where a migrated VM would not be properly
re-selected at its new position in tree.
The bug was introduced by:
Clear sensitive content when logging out fixes#1060de7eeaac1c
this patch changes configpanel class,
so that instead of creating a tabpanel,
we now are a card panel which uses a treelist
to choose the active card
this changes how the panel looks:
instead of having countless tabs on the top
we now can have a nice tree structure on the left
how the items will be interpreted by the tree
is commented in www/manager6/panel/ConfigPanel.js
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
The current position inside the Workspace is saved via the StateProvider
separately thus this clearing operation do not lose the previous selection.
As a side effect by calling setContent(null) on logout we also fix the
following bug:
when logging out while the Syslog tab of the Node panel was displayed,
you had to login twice due a to a race condition in the store
load of the Syslog panel. ( The login call could complete successfully
before a backgroup store load, causing the faild store load call
to redisplay a login window)
this makes use of the new globalsearch field and
puts it on top of the page, so that one can easily use it
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
to save space if not needed, but keep it available with one click
(even temporarily when you click the title instead of the
expand tool)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
with this patch, the split view saves its state
in the local storage, so that users don't lose this
after a refresh or even a new browser session
(only when they change browser/workstation)
if the window resizes (or refreshes),
the left/bottom panel gets resized to a sane width/height
in case this would be bigger than the viewport
to avoid an unusable interface
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>
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>
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.
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)