Added option to include GA tracking

This commit is contained in:
Andris Reinman 2016-05-02 19:50:43 +03:00
parent 37e992a4b4
commit b0d36be790
5 changed files with 59 additions and 3 deletions

12
app.js
View file

@ -21,6 +21,7 @@ let routes = require('./routes/index');
let users = require('./routes/users'); let users = require('./routes/users');
let lists = require('./routes/lists'); let lists = require('./routes/lists');
let settings = require('./routes/settings'); let settings = require('./routes/settings');
let settingsModel = require('./lib/models/settings');
let templates = require('./routes/templates'); let templates = require('./routes/templates');
let campaigns = require('./routes/campaigns'); let campaigns = require('./routes/campaigns');
let links = require('./routes/links'); let links = require('./routes/links');
@ -50,7 +51,7 @@ app.disable('x-powered-by');
* in a situation where we consume a flash messages but then comes a redirect * in a situation where we consume a flash messages but then comes a redirect
* and the message is never displayed * and the message is never displayed
*/ */
hbs.registerHelper('flash_messages', function() { // eslint-disable-line prefer-arrow-callback hbs.registerHelper('flash_messages', function () { // eslint-disable-line prefer-arrow-callback
if (typeof this.flash !== 'function') { // eslint-disable-line no-invalid-this if (typeof this.flash !== 'function') { // eslint-disable-line no-invalid-this
return ''; return '';
} }
@ -147,7 +148,16 @@ app.use((req, res, next) => {
res.locals.menu = menu; res.locals.menu = menu;
tools.updateMenu(res); tools.updateMenu(res);
settingsModel.list(['ua_code'], (err, configItems) => {
if (err) {
return next(err);
}
Object.keys(configItems).forEach(key => {
res.locals[key] = configItems[key];
});
next(); next();
});
}); });
app.use('/', routes); app.use('/', routes);

View file

@ -11,7 +11,7 @@ let url = require('url');
let settings = require('../lib/models/settings'); let settings = require('../lib/models/settings');
let allowedKeys = ['service_url', 'smtp_hostname', 'smtp_port', 'smtp_encryption', 'smtp_disable_auth', 'smtp_user', 'smtp_pass', 'admin_email', 'smtp_log', 'smtp_max_connections', 'smtp_max_messages', 'smtp_self_signed', 'default_from', 'default_address', 'default_subject', 'default_homepage', 'default_postaddress', 'default_sender', 'verp_hostname', 'verp_use', 'disable_wysiwyg', 'pgp_private_key', 'pgp_passphrase']; let allowedKeys = ['service_url', 'smtp_hostname', 'smtp_port', 'smtp_encryption', 'smtp_disable_auth', 'smtp_user', 'smtp_pass', 'admin_email', 'smtp_log', 'smtp_max_connections', 'smtp_max_messages', 'smtp_self_signed', 'default_from', 'default_address', 'default_subject', 'default_homepage', 'default_postaddress', 'default_sender', 'verp_hostname', 'verp_use', 'disable_wysiwyg', 'pgp_private_key', 'pgp_passphrase', 'ua_code'];
router.all('/*', (req, res, next) => { router.all('/*', (req, res, next) => {
if (!req.user) { if (!req.user) {

View file

@ -143,6 +143,25 @@
<script src="/summernote/summernote.min.js"></script> <script src="/summernote/summernote.min.js"></script>
<script src="/javascript/editor.js"></script> <script src="/javascript/editor.js"></script>
{{/if}} {{/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> </body>
</html> </html>

View file

@ -47,6 +47,14 @@
</div> </div>
</div> </div>
<div class="form-group">
<label for="ua-code" class="col-sm-2 control-label">Tracking ID</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="ua-code" id="ua-code-url" placeholder="UA-XXXXX-XX" value="{{uaCode}}">
<span class="help-block">Enter Google Analytics tracking code</span>
</div>
</div>
</fieldset> </fieldset>
<fieldset> <fieldset>

View file

@ -55,6 +55,25 @@
<script src="/summernote/summernote.min.js"></script> <script src="/summernote/summernote.min.js"></script>
<script src="/javascript/editor.js"></script> <script src="/javascript/editor.js"></script>
{{/if}} {{/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> </body>
</html> </html>