Commit Graph

579 Commits

Author SHA1 Message Date
Vivek R 025d54b64e fix: incorrect csv import example on frontend
Example given for CSV import on Import.vue is incorrect since
field `attributes` value is not a valid JSON. Previous example
copy pasted was throwing CSV parse error.
2020-10-03 17:52:56 +05:30
Vivek R 6c234f1b1d fix: use inbuilt frontend dev server to proxy API
Vue's inbuilt dev server can be configured to proxy API for
development instead of directing developers to setup Nginx proxy.
Additionally this commit also adds an option to configure frontend port
on which dev server runs. Sample env config file is under
`frontend/.env.sample`, it can be copied to either `frontend/.env` or `frontend/.env.local`.

Available options are

LISTMONK_FRONTEND_PORT - Configure frontend dev server port (defaults to 8080)
LISTMONK_API_URL - Configure API server URL (defaults to http://127.0.0.1:9000)

Since env variables are sourced to current session we are prefixing it with `LISTMONK_`.
2020-10-03 04:50:07 +05:30
Vivek R 584c3bd2aa fix: incorrect git tag being injected as version
Git tag version injected via Makefile is incorrect since `git describe`
doesn't consider annotated tags but all the recent releases are lightweight tags.
So instead use `git describe --tags` command which also considers recent lightweight tag.
2020-10-03 03:55:39 +05:30
Kailash Nadh 23d479e9c1
Add zerodha.tech badge 2020-09-21 23:46:57 +05:30
Kailash Nadh fd05f8db21
Merge pull request #190 from rwilhelm/patch-1
Fix typo
2020-09-19 12:08:43 +05:30
René d6279ed965
Update Settings.vue 2020-09-19 00:11:42 +02:00
Kailash Nadh 288164ea6a Remove 'required' from upload field that fails to recognize drag-drop 2020-09-02 11:48:56 +05:30
Kailash Nadh d219f6549e Fix missing status column in import that affects auto-migrated
installations.

In v0.7.0's automatic DB migration, the default value 'enabled'
of subscribers.status was missed incorrectly, causing imports to
break on auto-upgraded versions. This is now fixed by explictly
inserting the status field in CSV imports.
2020-09-02 11:40:34 +05:30
Kailash Nadh 26390e9994 Merge branch 'master' of github.com:knadh/listmonk 2020-08-30 17:46:17 +05:30
Kailash Nadh 216c5736f9
Merge pull request #184 from pra85/patch-1
Typo in README
2020-08-30 12:44:44 +05:30
Prayag Verma 11b0bba8ae
Typo in README
configruation 🡢 configuration
2020-08-29 11:34:30 +05:30
Kailash Nadh eaba083e1d
Merge pull request #182 from scmmishra/sidebar-toggle-fix
fix: inconsistent sidebar group toggle on navigation
2020-08-25 20:31:41 +05:30
Shivam Mishra abe8c598fc fix: update toggle on update:active 2020-08-25 19:16:33 +05:30
Shivam Mishra ed0d9ee431 chore: remove stray whitesapce 2020-08-25 19:15:32 +05:30
Kailash Nadh 9147a921d4
Merge pull request #181 from scmmishra/fix-sidebar
fix: inconsistent active link on sidebar navigation
2020-08-24 19:56:46 +05:30
Shivam Mishra 3b141bb100 style: remove stray tab indentation 2020-08-24 19:52:00 +05:30
Shivam Mishra 427fcf7efd fix: inconsistent active link on sidebar navigation 2020-08-24 19:15:28 +05:30
Kailash Nadh 8fe601aa4a Add pagination to lists 2020-08-22 19:58:21 +05:30
Kailash Nadh 1ef1c5a61c Fix incorrect default values and server response in list creation UI 2020-08-22 14:13:13 +05:30
Kailash Nadh 0f055eacb8 Fix build scripts (and static file embed) 2020-08-09 20:02:43 +05:30
Kailash Nadh 8c56407031 Add rebranded design elements.
- New logo and favicon and new splash image + intro text in the
  README.
2020-08-09 19:15:44 +05:30
Kailash Nadh d8a60d1295 Add automatic update checks.
- A check for new versions on the GitHub releases pages happens
  once every 24 hours. When a new version is available, a notice
  is displayed on the admin UI.
2020-08-08 16:59:47 +05:30
Kailash Nadh f3e80da339 Clean up root and move app to `cmd` directory 2020-08-08 13:54:25 +05:30
Kailash Nadh b822955ac9 Add BasicAuth to admin endpoints.
This removes the Nginx dependency for protecting admin pages.
BasicAuth is configured in config.toml. This is a "temporary"
setup until a full fledged auth mechanism is added.
2020-08-08 13:11:49 +05:30
Kailash Nadh 7ed07550ff Fix minor inconsistencies in settings.
- Add missing `app.root_url` key in migration.
- Register `/settings` handler in the backend.
- Add dummy dots in secret fields on the UI for visibility.
2020-08-07 19:28:23 +05:30
Kailash Nadh 16e47dddc1 Load env config before DB initialisation 2020-08-07 18:08:24 +05:30
Kailash Nadh 8979a2ad0b Fix Quill setup to use inline CSS styles instead of classes 2020-08-07 13:43:18 +05:30
Kailash Nadh b54c5d8c5e Add upgrade file 2020-08-03 19:07:14 +05:30
Kailash Nadh 5fb7c6cfb0 Add support for automatic, idempotent DB migrations
- On boot, the app now checks if the DB version matches its
  expected version and refuses to start if there are pending
  migrations to be run.
- The new `--upgrade` flag runs data migrations from the last
  recorded migration (in the settings table) to the latest one
  in the binary.
- Migrations are DB/arbitrary logic functions in .go files in
  internal/migrations.
- All migration functions are idempotent.
2020-08-03 19:02:23 +05:30
Kailash Nadh 494c519359 Upgrade JS dependencies (security fixes) 2020-08-01 20:28:39 +05:30
Kailash Nadh 4703d78b39 Add a fullscreen option to the campaign richtext editor 2020-08-01 20:19:03 +05:30
Kailash Nadh 378e8145fe Add campaign search UI. 2020-08-01 19:46:47 +05:30
Kailash Nadh ccf1c499ad Refactor pagination constants 2020-08-01 18:57:33 +05:30
Kailash Nadh 0db95799fb Suffix app name in page titles 2020-08-01 18:47:05 +05:30
Kailash Nadh 5ff5c74321 Add custom email headers to SMTP settings UI 2020-08-01 18:33:15 +05:30
Kailash Nadh ec097909db Add support for `List-Unsubscribe` header.
- Added as a setting in the settings UI.
- Refactor Messenger.Push() method to accept messenger.Message{}
  instead of a growing number of positional arguments.
2020-08-01 17:54:51 +05:30
Kailash Nadh 7ead052054 Fixed `reset` not clearing query on subscriber search UI 2020-08-01 16:59:34 +05:30
Kailash Nadh e4f233e2e5 Add missing `root_url` to settings UI 2020-08-01 16:53:29 +05:30
Kailash Nadh 8c0804ba9f Refactor `blacklist` to `blocklist` 2020-08-01 16:45:29 +05:30
Kailash Nadh 2143def136 Fix loss of caret on image insertion in campaign from popup 2020-08-01 16:09:55 +05:30
Kailash Nadh 13a252a7b3 Add missing 'opt-in' campaign feature to the new UI 2020-08-01 15:31:13 +05:30
Kailash Nadh 818da1bb4d Add 'clone template' feature to the templates UI 2020-08-01 13:28:12 +05:30
Kailash Nadh 2587d67765 Fix template creation API returning incorrect response 2020-08-01 13:21:28 +05:30
Kailash Nadh d9197668c6 Add 'cancel' icon to campaigns UI 2020-08-01 13:15:40 +05:30
Kailash Nadh 9c8b7ad7f8 Fix broken tag clearing on lists and campaign updation 2020-08-01 13:09:52 +05:30
Kailash Nadh 0145aba30f Add missing tag UI to lists 2020-08-01 12:58:46 +05:30
Kailash Nadh f9e4a50795 Fix incorrect handling of non-JSON responses in APIs 2020-07-26 22:15:57 +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 942eb7c3d8 Add settings UI and "hot reload" support to the app.
This is a major breaking change that moves away from having the
entire app configuration in external TOML files to settings being
in the database with a UI to update them dynamically.

The app loads all config into memory (app settings, SMTP conf)
on boot. "Hot" replacing them is complex and it's a fair tradeoff
to instead just restart the application as it is practically
instant.

A new `settings` table stores arbitrary string keys with a JSONB
value field which happens to support arbitrary types. After every
settings update, the app gracefully releases all resources
(HTTP server, DB pool, SMTP pool etc.) and restarts itself,
occupying the same PID. If there are any running campaigns, the
auto-restart doesn't happen and the user is prompted to invoke
it manually with a one-click button once all running campaigns
have been paused.
2020-07-21 00:23:57 +05:30