Commit Graph

399 Commits

Author SHA1 Message Date
Kailash Nadh 01b43b992f Refactor get-campaigns query
The get-campaigns query was doing two direct joins with the campaign_views
and link_clicks tables (that have very large number of relationships)
to get the view and click counts. Now the campaigns are selected first
in a CTE and their views and counts are aggregated in two more CTEs,
and the whole thing is then aggregated to produce the final results.
2018-12-20 10:52:13 +05:30
Kailash Nadh 1fd3a3bada Refactor TrackLink template function to accept backticks
Quill link dialog (righly) escapes quotes in URL values there by breaking the
TrackLink() template function. That is, {{ TrackLink "https://listmonk.app" }}
when inserted using the Quill link dialog would become
{{ TrackLink "https://listmonk.app" }}. A simplework around is to
add support to backticks so that the template parser works with
{{ TrackLink `https://listmonk.app` }}
2018-12-19 12:28:52 +05:30
Kailash Nadh ffd43cec6c Rename 'runner.Runner' to 'manager.Manager' 2018-12-19 12:03:13 +05:30
Kailash Nadh 72cf9e2d9b Fix state setting on subscriber modal unmount 2018-12-19 11:53:45 +05:30
Kailash Nadh b461f51275 Change default name/email search query to case insensitive regex instead of LIKE 2018-12-19 00:12:40 +05:30
Kailash Nadh f686606b9e Fix broken close function in clone campaign modal 2018-12-18 23:55:18 +05:30
Kailash Nadh f54170d509 Add view and click counts to campaign API response and UI 2018-12-18 23:46:29 +05:30
Kailash Nadh a4135be9c7 Doc and typo fix on the import page 2018-12-18 23:21:49 +05:30
Kailash Nadh 099ca1183d Doc fix in advanced query placeholder 2018-12-18 23:17:53 +05:30
Kailash Nadh f2bbf86846 Display subscription status in the subscribers table 2018-12-18 16:24:50 +05:30
Kailash Nadh 11f8e62cf1 Add subscriber count to the subscriber page heading 2018-12-18 13:34:23 +05:30
Kailash Nadh 5f0e3acfb9 Add bulk subscriber querying, segmentation, and management features
- Add a name / e-mail "quicksearch" input to the UI
- Implement row selection and aggregation at table level and a "select all" that selects all rows at the query level
- On selected subscribers, add bulk list management (add / remove / unsubscribe), blacklist, and delete
2018-12-18 10:54:55 +05:30
Kailash Nadh 755d3d2630 Refactor and add subscriber search and segmentation UI 2018-11-30 13:49:33 +05:30
Kailash Nadh 3867062002 Fix empty raw query in subscriber query response 2018-11-30 13:49:13 +05:30
Kailash Nadh b7d5a4d8c8 Add no-cache header to pixel tracker image 2018-11-29 15:27:21 +05:30
Kailash Nadh 09b09d1378 Remove alt tag from tracking pixel image 2018-11-29 14:17:53 +05:30
Kailash Nadh 2a161a567a Redesign the 'broken' warning page 2018-11-28 18:41:00 +05:30
Kailash Nadh 5662fac440 Refactor redirection on campaign creation 2018-11-28 18:37:39 +05:30
Kailash Nadh ccd966a1f4 Refactor campaign 'save' button and add 'start' button to campaign page 2018-11-28 18:35:33 +05:30
Kailash Nadh ca19b50126 Fix content tab redirection on campaign creation 2018-11-28 14:17:02 +05:30
Kailash Nadh c24c19b120 Add admin e-mail notifications.
- Add notifications for campaign state change
- Add notifications for import state change

Related changes.
- Add a new 'templates' directory with HTML templates
- Move the static campaign template as a .tpl file into it
- Change Messenger.Push() to accept multiple recipients
- Change exhaustCampaign()'s behaviour to pass metadata to admin emails
2018-11-28 13:29:57 +05:30
Kailash Nadh 8a0a7a195e Add support for importing unzipped CSV 2018-11-27 12:21:59 +05:30
Kailash Nadh 8e10bf3b16 Fix file extension check 2018-11-27 12:14:55 +05:30
Kailash Nadh 5ff0e446ed Make the default template the default selection on the campaign form 2018-11-27 11:54:23 +05:30
Kailash Nadh 1673cba964 Fix campaign send rate calculation 2018-11-27 11:44:54 +05:30
Kailash Nadh cf5df3e476 Fix counting unsubbed users in campaign stats counts 2018-11-26 19:06:11 +05:30
Kailash Nadh c132af22b1 Add automatic unsub of users blacklisted from admin 2018-11-26 19:01:18 +05:30
Kailash Nadh 4cd66d1790 Fix duplicates in multi-list campaigns with overlapping subscribers. 2018-11-26 18:16:20 +05:30
Kailash Nadh 8a952c137b Add regexp template tag validation 2018-11-26 17:36:05 +05:30
Kailash Nadh a7614ebfe8 Change sample error value to a sane number 2018-11-26 17:16:18 +05:30
Kailash Nadh a7954df70b Add missing error key to sample config 2018-11-26 17:15:40 +05:30
Kailash Nadh cbba955e57 Remove test script 2018-11-26 17:14:35 +05:30
Kailash Nadh 1a39ed15ec Add support for campaign error tracking and auto-pause.
When a campaign exceeds N number of message send errors, for instance
SMTP errors, it is now auto-paused until there is manual intervention.

For this, the master goroutine in runner.Run() that was synchronising
between the tick based DB scanner and subscriber fetching has been
split into two. A new queue aggregates send errors from workers
again a threshold after which the campaign is paused.
2018-11-26 16:40:51 +05:30
Kailash Nadh 0577367d4f Fix default values in the campaign dropdown 2018-11-26 16:38:09 +05:30
Kailash Nadh a4e829136a Log message push errors 2018-11-06 16:33:46 +05:30
Kailash Nadh 6d96986b3a Add loadng spinner to dashboard 2018-11-06 16:33:04 +05:30
Kailash Nadh 08717528c5 Fix incorrect campaign counts on dashboard 2018-11-06 16:18:52 +05:30
Kailash Nadh b333d05609 Fix merge conflicts 2018-11-06 15:59:13 +05:30
Kailash Nadh dce6db7b73 Untrack yarn.lock 2018-11-06 15:57:50 +05:30
Kailash Nadh e3a6ba3e28 Untrack yarn.lock 2018-11-06 15:57:39 +05:30
Kailash Nadh 9511a78d91 Add welcome dashboard
- Add a stats overview API to aggregate global stats
- Add bizcharts to the project to render visualisations
- WIP: Add stats widgets and visualisations to the dashboard
2018-11-06 15:14:26 +05:30
Kailash Nadh c3d1813695 Add an error page for app config (window.CONFIG) not being loaded 2018-11-06 09:01:24 +05:30
Kailash Nadh 87873d0d33 Make subscriber fetching for previews random 2018-11-06 08:52:59 +05:30
Kailash Nadh 6a1ee77dcf Fixed message rendering in test messages 2018-11-06 08:52:20 +05:30
Kailash Nadh f334022cd6 Make duration stats visibility conditional 2018-11-05 23:27:44 +05:30
Kailash Nadh ec7d398c21 Rearrange and move prominent action icons to the front 2018-11-05 23:07:10 +05:30
Kailash Nadh d09a16d514 Add form blocking + spinner to the upload form 2018-11-05 23:06:38 +05:30
Kailash Nadh f75f1cdd61 Fix hardcoded max_conns SMTP config 2018-11-05 19:44:21 +05:30
Kailash Nadh 0f56a5c1a5 Fix campaign stats cell width 2018-11-05 19:19:16 +05:30
Kailash Nadh 44442b2b62 Switch UI subscriber addition to a new insert-only query 2018-11-05 19:15:29 +05:30