From a UX perspective flat buttons, i.e. buttons without a frame or
background, are not obviously clickable without an icon.
The choice of icons was taken from the storageSchema map in PVE.Utils
module currently residing in the pve-manager repo.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
[TL: clarify where the choice come from and other small nits] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Wed, 28 Jun 2023 09:32:48 +0000 (11:32 +0200)]
user view: disable unlock TFA button initially
set the initial state to disabled and let the selection model, which
is backing the enableFn, handle it when actually selected, like the
other buttons here.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dominik Csapak [Mon, 26 Jun 2023 14:52:53 +0000 (16:52 +0200)]
fix tracking center with newer proxmox-widget-toolkit
newer widget-toolkit versions did change the DateTimeField a bit, and
now breaks when there is no viewModel anywhere, so add one as a stopgap
fix for now in the tracking center.
the real fix would have to be in DateTimeField itself, probably checking
if there is a bind.
Leo Nunner [Tue, 28 Mar 2023 12:08:21 +0000 (14:08 +0200)]
mail filter: properly html-encode rule names
Rule names were not HTML-encoded in the rule overview. While some
encoding did happen, it was only on the first load for the info panel
on the right hand side, which was overriden as soon as the edit
window was opened/closed again.
The variable binding now gets HTML-encoded automatically, and the
renderer for rule names has been set to Ext.htmlEncode.
Signed-off-by: Leo Nunner <l.nunner@proxmox.com>
[ T: rework commit message a bit (mostly subject) ] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Christoph Heiss [Mon, 20 Mar 2023 10:35:47 +0000 (11:35 +0100)]
fix #2437: proxy: Add 'TLS Inbound Domains' panel
This panel can be used to configure sender domains for which TLS will be
enforced my postfix. As this takes the usual transport domain format,
either a FQDN or .FQDN (for matching subdomains) can be specified.
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Stefan Sterz [Thu, 9 Mar 2023 08:01:41 +0000 (09:01 +0100)]
quarantines: add support for a theme toggle
this allows toggling the presentation of the email previews depending
on the current theme. in the default "light" mode the toggle is hidden
to avoid clutter. enable the toggle in other themes to allow switching
back to the original way the email was rendered.
this requires a bump of the widget toolkit. the toolkit provides the
styles necessary for the toggle to work.
Stefan Sterz [Thu, 9 Mar 2023 08:01:26 +0000 (09:01 +0100)]
mobile quarantine: add dark theme support to the mobile quarantine
enable the `autoDarkTheme` option for the mobile quarantine and add
minimal styling to correct the look of the logo and the mail preview
rendering. this makes the quarantine behave like the "auto" theme of
the main gui, it will change it's theme depending on a media query.
Stefan Sterz [Thu, 9 Mar 2023 08:01:05 +0000 (09:01 +0100)]
subscription: remove hard-coded white background
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 this element is white
already anyway, so just remove them here.
Dominik Csapak [Wed, 23 Nov 2022 14:52:22 +0000 (15:52 +0100)]
fix #3287: add recipient filter for virus & attachment quarantines
So that users can filter these quarantine views, e.g. useful if they
have many mails there.
Replaced the emailSelection config with a quarantineType configs
since we want to have different behaviour for different quaratine
types. E.g., we want to show 'all' mails by default for the
virus/attachment quarantine, but not for the spam one.
Thomas Lamprecht [Fri, 11 Nov 2022 17:37:26 +0000 (18:37 +0100)]
attachment grid: move all-parts controls to tbar, transform back to collapsible title
just better ergonomics and I don't think a lot of people will care
about the parts list, especially if the raw email is already visible
anyway.
Also note that while yes, the content-disposition is user
controllable, most (all?) MUAs only show it if set so even
spammers/attackers have it in their interest to set it.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dominik Csapak [Mon, 7 Nov 2022 14:36:20 +0000 (15:36 +0100)]
attachment grid: default to filtering by content-disposition
Normally, attachments are given the 'content-disposition: attachment'
mime attribute, so we use that to filter the attachments.
But since we're dealing with spam & virus mails here, and that field
is client controlled, give the user a way to toggle the remaining parts
of the mail too.
Added the checkbox in the header part, but that made it necessary to
manually implement the expand/collapse toggle (since the tools are on
the wrong side of the default toggle)
spam quarantine controller: fix args when calling the parent multiSelect
arguments needs to be an array, often we call with all of ours, iow.
using `arguments` which itself is an array already.
Both, manual construction and just a passing `arguments` have their
advantage and disadvantage, e.g., if either the inheriting or
bequesting class becomes more specialized, but most of the time using
`arguments` is more future proof.
Fixes: e66c888 ("quarantine: refactor spamquarantine controller") Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
format_size is the "lower" level helper and is not fit (anymore) to
be set as renderer directly, as its parameter signature may clash
with the extra, different ones, that renderers get passed.
For example, the useSI param always gets evaluated as true due to
the metaData "truthy" value that calls to a renderer get passed along
most of the time.
Use the render_size instead, a wrapper which only passes along value
to format_size.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
quarantines: dock attachement grid to bottom, avoid toggle button
A separate header and docked at the bottom reduces crowding at the
top and make the whole view(s) a bit clearer.
This also better mirrors where most mail clients show attachments
(e.g., thunderbird) and allows to avoid the extra button (UX benefits
most of the time from reduced inputs, if it doesn't takes away
features).
Make the panel collapsible for the spam and virus quarantine, and
hide the download button there; note that this isn't done for
security purpose but just wasn't requested and some users may do
better if they only decide deliver/delete here and let their MUA
handle attachements.
Disable collapsing in the Attachement quarantine, it doesn't really
makes sense there and we got a maxHeight already anyway.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dominik Csapak [Fri, 4 Nov 2022 15:04:22 +0000 (16:04 +0100)]
quarantines: add attachment grid to spam and virus quarantine
So that admins can easily see which attachments exist for a mail,
without parsing the 'raw' mail content. Disable the download button
for these quarantines though, since it should not be necessary
to download the attachments for these.
Dominik Csapak [Fri, 4 Nov 2022 15:04:24 +0000 (16:04 +0100)]
quarantine: improve borders for docked items
one cannot set the different borders seperately in panels/grids and
docked items don't have a bottom border in extjs, but we want to remove
all borders except the ones between the toolbar and the grids/content
below that.
to achieve that, set a custom 'border-bottom-width' with '!important'
(extjs has a rule with !important as well) for the toolbar, and
everywhere else remove the border.
Dominik Csapak [Fri, 4 Nov 2022 15:04:21 +0000 (16:04 +0100)]
quarantine controller: drop specialized classes, check at runtime instead
By making use of the optional chaining operator, we don't need to
override the 'onSelectMail' in both the attachment quarantine and the
spam quarantine. Instead, we opportunistically call lookup(id)?.setID
in the common handler for both, the attachments and the spaminfo
references.
As that was the single change from the parent class we can now drop
the specialized controller classes.
While at it, remove the stray 'xtype' property of the quarantine
controller, which make only sense for component derived classes.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
[T: fix typos and reword message a bit] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Stoiko Ivanov [Thu, 27 Oct 2022 19:12:57 +0000 (21:12 +0200)]
quarantine: refactor spamquarantine controller
over the time the spam quarantine has gained quite a few nice
usability improvments and features, which would be useful in
the virus and attachment quarantines as well - e.g.:
* multi-mail selection
* keyboard actions
* context menu
* download mail as .eml
this patch splits the controller part into a file of its own, while changing
'var' to 'let' and removing the parts only relevant for the spamquarantine
and adapts the current SpamQuarantine.js to use it.
Thomas Lamprecht [Sat, 22 Oct 2022 14:16:39 +0000 (16:16 +0200)]
quarantines: color code deliver and delete buttons
In some languages, e.g. widely used English, "Delete" and "Deliver"
are looking rather similar without too much eye squinting required.
Add an accent on their icons using for, at least in the western
hemisphere, the respective associated color, like red for trash can.
To 1) avoid to much messing with those cultures that got it switched
and 2) some more common color blindness use blue for the delivery
button, just to make it stand out.
Keep the white/black list as is, as such accents work best if not
everything uses them, i.e., so that they more common options actually
stand out.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Stoiko Ivanov [Thu, 20 Oct 2022 19:14:57 +0000 (21:14 +0200)]
fix #4137: display receiver in attachment/virus quarantine
the attachment and virus quarantines contain all quarantined mail for
all recipients - so we should display which mail is being
delivered/deleted - mostly if a mail is sent to multiple addresses
served by the same PMG.
Dominik Csapak [Tue, 11 Oct 2022 09:23:28 +0000 (11:23 +0200)]
node certificate: make parent panel scrollable
The `ACME` panel may be rendered out of sight (overflow) when there
are enough SANs on the upper `Certificates` panel to push it down
enough and the browser/display height is too small.
Enable the `scrollable` config for the parent certificate view panel
in the y-axis (vertical) to make ExtJS automatically add a scrollbar
if the content overflows. Avoid enabling it for the x-axis too as
that breaks reflow of the layout if the browser window gets resized.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
[T: fix commit message to one from manager] Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 22 Sep 2022 07:31:52 +0000 (09:31 +0200)]
mobile: set button color in mail view similar to quarantine list
To have a visual feedback about the actions, similar to the swipe
buttons in the quarantine list view. Single difference is that the
default color is grey for swipe buttons and blue for the "normal"
ones, so the whitelist one got different colors, but each fit in
their context somewhat...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Sat, 14 May 2022 15:26:51 +0000 (17:26 +0200)]
pbs remote: disallow editing fixed fields
similar in spirit of PVE's storage entries for PBS, changing those
after create can make backups disappear and just shouldn't be done,
user should add a new remote instead.
Same for user name, changing it will make backup almost definitively
fail the owner check, so only keep the password field, for PW
rotations (we should disable it for tokens though).
For UX it's better to check if params are correct and the repo is
accessible on create and to add scan datastore and namespace
endpoints to allow a friendlier selection of those, avoiding typos.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>