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 '';
+ echo '';
echo '';
echo '
Visitor log
';
echo '';
echo ' ';
echo '';
- 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 {