Commit graph

206 commits

Author SHA1 Message Date
Kailash Nadh
5a3664aee2 Add support for caching slow queries on large databases.
- Add materialized views for list -> subscriber counts, dashboard chart,
  and dashboard aggregate stats that slow down significantly on large
  databases (with millions or tens of millions of subscribers). These
  slow queries involve full table scan COUNTS().

- Add a toggle to enable caching slow results in Settings -> Performance.

- Add support for setting a cron string that crons and periodically
  refreshes aggregated stats in materialized views.

Closes #1019.
2024-01-27 15:51:12 +05:30
Kailash Nadh
d8ca26e747 Add a 'template reference' docs link next to campaign editor. Closes #1405. 2024-01-10 22:07:40 +05:30
Kailash Nadh
0d319ad9fd Add 'slug' (permalink) support for campaign archives. Closes #1394. 2024-01-09 23:34:08 +05:30
Kailash Nadh
a2629c2c31 Make all ID/UUID labels on the UI onclick -> clipboard copy. 2023-12-31 21:39:19 +05:30
Kailash Nadh
bce675870c Fix preconfirm option not working on bulk 'select all' subscriber list management. Closes #1646. 2023-12-30 20:52:14 +05:30
Moris
9bd7511952
Update italian translation (#1644)
fixed some grammatical errors
2023-12-28 22:13:16 +05:30
Preben Rather Sørensen
9a30067d9a
Create da.json (Danish translation) (#1628) 2023-12-20 10:47:13 +05:30
Denys Nykula
e869f7b0a9
Translate to Ukrainian (#1606)
Co-authored-by: Denys Nykula <vegan@libre.net.ua>
2023-12-08 00:27:52 +05:30
Isaak Tsalicoglou
fa506643a4
Add i18n Greek translation (#1605) 2023-11-27 12:53:28 +05:30
Thomas-LCP
9e3af91dc5
Update fr.json (#1586) 2023-11-10 11:47:14 +05:30
Fussel132
06332d52a0
Update de.json (#1572)
The settings idleTimeout and waitTimeout were exactly the same in the German translation and could not be distinguished
2023-10-30 10:55:28 +05:30
Kailash Nadh
1ebd80c577 Add Hebrew translation. Closes #1517.
Completed @liy1414's pending PR with automated GPT-4 translation.

Co-Authored-By: liy1414 <88595225+liy1414@users.noreply.github.com>
2023-10-15 21:00:12 +05:30
Kailash Nadh
491fab38cb Update i18n language files. 2023-10-15 20:55:46 +05:30
Kailash Nadh
954ed45009 Fix incorrect Slovak language code. Closes #1533. 2023-09-25 11:14:29 +05:30
Kailash Nadh
11f90b2f62 Fix typo in i18n S3 expiry description. 2023-09-19 13:51:26 +05:30
Kailash Nadh
2b95c88188
Add Postmark bounce webhook support (refactor #1385) (#1485)
Co-authored-by: Thomas Siebers <tom@tsiebers.de>
2023-08-31 21:27:34 +05:30
Kailash Nadh
79ff7293ea Fix broken dummy password warning on SMTP test UI. Closes #1450. 2023-08-15 20:57:58 +05:30
Unmesh Sagar
a440b79530
modified mistakes and typos in translation (#1419) 2023-08-01 17:09:43 +05:30
Kailash Nadh
3865e95296 Update untranslated i18n language strings. Auto-translated with GPT 3.5. 2023-07-27 23:32:07 +05:30
Kailash Nadh
ad80c716f9 Add new privacy option 'Record opt-in IP' to record IP address of optin confirmation.
- Add new 'Subscriptions' table on the subscriber list form that shows subs,
  IP, and other data.
- Add new `meta` JSONB field to `subscriber_lsts` table.

Closes #1329.
2023-07-26 23:00:32 +05:30
Kailash Nadh
a62851915c Mask passwords on the UI accurately with the actual passwords length.
This PR masks all the password fields in the UI with a pseudo dot character
retaining the rune length of the original password so that the password
fields on the UI appear to be containing the entered value as-is.

The earlier implementation would revert to a fixed length dummy password
confusing certain users and making it look like the password they entered
wasn't being saved.
2023-07-21 23:46:46 +05:30
Jorge - vitrubio
92a4d9911e
Update es.json (#1378)
updated translations and grammar.
2023-06-20 23:36:37 +05:30
Jorge - vitrubio
5e24ef9848
Update it.json (#1379)
Updated italian language
2023-06-20 23:35:13 +05:30
Kailash Nadh
3b9a0f782e
Add support for file attachments on campaigns (#1341)
- Adds support for arbitrary file uploads with an admin setting to select allowed file extensions.
- Adds support for attaching media (files) to campaigns.
2023-05-18 16:55:59 +05:30
Viorel-Cosmin Miron
cb2a579252
Update ro.json (#1326)
Fixed and updated romanian translation.
2023-05-12 13:01:38 +05:30
Kailash Nadh
5fc28a733c Add support for variable bounce processing actions.
- Add support for `complaint` to the SES bounce processor.
- Add support for `hard/soft` to Sendgrid bounce processor.
- Add new bounce actions `None` and `Unsubscribe`.
- Add per type (`soft/hard/complaint`) bounce rule configuration to
  admin settings UI.
- Refactor Cypress bounce tests.
2023-04-11 11:33:40 +05:30
Justin Beaty
476d5bebf2
Add support for publishing full content in public archive RSS feed body (#1262)
- Introduces a new option on the settings UI to optionally publish the full campaign body in
  public archive RSS feeds.

Closes #1033 

Co-authored-by: Kailash Nadh <kailash@nadh.in>
2023-04-08 09:39:10 +05:30
peix187
146e8e7a63
Add missing translation message in maintenance page (#1279) 2023-04-08 08:48:40 +05:30
peix187
0d4c1d1471
Fix portuges missing translations (#1278) 2023-04-08 08:48:03 +05:30
Alfredo Sola
4821dd7c66
Update es.json (#1258) 2023-03-25 11:31:32 +05:30
Margu
35ddf3c899
fixed weekday order to fix #1182 (#1227) 2023-03-06 19:04:04 +05:30
saginsa
5020bae77e
fix #1210 French day name (#1226) 2023-03-04 15:08:32 +05:30
Andrási István
09fe812dd7
Update hu.json (#1219)
I tried my best to fix the translation according to context, cultural analogies and technical jargon. While some of it was right, there were severe mistranslations, sometimes it crucial areas. I'm Hungarian.

Thanks!
2023-02-28 10:26:51 +05:30
Kailash Nadh
d6fd4ab586 Fix 'delete' -> 'clear' language on bounces UI. Closes #1072. 2023-02-26 13:19:00 +05:30
Erik Junsved
2c531eb1d6
(Public strings only) Add Swedish translation (#1194)
* Add swedish translation (public strings only)

* Fix spelling error in public.privacyWipeHelp
2023-02-20 20:03:13 +05:30
Ronan LE MEILLAT
2de72eac56
update french translation (#1190)
* Update hCaptcha french translation

* update french translation
2023-02-16 23:30:56 +05:30
Ronan LE MEILLAT
e77635cdd2
Update hCaptcha french translation (#1178) 2023-02-08 00:04:23 +05:30
kosssi
3513988a07
[i18n] Add translation of the term Powered by (#1168) 2023-02-07 14:43:25 +05:30
saginsa
2ed62cb82e
fix russian translate (#1174) 2023-02-04 20:04:37 +05:30
Marcin Kunert
bfc8a0cb3b
Update pl.json (#1165) 2023-02-01 10:58:09 +05:30
Marcin Kunert
eb9f6876b0
Update pl.json (#1164) 2023-01-31 19:19:18 +05:30
Tycho Werner
4977b746b9
Partial update of NL i18n (#1056)
* Partial update of NL i18n

* Update i18n/nl.json

Co-authored-by: Jesse <jessegielen@hotmail.com>

---------

Co-authored-by: Jesse <jessegielen@hotmail.com>
2023-01-28 14:47:22 +05:30
Kailash Nadh
b339482d89 Update Polish language.
Co-authored by tymoteusz@jozwiak.top

Closes #1120
2023-01-28 13:59:07 +05:30
Kailash Nadh
8985e5c24a
Add hCaptcha.com support to public subscription form. (#1152)
Bots easily bypass the simple `nonce` hack. This commit adds support
for the hcaptcha.com widget.

- New `Security` tab in the admin settings UI.
- Enable/disable CAPTCHA.
- Render CAPTCHA on the public subscription form.

Closes #1116.
2023-01-23 21:50:10 +05:30
Manuel Villarroel
66c81c8191
Update es.json (#1139)
The use of the word "Subscribir" is updated by "Suscribir", because it is the form recommended by the RAE:
https://dle.rae.es/suscribir?m=form

The use of the word "Des-subscribir" is updated, since its use is wrong. The RAE recommends the use of "Darse de baja":
https://twitter.com/raeinforma/status/748125040722448384?lang=es
2023-01-09 00:32:40 +05:30
Filip Hanes
076b7c7a0a
Slovak translation (#1128) 2023-01-02 16:04:45 +05:30
Kailash Nadh
3cfbc646e3 Add support for multiple subscribers in a single transactional message call.
This patch adds new array fields on `POST /tx`: `subscriber_emails[]`, `subscriber_ids[]`.
Either of these array fields can be sent with multiple subscribers.

The individual non-array fields `subscriber_id` and `subscriber_email` are deprecated.

Closes #994.
2022-12-25 17:32:01 +05:30
Jorge - vitrubio
396f85d273
updated spanish translation (#1119) 2022-12-24 21:44:38 +05:30
Jorge - vitrubio
ba46769fcf
updated italian translation (#1118) 2022-12-24 21:36:24 +05:30
Johannes Filter
8a2d053353
Fix misleading German translation (#1115)
The word `erfolgreich` (successfully) implies the user is already confirmed, even though s/he still has to click on the confirmation link.
2022-12-21 20:00:33 +05:30