74 Commits

Author SHA1 Message Date
candide ꘎ media
c888b7f8a0 Update default sample visual template with tracked link examples (#2788)
Co-authored-by: Kailash Nadh <kailash@nadh.in>
2025-11-28 13:22:21 +05:30
Kailash Nadh
296245a1b3 Add 2FA TOTP support for authentication.
- Allow users to enable TOTP 2FA from the profile page by scanning a QR code.
- Create new `internal/tmptokens` in-memory token store for temp tokens for
  temporary login -> 2FA flow.
- Refactor reset methods to use this package instead of inline locked map.
2025-11-20 23:23:54 +05:30
Kailash Nadh
75998ca5f6 Add Forgot password reset flow to the admin. Closes #2753.
- `Forgot password` link+form on the login page.
- A temporary TTL'd token (in-memory) is e-emailed to the user if the account is active.
- Simple reset password page followed by an instant login+redirect to the admin dashboard.
2025-11-19 00:29:51 +05:30
Kailash Nadh
09d291e119 Add support for built-in ALTCHA CAPTCHA implementation.
The existing hCaptcha implementation as the only CAPTCHA option isn't ideal
as hCaptcha is a proprietary SaaS provider. This commit adds supports for
ALTCHA (altcha.org) a self-contained "proof-of-work" based CAPTCHA option.

Closes #2243.
2025-08-16 16:48:20 +05:30
Kailash Nadh
53d79297ca Prepare first RC. 2025-04-20 20:48:51 +05:30
Kailash Nadh
ffbda019e4 Add sample visual campaign template on install and upgrade. 2025-04-20 20:48:51 +05:30
Seno
1446fbb5e4 fix(static): no matching closing anchor tag 2025-01-24 11:02:21 +13:00
Kailash Nadh
b995cce5d1 Switch login form URLs to relative URIs. 2024-11-10 22:25:11 +05:30
Salim B
599147c102 fix: favicon markup (#2115) 2024-10-30 00:05:03 +05:30
Kailash Nadh
f5dfb0cf62 Remove root URL from login setup form to prevent bad redirect on first install. Closes #2103. 2024-10-28 13:17:01 +05:30
Kailash Nadh
24bab75996 Add first time login setup template 2024-10-27 15:14:31 +05:30
Kailash Nadh
834f541263 Update OIDC auth URL in login form. 2024-10-13 16:59:52 +05:30
Kailash Nadh
2000e9fa12 Style and add OIDC logo to the login page. 2024-10-13 16:59:51 +05:30
Kailash Nadh
57ac9dca4b Add public login page and auth middleware and handlers. 2024-10-13 16:59:51 +05:30
Kailash Nadh
82894e50be Simplify default e-mail template. 2024-02-04 11:37:25 +05:30
Kailash Nadh
0c9dc07479 Add a ?v=hash cache breaker (that changes on restart) to static assets. 2023-12-31 22:20:37 +05:30
relikd
52ee79bf86 chore: noreferrer for listmonk url in footer (#1601)
* chore: noreferrer for listmonk url in footer

* chore: noreferrer for email templates
2023-11-23 06:29:31 +05:30
Kailash Nadh
ef084956b4 Make the unsub form on opt-in confirmation e-mail open 'manage' by default. Closes #1515. 2023-11-11 20:28:42 +05:30
Kailash Nadh
f4f51d11c5 Add classes to public forms to make them scriptable. 2023-08-07 23:57:29 +05:30
Kailash Nadh
215aae5366 Fix public preference manage page's list style. 2023-02-26 12:36:06 +05:30
Ronan LE MEILLAT
80592f60c6 Translate the subject of the email sent with personnal datas (#1193) 2023-02-20 20:33:44 +05:30
kosssi
3513988a07 [i18n] Add translation of the term Powered by (#1168) 2023-02-07 14:43:25 +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
Shrilakshmi Shastry
7832248a08 Fix label/input accessibility on subscription form (#1134) 2023-01-06 15:29:26 +05:30
Kailash Nadh
1f693b80f7 Add a default public archive template. 2022-12-25 16:07:12 +05:30
Kailash Nadh
1e90feecaf Show send_at on archive page for scheduled campaigns. Closes #1036. 2022-11-18 23:12:53 +05:30
Kailash Nadh
af4b532a00 Add version to public css for cache busting. 2022-11-10 23:43:59 +05:30
Kailash Nadh
d1307c6a2c Add missing RSS icon. 2022-11-10 23:30:53 +05:30
Kailash Nadh
818f2c9d8e Add public archive on/off toggle to settings. 2022-11-10 23:30:53 +05:30
Kailash Nadh
f958f3d24b Add RSS feed to the public mailing list archive. 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
23fb178ec4 Add subscription/archive links to public pages. 2022-11-10 23:30:53 +05:30
Kailash Nadh
56a9836e86 Integrate paginator library in place of custom pagination function. 2022-11-10 23:30:50 +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
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
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
481d6ef0a2 Move bundled fonts to a better location. 2022-02-12 13:24:18 +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
3f026090ca Add unsubscribe link to opt-in confirmation e-mail. Closes #573. 2022-01-15 16:41:48 +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
natekfl
575d007575 Fix alert email urls (#595) 2021-11-19 21:05:46 +05:30
MickGe
ebf6af2f81 Clear placeholder on focus
Because it could be disturbing for people who are not confident with forms not being able to delete words before writing.
2021-11-09 00:20:30 +01:00
Kailash Nadh
1ece738613 Fix incorrect container width on public page responsive view. 2021-10-31 11:57:00 +05:30
Kailash Nadh
1054c019ce Hide 'Back' button when it is superfluous on public pages. 2021-10-30 12:46:10 +05:30
Kailash Nadh
9dd8592fdd Prevent images from being squished in the default e-mail template. Closes #548. 2021-10-28 22:55:12 +05:30
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
Kailash Nadh
ca51c48474 Fix duplicate class attr in optin e-mail. Closes #524. 2021-10-19 20:10:40 +05:30