Commit graph

247 commits

Author SHA1 Message Date
Kailash Nadh
4e5e466b03 Add a ?minimal mode to GET /lists API.
Passing `?minimal=true` to the /lists API returns all lists without
additional metadata (subscriber count) which is orders of magnitude
faster than counting subscribers per list in large DBs.

The frontend intitialization always calls the GET /lists API on load
to keep it available in multiple contexts like the new campaign page.
However, this "boot up" call does not need additional metdata. This
initialization GET /lists call now calls /lists?minimal=true.
2021-09-18 20:15:24 +05:30
Kailash Nadh
f86a64787d Add Intl formatting to large numbers on the UI. 2021-09-18 19:24:25 +05:30
Kailash Nadh
56629ccb1c Fix lists pagination breaking on the UI. 2021-09-18 19:14:58 +05:30
Kailash Nadh
f1fbcd473e Fix automatic camel casing of subscriber attribs on the UI. 2021-09-18 17:26:09 +05:30
Kailash Nadh
8733b205a0 Refactor SQL schema and queries for performance improvements.
- Add indexes.
- Refactor dashboard charts and view/click count queries.
  (~10x speed bump on a setup of 7mn subscribers and 80mn views)
- Refactor get subscriber queries.
  (~10x speed bump on 7mn subscribers)
- Make subscriber UI issue an equality query for email seach strings.
2021-09-18 17:25:08 +05:30
Kailash Nadh
6eb589444a Fix 'Analytics' menu item not getting highlighted. 2021-09-17 22:20:56 +05:30
Kailash Nadh
1bb630cf83 Fix Buefy taginput padding 2021-09-17 22:19:18 +05:30
Kailash Nadh
54f1b55006 Merge branch 'analytics-migration' into campaign-analytics 2021-09-17 21:43:59 +05:30
Kailash Nadh
61e88681ed Add campaign analytics APIs and UI 2021-09-17 21:41:25 +05:30
Kailash Nadh
3d0031b207 Add campaign analytics APIs and UI 2021-09-17 18:45:35 +05:30
Kailash Nadh
3135bfc12a Upgrade and refactor global theme.
- Change public and admin frontend primary colours.
- Change images.
- Refactor and fix styling on public pages.
- Remove CSS grid lib from public pages.
- Update Buefy and fix broken component styles (modal, toast).
2021-09-16 17:46:39 +05:30
Kailash Nadh
1f4f4263a3 Fix incorrect [list_id] param in bulk subscriber deletion UI 2021-09-07 17:15:48 +05:30
Kailash Nadh
7691fbd90f Refactor the large settings UI view to multiple files. 2021-08-28 16:44:26 +05:30
Kailash Nadh
edac5a1910 Add bounce tests (Cypress) 2021-08-22 15:48:36 +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
1be8c7d387 Merge branch 'bounce' 2021-08-14 17:13:59 +05:30
Kailash Nadh
d41b697bfb Fix race in settings UI and settings API fetch 2021-08-14 17:13:22 +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
dependabot[bot]
c7a962bfd0
Bump url-parse from 1.5.1 to 1.5.3 in /frontend
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-14 09:50:02 +00:00
dependabot[bot]
4405550cab
Bump path-parse from 1.0.6 to 1.0.7 in /frontend
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-12 16:57:51 +00:00
Kailash Nadh
078ca39606
Merge pull request #405 from knadh/dependabot/npm_and_yarn/frontend/color-string-1.5.5
Bump color-string from 1.5.3 to 1.5.5 in /frontend
2021-06-29 20:13:09 +05:30
dependabot[bot]
893fab2975
Bump prismjs from 1.23.0 to 1.24.0 in /frontend
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.23.0 to 1.24.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.23.0...v1.24.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-28 20:19:23 +00:00
dependabot[bot]
f101dded3a
Bump color-string from 1.5.3 to 1.5.5 in /frontend
Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.3 to 1.5.5.
- [Release notes](https://github.com/Qix-/color-string/releases)
- [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Qix-/color-string/commits/1.5.5)

---
updated-dependencies:
- dependency-name: color-string
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-27 14:16:31 +00:00
dependabot[bot]
d6551e174c
Bump browserslist from 4.12.0 to 4.16.6 in /frontend
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.12.0 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.12.0...4.16.6)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-17 08:20:32 +00:00
dependabot[bot]
674536c1f5
Bump postcss from 7.0.32 to 7.0.36 in /frontend
Bumps [postcss](https://github.com/postcss/postcss) from 7.0.32 to 7.0.36.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.32...7.0.36)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-17 06:39:48 +00:00
Kailash Nadh
b3612927c8 Display app version the settings UI 2021-06-09 20:11:45 +05:30
Kailash Nadh
a3b285fa62 Fix Buefy number input width 2021-06-09 20:02:24 +05:30
Kailash Nadh
3ecac7671a Fix Vue linting issue 2021-06-07 18:44:58 +05:30
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
dependabot[bot]
6ddb03c452
Bump ws from 6.2.1 to 6.2.2 in /frontend
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-04 14:19:26 +00:00
Kailash Nadh
3d26366620 Fix pagination query.
- Fix '?per_page=all' not working inconditional LIMIT queries.
- Fetch all lists on the UI for list dropdowns everywhere.
2021-06-04 19:47:55 +05:30
Kailash Nadh
bbffbbc5f3 Fix listID not being passed in bulk sub deletion. Closes #384 2021-06-04 19:32:42 +05:30
dependabot[bot]
cb07774fa5
Bump dns-packet from 1.3.1 to 1.3.4 in /frontend
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-28 21:34:02 +00:00
Kailash Nadh
69f84c99d0 Refactor log line view to prevent HTML render log lines.
This commit processes log lis and renders them as different fields
removing the use of <pre> and also `v-html` which renders HTML strings
from log lines.
2021-05-23 19:13:47 +05:30
Kailash Nadh
b7932e4b57 Upgrade all JS deps to latest 2021-05-23 17:57:30 +05:30
Kailash Nadh
57962918e7 Remove unused JS deps 2021-05-23 17:44:08 +05:30
Kailash Nadh
f5221ab1ee Upgrade JS sass libs.
See issue #369

Upgrade sass libs to work with Node 16.
2021-05-23 17:27:32 +05:30
Kailash Nadh
dea4d185ae Upgrade Vue and Buefy UI lib.
- Vue 2.6 introduces "v-slot" which Buefy 0.9.7 uses.
- Refactor all `<b-table>` and `<b-column>` instances to work with the
  new `v-slot` snytax.
- Refactor `<b-column>` <td> and class attributes to work wit hthe new
  syntax.
- Fix Buefy scss setup to work with the update.
- Fix sidebar responsive view to work with the update.
2021-05-23 17:27:21 +05:30
Kailash Nadh
c593be51c1 Upgrade Vue + eslint to the latest version 2021-05-23 14:20:21 +05:30
Kailash Nadh
931e467b25 Fixes campaign test messages not including unsub headers.
Campaign messages are handled by `manager` whereas test messages
were being pushed directly into a messenger skipping some campaign
related routines such as the addition of list unsub headers.

This commit exposes a new function `manager.PushCampaignMessage()`
that accepts arbitrary campaign messages that then pass through
the standard campaign message workers, thus getting the missing unsub
headers. This closes #360.

In addition, this removes the superfluous `CampaignMessage.Render()`
function which had to be mandatorily called always and makes it
implicit in `manager.NewCampaignMessage()`.
2021-05-21 23:35:08 +05:30
Kailash Nadh
9f2e708798 Wrap lines in <pre> without overflowing the viewport.
Closes #359.
2021-05-18 16:16:28 +05:30
Kailash Nadh
95a81d17ce Add option on UI to toggle update checks.
Closes #326
2021-05-16 16:54:55 +05:30
Kailash Nadh
aa5eff915d Fix incorre check on template deletion. 2021-05-16 15:26:38 +05:30
Kailash Nadh
9fe78d6247 Make conditional icons consistent on templates UI 2021-05-16 15:26:32 +05:30
Kailash Nadh
ed57ecca99 Sanitize HTML strings passed to buefy.toast().
The buefy toast component does not sanitize HTML leaving it open
to XSS. This patch centralised all toast calls in the app to a util
function which sanitizes HTML strings before passing to toast().

Closes #357.
2021-05-16 13:27:58 +05:30
Kailash Nadh
20939e8121
Merge pull request #354 from knadh/dependabot/npm_and_yarn/frontend/url-parse-1.5.1
Bump url-parse from 1.4.7 to 1.5.1 in /frontend
2021-05-09 16:47:04 +05:30
Kailash Nadh
6bbde095a8
Merge pull request #353 from knadh/dependabot/npm_and_yarn/frontend/hosted-git-info-2.8.9
Bump hosted-git-info from 2.8.8 to 2.8.9 in /frontend
2021-05-09 16:46:52 +05:30
Kailash Nadh
cd1aa810dd
Merge pull request #352 from knadh/dependabot/npm_and_yarn/frontend/lodash-4.17.21
Bump lodash from 4.17.19 to 4.17.21 in /frontend
2021-05-09 16:46:39 +05:30