From 9bc80cc5e9496f9b2f4ae6f9ac5a3601cf695ec5 Mon Sep 17 00:00:00 2001 From: Sascha Leib Date: Mon, 1 Sep 2025 15:42:06 +0200 Subject: [PATCH] Admin content styling --- admin.php | 6 ++-- script.js | 40 ++++++++++++++++++-------- style.less | 82 ++++++++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 101 insertions(+), 27 deletions(-) diff --git a/admin.php b/admin.php index 3f85c9f..68b8121 100644 --- a/admin.php +++ b/admin.php @@ -44,15 +44,15 @@ class admin_plugin_monitor extends AdminPlugin { echo ''; /* Live tab */ - echo '
'; + echo '
'; echo '

Today

'; - echo '

Loading …

'; + echo '
Loading …
'; echo '
'; echo '
Visitor log'; echo '
    '; echo '
    '; echo '
    ' . $svg . 'Initialising …
    '; - echo '
    '; + echo ''; echo ''; } diff --git a/script.js b/script.js index 62c7b48..0f929ce 100644 --- a/script.js +++ b/script.js @@ -343,15 +343,16 @@ Monitor.live = { totalPageViews: 0, bots: { known: 0, - possible: 0, - human: 0 + likely: 0, + human: 0, + users: 0 } }, // sort the visits by type: groups: { knownBots: [], - possibleBots: [], + likelyBots: [], humans: [], users: [] }, @@ -380,6 +381,7 @@ Monitor.live = { } if (v.usr && v.usr != '') { // known users this.groups.users.push(v); + this.data.bots.users += 1; } else { // not a known bot, nor a known user; check other aspects: @@ -404,8 +406,8 @@ Monitor.live = { // decide based on the score: if (botScore >= 0.5) { - this.data.bots.possible += 1; - this.groups.possibleBots.push(v); + this.data.bots.likely += 1; + this.groups.likelyBots.push(v); } else { this.data.bots.human += 1; this.groups.humans.push(v); @@ -676,13 +678,27 @@ Monitor.live = { const parent = document.getElementById('monitor__today__content'); if (parent) { jQuery(parent).prepend(jQuery(` -

    Overview

    -

    Total visits: ${data.totalVisits}

    -

    Total page views: ${data.totalPageViews}

    -

    Bots vs. Humans

    -

    Known bots: ${data.bots.known}

    -

    Possible bots: ${data.bots.possible}

    -

    Humans: ${data.bots.human}

    +
    + Overview +
    +
    +
    Web metrics
    +
    Total visits:${data.totalVisits}
    +
    Total page views:${data.totalPageViews}
    +
    Bounce rate:(TBD)
    +
    +
    +
    Bots vs. Humans
    +
    Known bots:${data.bots.known}
    +
    Likely bots:${data.bots.likely}
    +
    Probably humans:${data.bots.human}
    +
    Registered users:${data.bots.users}
    +
    +
    +
    Known bots
    +
    +
    +
    `)); } } diff --git a/style.less b/style.less index 54e5365..de2c6fd 100644 --- a/style.less +++ b/style.less @@ -7,28 +7,86 @@ #monitor__today { header { + background-color: #F0F0F0; + color: #333; + border: #CCC solid 1px; + border-radius: .5rem .5rem 0 0; + margin: .5rem 0 1pt 0; + padding: .25rem .5rem; + font-size: 1rem; + } + + /* list formatting */ + dl { & { - background-color: #FBFAF9; - color: #333; - border: #EEE solid 1px; - border-radius: .25rem .25rem 0 0; - margin: 0 0 .25rem 0; + border-left: #555 solid 1px; + padding-left: .5rem; + margin: 0; } - h3 { - font-size: 1rem; - padding: .25em .5em; margin: 0; + &:first-child { + border-left: none; + padding-left: 0; + } + dt { + margin-bottom: .2em; + } + dd { + display: flex; + justify-content: space-between; + padding: 0; margin: 0; + } + dd:nth-child(even) { + background-color: #EEE; } } + + #monitor__today__content { + & > details { + & { + margin: 0 0 1pt 0; + } + summary { + & { + font-weight: bold; + font-size: 1rem; + padding: .25rem .5rem; + background-color: #F0F0F0; + color: #333; + border: #CCC solid 1px; + display: flex; + justify-content: space-between; + margin: 0; + } + &::marker { + content: ''; + } + &::after { + content: '+'; + display: inline-block; + color: @ini_link; + } + } + &[open] { + summary::after { + content: '-'; + } + } + & > div { + padding: .5rem; + } + } + } + footer { & { display: flex; align-items: center; column-gap: .25rem; - background-color: #FBFAF9; + background-color: #F0F0F0; color: #333; - border: #EEE solid 1px; - border-radius: 0 0 .25rem .25rem; - margin: .25rem 0 0 0; + border: #CCC solid 1px; + border-radius: 0 0 .5rem .5rem; + margin: 1pt 0 0 0; padding: .25rem .5rem; } & > svg {