Commit graph

137 commits

Author SHA1 Message Date
Kailash Nadh
c6d5d862e2 Warn of unsaved changes on the campaign editor on navigation. Closes #551. 2022-01-15 17:20:22 +05:30
Kailash Nadh
04ea18c87d Refactor opt-in confirmation behaviour in subscriber update API.
- Updating a subscriber no longer triggers an opt-in confirmation mail
  as `POST /api/subscribers/:id/optin` allows that.
- A "Send opt-in confirmation" option is added to the subscriber
  update UI.

Closes #656.
2022-01-15 15:50:13 +05:30
Kailash Nadh
583dab4bc6 Add support for per-campaign custom headers.
- Add new `headers[]` column to the campain table.
- Add new headers box to the campaign UI that takes a JSON array of
  custom headers like the headers on the SMTP settings UI.
- Headers are added to e-mails and messenger postback webhooks.
- Add cypress tests.

Closes #514.
2022-01-04 22:27:40 +05:30
Kailash Nadh
dd061f56d4 Add support for direct SSL/TLS (non-STARTTLS) SMTP connections.
- Add support for TLS in `smtppool` (v0.4.0) and upgrade the lib.
- Change `tls_enabled: bool` in the settings table to string
  `tls_type: STARTTLS|TLS|none` and on the settings UI.
- Add DB migrations and schema changes to apply the field change.

Closes #504.
2022-01-03 19:28:36 +05:30
Kailash Nadh
c1c2b67503 Add a link to more language packs to the language settings UI. 2021-12-18 21:50:17 +05:30
Kailash Nadh
fabe06e339 Add support for custom CSS/JS in settings for admin and public pages.
This feature was originally authored by @sweetppro in PR #438.
However, since the PR ended up in an unclean state with
multiple master merges (instead of rebase) from the upstream, there are
several commits that are out of order and can can no longer be be
squashed for a clean feature merge.

This commit aggregates the changes from the original PR and applies the
following fixes on top of it.

- Add custom admin JS box to appearance UI.
- Refactor i18n language strings.
- Add handlers and migrations for the new `appearance.admin.custom_js`
  field.
- Fix migration version to `v2.1.0`
- Load custom appearance CSS/JS bytes into global constants during boot
  instead of making a DB call on every request.
- Fix and canonicalize URIs from `/api/custom*` to `/public/*.css`
  and `/admin/*.css`. Add proxy paths to yarn proxy config.
- Remove redundant HTTP handlers for different custom appearance files
  and refactor into a single handler `serveCustomApperance()`
- Fix content-type and UTF8 encoding headers for different file types.
- Fix incorrect registration of public facing custom CSS/JS handlers
  in the authenticated admin URI group.
- Fix merge conflicts in `Settings.vue`.
- Minor HTML and style fixes.
- Remove the `AppearanceEditor` component and use the existing
  `HTMLEditor` component instead.
- Add `language` prop to the `HTMLEditor` component.

Co-authored-by: SweetPPro <sweetppro@users.noreply.github.com>
2021-12-18 15:38:42 +05:30
Jesse Gielen
1c8ab5c721
Add dutch (nl) translation 2021-11-29 17:53:02 +01:00
NicoHood
8a70595aff
Fix #601 german translation 2021-11-29 08:40:23 +01:00
bohemtucsok
903330b972
Create hu.json (#591) 2021-11-16 19:10:28 +05:30
MickGe
2388a05003
Update fr.json (#581) 2021-11-10 20:20:48 +05:30
Kailash Nadh
738c8e95ee
Merge pull request #569 from ChrisTG742/patch-2
German translation needed for #526
2021-11-05 08:53:21 +05:30
Jorge - vitrubio
58bd242b5b
Updated es.json
Updates in non translated strings and corrected some typos. Modified some translations.
2021-11-05 00:40:15 +01:00
ChrisTG742
bfefb0ff27
German translation needed for #526
Adds missing german translation for #526
2021-11-04 09:40:54 +01:00
Kailash Nadh
1c8ac0f866 Add 'preconfirm subscription' option to subscriber UI. Closes #526. 2021-10-27 20:46:37 +05:30
NicoHood
fb3da6bf3d
Add german back button translation 2021-10-24 18:27:15 +02:00
Kailash Nadh
b163b1305b Add a "Back" button the public subscription/message page.
On a successful form submission, error message etc., check if there's
browser history and render a button that takes the user back to
a meaningful origin from the dead-end message page.

Closes #527.
2021-10-23 11:39:39 +05:30
Marcin Kunert
d6703f2da7
Updated polish translations 2021-10-11 10:24:02 +02:00
marco.fucito
7015c047d1 Italian translation
Fixed some translations.
Dashboards, logs, newsletters and privacy are also commonly used in Italian.
2021-09-29 22:37:44 +02:00
Kailash Nadh
93c7c8727c Replace TinyMCE source editor with Flask HTML editor. 2021-09-27 23:11:19 +05:30
Kailash Nadh
98ed4fb384 Add a landing login page and a logout option.
BasicAuth without an explicit landing page or a logout option has
sometimes been confusing to users. This commit adds a static
landing page on / with a login link and a logout option in the admin
that "logs out" BasicAuth session by posting invalid credentials to
the server to obtain a 401.
2021-09-26 23:42:57 +05:30
Kailash Nadh
d86438bde9 Introduce @TrackLink shorthand for generating tracking links.
The default `{{ TrackLink "https://listmonk.app" }}` template function
is clumsy to write and does breaks WYSIWYG editors and HTML syntax
highlighting because of the quotes. The new syntax doesn't break HTML
and is easier to write.

Eg: `<a href="https://listmonk.app@TrackLink">Link</a>`

- Introduce @TrackLink shorthand.
- Add first-class support for tracking links in the WYSIWYG (TinyMCE)
  editor by introducing an on/off checkbox on the link dialog.
- Improve default dummy campaign content to highlight this.
2021-09-26 16:03:05 +05:30
Kailash Nadh
4dbac141f2 Add Romanian i18n language pack contributed by @gabrielpioaru.
- Also add TinyMCE Romaninan language pack.

Closes #482.
2021-09-25 15:53:24 +05:30
Kailash Nadh
7aee36eab1 Add support for blocklisting e-mail domains.
E-mails in the domain blocklist are disallowed on the admin UI, public
subscription forms, API, and in the bulk importer.

- Add blocklist setting that takes a list of multi-line domains on the
  Settings -> Privacy UI.
- Refactor e-mail validation in subimporter to add blocklist checking
  centrally.
- Add Cypress testr testing domain blocklist behaviour on admin
  and non-admin views.

Closes #336.
2021-09-25 15:39:09 +05:30
Kailash Nadh
e71115db26 Add option to toggle sending opt-in confirmation. Closes #363. 2021-09-25 10:38:13 +05:30
Kailash Nadh
9f9425c408 Refresh i18n files. 2021-09-19 15:05:15 +05:30
Kailash Nadh
61e88681ed Add campaign analytics APIs and UI 2021-09-17 21:41:25 +05:30
ChrisTG742
647bea3a45
translation fixes
fixed a few upper case and other minor grammatical glitches
2021-09-01 10:44:43 +02:00
Kailash Nadh
abedb266d4 Add Czech i18 translation contributed by @srchlm
Closes #444
2021-08-28 16:32:28 +05:30
Kailash Nadh
d6d1883587 Add custom S3 backend support (eg: Minio) to media uploads
- Introduce a new S3 backend URL on the settings UI
- Add DB migration to populate S3 URL for existing S3 settings
- Refactor and fix URL formatting

Closes #139
2021-08-15 16:09:00 +05:30
Kailash Nadh
59c897645d Normalize i18n files with new bounce keys.
- Rename some 'settings.smtp' keys to `settings.mailserver` so that
  they can be reused across SMTP and bounce settings UIs.
2021-08-14 15:56:43 +05:30
Kailash Nadh
1ae98699e7 Add support for bounce processing.
- Blocklist or unsubscribe subscribers based on a bounce threshold
- Add /bounces UI for viewing bounces and in the subscriber view
- Add settings UI for managing bounce settings
- Add support for scanning POP3 bounce mailboxes
- Add a generic webhook for posting custom bounces at /webhooks/bounce
- Add SES bounce webhook support at /webhooks/services/ses
- Add Sendgrid bounce webhook support at /webhooks/services/sendgrid
2021-08-14 15:35:29 +05:30
David Regla
137e9dd0e0 Refine Spanish (es) i18n translations 2021-08-14 12:42:28 +05:30
Tom Sacher
3abac31161 chore(translations): improve german translations 2021-06-08 21:50:47 +02:00
Kailash Nadh
868fae6ac2 Refactor subsbscription status option on the import page.
- Refactor subimporter New*() funcs to take opt structs.
- Refactor and simplify Vue code.
- Remove redundant i18n entries and use existing ones.
- Remove redundant subimporter constants and use existing ones.

- Consider 'overwrite' option for subscription status as well.
- Write Cypress integration tests for the new feature.
2021-06-06 17:33:23 +05:30
Russ Smith
7ca08f0a36 Adding a subscription status option to the import.
Ref #168
2021-06-06 17:33:23 +05:30
jonathanmmm
30132c5757
Update de.json
I have tried changing them as best as I could.
I found that in english there is about AWS written something about access key and secret key but
AWS tells on their page about  `Access keys (access key ID and secret access key) `
https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html
Should the access key mean ID and the second secret access key?
2021-05-27 22:51:00 +02:00
senol
30074ecd36 Turkish translations added 2021-05-21 02:14:27 +02:00
Kailash Nadh
d6bdcd4f54
Merge pull request #365 from jorge-vitrubio/patch-1
minor translation changes
2021-05-20 17:16:07 +05:30
Jorge - vitrubio
0146d6ff07
minor typo 2021-05-20 12:26:45 +02:00
Jorge - vitrubio
fc3e517027
minor translation changes 2021-05-20 12:11:37 +02:00
Kailash Nadh
95a81d17ce Add option on UI to toggle update checks.
Closes #326
2021-05-16 16:54:55 +05:30
seba81
194e530d3b Adding spanish language 2021-05-14 13:14:02 -03:00
Роман
6ada0aabda
Fix typo 2021-04-23 16:42:55 +03:00
Роман
c7505389d4
better translation option 2021-04-21 20:13:03 +03:00
Роман
f6339c7b5c
Update ru.json 2021-04-21 17:31:36 +03:00
Kailash Nadh
1c8d2725c6 Add Russian translation by @inpos. Closes #329. 2021-04-21 18:48:50 +05:30
Kailash Nadh
97d297e18c Normalize i18n files 2021-04-21 13:53:31 +05:30
Marcin Kunert
f9a2eb87f0
Finished Polish (pl) translations 2021-04-16 09:53:09 +02:00
Marcin Kunert
777a89877a
Polish translations
Work in progress
2021-04-15 23:15:40 +02:00
FelixDz
ca19c5998b
Merge branch 'master' into patch-1 2021-04-14 20:19:00 +02:00
FelixDz
12f9ad46b5
Create fr.json
Added / corrected french translations.
2021-04-14 18:05:43 +02:00
Kailash Nadh
620271bec4 Normalize and merge missing keys into all i18n files 2021-04-14 13:52:56 +05:30
Kailash Nadh
1e59d53135 Add markdown support to campaign content. 2021-04-14 12:26:09 +05:30
Pascal Below
531d7680e7 add german translations for missing keys in public.*, fix typos 2021-03-19 09:43:43 +01:00
Joice
4d681f053e fix: typo corrections to malayalam localization 2021-03-14 13:26:42 +05:30
Kailash Nadh
8a6ed2ac2e Fix incorrect week day name logic in translation 2021-03-07 12:36:10 +05:30
Kailash Nadh
8779c49660
Merge pull request #274 from enniosousa/master
Add Brazilian Portuguese i18n
2021-02-18 12:34:09 +05:30
Ennio Sousa
c2d7e101cd
Create pt-BR.json 2021-02-17 17:15:29 -03:00
TomBoss
2b8b10c691
Add Italian i18n 2021-02-15 20:12:23 +01:00
TomBoss
da7975f82b
corr. 2021-02-15 19:10:08 +01:00
Kailash Nadh
e90fb1d88d Format i18n/fr JSON file 2021-02-13 18:11:10 +05:30
Kailash Nadh
a54d96784e
Merge pull request #267 from TomBoss/master
French i18n
2021-02-13 18:07:40 +05:30
Kailash Nadh
2f6bd05ca0 Fix the optin-in, form re-subscribe behaviour.
If a user is already subscribed to an optin list but hasn't
confirmed, subscribing using the same e-mail id from the public
form now re-sends the optin e-mail while also showing an
appropriate message on the frontend rather than just saying
"subscribed successfully".

https://github.com/knadh/listmonk/issues/266
https://github.com/knadh/listmonk/issues/264
2021-02-13 17:55:10 +05:30
TomBoss
42a31e4696
French i18n 2021-02-13 11:46:29 +01:00
Kailash Nadh
2f05d4ef5b Fix broken opt-in campaign template 2021-02-13 13:28:39 +05:30
Kailash Nadh
b950d2f4ff Refactor fetching of server config and settings.
The earlier approach of loading `/api/config.js` as a script on
initial page load with the necessary variables to init the UI is
ditched. Instead, it's now `/api/config` and `/api/settings` like
all other API calls. On load of the frontend, these two resources
are fetched and the frontend is initialised.
2021-02-13 12:34:36 +05:30
Kailash Nadh
ee46b3d3d8 Fix blank UI on forms pages when there are no public lists 2021-02-06 18:58:11 +05:30
Kailash Nadh
c7500f9be3 Fix campaign update email title i18n 2021-02-02 17:06:27 +05:30
Diogo Correia
be311419ff
Add Portuguese translations
Signed-off-by: Diogo Correia <me@diogotc.com>
2021-02-01 10:14:56 +00:00
Kailash Nadh
d737e5d92b Fix from email in i18n language 2021-02-01 15:38:31 +05:30
Kailash Nadh
2235d30063 Add a new public page for end users to subscribe to public lists.
In addition to generating HTML forms for selected public lists,
the form page now shows a URL (/subscription/form) that can be
publicly shared to solicit subscriptions. The page lists all
public lists in the database. This page can be disabled on the
Settings UI.
2021-01-31 16:19:39 +05:30
Kailash Nadh
a7b72a6b7c Fix broken i18n language keys 2021-01-31 13:38:35 +05:30
Kailash Nadh
27d9eab4a2 Merge branch 'plaintext' into i18n 2021-01-30 18:50:06 +05:30
Kailash Nadh
68afd61024 Add support for alternate plaintext body for e-mails.
This commit removes the Go html2text lib that would automatically
convert all HTML messages to plaintext and add them as the alt
text body to outgoing e-mails. This lib also had memory leak
issues with certain kinds of HTML templates.

A new UI field for optionally adding an alt plaintext body to
a campaign is added. On enabling, it converts the HTML message in
the campaign editor into plaintext (using the textversionjs lib).

This introduces breaking changes in the campaigns table schema,
model, and template compilation.
2021-01-30 18:49:47 +05:30
Kailash Nadh
a226e49f74 Fix incorrect language weekday keys 2021-01-30 18:39:25 +05:30
Matthias Bilger
69a6b89f2e
Updated German translation 2021-01-29 22:47:01 +01:00
Joice
ade6ecd2d9 localized newly added strings 2021-01-28 22:31:08 +05:30
Kailash Nadh
7359e0ae4b
Merge pull request #253 from joicemjoseph/feat/l10n-malayalam
Localized malayalam strings
2021-01-28 21:26:13 +05:30
Joice
cc81369f9f finished Malayalam localization 2021-01-28 21:22:31 +05:30
Kailash Nadh
ccfada95de
Merge pull request #255 from m42e/l18n/german
German i18n
2021-01-28 21:18:19 +05:30
Kailash Nadh
83613dcad0 Typo fixes on u18n/en language 2021-01-28 21:14:24 +05:30
Kailash Nadh
fcc068cd70 Add missing translations and fix broken ones on the UI 2021-01-26 22:01:55 +05:30
Matthias Bilger
5ecc427df2 German translation 2021-01-24 22:15:07 +01:00
Kailash Nadh
027261793f Add support for rate limiting messages with a sliding window.
Certain SMTP hosts limit the total number of messages that can be
sent within a window, for instance, X / 24 hours. The concurrency
and message rate controls can only limit that to a max of
1 messages / second, without a global cap.

This commit introduces a simple sliding window rate limit feature
that counts the number of messages sent in a specific window, and
upon reaching that limit, waits for the window to reset before
any more messages are pushed out globally across any number of
campaigns.

Context: https://github.com/knadh/listmonk/issues/119
2021-01-24 12:19:26 +05:30
Kailash Nadh
ee4fb7182f Refactor i18n name and fix the L() function in public HTML templates 2021-01-23 19:34:30 +05:30
Kailash Nadh
ec1c4f30ed Add subscriber export feature 2021-01-23 18:23:29 +05:30
Kailash Nadh
3498a727f5 WIP: Add i18n support 2021-01-17 20:59:01 +05:30