Commit Graph

560 Commits

Author SHA1 Message Date
Thomas Lamprecht
0e26e20aa5 code cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-01 13:38:49 +02:00
Thomas Lamprecht
0affcba58e spam quarantine: code cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-30 17:06:45 +02:00
Thomas Lamprecht
24c650b5e7 spam context menu: set correct handler for whitelist/blacklist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-30 14:31:10 +02:00
Thomas Lamprecht
9aed379a70 spam quarantine: avoid full store reload on single-element actions
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>
2021-03-23 12:26:03 +01:00
Thomas Lamprecht
3168b7f780 spam quarantine: batch actions into 2500-sized chunks
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>
2021-03-23 12:26:03 +01:00
Thomas Lamprecht
b61e38d711 spam quarantine: shorter mapping from selected to id list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-23 11:49:29 +01:00
Thomas Lamprecht
0bd9ee2261 fix #3164: allow one to display all quarantined spam mails
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>
2021-03-22 09:50:24 +01:00
Thomas Lamprecht
42de6d4631 quarantine list: factor out actual filtering in separate function
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-22 09:48:21 +01:00
Thomas Lamprecht
d19c27947f qlist: code cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-21 18:02:07 +01:00
Thomas Lamprecht
d3e6c6a1f2 quarantine list: allow one to filter by subject or from sender
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>
2021-03-19 19:27:09 +01:00
Thomas Lamprecht
83a42bac45 quarantine list: code cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-19 19:24:51 +01:00
Thomas Lamprecht
a78fbb7037 certs: show onlineHelp tool linking directly to context chapter
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 10:42:09 +01:00
Thomas Lamprecht
a7f1529c34 acme config view: derive from panel not container
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 10:41:28 +01:00
Thomas Lamprecht
139d9b7a5b utils: add onlineHelpTool
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 10:40:50 +01:00
Wolfgang Bumiller
c083fb770d add certificates and acme view
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-03-16 14:15:09 +01:00
Thomas Lamprecht
dd0cea8763 buildsys: enforce strict eslint (no warnings allowed) in check target
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>
2021-03-05 23:04:48 +01:00
Thomas Lamprecht
2f26d5e0f3 pbs remote: notify: use gettext and fix casing
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-05 23:04:14 +01:00
Stoiko Ivanov
71abce0afb backup: pbs: fix #3146 add notify setting to remote
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-03-05 22:48:36 +01:00
Stoiko Ivanov
bd73a9897d backup: pbs: fix #3154: add statistic setting to remote
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-03-05 22:48:36 +01:00
Stoiko Ivanov
4afe714bc5 backup: fix #3154: make statistic backup optional
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>
2021-03-05 22:48:36 +01:00
Stoiko Ivanov
afb34731bd backup: pbs: add onlineHelp anchors
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-03-05 22:48:36 +01:00
Stoiko Ivanov
367681b750 statistics: use new api call for detailed stats
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>
2021-02-10 10:45:08 +01:00
Dominik Csapak
83c036b49e add 'Request Quarantine Link' Button to LoginView
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>
2020-11-18 17:52:52 +01:00
Thomas Lamprecht
22988ae441 backup: rename manual backup button to "Backup Now"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-18 17:52:52 +01:00
Thomas Lamprecht
45dad58451 pbs: improve schedule edit
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-18 17:48:47 +01:00
Thomas Lamprecht
d2b8eac465 pbs: add schedules grid, always select first remote
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-18 17:48:10 +01:00
Thomas Lamprecht
6ff660681a pbs: small cleanups and store field name fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-18 14:06:27 +01:00
Thomas Lamprecht
d28c156348 pbs: factor out remote add/edit window and panels
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:30:48 +01:00
Thomas Lamprecht
8b349e01b0 pbs: factor out snapshot grid view
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:28:57 +01:00
Thomas Lamprecht
1415738cc3 pbs: hide encryption column
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:22:58 +01:00
Thomas Lamprecht
a090fe1d1d pbs: followup: actually set cbind for all elements
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>
2020-11-17 19:21:16 +01:00
Thomas Lamprecht
158751a3b1 pbs: drop unused reference
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:12:34 +01:00
Thomas Lamprecht
53dea017e3 pbs: top bar UX improvements
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:11:34 +01:00
Thomas Lamprecht
a03b1b0e0f pbs: refactor remote edit window
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:09:17 +01:00
Thomas Lamprecht
6618680bc4 pbs: make remote add fully declarative
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:08:56 +01:00
Thomas Lamprecht
dece95c95d pbs: actually use cbind mixin for it to work
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 19:08:14 +01:00
Thomas Lamprecht
2df1316d0a pbs: adapt to API changes + some litte cleanups
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 18:11:46 +01:00
Thomas Lamprecht
ad92548117 restore window: adapt for api changes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 18:09:49 +01:00
Thomas Lamprecht
7bdb508cc9 pbs: drop beta notice and encryption checkbox
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-17 18:07:07 +01:00
Stoiko Ivanov
d944805ac4 add PBSConfig tab to Backup menu
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>
2020-11-17 12:34:03 +01:00
Stoiko Ivanov
7bcc34dbcf refactor RestoreWindow for PBS
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>
2020-11-17 12:34:03 +01:00
Stoiko Ivanov
d3ad46bae3 Make Backup/Restore panel a menuentry
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>
2020-11-17 12:34:03 +01:00
Stoiko Ivanov
4eaa2d3607 RegexTester: fix getting reference to regex field
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>
2020-11-13 08:10:42 +01:00
Stoiko Ivanov
b067a9d6c3 buildsys: rm -f .lint-incremental
else the build fails if the file does not exist

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-11-13 08:10:25 +01:00
Thomas Lamprecht
7acfe33c87 mobile: consistent success action message with full UI
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-30 15:12:59 +01:00
Thomas Lamprecht
d1e4e5cf5a run lint checks during build and allow incremental linting
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-30 15:11:44 +01:00
Thomas Lamprecht
fbc1a05b4d mobile: fix calendar start/end date labels
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>
2020-10-30 15:03:07 +01:00
Dominik Csapak
0db5cdb140 Utils: add product specific task descriptions
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-10-30 15:00:52 +01:00
Thomas Lamprecht
016ba5abbf mobile: show toast instead of annoying prompt
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-30 15:00:46 +01:00
Thomas Lamprecht
f07b75b056 js/mobile: fix eslint and enable linting on build
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>
2020-10-30 14:24:12 +01:00