A store load may require several seconds to complete, which can get
frustrating fast.
For single actions we have a callback which gets only executed on a
successful API call, so we can just remove the entry there directly
from the in-memory store.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
With ~20 bytes per message-id and separator we get over the current
HTTP post size limit of 64 KiB with ~ 3200 messages.
As 2500 is a relatively nice number for humans to deal with rather go
for that one, that leaves also some room for potential longer IDs in
the future.
Send the batches of async in pairs, as with that the pmgproxy can
still cope well and is not overloaded.
Mask the whole list panel with a 'Processing...' loading-mask during
sending of requests affecting multiple messages, so that the user
gets some instant visible feedback that something is actually
happening (the api calls may return only after a few seconds).
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
If the API call returned more than one pmail entry, inject an "all"
entry which, if selected, drops the user parameter and loads the
quarantine mails of all users from the backend.
The webinterface has only some issues regarding deselection (all in
the grid header or if we need to deselect due to the search filtering
out some elements) - for that the underlying issue was found and a
widget toolkit patch was provided.
The rest seems now pretty performant, albeit more than a few 100k
mails may become a problem here. But, in such big setups the mail
admin won't tinker to much whith the users mail anyway, if they are
even alowed to do so depending on their jurisdictions privacy laws
and companies privacy policy.
So, basically this is more for evaluation or for smaller setups but
got quite often requested, and as there's not more data
exposed/returned then already available I see no real argument
against it.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Deselect those entries which got filtered out, to avoid doing
some action (delete, deliver) on hidden records.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
the for development designed incremental lint target is still non
strict, and allows warnings allowing less interrupted dev workflow
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
by creating an edit-window when clicking on the respective Backup now
button.
This is the second part of the enhancement request
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
the new /statistics/detail api calls takes the type (contact, sender,
receiver) and address for which to display the statistics as explicit
parameter instead of path-component.
This makes it possible to accept '/' as part of an e-mail address
which is allowed (in the local-part by RFC5322 [0], and accepted by
postfix.
[0] https://tools.ietf.org/html/rfc5322
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
if the template has 'quarantinelink' enabled, we
show a button 'Request Quarantine Link' on the quarantine login ui
there a user can enter their e-mail and request a link to the quarantine
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
we cannot have xtype nor cbind in the defaults, as moving xtype there
breaks our cbind "when to stop descendant+apply" heuristic and cbind
cannot be moved there as it'd be only copied over by initComponent
and that happens later than the cbind apply step.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
The PBSConfig panel enables creation/editing/deletion of PBS instances.
Each instance can lists its snapshots and each snapshot can be restored
Inspired by the LDAPConfig panel and PBSEdit from pve-manager.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
by moving the item definition to initComponent, and changing the check
for a provided filename, we can reuse the window for restores from PBS
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Move it away from the tab list in the Configuration entry to a submenu in
preparation for adding PBS integration
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
the regular expression field is not necessarily after the regex tester
(mostly it is before). In order to be more robust, use the child
method of the parent window instead of previousSibling of the button.
The child method gets any direct descendant matching the query, the
sibling one is always directional and there's no method for "any
sibling".
Tested with:
* mailproxy whitelist
* match field
* match filename
* who object
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Since/Until is not quite correct, especially in other languages
(e.g., in German "from" and "to" was translated to "Von" and "An",
respectively.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
lint the build file, as else eslint does not has the full picture.
Add a prelude to define globals once at the top
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>