Commit Graph

17 Commits

Author SHA1 Message Date
Kailash Nadh b950d2f4ff Refactor fetching of server config and settings.
The earlier approach of loading `/api/config.js` as a script on
initial page load with the necessary variables to init the UI is
ditched. Instead, it's now `/api/config` and `/api/settings` like
all other API calls. On load of the frontend, these two resources
are fetched and the frontend is initialised.
2021-02-13 12:34:36 +05:30
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 fcc068cd70 Add missing translations and fix broken ones on the UI 2021-01-26 22:01:55 +05:30
Kailash Nadh 4cd5e6ebeb Refactor and remove placeholder i18n func 2021-01-23 18:54:33 +05:30
Kailash Nadh 3498a727f5 WIP: Add i18n support 2021-01-17 20:59:01 +05:30
Kailash Nadh ce108c8487 Fix broken 'send campaign' shortcut on the Lists UI 2020-11-21 16:11:59 +05:30
Kailash Nadh 50e488fc01 Fix 'Send test' not reflecting campaign body on first page load 2020-10-17 23:38:29 +05:30
Kailash Nadh 6cf43ea674 Add generic HTTP postback `Messenger` support.
This is a major feature that builds upon the `Messenger` interface
that has been in listmonk since its inception (with SMTP as the only
messenger). This commit introduces a new Messenger implementation, an
HTTP "postback", that can post campaign messages as a standard JSON
payload to arbitrary HTTP servers. These servers can in turn push them
to FCM, SMS, or any or any such upstream, enabling listmonk to be a
generic campaign messenger for any type of communication, not just
e-mails.

Postback HTTP endpoints can be defined in settings and they can be
selected on campaigns.
2020-10-10 18:52:08 +05:30
Kailash Nadh d9197668c6 Add 'cancel' icon to campaigns UI 2020-08-01 13:15:40 +05:30
Kailash Nadh 76f4fd68f8 Show countdown on scheduled campaigns UI 2020-07-26 20:54:05 +05:30
Kailash Nadh e2e65b1bc0 Polish UI elements and fix styling issues.
- Change global font to Inter.
- Introduce global top nav bar.
- Restyle form inputs to have inline labels.
- Restyle form inputs to have inline lengt counters.
- Override glitchy Buefy animations (sidebar, toast etc.)
- Fix tag alignment inside tables in responsive view.
- Refactor import page UI.
- Miscellaneous styling fixes.
- Add missing Fontello icons.
2020-07-26 20:35:06 +05:30
Kailash Nadh 3df889cdc1 Refactor global API response handling in axios.
Instead of using a response transformer, move the global response
JSON transformation (snake case to camel case) to the pre-existing
response interceptor. Also, fix the `data.data` and `data`
discrepancy in responses.
2020-07-09 23:29:59 +05:30
Kailash Nadh 412e016614 Add missing save icon 2020-07-05 14:17:18 +05:30
Kailash Nadh f2030a1768 Fix redirect after new campaign creation 2020-07-05 14:08:30 +05:30
Kailash Nadh 1bcd350b20 Integrate config.js on the frontend 2020-07-04 23:37:23 +05:30
Kailash Nadh 92cb70f1a4 Refactor empty/placeholder states with new component 2020-07-04 23:08:34 +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