Added option to include GA tracking
This commit is contained in:
parent
37e992a4b4
commit
b0d36be790
5 changed files with 59 additions and 3 deletions
14
app.js
14
app.js
|
@ -21,6 +21,7 @@ let routes = require('./routes/index');
|
|||
let users = require('./routes/users');
|
||||
let lists = require('./routes/lists');
|
||||
let settings = require('./routes/settings');
|
||||
let settingsModel = require('./lib/models/settings');
|
||||
let templates = require('./routes/templates');
|
||||
let campaigns = require('./routes/campaigns');
|
||||
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
|
||||
* 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
|
||||
return '';
|
||||
}
|
||||
|
@ -147,7 +148,16 @@ app.use((req, res, next) => {
|
|||
|
||||
res.locals.menu = menu;
|
||||
tools.updateMenu(res);
|
||||
next();
|
||||
|
||||
settingsModel.list(['ua_code'], (err, configItems) => {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
Object.keys(configItems).forEach(key => {
|
||||
res.locals[key] = configItems[key];
|
||||
});
|
||||
next();
|
||||
});
|
||||
});
|
||||
|
||||
app.use('/', routes);
|
||||
|
|
|
@ -11,7 +11,7 @@ let url = require('url');
|
|||
|
||||
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) => {
|
||||
if (!req.user) {
|
||||
|
|
|
@ -143,6 +143,25 @@
|
|||
<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>
|
||||
|
|
|
@ -47,6 +47,14 @@
|
|||
</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>
|
||||
|
|
|
@ -55,6 +55,25 @@
|
|||
<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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue