Fiona Ebner [Fri, 16 Jun 2023 13:42:35 +0000 (15:42 +0200)]
apt repositories: add production ready warnings for Ceph repositories
Could've been done for the test repository already, but now that there
is a split between no-subscription and enterprise it becomes even more
relevant.
Reported-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Fiona Ebner [Fri, 9 Jun 2023 14:16:25 +0000 (16:16 +0200)]
apt repositories: fix typo for getting the default unknown text
Could lead to a type error with classifyOrigin when there is a
repository that doesn't have an InRelease file and cannot be detected
as Debian/Proxmox origin from its URL. For me, it triggered with the
element.io repository after changing to bookworm (which currently
doesn't exist yet) and running apt update.
tfa: improve UX for recovery keys and when none are left
If we get an empty challenge, tell the user to contact an
administrator as it means no 2nd factors and no recovery
keys are available.
Currently if only 1 key was available and it had a high ID,
we'd show something like: "Recovery keys available: 9,
Warning, less than 4 keys available."
Let's start off with the warning, and then be explicit about
the IDs.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Fiona Ebner [Mon, 5 Jun 2023 15:43:12 +0000 (17:43 +0200)]
apt repositories: detect mixed suites before major upgrade
Usually, differing suites already produce warnings/errors, but before
a major upgrade the current and the next suite are both valid. Mixing
them is an issue though.
Max Carrara [Wed, 15 Mar 2023 16:26:27 +0000 (17:26 +0100)]
toolkit/utils: set SameSite attr of auth cookie to 'strict'
Overrides 'Ext.util.Cookies', optionally allowing the SameSite
attribute of cookies to be defined. Using this override, the SameSite
attribute of the auth cookie is now set to 'strict', prohibiting the
cookie from being sent along in cross-site sub-requests or when the
user navigates to a different site.
Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Christian Ebner [Thu, 23 Mar 2023 14:42:02 +0000 (15:42 +0100)]
DateTimeField: Extend and refactor to make field value bindable
Extends the date time field so that bindings are updated on value changes.
Also adds a config to disable child components and avoid modification of
current values by cloning the referenced object for min/max value calculation.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
markdown parser: allow setting target tag for links
If one really want's to force a link to open in a new tab (or window,
depending on the browser settings).
Note that we don't set target to _blank by default for links, as
opening in a new tab can already simply be done via a middle-click on
the link without that, but once the target is set opening in the same
tab cannot easily be done, i.e., without a target set the reader has
more freedom and flexibility.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
fix #4756: markdown notes: allow any valid URL for a tags
As anchor elements cannot load things into the current browsing
context and are not necessarily more dangerous to users compared to
HTTP(S) links, which we allowed since adding markdown rendering in
the first place.
Allows adding short-cuts for virtual guest resources, like RDP or SSH
links.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
tfa: paperkey: cleanup iframes for printing after window close
similar as recently done for the PBS storage add/edit window in
pve-manager
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
[ TL: refer to same change as done in pve-manager ] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 25 May 2023 07:47:32 +0000 (09:47 +0200)]
buildsys: improve resolving package meta info
use the full version for the cache invalidation technique and fall
back to the commit ID and current time.
With that we can drop the exports in the top-level makefile, which
would only work for local direct builds anyway, but not for building
from DSC source package.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dominik Csapak [Fri, 31 Mar 2023 10:04:51 +0000 (12:04 +0200)]
form: combo grid: use correct method to initialize the picker
'createPicker' does create the picker, but saves no reference to it
in the owning field, Instead, 'getPicker' should be used for that,
since that does all the necessary initialization, and actually
assigns the created picker to the field's me.picker variable so that
the pickers lifetime can be successfully tracked and enforced.
Without this patch, we leak the picker being created every time a
combo grid is created.
Stefan Sterz [Wed, 5 Apr 2023 08:08:05 +0000 (10:08 +0200)]
dark-mode: improve apt repo group header contrast ratios
make the group headers darker, so that they have some contrast with
the surrounding rows. also add back the border at the bottom. both
changes improve the legibility of the table.
Stefan Sterz [Wed, 5 Apr 2023 08:08:03 +0000 (10:08 +0200)]
dark-mode: fix the focused state for background image grid icons
some icons in grids are background images for the whole grid element.
so we need to filter the entire element, which also means that any
background or inner border color would get filtered too. this inverts
the focused border on inner elements and the focused background so
that it looks correct when inverted again.
Thomas Lamprecht [Tue, 28 Mar 2023 15:47:34 +0000 (17:47 +0200)]
window: ldap auth edit: set view-model form data explicitly on edit
Fix a race that shows up in chrome/chromium by setting the data in
the view-model that is binded to form fields explicitly on edit, this
avoids a race where the default declared in the viewModel data got
applied after the form data was set, thus having the state out of
sync and so marking the field potentially as dirty even if it wasn't.
Reported-by: Dominik Csapak <d.csapak@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Tue, 28 Mar 2023 15:42:49 +0000 (17:42 +0200)]
window: ldap auth edit: avoid relying on the default bind property
When using a string as bind config ExtJS maps this to the property
defined by the components defaultBindProperty, which is a bit to
subtle for my taste.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Friedrich Weber [Fri, 24 Mar 2023 09:02:30 +0000 (10:02 +0100)]
fix #4612: mobile: avoid crash due to missing getProxy method
A previous commit (51083ee) added an override of the internal ExtJS
method `Ext.data.Store.onProxyLoad` in order to fix a race condition.
This override calls `Operation.getProxy`. However, this method is not
available on Sencha Touch. As a consequence, the mobile UI was
broken.
This commit modifies the override such that it has no effect in the
mobile UI.
Thomas Lamprecht [Fri, 24 Mar 2023 10:51:35 +0000 (11:51 +0100)]
language selector: increase only picker list view
As that's what matters for the selection, having parts of the already
selected language cut off is not really a big deal as either one
knows the language and the initial native part is enough or the
picker needs to be opened for changing selection anyway.
But, we can give the field itself a bit more space by reducing the
label width to 75, which is enough for all languages as grepping our
PO files for "Language" and their translation, it seems that the
widest one comes from Euskara (Basque) with its "Hizkuntza" having 9
characters.
This way we avoid having to many different
Fixes: 454ff6e ("language selector: increase field width") Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Noel Ullreich [Thu, 23 Mar 2023 14:44:25 +0000 (15:44 +0100)]
language selector: increase field width
With the new translations and layout, the width of the dropdown menu
needs to be increased so that the languages are all on the same line.
This width might need to increased in the future if translations were
to create a line break.
Signed-off-by: Noel Ullreich <n.ullreich@proxmox.com>
[ T: reflow message and reword subject a bit ] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Noel Ullreich [Thu, 23 Mar 2023 14:44:24 +0000 (15:44 +0100)]
language selector: translate entries to both native and localized
Languages used to be hardcoded to English, change that to both the
native language plus writing system along with their translation in
the currently selected language.
Signed-off-by: Noel Ullreich <n.ullreich@proxmox.com>
[ T: drop redundant info from subject and reword a bit ] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Stefan Sterz [Thu, 23 Mar 2023 15:26:56 +0000 (16:26 +0100)]
fix #4610: add a small white padding to the totp qr code
some qr code readers need a white "quiet zone" around the main qr
code. otherwise, they won't be able to scan it at all which made it
impossible to scan the totp qr code on certain devices.
Stefan Sterz [Thu, 23 Mar 2023 15:26:55 +0000 (16:26 +0100)]
dark-mode: improve contrast ratios on the mask message
this removes the transparent background of the masks message box. this
should help improve the contrast between the background and text.
also sets an appropriate border color to make it stand out more.
Stefan Sterz [Thu, 23 Mar 2023 15:26:53 +0000 (16:26 +0100)]
dark-mode: color the custom grid and tree icons
this wasn't noticed before because usually vms would either be running
or stopped/offline/unknown etc. and there the colors are set
separately. however, in e.g., the backup view's missing backups
window these weren't colored properly. so this commit sets a default
color.
Thomas Lamprecht [Tue, 21 Mar 2023 15:08:57 +0000 (16:08 +0100)]
rename "Theme" selector to "Color Scheme"
Having "Color" added makes it easier to translate (i.e. Farbschema,
配色) and at least as understandable as Theme, so change it,
Suggested-by: Markus Frank <m.frank@proxmox.com>
[ T: while Markus suggested Color Scheme, the hive-mind opted for
this ] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Stefan Sterz [Tue, 21 Mar 2023 14:15:41 +0000 (15:15 +0100)]
dark-mode: set the background mask to `background-darker` again
this removes an issue where the mask would look awkward and
inconsistent (e.g., in the quarantine view, the retention tab of a
zfs storage etc). also makes the shadow a big bigger to be closer to
crisp and also to improve contrast ratios
Stefan Sterz [Mon, 20 Mar 2023 09:02:09 +0000 (10:02 +0100)]
dark-theme: let the background "shine through" mask more
this makes the background mask a bit brighter and more see-through to
make it possible to read values from behind the mask, if needed. it
also adds a more visible shadow to windows so that the stand out more
at the same time.
Lukas Wagner [Fri, 17 Mar 2023 08:47:22 +0000 (09:47 +0100)]
auth ui: fix `value not defined in enumeration` error
...when editing LDAP realm sync settings and only a single property is
empty and thus to be deleted (e.g. values.delete = "filter").
If `delete` is a simple string and not an array,
`Proxmox.Utils.delete_if_default` simply creates a comma-separated list,
(e.g. value.delete = "filter,sync-attributes").
When the properties from the other panel are evaluated and added to the
the `delete` property, comma-separated list format is not considered,
leading to a final value for `delete` that could look like this:
value.delete = {
"server2",
"comment",
"filter,sync-attributes"
}
This commit fixes this by splitting `delete` in case it is a string.
Reported-by: Friedrich Weber <f.weber@proxmox.com> Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Lukas Wagner [Fri, 17 Mar 2023 08:47:19 +0000 (09:47 +0100)]
auth ui: add LDAP sync UI
Taken and adapted from PVE.
Changes:
- Removed fields that are irrelevant for PBS for now (PBS has no
groups yet). If PVE is adapted to use the implementation from the
widget toolkit, the fields can simply be readded and somehow
feature-gated so that the fields are only visible/editable on PVE
Lukas Wagner [Fri, 17 Mar 2023 08:47:18 +0000 (09:47 +0100)]
auth ui: add LDAP realm edit panel
The panel was mostly taken from from PVE, but altered slightly:
- bind-dn and bind-password are displayed under "General"
and not under "Sync". For some servers, we need to be bound
to lookup a user's domain from a given user id attribute.
In PVE, the bind-dn and bind-password fields are under
"Sync", which is a bit confusing if a user is not interested
in automatic user syncing.
- There is a 'anonymous search' checkbox. The value is not persisted
in the configuration, it merely enables/disables the
bind-dn and bind-password fiels to make their intent a bit more
clear.
- Instead of a 'secure' checkbox, a combobox for TLS mode is shown.
This way users can select between LDAP, STARTLS and LDAPS.
In PVE, the 'secure' config parameter is deprecated anyway, so
I took the opportunity to replace it with the 'mode' parameter
as described.
- Parameters now consistently use kebab-case for naming. If
PVE is modified to use the same panel, some sort of adapter
will be needed.
Lukas Wagner [Thu, 26 Jan 2023 10:47:10 +0000 (11:47 +0100)]
repo view: replace non-clickable checkbox with icons
From a usability view, having a checkbox that is not clickable is pretty
misleading, especially if the visual style is exactly the same as in
other places in the UI where the checkbox is functional.
Stefan Sterz [Fri, 10 Mar 2023 13:08:36 +0000 (14:08 +0100)]
dark-theme: visually remove the border around the pve resource tree
by setting the color of the border of the resource tree to the panel
background color, it doesn't appear visually anymore while keeping
alignments in place.
Stefan Sterz [Fri, 10 Mar 2023 13:08:35 +0000 (14:08 +0100)]
dark-theme: remove thicker borders around content
previously the dark theme used thicker borders in certain places to
space out the content a bit more. this removes them again to make the
appearance more consistent with "crisp".
Stefan Sterz [Fri, 10 Mar 2023 13:08:34 +0000 (14:08 +0100)]
dark-theme: re-work buttons colors to appear dimmer
this dims buttons further by removing pure white text color and
adjusting backgrounds and border accordingly. it also keeps the help
buttons brighter than other buttons to draw (possibly confused) users
to them.
Stefan Sterz [Fri, 10 Mar 2023 13:08:32 +0000 (14:08 +0100)]
dark-theme: fix summary row background
previously an "!important" was missing from the `background-color`
property. this meant that the background color wasn't properly
overridden. the "!important" is necessary as it is also used in the
light theme.
Dominik Csapak [Fri, 10 Mar 2023 14:08:07 +0000 (15:08 +0100)]
input panel: improve validity change check for advanced fields
instead of only checking the validity of the advanced items when the
form validity changed as a whole, add a validity change listener to
each field in the advanced section.
This improves the behaviour such that every time an advanced field
gets invalid the items are show, not only when the form was valid
before.