Commit graph

198 commits

Author SHA1 Message Date
Rafael Slonik
4b551ef679
pt-BR.json v2.3.0 (#1046) 2022-11-21 17:33:38 +05:30
NicoHood
de2e5a11aa
Update german translation (#1045) 2022-11-21 11:38:51 +05:30
Kailash Nadh
395ae987da Update cs-cz i18n file. Co-authored-by: Lumir Srch <srchlm@its.cz> 2022-11-20 11:25:13 +05:30
vados
c52a06728c
i18n(jp): update for 2.3.0 release (#1042) 2022-11-19 17:17:16 +05:30
Joice
b2853fd67f
Adds malayalam strings localized (#1041) 2022-11-19 17:16:31 +05:30
Kailash Nadh
818f2c9d8e Add public archive on/off toggle to settings. 2022-11-10 23:30:53 +05:30
Kailash Nadh
438568eeb0 Add global site name setting to render name on public pages. 2022-11-10 23:30:53 +05:30
Kailash Nadh
9add728b08 WIP: Add support for publishing campaigns to publish archives. 2022-11-10 23:30:11 +05:30
Kailash Nadh
ef1f84ee7c Add new description field to lists. Closes #925. 2022-11-01 21:04:35 +05:30
Kailash Nadh
3b0083190e Add ability for subscribers to manage preferences on the unsub form.
- Ability to change name.
- Ability to unsubscribe from individual lists.
- Toggle option to enable this in Admin Settings -> Privacy.

Closes #455.
2022-10-29 15:23:28 +05:30
davidesteve
9c94efb863
Create ca.json (#955) 2022-09-27 09:44:24 +05:30
Kailash Nadh
f9bc049271 Merge branch 'maintenance' 2022-09-03 14:59:04 +05:30
Kailash Nadh
6d820f4f6e Add maintenance options.
- Add new maintenance UI with options to garbage collect (delete)
  orphan subscriber and analytics records.
2022-09-03 14:58:25 +05:30
Peter yang
8eb4f7e7da
Create zh-TW.json (#936) 2022-09-02 12:11:22 +05:30
Tarlan Isaev
4ef7a6a1ee
Update RU i18n translation (#922) 2022-08-28 12:15:10 +05:30
Marcin Kunert
a5c14a17d3
Update Polish translations (#918) 2022-08-24 17:19:42 +05:30
mannminh
c60412dcb3
Update vi.json (#901)
change "campaigns.rateMinuteShort":
2022-08-19 13:57:38 +05:30
George
aaac82a5c9
Update zh-CN.json (#904)
Modify the language name of zh-CN package.
2022-08-19 12:23:26 +05:30
Kailash Nadh
57dbb9e5db Add explicit warning on empty password to SMTP test UI. 2022-07-30 20:42:17 +05:30
Petteri Pucilowski
2ef7e262f5
update FI translation (still partial) (#878) 2022-07-16 19:51:46 +05:30
Nathanaël Houn
71dd48b0a0
I18n fr translations update (#876) 2022-07-15 14:54:57 +05:30
Lumir Srch
6aa63fe76b
Update cs-cz.json (#879) 2022-07-15 12:37:53 +05:30
Rafael Slonik
3163f919e6
fix(i18n): update i18n/pt-BR for 2.2.0 release (#875) 2022-07-15 10:12:19 +05:30
MickGe
54349ceefa
Update fr.json (#877) 2022-07-15 10:11:02 +05:30
Kailash Nadh
fb3c429116 Fix Chinese i18n language code. 2022-07-14 19:34:38 +05:30
an0nfunc
08c7de148b
updated german translation (#874) 2022-07-14 18:08:54 +05:30
Chris
650e23ed0b
Update de.json (#873) 2022-07-14 18:05:07 +05:30
marcofucito
f607c0b989
Italian translations (#872)
Made several translations into Italian
2022-07-14 17:22:39 +05:30
David Regla
300fb7f5e6
Update Spanish (es.json) translations (#871) 2022-07-14 17:22:03 +05:30
Tycho Werner
b5b69861ee
Translated new strings 2022-07-14 09:24:30 +02:00
vados
f68af83dbe
fix(i18n): two leftover replacements 2022-07-14 15:17:57 +09:00
vados
96197b01ee
fix(i18n): JP language name tag and templated vars 2022-07-14 15:15:57 +09:00
vados
641616efb7
fix(i18n): update i18n/jp for 2.2.0 release 2022-07-14 15:02:42 +09:00
Kailash Nadh
b44d0a653a Refresh newly added i18n langauge strings. 2022-07-13 22:24:54 +05:30
Kailash Nadh
df31426566 Add button to insert HTML snippets into WYSIWYG editor. 2022-07-13 22:24:27 +05:30
Kailash Nadh
278d5bf74e Merge branch 'test-smtp' 2022-07-11 19:46:03 +05:30
Kailash Nadh
ee448170ef Add support for testing SMTP connections in the settings UI. 2022-07-11 19:44:44 +05:30
Kailash Nadh
2dcac57cba Fix tx template delete query. 2022-07-09 10:36:12 +05:30
Kailash Nadh
463e92d1e1 Add transactional (tx) messaging capability.
This commit adds a new API `POST /api/tx` that sends an ad-hoc message
to a subscriber based on a pre-defined transactional template. This is
a large commit that adds the following:

- New campaign / tx template types on the UI. tx templates have an
  additional subject field.
- New fields `type` and `subject` to the templates table.
- Refactor template CRUD operations and models.
- Refactor template func assignment in manager.
- Add pre-compiled template caching to manager runtime.
- Pre-compile all tx templates into memory on program boot to avoid
  expensive template compilation on ad-hoc tx messages.
2022-07-09 10:36:12 +05:30
Kailash Nadh
83a0e1057e Add 'test' button to SMTP UI to test connections. 2022-07-09 10:33:50 +05:30
p1slave
6dfe4a0c08
Create zh-CN.json 2022-07-02 14:36:11 -05:00
Petteri Pucilowski
c7c331ee84
Added Finnish translation (partial, public fields) 2022-06-28 15:56:09 +03:00
Kailash Nadh
97f8c35009
Merge pull request #811 from rslonik/master
Fix pt-BR subscription form header
2022-05-12 10:06:18 +05:30
Rafael Slonik
b2fc35a3df
Fix pt-BR subscription form header 2022-05-11 17:20:38 -03:00
Sjoerd van der Hoorn
92d49fdcc7
Update nl.json 2022-05-11 19:10:58 +02:00
Kailash Nadh
75190d9854 Fix broken line in the JP language pack. 2022-05-01 14:49:30 +05:30
vados
6252a166af
feat(i18n): add japanese translation
Signed-off-by: vados <vados@vadosware.io>
2022-05-01 14:16:36 +09:00
Nathanaël Houn
1e8f8aba25
Updated some French translations 2022-04-28 18:57:24 +02:00
Alex
eb7c07b308
Update it.json
I fixed some translations.
2022-04-26 14:58:24 +02:00
Tycho Werner
2b0bb77a86
Update nl.json
Translates new strings and corrects some others.
2022-03-19 09:50:27 +01:00
Jonathan Dahan
d6318f9090
Update fr.json
Offers a French version enriched with some missing terms.
2022-03-13 22:18:14 +01:00
an0nfunc
6ebfb6f00f
German translation mostly for Analytics 2022-03-02 21:41:27 +01:00
Kailash Nadh
c4f1bed517 Add missing i18n strings to dayjs. Closes #717. 2022-03-02 20:58:12 +05:30
Marcin Kunert
048fbc2e56
Updated polish translations
- Added missing translations
- Fixed typos and wrong context issues
2022-02-16 11:42:20 +01:00
mannm123
fcb413f71a
Create vi.json 2022-02-16 09:53:36 +07:00
Kailash Nadh
0f6a0376da Add accurate realtime message rate counter.
The `rate` field `/api/campaigns/running/stats` returned was computed
based on the total time spent from the start of the campaign to the
current time. This meant that for large campaigns, if there were
pauses or slowdowns in between, the rate would be skewed heavily
making it useless to figure out the current send rate.

This commit introduces a realtime running rate counter in the campaign
manager that returns accurate (running) send rates for the last minute.

The `rate` field in the API now shows the live running rate and a
new `net_rate` field shows the rate from the beginning of the campaign.
2022-02-06 11:38:02 +05:30
Kailash Nadh
1b017c06e0 Merge branch 'master' of github.com:knadh/listmonk 2022-02-01 23:42:36 +05:30
Kailash Nadh
2614b072f2 Refactor campaign analytics to show unique / non-unique data.
The analytics page showed non-unique counts for views and clicks which
was misleading and source of confusion: #522, #561, #571, #676, #680
This commit changes this behaviour to pull unique views and clicks when
individual subscriber tracking is turned on in settings, and non-unique
counts when it is turned off (as `subscriber_id` in `campaign_views`
and `link_clicks` will be NULL, rendering unique queries dysfunctional).

This commit changes the stats SQL queries to use string interpolation
to either to SELECT `*` or `DISTINCT subscriber_id` on app boot based
on the setting in the DB. This involves significant changes to how
queries are read and prepared on init.

- Refactor `initQueries()` to `readQueries()` and `prepareQueries()`.
- Read queries first before preparing.
- Load settings from the DB using the read settings query.
- Prepare queries next. Use the privacy setting from the DB to apply
  string interpolation to the analytics queries to pull
  unique/non-unique before preparing the queries.

On the UI:
- Show a note on the analytics page about unique/non-unique counts.
- Hide the % donut charts on the analytics page in non-unique mode.

Closes #676, closes #680
2022-02-01 23:40:03 +05:30
Sanket Saurav
0d88bd89d0
Fix spelling for "compatible" 2022-01-31 15:41:34 +05:30
Kailash Nadh
64d2c5aeb9 Add support for custom public S3 URLs. Closes #505. 2022-01-15 21:20:32 +05:30
Kailash Nadh
4ddd3e803f Add 'View in browser' link to the default email template. Closes #540. 2022-01-15 17:25:45 +05:30
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