Commit graph

198 commits

Author SHA1 Message Date
Tomas Bures
7788b0bc67 Fixed sandbox. Multiple tabs work now.
WiP on selectable mosaico templates.

TODO: Make files always point to trusted URL, such that we don't have to rebase them. They are public anyway. The same goes for mosaico endpoints: /mosaico/templates and /mosaico/img
2018-05-09 04:07:01 +02:00
Tomas Bures
a4ee1534cc WiP on mailers 2018-04-29 18:13:40 +02:00
Tomas Bures
4fce4b6f81 WiP updates 2018-04-22 09:00:04 +02:00
Tomas Bures
c85f2d4440 Obsoleting some old files
Transition to SPA-style client
Basis for Mosaico template editor
2018-02-25 20:54:15 +01:00
Tomas Bures
7750232716 Merge remote-tracking branch 'upstream/master' into development 2018-02-24 23:05:01 +01:00
Georgios Anastasiou
b151784071 Docs for api/lists/:email 2018-02-06 14:57:58 +02:00
Tomas Bures
47b8d80c22 Fixes in subscriptions. It now passes the tests.
API tests still don't work.
2018-01-28 23:59:05 +01:00
Tomas Bures
e9165838dc Subscription/unsubscription seems to work. 2018-01-27 16:37:14 +01:00
Roger Witzig
eb8a5878dd
Merge pull request #344 from brentdur/brentdur/247_template-duplicate
Adds duplicate Template
2017-11-15 12:56:34 +01:00
Gerard Krol
8b2e3b47b0 Add note about generated names of custom fields. 2017-11-08 10:54:18 +00:00
Gerard Krol
ac09ba81dd Add API documentation for GET /api/subscriptions/:listId 2017-11-06 10:34:55 +00:00
Brenton Durkee
0cbec006b4 Adds duplicate button to Template edit form.
Adds duplicate model function for Template that gets a Template by id
and creates a new Template with the same data.
2017-10-16 11:29:57 -04:00
witzig
0a369e2475 Fix grouped custom fields not saving deselected values #333 2017-10-05 13:39:53 +02:00
witzig
46acece89c Improve CSV import error handling, closes #324 2017-09-29 00:32:00 +02:00
witzig
83e62e990b Update import.hbs 2017-09-29 00:19:19 +02:00
witzig
c5b481a266 Add option to preserve unsubscribed status on list import, #325 2017-09-28 00:55:19 +02:00
Tomas Bures
602364caae Fluid layout
Reworked routing and breadcrumb mechanism. It allows resolved parameters in paths, which allows including names of entities in the breadcrumb.
Secondary navigation which is aware of permissions.
2017-08-11 18:16:44 +02:00
Tomas Bures
4822a50d0b Share report template functionality 2017-07-24 07:03:32 +03:00
Tomas Bures
ad1e4c58f5 Merge branch 'master' of github.com:Mailtrain-org/mailtrain into access
Conflicts:
	views/users/api.hbs
2017-07-09 23:34:03 +02:00
Tomas Bures
d4cea46f07 Report templates ported to ReactJS and Knex.
Does not run yet because reports have dependencies on the old report templates.
2017-07-09 15:41:53 +02:00
Tomas Bures
be7da791db LDAP auth seems to work too.
Users completely refactored to ReactJS and Knex
Initial draft of call context passing (for the time being only in users:remove
2017-07-08 21:34:26 +02:00
Tomas Bures
9758b4b104 Local auth seems to work 2017-07-08 18:57:41 +02:00
Tomas Bures
d79bbad575 All about user login
Not runnable at the moment
2017-07-08 15:48:34 +02:00
witzig
bd570000e1 Added documentation for API endpoint /api/field/:listId
This has accidentally been removed with PR #203.
2017-07-06 15:08:35 +02:00
witzig
f0e32ef5a5 Added note about blacklist, #272 2017-07-01 01:50:50 +02:00
Tomas Bures
e7856bfb73 Merge branch 'master' of github.com:Mailtrain-org/mailtrain into access 2017-06-21 02:16:28 +02:00
witzig
3c4558d70c Refactored and linted editorapi image handling 2017-06-20 19:08:14 +02:00
Andris Reinman
8b900a9c44 Removed ads from code 2017-06-20 16:47:25 +03:00
Tomas Bures
4504d539c5 Some basic components for building forms. 2017-06-04 13:16:29 +02:00
Tomas Bures
d13fc65ce2 Merge branch 'master' of github.com:Mailtrain-org/mailtrain into access 2017-06-03 07:50:09 +02:00
witzig
a7b2c33b30 GrapeJS MJML Integration (Experimental)
#215
2017-05-31 02:08:44 +02:00
Tomas Bures
cda93630ea Merge branch 'master' into access
Conflicts:
	test/e2e/lib/worker-counter.js
2017-05-28 19:35:06 +02:00
Tomas Bures
4f52b571c9 Some bits for ReactJS-based client. 2017-05-28 18:49:00 +02:00
vladimir
25bb4afa80 Merge with upstream 2017-05-27 14:07:56 +02:00
vladimir
59912e3c29 Separate disable opened/clicked tracker to 2 options 2017-05-27 14:04:49 +02:00
Tomas Bures
115d254baf Merge branch 'master' into access
Conflicts:
	config/default.toml
2017-05-27 10:43:31 +02:00
Tomas Bures
62cc881fd4 Merge remote-tracking branch 'upstream/master' 2017-05-18 22:46:53 +02:00
Tomas Bures
1b73282e90 WiP on namespaces and users 2017-05-15 16:22:06 -04:00
witzig
6c35046ab2 e2e tests (draft) 2017-05-10 01:40:02 +02:00
Tomas Bures
11990d62b2 Merge branch 'master' of github.com:Mailtrain-org/mailtrain
Conflicts:
	languages/de_DE.po
2017-05-04 17:58:55 -04:00
Tomas Bures
a6d25e668b Release candidate of the selectable unsubscription
Implemented the resubscription process - i.e. pre-filling in the form when the subscription link is clicked in the unsubscription notice.
2017-05-04 17:42:46 -04:00
witzig
408db13fd4 Updated RSS merge tag reference 2017-05-03 23:13:05 +02:00
Tomas Bures
bd4961366f More or less all the functionality for selectable unsubscription process. Not tested yet!
Sending emails moved completely to controller. It felt strange to have some emails sent from the controller and some of them from the model.
Confirmations refactored to an independent model that can be potentially used also for other actions that need an email confirmation.
2017-05-03 15:53:34 -04:00
Tomas Bures
32e2e61789 Unsubscription is identified by subscriber cid. This effectivelly allows only the recipient of the email to unsubscribe. This addresses issue #221.
I also scraped the "auto" parameter which automatically submits the unsubscription form when the link is clicked in a campaign email. Instead, I introduced the
unsubscription options ONE_STEP, ONE_STEP_WITH_FORM, TWO_STEP, TWO_STEP_WITH_FORM. The options without "_WITH_FORM" shall behave like when called with "auto".
This functionality is to come. Currently it behaves as ONE_STEP_WITH_FORM.
2017-04-30 13:01:22 -04:00
Tomas Bures
3783d7c2ce Halfway through extending subscriptions by selectable unsubscription process. Also contains changes towards better handling of scenarios when address is already subscribed. 2017-04-30 10:51:47 -04:00
Tomas Bures
3072632d8d Fixed eslint errors 2017-04-23 15:24:31 -04:00
Tomas Bures
8237dd5d77 The "Reports" feature seems functional.
Some small refactoring (column widths) of rendering tables in Lists, Templates, and Campaigns so that it is the same as Reports.
2017-04-20 19:42:01 -04:00
Tomas Bures
2056645023 Added the option to select lists in report.
Added an option to generate a CSV report.
2017-04-17 16:30:31 -04:00
Tomas Bures
6ba04d7ff4 This is a preview of the Reports functionality.
It allows defining report templates and then create reports based on the templates.
A template defines:
- parameters - to be set in the report (currently only selection of campaigns, in the future to be extended to selection of lists/segments, and selection from pre-defined options)
- data retrieval / processing code (in Javascript)
- rendering template (in Handlebars)

This main functionality is accompanied by a few minor tweaks here and there. Worth notice is the ability to use server-side ajax table s for multi-selection of campaigns. This is meant for reports that compare data across multiple campaigns. This could possibly be even used for some poor man's A/B testing.

Note that the execution of custom JavaScript in the data retrieval / processing code and definition of custom Handlebars templates is a security issue. This should however be OK in the general case once proper user management with granular permissions is in. This is because definition of a report template is anyway such an expert task that it would normally be performed only by admin. Instantiation of reports based on report templates can be then done by any user because this should no longer be any security problem.
2017-04-16 18:09:08 -04:00
Tomas Bures
9fdf52674e Lists and Templates overviews refactored to use ajax. Before the refactoring, they behaved and looked a bit different to the other (Ajax) tables. The main difference in the behavior was in the row numbers (1st column) when sort order was switched. The non-ajax tables rearranged the numbers in the 1st column while the ajax-tables didn't.
Some small tweaks in table-helpers to allow selecting which fields are pulled from DB (and how they are renamed).
2017-04-16 03:22:32 -04:00