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>
Fabian Ebner [Tue, 7 Dec 2021 11:53:31 +0000 (12:53 +0100)]
sorters: use correct property 'direction' and keep default 'ASC'
Ext.util.Sorter does not have an 'order' property, so 'order: DESC'
didn't have an effect. The default is 'ASC' and it is arguably the
preferred direction for all affected sorters anyways.
Stoiko Ivanov [Thu, 20 Jan 2022 17:37:10 +0000 (18:37 +0100)]
quarantine: mail display: show receiver information
Showing the sender and subject is sufficient in the case of the
spam-quarantine - when viewed by a single user.
If an admin views any of the quarantines the information of the
recipient should be helpful in general, but is needed in case a mail
was sent to multiple recipients.
Reported in our community forum:
https://forum.proxmox.com/threads/.103276/
Thomas Lamprecht [Fri, 16 Jul 2021 14:34:04 +0000 (16:34 +0200)]
sys config: move network to bottom
Like we did in PBS, which has a very similar GUI structure as PMG.
Rationale is that the network panel is flexed and thus normally the
biggest, while DNS and time are fixed and short, and an inverted
pyramid, height-wise, looks a bit off as layout.
Also network will show the pending changes at the bottom, which is
nicer if its really at the bottom of the view.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Tue, 13 Jul 2021 13:18:28 +0000 (15:18 +0200)]
node info: avoid setting undefined in view model
undefined is used as delete when set to a normal data-path of a view
model, so, we need an actual defined value here as else we cannot
decide if the view model was ever initialized or not.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Essentially the same as in PBS, but needed to use 'rootfs' instead of
'root' for the disk usage, avoid 'cpu' as an itemId (already used by
the cluster resources), and get rid of the fingerprint button. Also
added the link to the repositories panel like in Dominik's pending
patch for PBS.
Rename the existing resources panel to clarify what it actually is.