Commit Graph

739 Commits

Author SHA1 Message Date
Thomas Lamprecht
63e00678b8 spam info grid: use 1:2 flex ratio between rule name and description
The rule names ain't _that_ long and it looks a bit better if name
and value are closer together

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-07 09:46:31 +01:00
Thomas Lamprecht
773489e36e spam info grid: code cleanups
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-07 09:46:31 +01:00
Thomas Lamprecht
ba8894541d spam info grid: use monospace font for score and level names
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-07 09:46:31 +01:00
Thomas Lamprecht
146c46f002 spam info grid: add score depending background colors gradations
based on the color of the recent patch add a darker and lighter level
for both, good and bad.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-07 09:46:31 +01:00
Thomas Lamprecht
282b960b59 spam info grid: sort by score by default
useful to have the levels sorted by their impact

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-11-07 09:46:31 +01:00
Dominik Csapak
d5aca48ee0 fix #4238: spam info grid: enable sorting & add colors for spam score
sorting the matching spam rules, e.g. by score, makes it easier to see
which rules have more weight in determining spam.

Additionally, color code the scores with colors akin to the rationale
in commit:
365f84c ("quarantines: color code deliver and delete buttons")

(red for positive spam scores, blue for negative ones)

and increase the font-weight for large spamscore contributing rules.

i chose a different blue tone that is more muted than what we use in
'info-blue' but is different from both the 'hover' color and the
'selected' color

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-11-07 09:46:31 +01:00
Dominik Csapak
c7a679755e 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>
2022-11-05 16:33:28 +01:00
Stoiko Ivanov
8fb8931b63 quarantine: use new controller for virus and attachment quarantines
fixes #1674 (the comment about multiselect for the virus quarantine)
fixes #3947 (multiselect for attachment quarantine)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-28 11:30:23 +02:00
Stoiko Ivanov
e66c888b86 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.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-28 11:30:23 +02:00
Thomas Lamprecht
ce7acf1733 fix color coding mistake for one context menu
left over from initially trying out different stuff

meh, would be a lot simpler if there weren't a 5 copies or so from
that stuff.

Reported-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-28 07:46:21 +02:00
Thomas Lamprecht
365f84c19b 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>
2022-10-22 16:16:41 +02:00
Thomas Lamprecht
2cc13fbc8a quarantine grids: use arrow function for size renderer
quicker to read and avoids "violating" style guide due to on-line
normal functions

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-22 16:14:23 +02:00
Thomas Lamprecht
cd15075876 quarantine: subject/sender: refactor/code-style-fix render functions
extends on the improvements from the previous commit, reduces code
lines while (hopefully, as slightly subjective) not reducing
readability

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-22 16:12:25 +02:00
Stoiko Ivanov
f57a60be2b quarantine: contextmenu: refactor for use in other quarantines
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-21 09:28:21 +02:00
Stoiko Ivanov
ab606ffb7f 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.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-21 09:28:21 +02:00
Dominik Csapak
bfe027027f 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>
2022-10-11 11:31:02 +02:00
Dominik Csapak
c4d58b0391 StatTimeSelector: don't show invalid month/day combinations
by limiting the store of the day selector by the selected month

reported by a user in the forum:
https://forum.proxmox.com/threads/wrong-calendar.111631/

Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-10-04 13:46:44 +02:00
Thomas Lamprecht
1cb64301e6 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>
2022-09-22 09:31:55 +02:00
Dominik Csapak
851cb02605 mobile: fix subscription check
the change to the rust based subscription code change the case of the
status field, so do the same change as in the desktop ui

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-09-22 08:52:46 +02:00
Thomas Lamprecht
967de4e4c7 ui: pbs remote: use proxmoxtextfield for password edit xtype again
to get back the skipEmptyText option

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-16 12:17:04 +02:00
Thomas Lamprecht
deba42e70d object editors: rework so that default label width fits everywhere
mostly by s/Regular Expression/Regex/ and transforming some
checkboxes' fieldLabel into boxLabels

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-14 17:58:06 +02:00
Thomas Lamprecht
8db2abc20b regex tester: make textfield flex to take all remaining space
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-14 17:57:11 +02:00
Thomas Lamprecht
b2aaec4077 pbs remote: add namespace support
restructure the existing field positions a bit to make it more
balanced with the new NS field.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-14 17:36:25 +02:00
Thomas Lamprecht
4f106fcf05 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>
2022-05-14 17:36:09 +02:00
Thomas Lamprecht
a4c22f9dd3 utils: code cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-17 09:35:46 +01:00
Fabian Ebner
18722987b5 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.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2022-02-03 11:29:08 +01:00
Thomas Lamprecht
12359425a9 mail header view: code reduction
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-03 11:28:16 +01:00
Thomas Lamprecht
86a5319246 mail header view: switch toggle-raw button to check box and move into panel
Allows an user to actually see what the current state is and wastes
less space for the actual header view.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-03 10:44:42 +01:00
Dominik Csapak
9f5e96dfb5 postfix queues: show decoded headers by default
and add a toggle button to show the raw headers

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-02-03 10:21:50 +01:00
Thomas Lamprecht
135cddbbde mail info: move receiver to top right
tying to meake better use of empty space

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-03 10:20:18 +01:00
Dominik Csapak
cf3e0888f3 rename recipient to receiver
we always call it receiver, not recipient, saves us a translation string

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-01-21 09:38:43 +01:00
Stoiko Ivanov
66a4f9d23c 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/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-01-21 09:34:00 +01:00
Thomas Lamprecht
704d4b875a tfa: add webauthn config panel
keep it simple and avoid an extra options panel

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-28 21:19:35 +01:00
Thomas Lamprecht
480a156958 tfa: set issuer name to something more telling
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-28 20:31:07 +01:00
Thomas Lamprecht
6ba2d1cad9 tfa: move tab-panel besides User one
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-28 20:23:19 +01:00
Wolfgang Bumiller
77854c16c1 add TFA components
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-28 20:17:47 +01:00
Dominik Csapak
b27d3f1d15 fix #3648: ldap config: do not send empty bindpw
so that we can reuse the saved one and the admin does not have
to enter the password on each config change (similar to PVE).

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-10-28 22:17:20 +02:00
Dominik Csapak
7058cddb63 fix #3565: fix typo in gettext
s/orignal/original/

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-08-09 17:36:12 +02:00
Fabian Ebner
48e230790e dashboard: node status: use repo status widget from widget-toolkit
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-07-28 10:25:39 +02:00
Fabian Ebner
a0a5f5cfcb dashboard: node info: use local subscription status only
instead of the cluster-wide status.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-07-28 10:25:39 +02:00
Thomas Lamprecht
44362902f3 utils: align notification toast to bottom-right again
The default changed sometimes between ExtJS 6.0.1, which used 'br',
and ExtJS 7.0, which has 't' (top) as new default.

So set it explicitly to the previous used one, less intrusive and was
intended to be there.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 12:10:47 +02:00
Thomas Lamprecht
980e88a9dd spam quarantine: avoid resetting saved position when removing single element
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-19 18:24:48 +02:00
Thomas Lamprecht
c621e29b5e server status: add button to show package version window
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-19 17:53:54 +02:00
Fabian Ebner
3cc0ec1b17 server administration: repos: add online help
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-07-19 17:42:15 +02:00
Thomas Lamprecht
7949d1992a sys config: network: show live-apply button
The PMG API supports that feature now when ifupdown2 is installed.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-16 16:37:29 +02:00
Thomas Lamprecht
e47571db64 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>
2021-07-16 16:34:07 +02:00
Thomas Lamprecht
8b93a29ee0 comment text width improvements
use the full 8ß to 100 CCs available

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 19:12:09 +02:00
Thomas Lamprecht
b9cc0695c3 configuration: add icons
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 19:11:32 +02:00
Thomas Lamprecht
fc0ba73d01 user management: add icons
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 19:11:13 +02:00
Thomas Lamprecht
5b75abc7c3 server certificates: add icons
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 19:10:58 +02:00
Thomas Lamprecht
e245faa5c2 server administration: add icons
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 18:54:50 +02:00
Thomas Lamprecht
9b7b055365 dashboard: increase height of second row slightly
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 16:04:37 +02:00
Thomas Lamprecht
6d491d75ff dashboard: add hover text-shadow class for repo-panel link
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 16:02:56 +02:00
Thomas Lamprecht
8f691c7bca dashboard: move cluster resources to end to avoid "jumping"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 15:55:47 +02:00
Thomas Lamprecht
774418f08b 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>
2021-07-13 15:18:31 +02:00
Fabian Ebner
91a4c642df dashboard: hide cluster resources if it's a single node
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-07-13 14:40:08 +02:00
Fabian Ebner
11eae1a0e7 dashboard: add node info panel
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.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-07-13 14:40:08 +02:00
Fabian Ebner
8431ab8936 add panel for APT repositories
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-07-13 14:31:41 +02:00
Dominik Csapak
056fdce926 add Settings window
copied from pbs and changed PBS to PMG

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-07-13 14:28:01 +02:00
Dominik Csapak
5958ebdf29 ServerStatus: update column width on state change
when having the settings window (when implemented) open there

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-07-13 14:28:01 +02:00
Dominik Csapak
31f5e45885 LoginView: add save username checkbox
like we have in pbs/pve but only for non-quarantine view

we have to increase the width of the window, so it fits together
with the 'send quarantine link' button

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-07-13 14:28:01 +02:00
Thomas Lamprecht
c9d5584601 server status: refactor and code cleanups
arrow functions all the way ;-)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 14:18:42 +02:00
Thomas Lamprecht
d615055f64 status: avoid using depreacated helper
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 09:46:36 +02:00
Dominik Csapak
f534c41441 ServerStatus: update panel columsn dynamically
like we do in pve and pbs
for now the user cannot change the preferred columns and the default is 'auto'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-07-13 09:45:22 +02:00
Thomas Lamprecht
104f1baff4 ui: minimally increase font-size of product title and version
Similar like we did for Proxmox VE's manager. The main title and
version should stand a bit more out compared to simple nav/button
texts.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-03 23:31:54 +02:00
Thomas Lamprecht
3d233789a6 quranatine view: make navtree more like main navtree
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-03 22:48:23 +02:00
Thomas Lamprecht
13f8df5c6c quarantine view: change ui to pve-nav
since 'nav' contains some styling we do not want (in extjs 7.0)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-03 22:47:39 +02:00
Thomas Lamprecht
216cfe9dd1 main view: fix nav tree indentation
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-03 22:47:02 +02:00
Thomas Lamprecht
e810c530ec quranatine view: adapt to new beforeChangePath signature to fix routing/app
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-03 22:31:28 +02:00
Stoiko Ivanov
65c6904285 virusquarantine: fix time format
Ext js orients itself on php's date function, which uses 'i' for
minutes ('m' is the month as integer)[0].

Reported via our community-forum:
https://forum.proxmox.com/threads/time-display-bug-in-virus-quarantine.90816/

Quickly tested on my test-setup

[0] https://docs.sencha.com/extjs/7.0.0/modern/Ext.Date.html
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-14 10:06:41 +02:00
Oguz Bektas
fcba524dba remove safe browsing from clamav tab
Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
2021-06-08 13:13:54 +00:00
Dominik Csapak
f70c611b83 MainView: fix redirectTo call
takes now an object as paramter in extjs 7.0

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-06-08 13:13:54 +00:00
Dominik Csapak
4e6c6b96b4 MainView: use new beforeChangePath signature
subpath can be optional in extjs 7.0, so handle that

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-06-08 13:13:54 +00:00
Dominik Csapak
60a9d6fdbc {Attachment, Spam, Virus}Quarantine: fix layout for iframe
in extjs 7.0 the css changed slightly so that we need to define
the 'fit' layout explicitely to maintain the full width/height

otherwise it can happen that the iframe gets cut off

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-06-08 13:13:54 +00:00
Dominik Csapak
9d87a3338d change ui to 'pve-nav'
since 'nav' contains some styling we do not want (in extjs 7.0)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-06-08 13:13:54 +00:00
Stoiko Ivanov
a2293354c5 quarantineview: unify url generation
this patch adds the cleanup for the attachment quarantine from
0e26e20aa5 to the virus- and
spamquarantine.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-05-11 16:17:05 +02:00
Stoiko Ivanov
61c1d4d5b9 attachmentquarantine: fix missing '&' for raw-param addition
small glitch introduced in the code cleanup in:
0e26e20aa5

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-05-11 16:17:05 +02:00
Thomas Lamprecht
642aba90ed quarantine: restore behavior of selecting next in list after action
This fixes a UX regression stemming from the recently introduced
commit 9aed379a70
"spam quarantine: avoid full store reload on single-element actions"

A load restored the saved selection after load complete, with the
neat and very useful feature to jump to the next in line if the old
one did not exist anymore.

Call this now factored out code part ourself in the fast-path.

This was reported in the forum:
https://forum.proxmox.com/threads/proxmox-mail-gateway-6-4-released.86760/#post-380971

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-01 13:42:53 +02:00
Thomas Lamprecht
9b4247fbf2 quarantine list: factor out restoreSavedSelection
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-04-01 13:39:36 +02:00
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
Thomas Lamprecht
f1bb77563c buildsys: use separate makefiles
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-30 14:17:08 +01:00
Thomas Lamprecht
28eb60c0bd eslint fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-30 14:08:16 +01:00
Thomas Lamprecht
f057ca9085 drop jslint hints
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-23 14:08:50 +02:00
Thomas Lamprecht
a36756b058 drop jslint hint for Proxmox global
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-23 14:03:17 +02:00
Thomas Lamprecht
c87d46fbe8 tree wide: eslint --fix
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-23 13:17:15 +02:00
Thomas Lamprecht
92b6c1f300 quarantine action: use shadow for toast "window"
better contrast

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-23 13:15:12 +02:00
Thomas Lamprecht
467eb50baa quarantine: make annoying success prompt a toast
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-23 12:57:20 +02:00
Thomas Lamprecht
6d8b4e26f2 make lint: use eslint
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-23 12:55:25 +02:00
Thomas Lamprecht
8153da61b4 utils: eslint fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-23 12:09:55 +02:00
Dominik Csapak
b53146333a fix #2844: MailTracker: do not collapse rows with double click
so that users can select words with double click, but can still expand
the logs with it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-09-23 09:04:30 +02:00
Thomas Lamprecht
4ebc52dd2d postfix mailq admin: avoid early load by updating nodename only if changed
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-04 17:58:17 +02:00
Thomas Lamprecht
bef394fcce PostfixMailQ eslint fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-04 17:58:17 +02:00
Thomas Lamprecht
9db8595668 deferred mailq: sort initially by arrival time
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-04 17:58:15 +02:00
Stoiko Ivanov
6cde982f6a fix #1976: enable remoteSort for PostfixMailQueue
The mailq results are potentially very large, why a BufferedStore is used.

BufferedStores only support [0] remote filtering (which is already done) and
remote sorting (which this patch enables).

simpleSortMode (getting sortfield and sortdirection as two parameters instead
of an array with multiple objects containing those fields), is enabled to
work with our API.

[0] quite naturally, since you'd need to have the complete result to sort it,
 however only documented in the source code (and not the reference docs)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-06-04 08:34:55 +02:00
Thomas Lamprecht
22b6f5db77 report: indentation cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-04 08:22:19 +02:00
Thomas Lamprecht
51ef4bbe9c followup: add separator
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-04 08:21:33 +02:00
Moayad Almalat
a5db7653b8 gui: alow to remove subscription
Signed-off-by: Moayad Almalat <m.almalat@proxmox.com>
2020-06-04 07:47:57 +02:00
Dominik Csapak
63acd10808 remove Logo.js
it is now in the widget-toolkit

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-18 18:51:32 +02:00
Dominik Csapak
23959bb0ff MailTracker: change default emptyText
by default show that the user first has to press search, and
afterwards show the old emptyText

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-24 17:41:22 +02:00
Dominik Csapak
e8e332fe01 MailTracker: do not search when not both datetime parameters are given
in the gui, we always expect an end and starttime, the only case
where we do not get this is when the fields are invalid, so bail out
in that case instead of searching

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-24 17:41:02 +02:00
Dominik Csapak
2e330d4477 MailTracker: buffer onFilterChange
so that the store gets loaded only when the user stops typing

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-24 17:41:02 +02:00