The day names in the Hungarian translation were listed in the wrong sequence, causing the dashboard to display incorrect day labels. For example, "Monday" was incorrectly showing the Hungarian word for "Tuesday" instead.
* update to constitantly use formal terms.
Make dutch more consistent and readable.
* update untranslated parts + extra check on formal
* template -> sjabloon
* transactioneel plural
* Uploaden -> Opladen
Pausing a campaign and starting it within the interval where campaign manager
pipe cleanup happens would cause a campaign to be marked as finished. This
patch addresses that by only doing the 'finished' state update if the campaign
wasn't stopped (cancel, pause) manually.
Potentially closes#2278 as this is the only reproducible scenario where a
campaign prematurely gets marked as finished.
This is a mega patch with a massive number of significant, complex
changes integrating the visual, drag-and-drop block editor library,
email-builder: https://github.com/usewaypoint/email-builder-js
It adds a new template type (`visual`) to templates and integrates the editor
UI in Admin -> Templates and Admin -> Campaigns UIs. There are changes to
templates and campaign APIs, UI flows, and database table schemas.
`email-builder` is written in TypeScript and React (eww) and is a massive lib,
(2.3MB minified+gzipped), bigger than all of listmonk's own JS and other deps
combined, but alas, there is no other viable editor and it has been a popular
demand for a long time.
So, `email-builder` is built separately, and the static assets are copied along
with listmonk's assets. Since it's basically a separate "app" altogether,
it's loaded as an iframe on the editor pages, outside of the Vue app.
The visual editor integration is courtesy of @vividvilla who did all the
R&D and trial and error and sent the original PR to make this possible.
I really loathe the Javascript ecosystem. Sigh.
Unfortunately, the tiny CodeFlask lib stopped getting updates 5+ years ago and
is buggy. The attempt to replace it with CodeInput (which itself seems to have
several open bugs) failed.
So, biting the bullet with CodeMirror, which is a robust, battle tested, albeit
large (~300KB) code editor library.
This patch replaces all code editor UIs (Campaign, Templates, Settings) with
CodeMirror.