Commit Graph

627 Commits

Author SHA1 Message Date
Thomas Lamprecht
247304085f sendmail edit panel: fix using gettext with parameter
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-14 08:14:25 +02:00
Thomas Lamprecht
7e4b51778a notification config view: fix using gettext with parameter
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-13 18:17:07 +02:00
Thomas Lamprecht
72a355b8d7 notification config view: fix using gettext with parameter
One must use a parameter {0} replacement string as otherwise this
cannot be translated at all.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-13 18:15:12 +02:00
Thomas Lamprecht
6e70fce94f utils: language map: add entry for Croatian translation
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-13 17:05:03 +02:00
Lukas Wagner
0e1fa66f75 auth: ldap: openid: use proxmoxtextfield for comment
The regular `textfield` does not support the `deleteEmpty`
setting. Thus, if no comment was entered the configuration
would still end up with an empty `comment` key:

ldap: foo
    server ....
    bind-dn ...
    comment

Fixed by switching over to `proxmoxtextfield`, which properly
deletes empty keys.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2023-09-07 17:52:38 +02:00
Dominik Csapak
9133d5b5f9 fix #4951: accept undefined as value for the MultiDiskSelector
otherwise it tries to string split it and throws an exception

This can happen when there was no initial value and the form is reset.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2023-09-07 17:49:38 +02:00
Filip Schauer
a5736f02e5 fix #4531: acme plugins: correct change detection of dirty form fields
Fix the ACME plugin edit form only detecting dirtychanges once the
value of a textfield was dirtied and then changed back to the
original.

This behaviour is caused as we cannot reuse the field's
resetOriginalValue method, due to that cause breakage here, e.g., if
the value was edited, then another plugin (without a schema) gets
selected, and then one would switch back again to the previous plugin,
it would cause the (actually still dirty) value to get registered as
new original one by mistake.

So the fix here is to keep the manual originalValue tracking, but add
the missing call to checkDirty after setting the originalValue to
refresh the dirty flag.

Fixes: 45708891 ("ui: add ACMEPluginEdit window") from pve-manager
Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
 [TL: record reason for originalValue handling & sligthly reword ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-30 16:02:41 +02:00
Christian Ebner
575b4f3790 utils: Remove outdated url in comment
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2023-08-23 10:14:15 +02:00
Lukas Wagner
5d1b587fdd notification: add ui for managing notification filters
This commit adds a new dialog window, containing all fields necessary
to configure notification filters.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2023-08-16 10:37:44 +02:00
Lukas Wagner
90dbb2d359 notification: allow to select filter for notification targets
This commit adds a new selector field for existing endpoint
configuration where one is able to select a notification filter.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2023-08-16 10:37:40 +02:00
Lukas Wagner
ea5aa12261 notification: add gui for notification groups
The GUI is based on the 'plugin-based' dialog window EndpointEditBase
that was introduced in an earlier commit.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2023-08-16 10:37:35 +02:00
Lukas Wagner
6669a59fd1 notification: add gui for gotify notification endpoints
The GUI is based on the 'plugin-based' dialog window EndpointEditBase
that was introduced in an earlier commit.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2023-08-16 10:37:31 +02:00
Lukas Wagner
84f70dfaad notification: add gui for sendmail notification endpoints
This commit adds a new panel 'NotificationConfigView' that is supposed
to be embedded in the datacenter configuration side-bar.
This new view lists all notification endpoints, allowing to
add/modify/delete/test them.

Furthermore, this commits adds the dialog for adding/modifying
sendmail endpoints. The dialog is 'plugin-in' based, meaning that it
consists of a base window (EndpointEditBase) and a panel that holds
the actual fields for the endpoint type configuration. This will show
be beneficial once the GUI for other endpoint types is added.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
2023-08-16 10:37:24 +02:00
Filip Schauer
a60c8dc0c0 certificates: delete: Fix a typo
Fix the UI not refreshing when a successful certificate deletion
requires it.

Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
2023-08-14 12:39:33 +02:00
Thomas Lamprecht
6e5405767c utils: add entry for Georgian translation
which got recently submitted as new translation:
https://git.proxmox.com/?p=extjs.git;a=commitdiff;h=6ee3ee85552152132700448eab148a3bf9a30fcc
https://git.proxmox.com/?p=proxmox-i18n.git;a=commitdiff;h=323c79d6b4fb8c7eb4b5eab7fb0f66d9cd970632

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-03 16:31:37 +02:00
Amin Vakil
2d613cac1f fix #4874: improve error message for invalid hostname
Current error message is not correct because having underscores in
domain names are perfectly valid, although it's not acceptable at host
names, so it should be changed to "This is not a valid hostname".

https://www.ietf.org/rfc/rfc1123.txt section 2.1 "Host Names and Numbers"
https://www.rfc-editor.org/rfc/rfc2181#section-11

Signed-off-by: Amin Vakil <info@aminvakil.com>
 [TL: s/Host /host/ once more, reflow msg with 70cc & reword subject]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-08-03 10:49:39 +02:00
Friedrich Weber
e61ffdd6ee ui: add some missing htmlEncodes
Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2023-07-25 16:58:12 +02:00
Stefan Sterz
085eed30c2 window: ldap auth edit forbid specifying a bind_dn without a password
this commit enforces passwords when using an non-anonymous bind.
hence, it removes the possibility of configuring unauthenticated binds
and brings the gui in-line with the backend.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-06-26 14:54:53 +02:00
Dominik Csapak
efcb34fa21 try using 'pve-eslint' if it exists
but fallback to 'eslint' otherwise

Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 [T: move into www/manager Makefile directly]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-24 17:47:18 +02:00
Maximiliano Sandoval
c655b2f577 window: addtotp: Increase the size of the quiet zone
It is recommended that the quiet zone has the width of 4 blocks, since
each block is around 4 pixels each, we need a margin of 16 pixels and a
size of 256 + 2 * 16 pixels.

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2023-06-16 15:52:37 +02:00
Fiona Ebner
7d5201a32f 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>
2023-06-16 15:50:03 +02:00
Thomas Lamprecht
01034bdb5f utils: add Українська - Ukrainian to language map
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-14 14:18:55 +02:00
Fiona Ebner
a14bafeca6 apt repositories: avoid potential type error in classifyOrigin helper
with undefined (or otherwise falsy) argument.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-06-09 17:29:22 +02:00
Fiona Ebner
78be60a079 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.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-06-09 17:29:22 +02:00
Wolfgang Bumiller
33cfd1f6b4 tfa: show 'Locked' in 'Enabled' column if tfa is locked
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-06-07 18:05:24 +02:00
Wolfgang Bumiller
50af081a20 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>
2023-06-07 18:05:20 +02:00
Fiona Ebner
e6ed4498cd 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.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-06-07 17:19:38 +02:00
Fiona Ebner
b9b1a51a2e apt repositories: just ignore unknown info rather than throwing an error
This will avoid breaking older UI when extending the backend.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-06-07 17:19:32 +02:00
Fiona Ebner
3d6b76ee2b apt repositories: add classifyOrigin helper
to be used again to detect mixed repositories before upgrade.

Needed to convert into an actual function for the 'this' usage.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-07 17:19:14 +02:00
Thomas Lamprecht
f6f29f8c1c date time field: fixup syntax error
Fixes: 6883083 ("form: date time field: add alias for backward compat")
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-07 17:19:14 +02:00
Fiona Ebner
fd468868dd apt repositories: actually ignore ignore-pre-upgrade-warning
when upgrading is possible rather than throwing an error by reaching
the else branch.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-07 17:19:14 +02:00
Max Carrara
ecdde39c1c toolkit/utils: fix whitespace
Signed-off-by: Max Carrara <m.carrara@proxmox.com>
2023-06-06 17:11:42 +02:00
Max Carrara
aec7e8d23c 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>
2023-06-06 17:11:42 +02:00
Christian Ebner
95fa855701 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>
2023-06-06 16:45:47 +02:00
Thomas Lamprecht
6883083e8a form: date time field: add alias for backward compat
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-06 16:43:56 +02:00
Christian Ebner
9531241400 DateTimeField: fix typo in xtype
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2023-06-06 16:41:43 +02:00
Thomas Lamprecht
2d04f0165d 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>
2023-06-03 13:41:23 +02:00
Thomas Lamprecht
5cbbb9c44a 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>
2023-06-03 13:41:23 +02:00
Thomas Lamprecht
b0c7069a10 markdown parser: normalize tag names and protocol for check
As the tag names are often uppercase, and so this was overly strict
and didn't always match correctly

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-03 13:41:23 +02:00
Thomas Lamprecht
28f879c09e markdown parser: correctly remove src & href attribute if not valid URL
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-03 13:41:23 +02:00
Thomas Lamprecht
e09af56554 ship a minified version of the widget-toolkit JS library
so use sites can switch between literal and minified version like we
do already for ExtJS via the debug flag.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-03 13:41:23 +02:00
Thomas Lamprecht
0676eb3738 buildsys: avoid whitespace in build info heading
this is added to the URL as is by most index templates, and literal
(non-URL-encoded) white space might break things.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-03 13:41:23 +02:00
Noel Ullreich
01e64778ad fix #4551: ui: translate byte unit in format_size
Some languages translate byte units like 'GiB' or write them in their
own script.

By `gettext`ing the units in the `format_size` function, we can
translate the units for (almost) all of the web interface.

Signed-off-by: Noel Ullreich <n.ullreich@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-01 16:10:34 +02:00
Thomas Lamprecht
9dba61e674 parser: adapt to new marked Markdown renderer calling convention
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-01 16:03:57 +02:00
Aaron Lauterer
b515e164b7 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>
2023-05-28 19:40:02 +02:00
Thomas Lamprecht
9521d1768e buildsys: expand clean target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-25 10:27:10 +02:00
Thomas Lamprecht
d7fa9ea42b 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>
2023-05-25 10:13:39 +02:00
Thomas Lamprecht
89f321671f makefile: convert to use simple parenthesis
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-25 09:26:05 +02:00
Stefan Sterz
da639fb2ae fix #4618: dark-mode: lighten critical/warning charts/gauges colors
by increasing the lightness of these colors to to make them have the
same amount of lightness as the primary color.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-05-17 11:41:49 +02:00
Stefan Sterz
4c435ee1c3 dark-mode: adjust panel header tool icons
by brigthenening the icons on a more individual basis some darker ones
can now feature higher contrasts while others won't be too bright.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-05-17 11:41:49 +02:00
Dominik Csapak
736c3457a2 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.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2023-04-12 13:30:41 +02:00
Stefan Sterz
c1a3b7f725 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-04-06 13:09:56 +02:00
Stefan Sterz
3ffcab4167 dark-mode: style the icon for the datastore maintenance mode
.. in Proxmox Backup Server

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-04-06 13:09:30 +02:00
Stefan Sterz
064318188f 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-04-06 13:05:48 +02:00
Stefan Sterz
2afa090a1a dark-mode: fix focus and focus-over states for tabs
previously the focus and focus-over states weren't styled so the crisp
styling was used, which made them appear too brightly.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-04-06 13:05:48 +02:00
Thomas Lamprecht
4d3a18dfc3 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>
2023-03-28 17:49:17 +02:00
Thomas Lamprecht
58bff886fb 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>
2023-03-28 17:48:12 +02:00
Thomas Lamprecht
10df1b45b4 fix #4617: dark-mode: increase brightness of tree arrows
Increase brightness of tree expand/collapse arrows to avoid overly
low contrast

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-26 17:51:51 +02:00
Friedrich Weber
4fedb4e28d 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.

Fixes: 51083ee54a
Suggested-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
2023-03-26 17:36:55 +02:00
Thomas Lamprecht
311fb72a27 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>
2023-03-24 12:24:20 +01:00
Thomas Lamprecht
c43929212d utils: use template strings for language map
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-24 12:24:09 +01:00
Noel Ullreich
454ff6ea91 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>
2023-03-24 12:24:02 +01:00
Noel Ullreich
58518b154e 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>
2023-03-24 12:24:02 +01:00
Thomas Lamprecht
5835bc4c10 theme edit: ensure that the saved theme is actually valid
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-24 12:24:02 +01:00
Stefan Sterz
745aeaacdd 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-23 17:12:12 +01:00
Stefan Sterz
0bf2b7fb0b 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-23 17:12:12 +01:00
Stefan Sterz
347dd20db8 dark-mode: set boundlist background
this is only visible when no boundlist items are present, which only
occurs when loading elements for the boundlist (e.g., when adding a
nfs storage)

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-23 17:12:12 +01:00
Stefan Sterz
cf2a6407a7 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-23 17:12:12 +01:00
Stefan Sterz
8020636b24 dark-mode: improve contrast on split buttons
this improves the contrast of the little triangle in split buttons,
making it stand out more especially when focused.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-23 17:12:12 +01:00
Thomas Lamprecht
7a39409764 dark-mode: tone down border on ceph install card-like window
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-22 12:38:15 +01:00
Stefan Sterz
40fdba341f dark-mode: style locked guest icons properly
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-22 12:36:51 +01:00
Stefan Sterz
e3cc7af048 dark-mode: style checkboxes that don't use blueish active states
e.g., in the backup job creation window the filter column checkmark

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-22 12:11:48 +01:00
Stefan Sterz
162ff9d978 dark-mode: set the icon color of filtered column headers properly
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-22 12:11:48 +01:00
Stefan Sterz
79725294d9 dark-mode: fix highlighting of active elements in drop down menus
e.g.,: the filter menu item in the backup job creation window

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-22 12:11:48 +01:00
Thomas Lamprecht
5afec12b9e 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>
2023-03-21 16:37:25 +01:00
Thomas Lamprecht
999a6e5c4c dark theme: allow one to distinguish the ceph install mask from the mask
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-21 15:56:12 +01:00
Stefan Sterz
062520ff6f 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

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-21 15:39:25 +01:00
Wolfgang Bumiller
883acf6dc9 dark-mode: make shadow black
Better have a barely visible shadow than a backlight.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-03-21 13:53:17 +01:00
Wolfgang Bumiller
a7acac0d9d dark-mode: reduce background mask opacity to 0.5
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-03-21 13:53:17 +01:00
Wolfgang Bumiller
dc90f49b65 Revert "dark-theme: let the background "shine through" mask more"
This looks horrible.

A *much* *much* better way to improve readability is to
simply set the opacity down to 0.5.

This reverts commit 2c837f5766.
2023-03-21 13:53:17 +01:00
Christoph Heiss
d62ef2a856 network edit: add tooltip to bridge ports inputs
.. as the exact format it takes might not be immediately obvious to
users.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-03-21 13:34:31 +01:00
Stefan Sterz
2c837f5766 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-20 14:05:20 +01:00
Stefan Sterz
9c2ccd1aa4 dark-theme: dim warning and invalid colors more
this brings them more in-line with the appearance of crisp.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-20 14:05:20 +01:00
Stefan Sterz
b20a650bcc dark-theme: make "sorted-by" header highlight more subtle
by making the highlight more subtle, the theme is more consistent with
the look of crisp.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-20 14:05:20 +01:00
Stefan Sterz
437af70685 dark-theme: improve help button contrast ratios in focused state
also improves the hovered/focused state and makes it more consistent
with other buttons by making it brighter than the default state.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-20 14:05:20 +01:00
Lukas Wagner
bfb750a564 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>
2023-03-17 16:41:59 +01:00
Lukas Wagner
78970361b3 auth ui: add firstname and lastname sync-attribute fields
This allows the user to set up a mapping for `firstname` and `lastname`
attributes for LDAP user syncs.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2023-03-17 16:41:59 +01:00
Lukas Wagner
2ee8cbdac1 auth ui: add onlineHelp for AuthEditLDAP
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2023-03-17 16:41:59 +01:00
Lukas Wagner
d6b65a89ce 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

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2023-03-17 16:41:59 +01:00
Lukas Wagner
aa5cbdbb32 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.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2023-03-17 16:41:59 +01:00
Lukas Wagner
64f65c027d 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.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2023-03-17 11:27:38 +01:00
Dominik Csapak
a1177796f9 auth-realm selector: add custom store filters for callers
so that a user can filter the underlying store, e.g. for type

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-14 15:25:27 +01:00
Stefan Sterz
3501ca3fc9 dark-theme: increase contrast on check-boxes
by adding a bit of brightness to the icons they stand out a bit more,
especially when selected but not active (grey check-mark)

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-14 15:13:35 +01:00
Stefan Sterz
a017567bd8 utils: move to using the auto theme per default
make the new default theme the "auto" theme that uses media queries to
detect a users preferred theme.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-14 15:13:35 +01:00
Stefan Sterz
e8b405f770 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-11 17:50:32 +01:00
Stefan Sterz
0cdf266659 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".

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-11 17:50:32 +01:00
Stefan Sterz
2a5b7cd2ff 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-11 17:50:32 +01:00
Stefan Sterz
e48bb85042 dark-theme: make windows stand out more against the background mask
makes the background mask darker so windows stand out a bit more

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-11 17:50:32 +01:00
Stefan Sterz
928df9ff32 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.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-11 17:50:32 +01:00
Dominik Csapak
b2471e89d0 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.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-By: Aaron Lauterer <a.lauterer@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-11 17:32:15 +01:00
Alexandre Derumier
0c50257362 fix #4585 : toolkit: configid type: add missing "-" character support
JsonSchema is already ok:
$CONFIGID_RE = qr/[a-z][a-z0-9_-]+/i;

This is blocking creation of snapshot name with "-" in gui.
(works fine command line)

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2023-03-11 17:29:16 +01:00
Stefan Sterz
8d32419234 dark-theme: add support for the pmg quarantine theme toggle
allows using the theme toggle in the pmg quarantine properly. adds a
filter over the iframes in the quarantine to make them appear properly
in a dark environment.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-08 17:49:20 +01:00
Daniel Tschlatscher
15fddc20d1 util/window/form: add a theme selector
add a widget that implements a theme selector and sets a cookie to
load the appropriate theme.

Co-authored-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
Co-authored-by: Stefan Sterz <s.sterz@proxmox.com>
Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-08 17:49:20 +01:00
Stefan Sterz
c5559f82ea rrd chart: add support for the dark theme and dynamic theme switching
by integrating the theme switching logic into the chart panel itself,
themes can be switched more responsively based on css variables.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-08 17:49:20 +01:00
Stefan Sterz
f111efa4fd gauge widget: add support for a dark theme and dynamic theme switching
the gauges in the data center overview should use a dark style if the
relevant css variables are set. this also makes it possible to switch
the colors dynamically by adding an event listener

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-08 17:49:20 +01:00
Stefan Sterz
fbe9ee7210 subscription/summary/backup: stop setting the background color
setting the background color in js code adds that property as a style
attribute to the element. that makes it hard to alter later via css
and makes it hard to dynamically change the color e.g., if we want to
add different themes. the background color for these elements are
white already anyway, so just remove them here.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-08 17:49:19 +01:00
Daniel Tschlatscher
6bf5e1256e dark-theme: add initial version of the proxmox-dark theme
adds an initial version of a dark theme for all proxmox products. the
theme works by simply loading an additional css file that adjust the
colors of the original theme "crisp" to be more suitable for a dark
theme.

the theme itself is written in scss, so we need to add sassc as a
build dependency. while sassc is deprecated, it is still maintained in
the debian repositories and, thus, needs no additional packaging on
our end.

this version adds the following on-top of Daniel Tschlatscher's
original draft:

* removes checked-in build artifacts and other stuff that shouldn't be
  tracked
* code clean-up and removal of redundant code
* refactors:
    * icon styling
    * color handling for charts (moved to css variables)
    * color variables, consolidates them and makes the "functional"
    * color values, improves contrast and makes the theme appear more
      consistent
    * using the "theme-" prefix
* adds:
    * markdown note styles
    * combo-box trigger styles
    * even more icon styles (e.g., template icons, check boxes etc.)
    * loading spinners styles
    * number field up and down arrow styles
    * an additional auto theme that switches between light and dark
      theme dynamically
    * widget toolkit hints
    * ceph install mask
    * grid group headers
    * color to toggled buttons
    * date picker styles
    * drag and drop proxy styles
* fixes:
    * contrast on control elements for "scrollable" sidebars
    * make the general appearance closer to the light theme ("crisp")
    * buttons (when hovered, toggled etc)
    * background masking (e.g., when showing the log-in form)
    * grid header separator (adds an outline)
    * separator lines in some menus
    * makes the custom unknown icon more discernible
    * makes headers more readable
    * color adjustments to several components for consistency
    * reduces brightness of dividers in toolbars
    * border color on chart legend elements
    * removes a black border from docked toolbars (e.g., tag edit)
    * dims the "invalid" color to appear less aggressive
    * add hover effects in grids and make them consistent with "crisp"
    * summary rows
    * selected and hovered elements in boundlists
    * row numberers in grids
    * contrast of links in hints
    * ceph overview border colors (e.g., OSD in/out/up/down grid)
    * bottom splitter contrast in certain situations
    * tag visibility
    * pbs compatibility (help buttons stylings, icons, tabs)
    * pmg compatibility:
         * remove border around the spanning element in the header
         * style spam score grid
         * style tracking center rows
         * add appropriate colors to buttons in the quarantine
         * style mail-info element in the quarantine

Co-authored-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
Co-authored-by: Stefan Sterz <s.sterz@proxmox.com>
Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2023-03-08 17:49:19 +01:00
Matthias Heiserer
7e66b73ce4 ui: SMART: fix eslint error / show correct value
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
2023-03-08 17:49:19 +01:00
Friedrich Weber
51083ee54a fix #4421: ui: guard setProxy against races of slow vs fast requests
Some UI components use `Ext.data.Store.setProxy` to change their
associated API endpoint URL in reaction to user input. One example is
`BackupView`, which calls `setProxy` when the user switches from
listing backups on storage A to listing backups on storage B. However,
if A is slow, the UI may receive the response for A *after* the
response for B. It will then display the contents of A as if they were
the contents of B, resulting in a UI inconsistency.

The reason is that `Ext.data.Store` still processes the slow response
for A, even though it is obsolete. This patch overrides the
responsible callback of `Ext.data.Store` to only process responses
belonging to the currently active proxy object. This should rule out
similar race conditions in all components that use the `setProxy` API.
In the above example, the patch results in the response for A being
ignored.

Ignored responses are logged to the browser console.

Note that this patch only concerns components that use `setProxy` for
changing API endpoints. Other components (e.g. those using
`proxy.setURL` for the same purpose) may be open to similar race
conditions.

Link: https://lists.proxmox.com/pipermail/pve-devel/2023-March/056062.html
Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2023-03-08 07:42:11 +01:00
Thomas Lamprecht
c16785f66a apt: use justified flex box for empty text hint
avoid some overly long/nested divs

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-14 11:45:41 +01:00
Matthias Heiserer
aacb9ea12a ui: SMART: show SMART data in correct columns
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
2023-02-14 10:48:40 +01:00
Thomas Lamprecht
f372d3c087 node apt: make changelog window taller for 4:3 ratio
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-01 12:15:36 +01:00
Thomas Lamprecht
261f558105 node apt: cleanup and modernize code
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-02-01 12:14:22 +01:00
Thomas Lamprecht
6b70ca845d form: display-edit: add safe default renderer for display field
Due to the value binding on can get interesting effects when the
displayEdit field is in write (input) mode, as then the values still
get relayed to the display field, which itself is wanted as the field
supports live-switching, but even though the display field is
disabled and hidden, the value will be still rendered and a user can
XSS themselves inserting things like:
<img src="a" onerror="alert('cookie:'+document.cookie);"></token

And even though it's harmless (your browser knows your own cookie
already), it is rather odd and simply to cheap to harden against (per
default) to not do so.

Reported-by: Marcel Fromkorth <marcel.fromkorth@8com.de>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-31 17:21:13 +01:00
Thomas Lamprecht
319d450bec api request: add wide spread alert-error logic as smart-on option
The "smartness" is mostly "enable it automatically if the caller did
not specify an explicit override and there's neither a failure nor
callback function define", but that should cover most cases.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-31 15:56:27 +01:00
Thomas Lamprecht
cf93d1da50 utils: always html-encode response message
while this is something that only the user that made the request will
see, and for most people the possibility of "hacking" themselves is
rather redundant, it is still not nice to have this possible in
general; as even if it's highly unlikely that there ever can be an
error triggered to another user via API2 request handling, hardening
against it is simply to cheap to not do it.

Reported-by: Marcel Fromkorth <marcel.fromkorth@8com.de>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-31 15:41:42 +01:00
Thomas Lamprecht
d53046d66b utils: code cleanup for extractRequestError
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-31 15:34:31 +01:00
Dominik Csapak
4a819c891e combobox grid: avoid needing two clicks after re-selecting an item
'picker.hide()' hides the picker, but does not do everything to
properly keep track of the picker state in the combobox class.

This lead to a bug when we reselected an entry, we had to click the
picker again twice to open it again.

Use the 'collapse' method of the combobox instead, which does the
necessary book-keeping.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2023-01-31 10:34:47 +01:00
Dominik Csapak
c071b0c302 ComboGrid: make height for the error configurable
by introducing a errorHeight config property. This is necessary when
the ComboGrid has e.g. a toolbar and we show the error in the grid body
only, 100 pixels is not enough then. To solve that without hardcoding
different heights, let the subclass/caller configure that

also set this when the store load fails completely (was not done until now)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2023-01-18 15:13:37 +01:00
Dominik Csapak
aa157deb47 ComboGrid: use the grids view for the error message
for most of the combogrids, this does not make a difference, but we
want to have a node selection in some of their toolbars. There
having the error over the whole grid makes it impossible to select a
different node (which might be necessary to get rid of the error), so
we show the error on the view (which is the grids content body only).

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2023-01-18 15:13:37 +01:00
Thomas Lamprecht
f6efb0d487 node network view: move add-menu generation to common helper
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-11 16:03:45 +01:00
Thomas Lamprecht
bcd21f899e node network view: rework finding free interface ID
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-11 15:18:10 +01:00
Thomas Lamprecht
13220ad1f5 node network view: code style modernization
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-11 15:13:33 +01:00
Thomas Lamprecht
8407542364 role selector: make slightly more wide and resizeable
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-11 15:09:25 +01:00
Thomas Lamprecht
7b8eff314a task viewer: modernize code style
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-11 14:43:33 +01:00
Thomas Lamprecht
ba4ab7663d code style: use arrow fn for some api request failure paths
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-11 14:42:33 +01:00
Dominik Csapak
9e12fc0203 privilege role selector: fix renderer for Proxmox VE
In PBS we get an array here, so the renderer is fine, but in pve it's
just a long string, so add a space after commas to achieve the same
effect.

Without this, the second column is not visible in pve because of an
error in the renderer (no 'join' function on a string)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 [ T: squash in code-reduction to make it a one-liner again ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-09 14:23:38 +01:00
Christoph Heiss
c8bae5b130 node/ServiceView: Show unit-state column in PBS too
The PBS api now reports `unit-state` for services as well, thus enable
the column for it.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-01-05 10:16:19 +01:00
Daniel Tschlatscher
45110c1630 add task log download button in TaskViewer
Adds a download button in the TaskViewer. Uses the newly created
downloadAsFile() method in the Utils class.

Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
Tested-by: Stefan Sterz <s.sterz@proxmox.com>
Reviewed-by: Stefan Sterz <s.sterz@proxmox.com>
2023-01-04 14:33:09 +01:00
Daniel Tschlatscher
8189ce639c Source file download in new Utils function
Adds a function for downloading a file from a remote URL in the Utils
class and uses it to revise one similar usage in FileBrowser.js

Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
Tested-by: Stefan Sterz <s.sterz@proxmox.com>
Reviewed-by: Stefan Sterz <s.sterz@proxmox.com>
2023-01-04 14:32:59 +01:00
Aaron Lauterer
a95dbf6dea parameter and return grid: allow text selection
Making it easier for people to copy & paste parameter and retrun value
names.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2023-01-02 17:44:24 +01:00
Thomas Lamprecht
ddf7a65deb css: whitespace fix
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-28 08:34:29 +01:00
Dominik Csapak
ed6721d0ff log, journal view: fix access to me after destroying
it can happen that the view is destroyed during an api call, so we
should check if it's destroyed as the first thing in the callback

if the view is destroyed, there is nothing we can do here, so simply
return

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-11-21 10:27:50 +01:00
Dominik Csapak
d13f97d6e3 css: don't make full tags inline-block in the tree
when showing full tags in the tree as inline-block, the height is
increased, leading to unwanted 'wobble' when tags are added/removed

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-11-21 10:27:43 +01:00
Matthias Heiserer
28a000898f api-viewer: show min/max for values without any other format
Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
2022-11-16 20:35:22 +01:00
Matthias Heiserer
7148e22691 fix #4271: api-viewer: display nested formats instead of [object Object]
I tried to keep the format as close to the HTML docs as possible, but
there are a few discrepancies between HTML docs and how this patch
displays parameters, instead of:
- <enum>,the enum variants are displayed. [1]
- <0|1>, <boolean> is displayed.

[1] The HTML docs explain parameters after the initial format string,
which the GUI doesn't (and there's no space for that). Showing the
variants inline is the easiest way to not loose information here.

Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
2022-11-16 20:35:22 +01:00
Matthias Heiserer
18afb0491c RDD: don't display power-of-two suffix 'i' for values without unit suffix
So instead of showing "0 i" (meaning e.g. 0 Gi), just display "0".

Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
2022-11-16 20:35:01 +01:00
Dominik Csapak
64e7c5371b Toolkit: add override for Ext.dd.DragDropManager
to fix selection behavior for Ext.dd.DragZone.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-11-16 14:48:44 +01:00
Dominik Csapak
2396874180 add tag related helpers
helpers to
* generate a color from a string consistently
* generate a html tag for a tag
* related css classes

contrast is calculated according to SAPC draft:
https://github.com/Myndex/SAPC-APCA

which is likely to become a w3c guideline in the future and seems
to be a better algorithm for this

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-11-16 14:48:44 +01:00
Thomas Lamprecht
121bbf57bf input panel: add onSetValues hook
As counter-part to `onGetValue`, which is for form assembly, add the
`onSetValues` helper that allows to hook into setting the values on
the fields, for example if one needs to transform a `disabled` to
`enable`.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-15 15:16:43 +01:00
Wolfgang Bumiller
54fc2533c8 simplify cpuset regex
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-10 10:56:03 +01:00
Wolfgang Bumiller
5ef8d10da6 cpuset: test only the regex
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-10 10:51:56 +01:00
Daniel Bowder
9109c39202 fix #3593: add CpuSet type to js
Regex parses a cpuset via 2 matches. Find number(s) or range(s) folowed
by a comma, then, find a single number or a single range not followed
by a comma. E.g., 0-1,4-5,6,7,10,11,14-15
CpuSet function first checks regex, then ensures left num <= right num

Signed-off-by: Daniel Bowder <daniel@bowdernet.com>
2022-11-10 09:40:00 +01:00
Aaron Lauterer
d17aa32eb4 TaskProgress: show text instead of percentage
The text needs to be defined in the wait() call as otherwise the
Ext.Progressbar will show a percentage that is not correct anyway but
just reflects where the animated progress bar itself is.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2022-11-07 14:57:16 +01:00
Thomas Lamprecht
8df4bd63d7 form: integer field: code cleanup in getSubmitData
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-07 14:56:49 +01:00
Alexandre Derumier
60ed17bf96 fix #2703: networkedit: limit custom interface name field to 15 characters.
Linux kernel don't allow interfaces name with more than 15 characters

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2022-10-14 15:20:45 +02:00
Matthias Heiserer
34edc91701 CSS: import action column fix from pbs, pmg
So it is in one location and available to pve as well.

Signed-off-by: Matthias Heiserer <m.heiserer@proxmox.com>
2022-10-10 10:01:16 +02:00
Stefan Sterz
eaa8d084e8 fix: toolkit: make email regex pattern match pve-common
`proxmoxMail` used its own regex pattern to validate emails. that
meant certain email addresses were rejected by the front-end that
were accepted by the backend that uses the functionality from
`pve-common`. examples include the following:

- "user@host.test-tld"
- "user-@host.testtld"
- "user@host"

reported on the forum: https://forum.proxmox.com/threads/gui-bugulance-using-the-user-add-gui-interface.114743/

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
2022-09-12 17:14:45 +02:00
Daniel Tschlatscher
94d84581c2 fix: gui: up/down arrow keys increment/decrement twice in Number field
When the up or down arrow key on the keyboard was pressed while a
number text field (or any one descending from Ext.form.field.Spinner)
was selected, the up and down callbacks for that text fields KeyNav
were called twice. Therefore, the value in the text field would always
incorrectly increment/decrement by step * 2.

The problem was an overwrite for the onRender() method of the Spinner
class, which caused the callbacks for pressing an arrow key to be
registered for a second time. Simply not doing that in the overwritten
onRender() method fixes the problem.

The redundant declarations for spinUpEl and spinDownEl were removed as
well. Additionally, the 'mousewheel' event handler, registered in the
overwritten (but still executed) parent function, is unregistered now,
as it could lead to unintended side effects in browsers which still
implement this event.

Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
2022-07-29 09:20:44 +02:00
Hannes Laimer
59551419b5 ui: DiskLisk: handle partition data from PBS backend
Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2022-06-15 10:58:39 +02:00