Commit graph

34 commits

Author SHA1 Message Date
Vivek R c668523c57
upgrade frontend dev deps to support node v17+ (#1247)
Used `vue-cli` to upgrade all the dev deps from node v16 or lower. Here
are the steps followed

- `vue upgrade` to upgrade all deps to latest.
- remove `node_modules` directory and `yarn.lock` file.
- `yarn install` to install dependencies again.
2023-03-20 17:57:51 +05:30
dependabot[bot] 12b2bdf70a
Bump tinymce from 5.10.0 to 5.10.7 in /frontend (#1090)
Bumps [tinymce](https://github.com/tinymce/tinymce/tree/HEAD/modules/tinymce) from 5.10.0 to 5.10.7.
- [Release notes](https://github.com/tinymce/tinymce/releases)
- [Changelog](https://github.com/tinymce/tinymce/blob/5.10.7/modules/tinymce/CHANGELOG.md)
- [Commits](https://github.com/tinymce/tinymce/commits/5.10.7/modules/tinymce)

---
updated-dependencies:
- dependency-name: tinymce
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-09 09:58:53 +05:30
Kailash Nadh d2e8a9368c Upgrade Cypress to major version 10. 2022-10-18 21:58:57 +05:30
Kailash Nadh fee2ef3cc9 Upgrade axios lib.
The dependabot axios upgrade introduced an unknown bug that broke
axios calls. Upgrading to the latest version seems to fix that.
2022-05-08 19:21:32 +05:30
dependabot[bot] f489573298
Bump axios from 0.21.1 to 0.21.2 in /frontend
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.21.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...v0.21.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-30 05:50:26 +00:00
Kailash Nadh 8db8ecfccd Upgrade Cypress. 2022-03-19 13:44:06 +05:30
Kailash Nadh 9e9ea0ef15 Refactor automatic camel casing of API response fields.
- Remove `humps` lib dependency with a new util function.
- Replace hacky way of excluding certain fields in responses with
  a proper key filtering mechanism.
2022-01-04 22:17:05 +05:30
dependabot[bot] 2819ca86cb
Bump tinymce from 5.9.2 to 5.10.0 in /frontend
Bumps [tinymce](https://github.com/tinymce/tinymce/tree/HEAD/modules/tinymce) from 5.9.2 to 5.10.0.
- [Release notes](https://github.com/tinymce/tinymce/releases)
- [Changelog](https://github.com/tinymce/tinymce/blob/develop/modules/tinymce/CHANGELOG.md)
- [Commits](https://github.com/tinymce/tinymce/commits/5.10.0/modules/tinymce)

---
updated-dependencies:
- dependency-name: tinymce
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 15:53:03 +00:00
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 0dc9e78710 Refactor HTML formatting and indentation in richtext -> HTML on UI. 2021-09-23 19:27:53 +05:30
Heiko Salmon c09d2fcd5d Replace Quill editor with TinyMCE 2021-09-23 19:27:52 +05:30
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 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 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
dependabot[bot] 02b92b5916
Bump lodash from 4.17.19 to 4.17.21 in /frontend
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-09 10:09:50 +00:00
Kailash Nadh 65d25fc3f9 Improve campaign content format conversion.
Previously, converting between formats simply copied over raw content.
This update does actual conversion between different formats. While
lossy, this seems to a good enough approximation for even reasonbly
rich HTML content. Closes #348.

- richtext, html => plain
  Strips HTML and converts content to plain text.

- richtext, html => markdown
  Uses turndown (JS) lib to convert HTML to Markdown.

- plain => richtext, html
  Converts line breaks in plain text to HTML breaks.

- richtext => html
  "Beautifies" the HTML generated by the WYSIWYG editor unlike the
  earlier behaviour of dumping one long line of HTML.

- markdown => richtext, html
  Makes an API call to the backend to use the Goldmark lib to convert
  Markdown to HTML.
2021-05-09 15:36:31 +05:30
Kailash Nadh 570a81f966 WIP: Add tests 2021-04-10 12:26:33 +05:30
dependabot[bot] 1ac0e65dd8
Bump elliptic from 6.5.3 to 6.5.4 in /frontend
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-11 00:27:23 +00:00
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 3498a727f5 WIP: Add i18n support 2021-01-17 20:59:01 +05:30
dependabot[bot] 3975ccc4b7
Bump axios from 0.19.2 to 0.21.1 in /frontend
Bumps [axios](https://github.com/axios/axios) from 0.19.2 to 0.21.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v0.21.1/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.19.2...v0.21.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-06 06:20:31 +00:00
Kailash Nadh f6511b68d8 Update JS dep (security): node-forge 2020-10-18 18:07:26 +05:30
Kailash Nadh 494c519359 Upgrade JS dependencies (security fixes) 2020-08-01 20:28:39 +05:30
Kailash Nadh dc4020679f Add syntax highlighted HTML code editor 2020-07-06 00:46:08 +05:30
Kailash Nadh feb5ba09be Add new dashboard (with new metrics) 2020-07-04 22:25:02 +05:30
Kailash Nadh 97583fe4b4 Rewrite frontend with Vue+Buevy and ditch React+Ant Design.
- antd+react was resulting in extremely clunky and unreadable
  spaghetti frontend code (primarily due to how antd is).
- Buefy is lighter by an order of magnitude, has excellent
  responsive views (especially tables) and usability.
- Vue's templating produces far more readable template code.
2020-07-04 00:12:14 +05:30
Kailash Nadh 2ee2e68230 Inject version during build into the frontend 2020-02-09 18:50:08 +05:30
Kailash Nadh d0a7c3baf7 Add Prettier conf 2019-08-26 23:42:47 +05:30
Vivek R 11ca4beddb chore: fix frontend directory structure 2019-05-27 17:17:26 +05:30
Kailash Nadh 3ab21383b1 Fresh start 2018-10-25 19:21:47 +05:30