Added option to include GA tracking
This commit is contained in:
parent
37e992a4b4
commit
b0d36be790
5 changed files with 59 additions and 3 deletions
12
app.js
12
app.js
|
@ -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);
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue