Skip to content
Snippets Groups Projects
Commit cc26fe98 authored by Mark HOEBEKE's avatar Mark HOEBEKE
Browse files

Added configurable Matomo stats collection.

parent 47073ba4
No related branches found
No related tags found
2 merge requests!5Update develop with latest from main.,!4Added configurable Matomo stats collection.
......@@ -14,3 +14,8 @@ url_base_pathname='/benthobsdash/'
[server]
debug=true
host='127.0.0.1'
[matomo]
tracker_url='https://matomo.yourdomain.com/'
site_id='123'
window.addEventListener("load", (event) => {
let tracker_url = document.querySelector('meta[property="matomo-tracker-url"]').content;
let site_id = document.querySelector('meta[property="matomo-site-id"]').content;
if (tracker_url != null && tracker_url != "" && site_id != null && site_id != "") {
let _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
let u=tracker_url;
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', site_id]);
let d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
}
});
from dash import Dash, html, dcc
from dash import clientside_callback, Dash, html, Input, Output
import dash
import dash_bootstrap_components as dbc
import toml
import argparse
import benthobs_data_tools as bdt
import logging
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
def build_app(config):
......@@ -16,11 +20,24 @@ def build_app(config):
:return: The constructed Dash application.
"""
matomo_tracker_url = ''
matomo_site_id = ''
if 'matomo' in config and 'tracker_url' in config['matomo'] and 'site_id' in config['matomo']:
LOGGER.debug(
f"Initializing Matomo collector with tracker url {config['matomo']['tracker_url']} and site id {config['matomo']['site_id']}")
matomo_tracker_url = config['matomo']['tracker_url']
matomo_site_id = config['matomo']['site_id']
else:
LOGGER.debug(f"Matomo configuration missing or incomplete. Skipping.")
app = Dash('benthobsdash',
title="BenthOBS SNO Data Viewer",
external_stylesheets=[dbc.themes.YETI, dbc.icons.BOOTSTRAP],
meta_tags=[
{"name": "viewport", "content": "width=device-width, initial-scale=1"},
{"property": "matomo-tracker-url", "content": matomo_tracker_url},
{"property": "matomo-site-id", "content": matomo_site_id},
],
use_pages=True,
**config['webapp']
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment