Custom Forms

This commit is contained in:
witzig 2017-03-19 13:36:57 +01:00
parent 5332c81739
commit 2e50fbc8ae
67 changed files with 3335 additions and 34834 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -17,12 +17,14 @@
<form class="form-horizontal" method="post" action="/lists/edit">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{id}}" />
<div class="form-group">
<label for="name" class="col-sm-2 control-label">{{#translate}}Name{{/translate}}</label>
<div class="col-sm-10">
<input type="text" class="form-control input-lg" name="name" id="name" value="{{name}}" placeholder="{{#translate}}List Name{{/translate}}" autofocus required>
</div>
</div>
<div class="form-group">
<label for="name" class="col-sm-2 control-label">{{#translate}}List ID{{/translate}}</label>
<div class="col-sm-10">
@ -30,6 +32,7 @@
<span class="help-block">{{#translate}}This is the list ID displayed to the subscribers{{/translate}}</span>
</div>
</div>
<div class="form-group">
<label for="description" class="col-sm-2 control-label">{{#translate}}Description{{/translate}}</label>
<div class="col-sm-10">
@ -38,6 +41,19 @@
</div>
</div>
<div class="form-group">
<label for="default_form" class="col-sm-2 control-label">{{#translate}}Custom Form{{/translate}}</label>
<div class="col-sm-10">
<select class="form-control" id="default_form" name="default_form">
<option value="0">{{#translate}}Default Mailtrain Form{{/translate}}</option>
{{#each customForms}}
<option value="{{id}}" {{#if selected}}selected{{/if}}>{{name}}</option>
{{/each}}
</select>
<span class="help-block">{{#translate}}The custom form used for this list. You can create a form <a href="/forms/{{id}}/create">here</a>.{{/translate}}</span>
</div>
</div>
<hr />
<div class="form-group">

View file

@ -0,0 +1,27 @@
<ol class="breadcrumb">
<li><a href="/">{{#translate}}Home{{/translate}}</a></li>
<li><a href="/lists/">{{#translate}}Lists{{/translate}}</a></li>
<li><a href="/lists/view/{{list.id}}">{{list.name}}</a></li>
<li><a href="/forms/{{list.id}}">{{#translate}}Custom Forms{{/translate}}</a></li>
<li class="active">{{#translate}}Create Form{{/translate}}</li>
</ol>
<h2>{{list.name}} <small>{{#translate}}Create Custom Form{{/translate}}</small></h2>
<hr>
<form class="form-horizontal" method="post" action="/forms/{{list.id}}/create">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">{{#translate}}Form Name{{/translate}}</label>
<div class="col-sm-10">
<input type="text" class="form-control input-lg" name="name" id="name" value="{{name}}" placeholder="{{#translate}}Form Name{{/translate}}" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-plus"></i> {{#translate}}Add Form{{/translate}}</button>
</div>
</div>
</form>

286
views/lists/forms/edit.hbs Normal file
View file

@ -0,0 +1,286 @@
<ol class="breadcrumb">
<li><a href="/">{{#translate}}Home{{/translate}}</a></li>
<li><a href="/lists/">{{#translate}}Lists{{/translate}}</a></li>
<li><a href="/lists/view/{{list.id}}">{{list.name}}</a></li>
<li><a href="/forms/{{list.id}}">{{#translate}}Custom Forms{{/translate}}</a></li>
<li class="active">{{#translate}}Edit Form{{/translate}}</li>
</ol>
<h2>{{list.name}} <small>{{#translate}}Edit Custom Form{{/translate}}</small> <a class="btn btn-default btn-xs" href="/forms/{{list.id}}" role="button"><span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> {{#translate}}Back to forms{{/translate}}</a></h2>
<hr>
<form method="post" class="delete-form" id="forms-delete" action="/forms/{{list.id}}/delete">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{form.id}}">
</form>
<form class="form-horizontal" method="post" id="forms-update" action="/forms/{{list.id}}/edit">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{form.id}}">
<input type="hidden" name="fields_shown_on_subscribe" value="{{form.fieldsShownOnSubscribe}}">
<input type="hidden" name="fields_shown_on_manage" value="{{form.fieldsShownOnManage}}">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">{{#translate}}Form Name{{/translate}}</label>
<div class="col-sm-10">
<input type="text" class="form-control input-lg" name="name" id="name" value="{{form.name}}" placeholder="{{#translate}}Form Name{{/translate}}" required>
</div>
</div>
<div class="form-group">
<label for="form-description" class="col-sm-2 control-label">{{#translate}}Description{{/translate}}</label>
<div class="col-sm-10">
<textarea class="form-control" id="form-description" name="description" rows="3" placeholder="{{#translate}}Optional comments about this form{{/translate}}">{{form.description}}</textarea>
</div>
</div>
<div class="form-group">
<label for="previewLinks" class="col-sm-2 control-label">{{#translate}}Form Preview{{/translate}}</label>
<div class="col-sm-10" id="previewLinks">
<div class="help-block">
<small>
{{#translate}}Note: These links are solely for a quick preview. If you submit a preview form you'll get redirected to the list's default form.{{/translate}}
</small>
</div>
<p>
<a href="/subscription/{{list.cid}}?fid={{form.id}}" target="_blank">{{#translate}}Subscribe{{/translate}}</a>
|
<a href="/subscription/{{list.cid}}/confirm-notice?fid={{form.id}}" target="_blank">{{#translate}}Confirm Notice{{/translate}}</a>
|
<a href="/subscription/{{list.cid}}/updated-notice?fid={{form.id}}" target="_blank">{{#translate}}Updated Notice{{/translate}}</a>
|
<a href="/subscription/{{list.cid}}/unsubscribe-notice?fid={{form.id}}" target="_blank">{{#translate}}Unsubscribed Notice{{/translate}}</a>
{{#if testUsers}}
|
<a href="/subscription/{{list.cid}}/manage/{{testUsers.0.cid}}?fid={{form.id}}" target="_blank">{{#translate}}Manage{{/translate}}</a>
|
<a href="/subscription/{{list.cid}}/manage-address/{{testUsers.0.cid}}?fid={{form.id}}" target="_blank">{{#translate}}Manage Address{{/translate}}</a>
{{else}}
|
<small class="text-muted">{{#translate}}Create a test user for additional options{{/translate}}</small>
{{/if}}
</p>
</div>
</div>
<p><br></p>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#templates" aria-controls="templates" role="tab" data-toggle="tab">{{#translate}}Templates{{/translate}}</a></li>
<li role="presentation"><a href="#fields" aria-controls="fields" role="tab" data-toggle="tab">{{#translate}}Fields{{/translate}}</a></li>
<li role="presentation"><a href="#help" aria-controls="help" role="tab" data-toggle="tab">{{#translate}}Help{{/translate}}</a></li>
</ul>
</div>
</div>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="templates">
<div class="form-group">
<label for="form-header" class="col-sm-2 control-label">{{#translate}}Edit{{/translate}}</label>
<div class="col-sm-10">
<select class="form-control" id="templateSelect">
{{#each templateOptgroups}}
<optgroup label="{{label}}">
{{#each opts}}
<option value="{{name}}">{{label}}</option>
{{/each}}
</optgroup>
{{/each}}
</select>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
var forceAceRender = function(name) {
var div = $('.form-group.template.' + name).find('.ace_editor')[0];
div.env && div.env.editor && div.env.editor.resize(true);
};
$('#templateSelect').on('change', function() {
$('.form-group.template').hide();
var name = $(this).val();
$('.form-group.template.' + name).show();
forceAceRender(name);
});
$('ul.nav-tabs > li > a').on('shown.bs.tab', function(e) {
var id = $(e.target).attr('href').substr(1);
id === 'templates' && forceAceRender($('#templateSelect').val());
});
});
</script>
{{#each templateOptgroups}}
{{#each opts}}
<div class="form-group template {{name}}" {{#unless isLayout}}style="display: none;"{{/unless}}>
<div class="col-sm-offset-2 col-sm-10">
<div class="code-editor-{{type}}" style="height: 700px; border: 1px solid #ccc;"></div>
<input type="hidden" name="{{name}}" value="{{value}}">
</div>
</div>
{{/each}}
{{/each}}
</div>
<!-- Fields -->
<style>
ul.fields {
min-height: 54px;
border: 1px dashed #ccc;
margin: 0;
padding: 11px 10px 10px;
background: #efefef;
}
ul.fields li {
list-style: none;
margin: -1px 0 0;
padding: 0 10px;
background: #fff;
border: 1px solid #ccc;
line-height: 30px;
white-space: nowrap;
overflow: hidden;
cursor: move;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function() {
jQuery.get('/javascript/jquery-ui-1.12.1.min.js', undefined, function() {
$('.fieldsHiddenOnSubscribe, .fieldsShownOnSubscribe').sortable({
connectWith: '.connectedSortableSubscribe'
}).disableSelection();
$('.fieldsHiddenOnManage, .fieldsShownOnManage').sortable({
connectWith: '.connectedSortableManage'
}).disableSelection();
$('#forms-update').on('submit', function(e) {
var s = [];
var m = [];
$('.fieldsShownOnSubscribe > li').each(function() {
s.push($(this).data('field-id'));
});
$('.fieldsShownOnManage > li').each(function() {
m.push($(this).data('field-id'));
});
$('input[name=fields_shown_on_subscribe]').val(s.join(','));
$('input[name=fields_shown_on_manage]').val(m.join(','));
});
}, 'script');
});
</script>
<div role="tabpanel" class="tab-pane" id="fields">
<div class="form-group">
<label for="form-fields" class="col-sm-2 control-label">{{#translate}}Form Fields{{/translate}}</label>
<div class="col-sm-10">
<div class="row">
<div class="col-sm-6">
<h6>{{#translate}}Fields hidden on subscription page:{{/translate}}</h6>
<ul class="fields fieldsHiddenOnSubscribe connectedSortableSubscribe">
{{#each fieldsHiddenOnSubscribe}}
<li class="ui-state-default" data-field-id="{{id}}">
{{name}}
<span style="font-size: 10px; color: #aaa; float: right;">{{type}}</span>
</li>
{{/each}}
</ul>
<h6>{{#translate}}Fields shown on subscription page:{{/translate}}</h6>
<ul class="fields fieldsShownOnSubscribe connectedSortableSubscribe">
{{#each fieldsShownOnSubscribe}}
<li class="ui-state-default" data-field-id="{{id}}">
{{name}}
<span style="font-size: 10px; color: #aaa; float: right;">{{type}}</span>
</li>
{{/each}}
</ul>
<br>
</div>
<div class="col-sm-6">
<h6>{{#translate}}Fields hidden on preferences page:{{/translate}}</h6>
<ul class="fields fieldsHiddenOnManage connectedSortableManage">
{{#each fieldsHiddenOnManage}}
<li class="ui-state-default" data-field-id="{{id}}">
{{name}}
<span style="font-size: 10px; color: #aaa; float: right;">{{type}}</span>
</li>
{{/each}}
</ul>
<h6>{{#translate}}Fields shown on preferences page:{{/translate}}</h6>
<ul class="fields fieldsShownOnManage connectedSortableManage">
{{#each fieldsShownOnManage}}
<li class="ui-state-default" data-field-id="{{id}}">
{{name}}
<span style="font-size: 10px; color: #aaa; float: right;">{{type}}</span>
</li>
{{/each}}
</ul>
<br>
</div>
</div>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="help">
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<p>
{{#translate}}The MJML Documentation can be found <a href="https://mjml.io/documentation/" rel="noreferrer" target="_blank">here</a>.{{/translate}}
</p>
</div>
</div>
</div>
</div><!-- end .tab-content -->
<hr>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="pull-right">
<button type="submit" form="forms-delete" class="btn btn-danger"><i class="glyphicon glyphicon-remove"></i> {{#translate}}Delete Form{{/translate}}</button>
</div>
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-ok"></i> {{#translate}}Update{{/translate}}</button>
</div>
</div>
</form>
<script src="/javascript/cookie.2.1.3.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Remember Tab
var tab = Cookies.get('tab');
tab && $('ul.nav-tabs > li > a[href="#' + tab + '"]').click();
$('ul.nav-tabs > li > a').on('shown.bs.tab', function(e) {
var id = $(e.target).attr('href').substr(1);
Cookies.set('tab', id, { expires: 7, path: '' });
});
// Remember Template
var tmpl = Cookies.get('tmpl');
tmpl && $('#templateSelect').val(tmpl).trigger('change');
$('#templateSelect').on('change', function() {
Cookies.set('tmpl', $(this).val(), { expires: 7, path: '' });
});
});
</script>

View file

@ -0,0 +1,87 @@
<ol class="breadcrumb">
<li><a href="/">{{#translate}}Home{{/translate}}</a></li>
<li><a href="/lists/">{{#translate}}Lists{{/translate}}</a></li>
<li><a href="/lists/view/{{list.id}}">{{list.name}}</a></li>
<li class="active">{{#translate}}Custom Forms{{/translate}}</li>
</ol>
<div class="pull-right">
<a class="btn btn-primary" href="/forms/{{list.id}}/create" role="button"><i class="glyphicon glyphicon-plus"></i> {{#translate}}Create Custom Form{{/translate}}</a>
</div>
<h2>{{list.name}} <small>{{#translate}}Custom Forms{{/translate}}</small></h2>
<hr>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<th style="width: auto;" class="text-right">
#
</th>
<th style="width: 30%;">
{{#translate}}Name{{/translate}}
</th>
<th style="width: 60%;">
{{#translate}}Description{{/translate}}
</th>
<th>
&nbsp;
</th>
</thead>
<tbody>
{{#each customForms}}
<tr>
<th scope="row" class="text-right">
{{index}}
</th>
<td>
{{#if isDefaultForm}}
<span class="glyphicon glyphicon-star" style="color: #DE4320; font-size: .8em; font-weight: bold; padding-right: 2px;"></span>
{{else}}
<span class="glyphicon glyphicon-star-empty" style="color: #ccc; font-size: .8em; padding-right: 2px;"></span>
{{/if}}
{{name}}
</td>
<td class="text-muted">
{{description}}
</td>
<td class="text-center">
<a href="/forms/{{../list.id}}/edit/{{id}}">
{{#translate}}Edit{{/translate}}
</a>
</td>
</tr>
{{/each}}
{{#unless customForms}}
<tr>
<td colspan="6">
{{#translate}}No data available in table{{/translate}}
</td>
</tr>
{{/unless}}
</tbody>
</table>
</div>
<form class="form-inline" method="post" action="/lists/edit?next=%2Fforms%2F{{list.id}}">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="id" value="{{list.id}}" />
<input type="hidden" name="name" value="{{list.name}}" />
<div class="form-group">
<label for="default_form" class="control-label" style="color: #666; font-weight: normal;">{{#translate}}The default form for this list is:{{/translate}}</label>
&nbsp;
<select class="form-control input-sm" id="default_form" name="default_form">
<option value="0">{{#translate}}Default Mailtrain Form{{/translate}}</option>
{{#each customForms}}
<option value="{{id}}" {{#if isDefaultForm}}selected{{/if}}>{{name}}</option>
{{/each}}
</select>
<button type="submit" class="btn btn-default btn-sm">{{#translate}}Update{{/translate}}</button>
</div>
</form>
<p><br></p>

View file

@ -14,34 +14,33 @@
<div class="table-responsive">
<table class="table table-bordered table-hover data-table display nowrap" width="100%" data-row-sort="0,1,1,1,0,0">
<thead>
<th class="col-md-1">
<th>
#
</th>
<th>
{{#translate}}Name{{/translate}}
</th>
<th class="col-md-2">
<th>
{{#translate}}ID{{/translate}}
</th>
<th class="col-md-1">
<th>
{{#translate}}Subscribers{{/translate}}
</th>
<th>
{{#translate}}Description{{/translate}}
</th>
<th class="col-md-1">
<th>
&nbsp;
</th>
</thead>
{{#if rows}}
<tbody>
{{#each rows}}
<tr>
<th scope="row">
{{index}}
</th>
<td>
<td style="width: 30%;">
<span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span>
<a href="/lists/view/{{id}}">
{{name}}
@ -53,11 +52,10 @@
<td class="text-center">
{{subscribers}}
</td>
<td class="text-muted">
<td class="text-muted" style="width: 70%;">
{{description}}
</td>
<td>
<span class="glyphicon glyphicon-wrench" aria-hidden="true"></span>
<a href="/lists/edit/{{id}}">
{{#translate}}Edit{{/translate}}
</a>

View file

@ -13,6 +13,7 @@
{{#translate}}List Actions{{/translate}} <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="/forms/{{id}}" role="button"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> {{#translate}}Custom Forms{{/translate}}</a></li>
<li><a href="/fields/{{id}}" role="button"><span class="glyphicon glyphicon-tasks" aria-hidden="true"></span> {{#translate}}Custom Fields{{/translate}}</a></li>
<li><a href="/segments/{{id}}" role="button"><span class="glyphicon glyphicon-filter" aria-hidden="true"></span> {{#translate}}Segments{{/translate}}</a></li>
<li><a href="/lists/edit/{{id}}" role="button"><span class="glyphicon glyphicon-wrench" aria-hidden="true"></span> {{#translate}}Edit List{{/translate}}</a></li>
@ -41,7 +42,8 @@
<form class="form-inline" method="get">
<div class="form-group">
<label for="exampleInputName2">{{#translate}}Segment{{/translate}}</label>
<select name="segment" class="form-control">
&nbsp;
<select name="segment" class="form-control input-sm">
<option value="0">All Subscriptions</option>
{{#if segments}}
<optgroup label="{{#translate}}Segments{{/translate}}">
@ -55,7 +57,7 @@
</optgroup>
</select>
</div>
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-filter" aria-hidden="true"></span> {{#translate}}Filter{{/translate}}</button>
<button type="submit" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-filter" aria-hidden="true"></span> {{#translate}}Filter{{/translate}}</button>
</form>
<div class="clearfix"></div>
</div>
@ -75,7 +77,7 @@
<table data-topic-url="/lists" data-topic-id="{{id}}" data-sort-column="1" data-sort-order="asc" {{#if useSegment}} data-topic-args="segment={{useSegment}}" {{/if}} class="table table-bordered table-hover data-table-ajax display nowrap" width="100%" data-row-sort="0,1,1,1{{customSort}},1,1,0">
<thead>
<tr>
<th class="col-md-1">
<th>
#
</th>
<th>

View file

@ -0,0 +1 @@
{{flash_messages}}

View file

@ -1,17 +0,0 @@
<div class="alert alert-warning alert-dismissible" role="alert" id="js-warning">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<strong>{{#translate}}Warning!{{/translate}}</strong> {{#translate}}If JavaScript was not enabled then no confirmation message was sent{{/translate}}
</div>
<script>
document.getElementById('js-warning').style.display = 'none';
</script>
<h2>{{#translate}}Almost finished.{{/translate}}</h2>
<p>{{#translate}}We need to confirm your email address. To complete the subscription process, please click the link in the email we just sent you.{{/translate}}</p>
<p>
<a class="btn btn-primary" href="{{homepage}}" role="button">
<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> {{#translate}}return to our website{{/translate}}
</a>
</p>

View file

@ -1,79 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="{{#translate}}Self hosted email newsletter app{{/translate}}">
<meta name="author" content="Andris Reinman">
<link rel="icon" href="/favicon.ico">
<title>Mailtrain</title>
<!-- Bootstrap core CSS -->
<!--
<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
-->
<!-- -->
<link rel="stylesheet" href="/bootstrap/themes/flatly.min.css">
<!-- -->
<link rel="stylesheet" href="/css/narrow.css">
<link rel="stylesheet" href="/datepicker/css/bootstrap-datepicker3.css">
{{#if useEditor}}
<link rel="stylesheet" href="/summernote/summernote.css">
{{/if}}
</head>
<body>
<div class="container">
<div class="header clearfix">
<h1 class="text-muted">{{title}}</h1>
</div>
{{flash_messages}} {{{body}}}
</div>
<script src="/javascript/jquery-2.2.1.min.js"></script>
<script src="/bootstrap/js/bootstrap.min.js"></script>
<script src="/datepicker/js/bootstrap-datepicker.min.js"></script>
<script src="/datatables/datatables.min.js"></script>
<script src="/moment/moment.min.js"></script>
<script src="/moment/moment-timezone-with-data.min.js"></script>
<script src="/javascript/tables.js"></script>
{{#if useEditor}}
<script src="/summernote/summernote.min.js"></script>
<script src="/javascript/editor.js"></script>
{{/if}}
{{#if uaCode}}
<script>
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', '{{uaCode}}', 'auto');
ga('send', 'pageview');
</script>
{{/if}}
</body>
</html>

View file

@ -0,0 +1,64 @@
<mjml>
<mj-head>
<mj-title>{{title}}</mj-title>
<mj-font name="Lato" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic" />
<mj-attributes>
<mj-all font-size="15px;" color="#2D3E4F" font-family="Lato, Helvetica, Arial, sans-serif" />
<mj-class name="h1" font-size="42px" line-height="68px" color="#b4bcc2" />
<mj-class name="h3" font-size="24px" line-height="32px" />
<mj-class name="p" font-size="15px" line-height="24px" />
<mj-class name="small" font-size="12px" line-height="16px" color="#999999" />
<mj-class name="hr" border-width="1px" border-style="solid" border-color="#e4e5e6" />
<mj-class name="button" font-size="16px" background-color="#2D3E4F" color="white" align="left" inner-padding="16px 24px" border-radius="6px" />
<mj-class name="footer-text" font-size="12px" line-height="18px" color="#999999" />
</mj-attributes>
</mj-head>
<mj-body>
<mj-container width="560" background-color="#ffffff">
<mj-raw>
{{#if isWeb}}
<style>
{{{formInputStyle}}}
.alert { max-width: 520px; font-family: Lato, Helvetica, Arial, sans-serif; }
</style>
{{/if}}
</mj-raw>
<mj-section padding-bottom="0">
<mj-column>
<mj-text mj-class="h1">
{{title}}
</mj-text>
<mj-divider mj-class="hr"/>
</mj-column>
</mj-section>
<mj-raw>
{{#if isWeb}}
{{> subscription_flash_messages}}
{{/if}}
</mj-raw>
{{{body}}}
<mj-section padding-top="0">
<mj-column>
<mj-text mj-class="small" font-style="italic">
{{defaultPostaddress}}
</mj-text>
</mj-column>
</mj-section>
<mj-raw>
{{#if isWeb}}
<!-- fixes https://github.com/mjmlio/mjml/issues/359 -->
<script> var btnBgColor = '#2D3E4F'; var btnBgColorHover = '#1A242F'; </script>
<script src="/subscription/footer-scripts.js"></script>
{{> tracking_scripts}}
{{/if}}
</mj-raw>
</mj-container>
</mj-body>
</mjml>

View file

@ -0,0 +1,17 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Please Confirm Subscription{{/translate}}
</mj-text>
<mj-button mj-class="button" href="{{confirmUrl}}">
{{#translate}}Yes, subscribe me to this list{{/translate}}
</mj-button>
<mj-text mj-class="p">
{{#translate}}If you received this email by mistake, simply delete it. You won't be subscribed if you don't click the confirmation link above.{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}For questions about this list, please contact:{{/translate}}
<br/><a href="mailto:{{contactAddress}}">{{contactAddress}}</a>
</mj-text>
</mj-column>
</mj-section>

View file

@ -0,0 +1,18 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Subscription Confirmed{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}Your subscription to our list has been confirmed{{/translate}}. {{#translate}}If you want to modify your subscription then you can {{/translate}}
<a href="{{preferencesUrl}}">{{#translate}}manage your preferences{{/translate}}</a> {{#translate}}or{{/translate}} <a href="{{unsubscribeUrl}}">{{#translate}}unsubscribe here{{/translate}}</a>.
</mj-text>
<mj-button mj-class="button" href="{{homepage}}">
{{#translate}}Return to our website{{/translate}}
</mj-button>
<mj-text mj-class="p">
{{#translate}}For questions about this list, please contact:{{/translate}}
<br/><a href="mailto:{{contactAddress}}">{{contactAddress}}</a>
</mj-text>
</mj-column>
</mj-section>

View file

@ -0,0 +1,17 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}You Are Now Unsubscribed{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}We have removed your email address from our list{{/translate}}. {{#translate}}If you unsubscribed by mistake, you can re-subscribe at:{{/translate}}
</mj-text>
<mj-button mj-class="button" href="{{subscribeUrl}}">
{{#translate}}Subscribe{{/translate}}
</mj-button>
<mj-text mj-class="p">
{{#translate}}For questions about this list, please contact:{{/translate}}
<br/><a href="mailto:{{contactAddress}}">{{contactAddress}}</a>
</mj-text>
</mj-column>
</mj-section>

View file

@ -1,5 +1,5 @@
{{{title}}}
{{#translate}}You are now unsubscribed{{/translate}}
{{#translate}}You Are Now Unsubscribed{{/translate}}
========================
{{#translate}}We have removed your email address from our list.{{/translate}}

View file

@ -1,25 +0,0 @@
<h2>{{#translate}}Update your Email Address{{/translate}}</h2>
<form method="post" action="/subscription/{{lcid}}/manage-address">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
<div class="form-group">
<label for="email">{{#translate}}Existing Email Address{{/translate}}</label>
<input type="email" class="form-control" name="email" id="email" placeholder="" value="{{email}}" readonly>
</div>
<div class="form-group">
<label for="email-new">{{#translate}}New Email Address{{/translate}}</label>
<input type="email" class="form-control" name="email-new" id="email-new" placeholder="{{#translate}}Your new email address{{/translate}}" value="{{email}}">
</div>
<p>
<small>{{#translate}}You will receive a confirmation request to your new email address that you need to accept before your email is actually changed{{/translate}}</small>
</p>
<div class="form-group">
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-ok"></i> {{#translate}}Update Email Address{{/translate}}</button>
</div>
</form>

View file

@ -1,129 +0,0 @@
<h2>{{#translate}}Update your preferences{{/translate}}</h2>
{{#if hasPubkey}}
<form method="post" id="download-pubkey" action="/subscription/publickey">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
</form>
{{/if}}
<form method="post" action="/subscription/{{lcid}}/manage">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
<input type="hidden" class="tz-detect" name="tz" id="tz" value="{{tz}}">
<div class="form-group">
<label for="email">{{#translate}}Email Address{{/translate}}</label>
<div class="input-group">
<input type="email" class="form-control" name="email" id="email" placeholder="" value="{{email}}" readonly>
<div class="input-group-addon"><a href="/subscription/{{lcid}}/manage-address/{{cid}}">{{#translate}}want to change it?{{/translate}}</a></div>
</div>
</div>
<div class="form-group">
<label for="first-name">{{#translate}}First Name{{/translate}}</label>
<input type="text" class="form-control" name="first-name" id="first-name" placeholder="" value="{{firstName}}">
</div>
<div class="form-group">
<label for="last-name">{{#translate}}Last Name{{/translate}}</label>
<input type="text" class="form-control" name="last-name" id="last-name" placeholder="" value="{{lastName}}">
</div>
{{#each customFields}}
<div class="form-group">
<label>{{name}}</label>
{{#if typeText}}
<input type="text" class="form-control" name="{{column}}" value="{{value}}">
{{/if}}
{{#if typeNumber}}
<input type="number" class="form-control" name="{{column}}" value="{{value}}">
{{/if}}
{{#if typeWebsite}}
<input type="url" class="form-control" name="{{column}}" value="{{value}}">
{{/if}}
{{#if typeLongtext}}
<textarea class="form-control" rows="3" name="{{column}}">{{value}}</textarea>
{{/if}}
{{#if typeJson}}
<textarea class="form-control gpg-text" rows="3" name="{{column}}" placeholder="{&quot;data&quot;:&quot;value&quot;}">{{value}}</textarea>
{{/if}}
{{#if typeGpg}}
{{#if ../hasPubkey}}
<div class="pull-right">
<button type="submit" class="btn btn-link btn-xs" form="download-pubkey"><span class="glyphicon glyphicon-cloud-download" aria-hidden="true"></span> {{#translate}}Download signature verification key{{/translate}}</button>
</div>
{{/if}}
<textarea class="form-control gpg-text" rows="3" name="{{column}}" placeholder="{{#translate}}Begins with{{/translate}} &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;">{{value}}</textarea>
<span class="help-block">{{#translate}}Insert your GPG public key here to encrypt messages sent to your address{{/translate}} <em>({{#translate}}optional{{/translate}})</em></span>
{{/if}}
{{#if typeDateUs}}
<div class="input-group date fm-date-us">
<input type="text" class="form-control" name="{{column}}" placeholder="MM/DD/YYYY" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeDateEur}}
<div class="input-group date fm-date-eur">
<input type="text" class="form-control" name="{{column}}" placeholder="DD/MM/YYYY" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeBirthdayUs}}
<div class="input-group date fm-birthday-us">
<input type="text" class="form-control" name="{{column}}" placeholder="MM/DD" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeBirthdayEur}}
<div class="input-group date fm-birthday-eur">
<input type="text" class="form-control" name="{{column}}" placeholder="DD/MM" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeDropdown}}
<select name="{{key}}" class="form-control">
<option value="">
{{#translate}}Select{{/translate}}
</option>
{{#each options}}
<option value="{{column}}" {{#if value}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
{{/if}}
{{#if typeRadio}}
{{#each options}}
<div class="radio">
<label>
<input type="radio" name="{{../key}}" value="{{column}}" {{#if value}} checked {{/if}}> {{name}}
</label>
</div>
{{/each}}
{{/if}}
{{#if typeCheckbox}}
{{#each options}}
<div class="checkbox">
<label>
<input type="checkbox" name="{{column}}" value="1" {{#if value}} checked {{/if}}> {{name}}
</label>
</div>
{{/each}}
{{/if}}
</div>
{{/each}}
<div class="form-group">
<button type="submit" class="btn btn-primary"><i class="glyphicon glyphicon-ok"></i> {{#translate}}Update Profile{{/translate}}</button> or <a href="/subscription/{{lcid}}/unsubscribe/{{cid}}">{{#translate}}Unsubscribe{{/translate}}</a>
</div>
</form>

View file

@ -0,0 +1,143 @@
{{#each customFields}}
{{#if typeSubsciptionEmail}}
<div class="form-group email">
<label for="email">{{#translate}}Email Address{{/translate}}</label>
{{#if ../isManagePreferences}}
<div class="input-group">
<input type="email" name="email" id="email" placeholder="" value="{{../email}}" readonly>
<div class="input-group-addon"><a href="/subscription/{{../lcid}}/manage-address/{{../cid}}">{{#translate}}want to change it?{{/translate}}</a></div>
</div>
{{else}}
<input type="email" name="email" id="email" placeholder="" value="{{../email}}" required>
{{/if}}
</div>
{{/if}}
{{#if typeFirstName}}
<div class="form-group first-name">
<label for="first-name">{{#translate}}First Name{{/translate}}</label>
<input type="text" name="first-name" id="first-name" placeholder="" value="{{../firstName}}">
</div>
{{/if}}
{{#if typeLastName}}
<div class="form-group last-name">
<label for="last-name">{{#translate}}Last Name{{/translate}}</label>
<input type="text" name="last-name" id="last-name" placeholder="" value="{{../lastName}}">
</div>
{{/if}}
{{#if typeText}}
<div class="form-group text {{column}}">
<label for="{{column}}">{{name}}</label>
<input type="text" name="{{column}}" value="{{value}}">
</div>
{{/if}}
{{#if typeNumber}}
<div class="form-group number {{column}}">
<label for="{{column}}">{{name}}</label>
<input type="number" name="{{column}}" value="{{value}}">
</div>
{{/if}}
{{#if typeWebsite}}
<div class="form-group url {{column}}">
<label for="{{column}}">{{name}}</label>
<input type="url" name="{{column}}" value="{{value}}">
</div>
{{/if}}
{{#if typeLongtext}}
<div class="form-group longtext {{column}}">
<label for="{{column}}">{{name}}</label>
<textarea rows="3" name="{{column}}">{{value}}</textarea>
</div>
{{/if}}
{{#if typeJson}}
<div class="form-group json {{column}}">
<label for="{{column}}">{{name}}</label>
<textarea class="gpg-text" rows="3" name="{{column}}" placeholder="{&quot;data&quot;:&quot;value&quot;}">{{value}}</textarea>
</div>
{{/if}}
{{#if typeGpg}}
<div class="form-group gpg {{column}}">
<label for="{{column}}">{{name}}</label>
{{#if ../hasPubkey}}
<button class="btn-download-pubkey" type="submit" form="download-pubkey">{{#translate}}Download signature verification key{{/translate}}</button>
{{/if}}
<textarea class="form-control gpg-text" rows="4" name="{{column}}" placeholder="{{#translate}}Begins with{{/translate}} &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;">{{value}}</textarea>
<span class="help-block">
{{#translate}}Insert your GPG public key here to encrypt messages sent to your address{{/translate}} <em>({{#translate}}optional{{/translate}})</em>
</span>
</div>
{{/if}}
{{#if typeDateUs}}
<div class="form-group date fm-date-us {{column}}">
<label for="{{column}}">{{name}}</label>
<input type="text" name="{{column}}" placeholder="MM/DD/YYYY" value="{{value}}">
</div>
{{/if}}
{{#if typeDateEur}}
<div class="form-group date fm-date-eur {{column}}">
<label for="{{column}}">{{name}}</label>
<input type="text" name="{{column}}" placeholder="DD/MM/YYYY" value="{{value}}">
</div>
{{/if}}
{{#if typeBirthdayUs}}
<div class="form-group date fm-birthday-us {{column}}">
<label for="{{column}}">{{name}}</label>
<input type="text" name="{{column}}" placeholder="MM/DD" value="{{value}}">
</div>
{{/if}}
{{#if typeBirthdayEur}}
<div class="form-group date fm-birthday-eur {{column}}">
<label for="{{column}}">{{name}}</label>
<input type="text" name="{{column}}" placeholder="DD/MM" value="{{value}}">
</div>
{{/if}}
{{#if typeDropdown}}
<div class="form-group dropdown {{key}}">
<label for="{{key}}">{{name}}</label>
<select name="{{key}}" class="form-control">
<option value="">
{{#translate}}Select{{/translate}}
</option>
{{#each options}}
<option value="{{column}}" {{#if value}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
{{/if}}
{{#if typeRadio}}
<div class="form-group radio {{key}}">
<label for="{{key}}">{{name}}</label>
{{#each options}}
<label class="label-radio">
<input type="radio" name="{{../key}}" value="{{column}}" {{#if value}} checked {{/if}}> {{name}}
</label>
{{/each}}
</div>
{{/if}}
{{#if typeCheckbox}}
<div class="form-group checkbox">
<label>{{name}}</label>
{{#each options}}
<label class="label-checkbox">
<input type="checkbox" name="{{column}}" value="1" {{#if value}} checked {{/if}}> {{name}}
</label>
{{/each}}
</div>
{{/if}}
{{/each}}

View file

@ -0,0 +1,20 @@
{{{flashMessages}}}
{{#if isConfirmNotice}}
<div class="alert alert-warning js-warning" role="alert">
<strong>{{#translate}}Warning!{{/translate}}</strong> {{#translate}}If JavaScript was not enabled then no confirmation message was sent{{/translate}}
</div>
{{/if}}
{{#if needsJsWarning}}
<div class="alert alert-danger js-warning" role="alert">
<strong>{{#translate}}Warning!{{/translate}}</strong>
{{#translate}}JavaScript must be enabled in order for this form to work{{/translate}}
</div>
{{/if}}
<script>
document.querySelectorAll('.js-warning').forEach(function(el) {
el.style.display = 'none';
});
</script>

View file

@ -0,0 +1,22 @@
<form id="main-form" method="post" action="/subscription/{{lcid}}/manage-address">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
<div class="form-group">
<label for="email">{{#translate}}Existing Email Address{{/translate}}</label>
<input type="email" name="email" id="email" placeholder="" value="{{email}}" readonly>
</div>
<div class="form-group">
<label for="email-new">{{#translate}}New Email Address{{/translate}}</label>
<input type="email" name="email-new" id="email-new" placeholder="{{#translate}}Your new email address{{/translate}}" value="{{email}}">
</div>
<p>
{{#translate}}You will receive a confirmation request to your new email address that you need to accept before your email is actually changed{{/translate}}
</p>
<button type="submit" style="position: absolute; top: -9999px; left: -9999px;">{{#translate}}Update Email Address{{/translate}}</button>
</form>

View file

@ -0,0 +1,19 @@
{{#if hasPubkey}}
<form method="post" id="download-pubkey" action="/subscription/publickey" style="display: none;">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
</form>
{{/if}}
<form id="main-form" method="post" action="/subscription/{{lcid}}/manage">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
<input type="hidden" class="tz-detect" name="tz" id="tz" value="{{tz}}">
{{> subscription_custom_fields}}
<button type="submit" style="position: absolute; top: -9999px; left: -9999px;">{{#translate}}Update Profile{{/translate}}</button>
</form>
<script src="/moment/moment.min.js"></script>
<script src="/moment/moment-timezone-with-data.min.js"></script>

View file

@ -0,0 +1,24 @@
{{#if hasPubkey}}
<form method="post" id="download-pubkey" action="/subscription/publickey" style="display: none;">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
</form>
{{/if}}
<form id="main-form" method="post" action="/subscription/{{cid}}/subscribe">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" class="tz-detect" name="tz" id="tz" value="{{tz}}">
<input type="hidden" name="address" value="">
<input type="hidden" name="sub" id="sub" value="">
{{> subscription_custom_fields}}
<button type="submit" style="position: absolute; top: -9999px; left: -9999px;">{{#translate}}Subscribe to list{{/translate}}</button>
</form>
<script>
document.getElementById('sub').value = new Date().getTime();
</script>
<script src="/moment/moment.min.js"></script>
<script src="/moment/moment-timezone-with-data.min.js"></script>

View file

@ -0,0 +1,20 @@
<form method="post" id="main-form" action="/subscription/{{lcid}}/unsubscribe">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="campaign" value="{{campaign}}">
<input type="hidden" name="cid" value="{{cid}}">
<div class="form-group">
<label for="email">{{#translate}}Email address{{/translate}}</label>
<input type="email" name="email" id="email" placeholder="" value="{{email}}" autofocus required>
</div>
<button type="submit" style="position: absolute; top: -9999px; left: -9999px;">{{#translate}}Unsubscribe{{/translate}}</button>
</form>
{{#if email}}
{{#if autosubmit}}
<script>
document.getElementById('main-form').submit();
</script>
{{/if}}
{{/if}}

View file

@ -1,142 +0,0 @@
{{#if hasPubkey}}
<form method="post" id="download-pubkey" action="/subscription/publickey">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="cid" value="{{cid}}">
</form>
{{/if}}
<div class="alert alert-warning alert-dismissible" role="alert" id="js-warning">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<strong>{{#translate}}Warning!{{/translate}}</strong>
{{#translate}}JavaScript must be enabled in order for the subscription form to work{{/translate}}
</div>
<script>
document.getElementById('js-warning').style.display = 'none';
</script>
<form method="post" action="/subscription/{{cid}}/subscribe">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" class="tz-detect" name="tz" id="tz" value="{{tz}}">
<input type="hidden" name="address" value="">
<input type="hidden" name="sub" id="sub" value="">
<div class="form-group">
<label for="email">{{#translate}}Email Address{{/translate}}</label>
<input type="email" class="form-control" name="email" id="email" placeholder="" value="{{email}}" required>
</div>
<div class="form-group">
<label for="first-name">{{#translate}}First Name{{/translate}}</label>
<input type="text" class="form-control" name="first-name" id="first-name" placeholder="" value="{{firstName}}">
</div>
<div class="form-group">
<label for="last-name">{{#translate}}Last Name{{/translate}}</label>
<input type="text" class="form-control" name="last-name" id="last-name" placeholder="" value="{{lastName}}">
</div>
{{#each customFields}}
<div class="form-group">
<label>{{name}}</label>
{{#if typeText}}
<input type="text" class="form-control" name="{{column}}" value="{{value}}">
{{/if}}
{{#if typeNumber}}
<input type="number" class="form-control" name="{{column}}" value="{{value}}">
{{/if}}
{{#if typeWebsite}}
<input type="url" class="form-control" name="{{column}}" value="{{value}}">
{{/if}}
{{#if typeLongtext}}
<textarea class="form-control" rows="3" name="{{column}}">{{value}}</textarea>
{{/if}}
{{#if typeJson}}
<textarea class="form-control gpg-text" rows="3" name="{{column}}" placeholder="{&quot;data&quot;:&quot;value&quot;}">{{value}}</textarea>
{{/if}}
{{#if typeGpg}}
{{#if ../hasPubkey}}
<div class="pull-right">
<button type="submit" class="btn btn-link btn-xs" form="download-pubkey"><span class="glyphicon glyphicon-cloud-download" aria-hidden="true"></span> {{#translate}}Download signature verification key{{/translate}}</button>
</div>
{{/if}}
<textarea class="form-control gpg-text" rows="3" name="{{column}}" placeholder="{{#translate}}Begins with{{/translate}} &#39;-----BEGIN PGP PUBLIC KEY BLOCK-----&#39;">{{value}}</textarea>
<span class="help-block">{{#translate}}Insert your GPG public key here to encrypt messages sent to your address{{/translate}} <em>({{#translate}}optional{{/translate}})</em></span>
{{/if}}
{{#if typeDateUs}}
<div class="input-group date fm-date-us">
<input type="text" class="form-control" name="{{column}}" placeholder="MM/DD/YYYY" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeDateEur}}
<div class="input-group date fm-date-eur">
<input type="text" class="form-control" name="{{column}}" placeholder="DD/MM/YYYY" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeBirthdayUs}}
<div class="input-group date fm-birthday-us">
<input type="text" class="form-control" name="{{column}}" placeholder="MM/DD" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeBirthdayEur}}
<div class="input-group date fm-birthday-eur">
<input type="text" class="form-control" name="{{column}}" placeholder="DD/MM" value="{{value}}"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
{{/if}}
{{#if typeDropdown}}
<select name="{{key}}" class="form-control">
<option value="">
{{#translate}}Select{{/translate}}
</option>
{{#each options}}
<option value="{{column}}" {{#if value}} selected {{/if}}>{{name}}</option>
{{/each}}
</select>
{{/if}}
{{#if typeRadio}}
{{#each options}}
<div class="radio">
<label>
<input type="radio" name="{{../key}}" value="{{column}}" {{#if value}} checked {{/if}}> {{name}}
</label>
</div>
{{/each}}
{{/if}}
{{#if typeCheckbox}}
{{#each options}}
<div class="checkbox">
<label>
<input type="checkbox" name="{{column}}" value="1" {{#if value}} checked {{/if}}> {{name}}
</label>
</div>
{{/each}}
{{/if}}
</div>
{{/each}}
<div class="form-group" id="js-subscribe" style="display: none">
<button type="submit" class="btn btn-primary">{{#translate}}Subscribe to list{{/translate}}</button>
</div>
<script>
document.getElementById('js-subscribe').style.display = 'block';
</script>
</form>
<script>
document.getElementById('sub').value = new Date().getTime();
</script>

View file

@ -1,21 +0,0 @@
<h2>{{#translate}}Subscription Confirmed{{/translate}}</h2>
<p>
{{#translate}}Your subscription to our list has been confirmed.{{/translate}}
</p>
<p>
{{#translate}}Thank you for subscribing!{{/translate}}
</p>
<p>
<a class="btn btn-primary" href="{{homepage}}" role="button">
<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span>
{{#translate}}continue to our website{{/translate}}
</a>
{{#translate}}or{{/translate}}
<a class="btn btn-primary" href="{{preferences}}" role="button">
<span class="glyphicon glyphicon-wrench" aria-hidden="true"></span>
{{#translate}}manage your preferences{{/translate}}
</a>
</p>

View file

@ -1,9 +0,0 @@
<h2>{{#translate}}Unsubscribe Successful{{/translate}}</h2>
<p>{{#translate}}You have been removed from:{{/translate}} {{title}}.</p>
<p>
<a class="btn btn-primary" href="{{homepage}}" role="button">
<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> {{#translate}}return to our website{{/translate}}
</a>
</p>

View file

@ -1,27 +0,0 @@
<h2>{{#translate}}Unsubscribe{{/translate}}</h2>
<p>
{{#translate}}Enter your email address to unsubscribe from:{{/translate}} {{title}}
</p>
<form method="post" id="unsubscribe-form" action="/subscription/{{lcid}}/unsubscribe">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="hidden" name="campaign" value="{{campaign}}">
<input type="hidden" name="cid" value="{{cid}}">
<div class="form-group">
<label for="email">{{#translate}}Email address{{/translate}}</label>
<input type="email" class="form-control" name="email" id="email" placeholder="" value="{{email}}" autofocus required>
</div>
<div class="form-group">
<button type="submit" id="unsubscribe-button" class="btn btn-primary">{{#translate}}Unsubscribe{{/translate}}</button>
</div>
</form>
{{#if email}}
{{#if autosubmit}}
<script src="/javascript/autosubmit.js"></script>
{{/if}}
{{/if}}

View file

@ -1,12 +0,0 @@
<h3>{{#translate}}Profile Updated{{/translate}}</h3>
<p>
{{#translate}}Your profile information has been updated.{{/translate}}
</p>
<p>
<a class="btn btn-primary" href="{{homepage}}" role="button">
<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span>
{{#translate}}return to our website{{/translate}}
</a>
</p>

View file

@ -0,0 +1,13 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Almost Finished{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}We need to confirm your email address. To complete the subscription process, please click the link in the email we just sent you.{{/translate}}
</mj-text>
<mj-button mj-class="button" href="{{homepage}}">
{{#translate}}Return to our website{{/translate}}
</mj-button>
</mj-column>
</mj-section>

View file

@ -0,0 +1,13 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Update Your Email Address{{/translate}}
</mj-text>
<mj-text>
{{> subscription_manage_address_form}}
</mj-text>
<mj-button mj-class="button" href="#submit">
{{#translate}}Update Email Address{{/translate}}
</mj-button>
</mj-column>
</mj-section>

View file

@ -0,0 +1,16 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Update Your Preferences{{/translate}}
</mj-text>
<mj-text>
{{> subscription_manage_form}}<!-- don't indent me! -->
</mj-text>
<mj-button mj-class="button" href="#submit">
{{#translate}}Update Profile{{/translate}}
</mj-button>
<mj-text mj-class="p">
<a href="/subscription/{{lcid}}/unsubscribe/{{cid}}">{{#translate}}Unsubscribe{{/translate}}</a>
</mj-text>
</mj-column>
</mj-section>

View file

@ -0,0 +1,13 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Subscribe to List{{/translate}}
</mj-text>
<mj-text>
{{> subscription_subscribe_form}}<!-- don't indent me! -->
</mj-text>
<mj-button mj-class="button" href="#submit">
{{#translate}}Subscribe to list{{/translate}}
</mj-button>
</mj-column>
</mj-section>

View file

@ -0,0 +1,13 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Subscription Confirmed{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}Your subscription to our list has been confirmed.{{/translate}}<br>{{#translate}}Thank you for subscribing!{{/translate}}
</mj-text>
<mj-button mj-class="button" href="{{homepage}}">
{{#translate}}Return to our website{{/translate}}
</mj-button>
</mj-column>
</mj-section>

View file

@ -0,0 +1,13 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Unsubscribe Successful{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}You have been removed from:{{/translate}} {{title}}.
</mj-text>
<mj-button mj-class="button" href="{{homepage}}">
{{#translate}}Return to our website{{/translate}}
</mj-button>
</mj-column>
</mj-section>

View file

@ -0,0 +1,16 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Unsubscribe{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}Enter your email address to unsubscribe from:{{/translate}} {{title}}
</mj-text>
<mj-text>
{{> subscription_unsubscribe_form}}
</mj-text>
<mj-button mj-class="button" href="#submit">
{{#translate}}Unsubscribe{{/translate}}
</mj-button>
</mj-column>
</mj-section>

View file

@ -0,0 +1,13 @@
<mj-section>
<mj-column>
<mj-text mj-class="h3">
{{#translate}}Profile Updated{{/translate}}
</mj-text>
<mj-text mj-class="p">
{{#translate}}Your profile information has been updated.{{/translate}}
</mj-text>
<mj-button mj-class="button" href="{{homepage}}">
{{#translate}}Return to our website{{/translate}}
</mj-button>
</mj-column>
</mj-section>