Custom Forms
This commit is contained in:
parent
5332c81739
commit
2e50fbc8ae
67 changed files with 3335 additions and 34834 deletions
1
views/subscription/capture-flash-messages.hbs
Normal file
1
views/subscription/capture-flash-messages.hbs
Normal file
|
@ -0,0 +1 @@
|
|||
{{flash_messages}}
|
|
@ -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">×</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>
|
|
@ -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>
|
64
views/subscription/layout.mjml.hbs
Normal file
64
views/subscription/layout.mjml.hbs
Normal 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>
|
17
views/subscription/mail-confirm-html.mjml.hbs
Normal file
17
views/subscription/mail-confirm-html.mjml.hbs
Normal 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>
|
10
views/subscription/mail-confirm-text.hbs
Normal file
10
views/subscription/mail-confirm-text.hbs
Normal file
|
@ -0,0 +1,10 @@
|
|||
{{{title}}}
|
||||
{{#translate}}Please Confirm Subscription{{/translate}}
|
||||
===========================
|
||||
|
||||
{{#translate}}Yes, subscribe me to this list{{/translate}}: {{{confirmUrl}}}
|
||||
|
||||
{{#translate}}If you received this email by mistake, simply delete it. You won't be subscribed unless you click the confirmation link above.{{/translate}}
|
||||
|
||||
{{#translate}}For questions about this list, please contact:{{/translate}}
|
||||
{{{contactAddress}}}
|
18
views/subscription/mail-subscription-confirmed-html.mjml.hbs
Normal file
18
views/subscription/mail-subscription-confirmed-html.mjml.hbs
Normal 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>
|
16
views/subscription/mail-subscription-confirmed-text.hbs
Normal file
16
views/subscription/mail-subscription-confirmed-text.hbs
Normal file
|
@ -0,0 +1,16 @@
|
|||
{{{title}}}
|
||||
{{#translate}}Subscription Confirmed{{/translate}}
|
||||
======================
|
||||
|
||||
{{#translate}}Your subscription to our list has been confirmed.{{/translate}}
|
||||
|
||||
{{#translate}}If you want to modify your subscription then you can:{{/translate}}
|
||||
|
||||
{{#translate}}manage your preferences{{/translate}}: {{preferencesUrl}}
|
||||
|
||||
- {{#translate}}or{{/translate}} -
|
||||
|
||||
{{#translate}}unsubscribe here{{/translate}}: {{unsubscribeUrl}}
|
||||
|
||||
{{#translate}}For questions about this list, please contact:{{/translate}}
|
||||
{{{contactAddress}}}
|
17
views/subscription/mail-unsubscribe-confirmed-html.mjml.hbs
Normal file
17
views/subscription/mail-unsubscribe-confirmed-html.mjml.hbs
Normal 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>
|
12
views/subscription/mail-unsubscribe-confirmed-text.hbs
Normal file
12
views/subscription/mail-unsubscribe-confirmed-text.hbs
Normal file
|
@ -0,0 +1,12 @@
|
|||
{{{title}}}
|
||||
{{#translate}}You Are Now Unsubscribed{{/translate}}
|
||||
========================
|
||||
|
||||
{{#translate}}We have removed your email address from our list.{{/translate}}
|
||||
|
||||
{{#translate}}If you unsubscribed by mistake, you can re-subscribe at:{{/translate}}
|
||||
|
||||
{{#translate}}Subscribe{{/translate}}: {{subscribeUrl}}
|
||||
|
||||
{{#translate}}For questions about this list, please contact:{{/translate}}
|
||||
{{{contactAddress}}}
|
|
@ -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>
|
|
@ -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="{"data":"value"}">{{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}} '-----BEGIN PGP PUBLIC KEY BLOCK-----'">{{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>
|
143
views/subscription/partials/subscription-custom-fields.hbs
Normal file
143
views/subscription/partials/subscription-custom-fields.hbs
Normal 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="{"data":"value"}">{{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}} '-----BEGIN PGP PUBLIC KEY BLOCK-----'">{{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}}
|
20
views/subscription/partials/subscription-flash-messages.hbs
Normal file
20
views/subscription/partials/subscription-flash-messages.hbs
Normal 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>
|
|
@ -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>
|
19
views/subscription/partials/subscription-manage-form.hbs
Normal file
19
views/subscription/partials/subscription-manage-form.hbs
Normal 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>
|
24
views/subscription/partials/subscription-subscribe-form.hbs
Normal file
24
views/subscription/partials/subscription-subscribe-form.hbs
Normal 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>
|
|
@ -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}}
|
|
@ -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">×</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="{"data":"value"}">{{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}} '-----BEGIN PGP PUBLIC KEY BLOCK-----'">{{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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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}}
|
|
@ -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>
|
13
views/subscription/web-confirm-notice.mjml.hbs
Normal file
13
views/subscription/web-confirm-notice.mjml.hbs
Normal 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>
|
13
views/subscription/web-manage-address.mjml.hbs
Normal file
13
views/subscription/web-manage-address.mjml.hbs
Normal 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>
|
16
views/subscription/web-manage.mjml.hbs
Normal file
16
views/subscription/web-manage.mjml.hbs
Normal 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>
|
13
views/subscription/web-subscribe.mjml.hbs
Normal file
13
views/subscription/web-subscribe.mjml.hbs
Normal 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>
|
13
views/subscription/web-subscribed.mjml.hbs
Normal file
13
views/subscription/web-subscribed.mjml.hbs
Normal 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>
|
13
views/subscription/web-unsubscribe-notice.mjml.hbs
Normal file
13
views/subscription/web-unsubscribe-notice.mjml.hbs
Normal 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>
|
16
views/subscription/web-unsubscribe.mjml.hbs
Normal file
16
views/subscription/web-unsubscribe.mjml.hbs
Normal 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>
|
13
views/subscription/web-updated-notice.mjml.hbs
Normal file
13
views/subscription/web-updated-notice.mjml.hbs
Normal 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>
|
Loading…
Add table
Add a link
Reference in a new issue