Merge branch 'witzig-landingpage'

This commit is contained in:
Andris Reinman 2017-03-11 17:51:49 +02:00
commit 16cd6ba6b1
5 changed files with 309 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -6,7 +6,7 @@ let _ = require('../lib/translate')._;
/* GET home page. */
router.get('/', (req, res) => {
res.render('index', {
res.render('index-2', {
indexPage: true,
title: _('Self hosted email newsletter app')
});

215
views/index-2.hbs Normal file
View file

@ -0,0 +1,215 @@
<style>
h2 .glyphicon {
font-size: .75em;
}
h3 .glyphicon {
font-size: .8em;
}
</style>
<div class="row">
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-list-alt"></span> {{#translate}}List management{{/translate}}</h2>
<p>{{#translate}}Mailtrain allows you to easily manage even very large lists. Million subscribers? Not a problem. You can add subscribers manually, through the API or import from a CSV file. All lists come with support for custom fields and merge tags as well.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-list-management">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='List management'
cls='modal-list-management'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
}}
</div>
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-tasks"></span> {{#translate}}Custom fields{{/translate}}</h2>
<p>{{#translate}}Text fields, numbers, drop downs or checkboxes, Mailtrain has them all. Every custom field can be included in the generated newsletters through merge tags.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-custom-fields">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='Custom fields'
cls='modal-custom-fields'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-filter"></span> {{#translate}}List segmentation{{/translate}}</h2>
<p>{{#translate}}Send messages only to list subscribers that match predefined segmentation rules. No need to create separate lists with small differences.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-list-segmentation">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='List segmentation'
cls='modal-list-segmentation'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
</div>
<hr />
<div class="row">
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-star"></span> {{#translate}}RSS Campaigns{{/translate}}</h2>
<p>{{#translate}}Setup Mailtrain to track RSS feeds and if a new entry is detected in a feed then Mailtrain auto-generates a new campaign using entry data as message contents and sends it to selected subscribers.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-rss-campaigns">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='RSS Campaigns'
cls='modal-rss-campaigns'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-lock"></span> {{#translate}}GPG Encryption{{/translate}}</h2>
<p>{{#translate}}If a list has a custom field for a GPG Public Key set then subscribers can upload their GPG public key to receive encrypted messages from the list.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-gpg-encryption">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='GPG Encryption'
cls='modal-gpg-encryption'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-stats"></span> {{#translate}}Click stats{{/translate}}</h2>
<p>{{#translate}}After a campaign is sent, check individual click statistics for every link included in the message.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-click-stats">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='Click stats'
cls='modal-click-stats'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
</div>
<hr />
<div class="row">
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-eye-open"></span> {{#translate}}Open source{{/translate}}</h2>
<p>{{#translate}}Mailtrain is available under GPLv3 license and completely open source.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-open-source">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='Open source'
cls='modal-open-source'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-envelope"></span> {{#translate}}Send via any provider{{/translate}}</h2>
<p>{{#translate}}Mailtrain recommends <a href="https://sendpulse.com/?utm_source=mailtrain&utm_medium=providerlist">SendPulse</a> even though you can use any provider that supports SMTP protocol to send out your newsletters. Bounce and complaints handling via webhooks is supported for SES, SparkPost, SendGrid and Mailgun, also for Postfix and ZoneMTA.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-send-via-any-provider">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='Send via any provider'
cls='modal-send-via-any-provider'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
<div class="col-md-4">
<h2><span class="glyphicon glyphicon-cog"></span> {{#translate}}Trigger based automation{{/translate}}</h2>
<p>{{#translate}}Define automation triggers to send specific messages when a user activates the trigger.{{/translate}}</p>
<button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target=".modal-trigger-based-automation">{{#translate}}Show more{{/translate}}</button>
{{> modal_carousel
title='Trigger based automation'
cls='modal-trigger-based-automation'
img01='/images/img01.png'
img02='/images/img02.png'
img03='/images/img03.png'
img04='/images/img04.png'
img05='/images/img05.png'
img06='/images/img06.png'
img07='/images/img07.png'
img08='/images/img08.png'
img09='/images/img09.png'
}}
</div>
</div>
<p><br></p>
<div class="row" style="background: #eee;">
<div class="col-md-8">
<h3>{{#translate}}Donate to author{{/translate}}</h3>
<p>{{#translate}}If you really like Mailtrain or your business benefits from it financially then I would really appreciate a small donation to keep the Mailtrain development engines running. You can either use Bitcoin or PayPal for donations. My Bitcoin wallet is{{/translate}} <code>15Z8ADxhssKUiwP3jbbqJwA21744KMCfTM</code></p>
<p style="margin-bottom: 20px;"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=DB26KWR2BQX5W" class="btn btn-info">{{#translate}}or donate using PayPal{{/translate}}</a></p>
</div>
</div>
<p><br></p>
<div class="row">
<div class="col-md-12">
<h3>{{#translate}}Official Mailtrain Partners{{/translate}}</h3>
<hr />
</div>
<div class="col-md-4">
<p>
<a href="https://sendpulse.com/?utm_source=mailtrain&utm_medium=logo">
<img class="media-object" src="/images/sendpulse-logo.png" alt="SendPulse">
</a>
</p>
<p>{{#translate}}A reliable SMTP server, easy integration, and 12,000 messages a month free{{/translate}}</p>
</div>
<div class="col-md-4">
<p>
<a href="http://www.iredmail.org/">
<img class="media-object" src="/images/iredmail-logo.png" alt="iRedMail">
</a>
</p>
<p>{{#translate}}Free, open source mail server solution{{/translate}}</p>
</div>
</div>
<p><br><br><br></p>

View file

@ -0,0 +1,93 @@
<div class="modal fade {{cls}}" tabindex="-1" role="dialog">
<div class="modal-dialog" style="width: 999px;" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{{#translate}}{{title}}{{/translate}}</h4>
</div>
<div id="carousel-{{cls}}" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel-{{cls}}" data-slide-to="0" class="active"></li>
<li data-target="#carousel-{{cls}}" data-slide-to="1"></li>
<li data-target="#carousel-{{cls}}" data-slide-to="2"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
{{#if img01}}
<div class="item active">
<img src="{{img01}}">
</div>
{{/if}}
{{#if img02}}
<div class="item">
<img src="{{img02}}">
</div>
{{/if}}
{{#if img03}}
<div class="item">
<img src="{{img03}}">
</div>
{{/if}}
{{#if img04}}
<div class="item">
<img src="{{img04}}">
</div>
{{/if}}
{{#if img05}}
<div class="item">
<img src="{{img05}}">
</div>
{{/if}}
{{#if img06}}
<div class="item">
<img src="{{img06}}">
</div>
{{/if}}
{{#if img07}}
<div class="item">
<img src="{{img07}}">
</div>
{{/if}}
{{#if img08}}
<div class="item">
<img src="{{img08}}">
</div>
{{/if}}
{{#if img09}}
<div class="item">
<img src="{{img09}}">
</div>
{{/if}}
{{#if img10}}
<div class="item">
<img src="{{img10}}">
</div>
{{/if}}
</div>
<!-- Controls -->
<a class="left carousel-control" href="#carousel-{{cls}}" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-{{cls}}" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
</div>
</div>