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
0073989430
Add API support for retrieving subscriptions.
2017-11-06 10:23:57 +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
6e3b9d209c
Fix import type display
2017-10-01 21:36:11 +02:00
witzig
46acece89c
Improve CSV import error handling, closes #324
2017-09-29 00:32:00 +02:00
witzig
f4375e9da9
Update import type display
2017-09-28 01:34:34 +02:00
witzig
c5b481a266
Add option to preserve unsubscribed status on list import, #325
2017-09-28 00:55:19 +02:00
witzig
5ada25c2dc
Fix error checking, #324
2017-09-27 19:27:01 +02:00
witzig
7a93628cc8
Merge branch 'master' into bures-access
...
# Conflicts:
# package.json
2017-09-26 15:29:49 +02:00
witzig
8e1bc1df7a
Fixes #298 - Import CSV didn't show hidden custom fields
2017-09-22 14:26:47 +02:00
witzig
92fe9121f1
Fixed incompatibility with the ZoneMTA DKIM Plugin
...
https://github.com/zone-eu/zone-mta/issues/93
2017-09-19 11:50:03 +02:00
Tomas Bures
9203b5cee7
Blacklist functionality
...
Some API improvements
2017-09-17 16:36:23 +02:00
Tomas Bures
6f5b50e932
WiP on admin interface for subscribers.
...
TODO:
- format data based on field info in listDTAjax
- integrate with the whole subscription machinery
2017-08-20 23:50:00 +02:00
Tomas Bures
f3ff89c536
WiP on segments
2017-08-19 15:12:22 +02:00
Tomas Bures
6cc34136f5
WiP on segments.
2017-08-18 21:04:31 +02:00
Tomas Bures
0bfb30817b
work in progress on segments
...
some cleanup of models - handling dependencies in delete
2017-08-14 22:53:29 +02:00
Tomas Bures
e73c0a8b28
Work in progress on subscriptions
2017-08-13 20:11:58 +02:00
Tomas Bures
19f0c1bd97
work in progress on custom fields
2017-08-12 00:41:02 +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
86fce404a9
work in progress on custom fields
2017-08-11 08:51:30 +02:00
Tomas Bures
f6e1938ff9
Lists list and CUD
...
Custom forms list
Updated DB schema (not yet implemented in the server, which means that most of the server is not broken).
- custom forms are independent of a list
- order and visibility of fields is now in custom_fields
- first_name and last_name has been turned to a regular custom field
2017-07-29 22:42:07 +03:00
Tomas Bures
34823cf0cf
Seeming working (though not very thoroughly tested) granular access control for reports, report templates and namespaces.
...
Should work both in local auth case and LDAP auth case.
2017-07-27 22:41:25 +03:00
Tomas Bures
89256d62bd
WiP on permissions
...
Table of shares per user
2017-07-27 17:11:22 +03:00
Tomas Bures
89c9615592
WiP on permissions
...
Doesn't run. This commit is just to backup the changes.
2017-07-26 22:42:05 +03:00
Tomas Bures
e7bdfb7745
Namespace selection for users, reports and report-templates
2017-07-24 14:43:32 +03:00
Tomas Bures
4822a50d0b
Share report template functionality
2017-07-24 07:03:32 +03:00
Tomas Bures
d63eed9ca9
Reports ported to ReactJS and Knex
...
Note that the interface for the custom JS code inside a report template has changed. It now offers promise-based interface and exposes knex.
2017-07-13 13:27:03 +02:00
Tomas Bures
6d95fa515e
CUD operations on reports and report templates seem to work
...
Execution of reports is TBD
2017-07-11 11:28:44 +02: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
3f7b428546
Reports halfway through
...
Datatable now correctly handles the situation when user is not logged in and access protected resources
2017-07-09 23:16:47 +02:00
Tomas Bures
aba42d94ac
Reports halfway through.
...
Editing report parameters and execution/monitoring of reports is TBD.
2017-07-09 22:38:57 +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
Tomas Bures
fbb8f5799e
React-based /account endpoint for editing a user profile
2017-06-30 16:11:02 +02:00
Tomas Bures
eb2287f6e9
Release candidate of basic user management - currently only CRUD on users, no permission assignment.
2017-06-29 23:22:33 +02:00
witzig
277b2cadf5
Fixed bug #261
2017-06-21 17:28:56 +02:00
Tomas Bures
e7856bfb73
Merge branch 'master' of github.com:Mailtrain-org/mailtrain into access
2017-06-21 02:16:28 +02:00
Tomas Bures
c81f5544e6
Added support for Datatables
...
Added support for ajax-based server side validation (useful for validation of emails, duplicate usernames, etc.)
User form more or less ready in the basic version (i.e. without permission management)
2017-06-21 02:14:14 +02:00
witzig
3c4558d70c
Refactored and linted editorapi image handling
2017-06-20 19:08:14 +02:00
Tomas Bures
f776170854
Merge branch 'master' of github.com:Mailtrain-org/mailtrain into access
...
Conflicts:
package.json
2017-06-17 10:11:07 +02:00
witzig
1d76eefe27
Fixed unhandled promise rejection #254 (and some cleanup)
2017-06-14 11:07:16 +02:00
witzig
87f7a050ab
Fixed bug #249
2017-06-11 01:27:27 +02:00
Tomas Bures
5b82d3b540
Edit and create seem to more or less work (including selection of the parent). Delete is pending.
2017-06-07 01:13:15 +02:00
Tomas Bures
5e4c86f626
Seems that hierarchical error handling works..
...
TreeTable component seems to work too.
Edit is half-way through. Create / delete are TBD.
2017-06-05 23:59:08 +02:00
Tomas Bures
79ea9e1897
Work in progress on a React-based error reporting mechanism.
...
The idea is that REST handlers always fail with throwing an Error (subclass of InteroperableError). The InteroperableError contains type and data field which are JSON-serialized and sent to client. It's up to the client to interpret the error and choose an appropriate way to present it.
2017-06-05 00:52:59 +02: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
Tomas Bures
6f554038c9
Merge branch 'master' of github.com:Mailtrain-org/mailtrain
2017-06-01 08:04:56 -04:00
Tomas Bures
8c5b62b6a4
Fixed bug #246 .
2017-06-01 08:03:43 -04:00
witzig
a7b2c33b30
GrapeJS MJML Integration (Experimental)
...
#215
2017-05-31 02:08:44 +02:00
Tomas Bures
4f52b571c9
Some bits for ReactJS-based client.
2017-05-28 18:49:00 +02:00
Tomas Bures
115d254baf
Merge branch 'master' into access
...
Conflicts:
config/default.toml
2017-05-27 10:43:31 +02:00
Tomas Bures
c11d1a1cbf
Added processing of the "auto" option in unsubscription.
...
If auto=yes is specified, the two-step unsubscription works as one-step. No unsubscription form is presented.
2017-05-27 00:43:56 +02:00
Tomas Bures
1b73282e90
WiP on namespaces and users
2017-05-15 16:22:06 -04:00
Tomas Bures
6b92e39112
Some fixes in lists and apis to reflect the changes in subscriptions.
...
Confirmation URLs split per action type. This allows more specific error reporting.
2017-05-06 06:35:32 -04: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
root
2ac89f3365
Report processor worker refactored to run under another user (nobody) and have its own mysql credentials.
2017-04-27 16:35:53 -04:00
Tomas Bures
418dba7b9f
Work in progress on securing reports.
2017-04-25 22:49:31 +00:00
Tomas Bures
3072632d8d
Fixed eslint errors
2017-04-23 15:24:31 -04:00
Tomas Bures
bb4eb3832f
Some bugfixes to the previous commit.
2017-04-20 19:57:55 -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
e7d12f1dbc
Halfway through in refactoring the report generation to a separate process running asynchronously of the Express server.
2017-04-17 18:31: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
Tomas Bures
c74232e9c5
Added option to mark a list as not being allowed to be subscribed by public users using the form.
...
The settings is a checkbox in list create/edit.
2017-04-14 08:57:47 -04:00
vladimir
c9136f8abd
Add blacklist function
2017-04-11 10:10:02 +02:00
witzig
100fd41713
Fixes widgets for custom forms, #201
2017-04-10 08:44:33 +02:00
witzig
60907c0d86
Subscription Widget
2017-04-03 20:42:04 +02:00
vladimir
1547e887c3
Add option to disable email cheking for imported CSV
2017-03-31 11:20:43 +02:00
Andris Reinman
d7c06e0a5a
Do not use .stack property with error objects
2017-03-24 13:04:38 +02:00
vladimir
3152ecb228
Merge remote-tracking branch 'upstream/master' into clicks-by-device-type
2017-03-21 10:26:50 +02:00
witzig
8852f33f03
Added note about MJML usage
2017-03-20 22:32:32 +01:00
vladimir
10dd23fee4
Merge remote-tracking branch 'upstream/master' into clicks-by-device-type
2017-03-20 14:50:10 +02:00
vladimir
1ba3bce6eb
Add device type detect and stats calculation for open/click rate by device type and country
2017-03-20 14:44:17 +02:00
witzig
b09af60fac
Merge branch 'master' into custom-forms-mjml
...
# Conflicts:
# lib/tools.js
# package.json
2017-03-19 13:44:24 +01:00
witzig
2e50fbc8ae
Custom Forms
2017-03-19 13:36:57 +01:00
Andris Reinman
9d5fb816c9
Fixes issue with HTML entities
2017-03-19 13:39:34 +02:00
witzig
3aaf9bc6bf
Fixed title case
2017-03-12 01:13:24 +01:00
witzig
a2450507c6
Rename index-2.hbs to index.hbs
2017-03-12 01:10:08 +01:00
witzig
fca8313a5e
Landing Page Proposal
2017-03-11 13:21:07 +01:00
witzig
1ea399cbe9
Reduce error handling noise
2017-03-10 15:38:04 +01:00
Andris Reinman
020a77c78f
applied some code style changes
2017-03-10 14:14:38 +02:00
witzig
588eed008b
GrapeJS and Mosaico Integration
2017-03-10 09:59:25 +01:00
Andris Reinman
37531f2550
Merge branch 'master' of github.com:andris9/mailtrain
2017-03-07 16:31:34 +02:00
Andris Reinman
d25565b6f8
Updated translation support
2017-03-07 16:30:56 +02:00
witzig
a164a7fb40
Moved tracking scripts to partial and made tools.formatMessage() less greedy
...
The change in tools.formatMessage() prevents stripping CSS like
a[data-foo] and arrays in JS. Thus only replacing mergeTag it knows
about.
2017-03-06 14:52:22 +01:00
witzig
66dc1091a8
Merge remote-tracking branch 'upstream/master'
2017-03-04 21:52:10 +01:00
witzig
8fdb2840c4
Moved Merge Tag Helpers to helpers.js
...
… to satisfy ESLint top-level module scope.
2017-03-04 21:50:44 +01:00
Andris Reinman
bd6ba90eca
Added 'created' column for subscribers lists table
2017-03-04 22:02:46 +02:00
witzig
d9c1d8e595
Merge remote-tracking branch 'upstream/master'
2017-03-04 18:38:44 +01:00
witzig
633463108e
Merge tag reference abstraction/partial
...
Perhaps helpers.js would be a more suitable place for
getDefaultMergeTags() and getListMergeTags() … ?
2017-03-04 18:37:41 +01:00
Andris Reinman
ba8bd12123
initial translations support
2017-03-04 18:15:16 +02:00