mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-09-02 03:17:06 +02:00
graph changes
This commit is contained in:
@@ -32,6 +32,7 @@ dashboardController.get = async function (req, res) {
|
||||
const latestValidVersion = semver.valid(latestVersion);
|
||||
|
||||
res.render('admin/dashboard', {
|
||||
graphTitle: '[[admin/dashboard:forum-traffic]]',
|
||||
version: version,
|
||||
lookupFailed: latestValidVersion === null,
|
||||
latestVersion: latestValidVersion,
|
||||
@@ -131,6 +132,7 @@ async function getStats() {
|
||||
}
|
||||
|
||||
let results = (await Promise.all([
|
||||
getStatsFromAnalytics('pageviews', ''),
|
||||
getStatsFromAnalytics('uniquevisitors', ''),
|
||||
getStatsFromAnalytics('logins', 'loginCount'),
|
||||
getStatsForSet('users:joindate', 'userCount'),
|
||||
@@ -140,24 +142,25 @@ async function getStats() {
|
||||
meta.config.activitypubEnabled ? getStatsForSet('topicsRemote:tid', '') : null,
|
||||
])).filter(Boolean);
|
||||
|
||||
results[0].name = '[[admin/dashboard:unique-visitors]]';
|
||||
results[0].name = '[[admin/dashboard:graphs.page-views]]';
|
||||
results[1].name = '[[admin/dashboard:unique-visitors]]';
|
||||
|
||||
results[1].name = '[[admin/dashboard:logins]]';
|
||||
results[1].href = `${nconf.get('relative_path')}/admin/dashboard/logins`;
|
||||
results[2].name = '[[admin/dashboard:logins]]';
|
||||
results[2].href = `${nconf.get('relative_path')}/admin/dashboard/logins`;
|
||||
|
||||
results[2].name = '[[admin/dashboard:new-users]]';
|
||||
results[2].href = `${nconf.get('relative_path')}/admin/dashboard/users`;
|
||||
results[3].name = '[[admin/dashboard:new-users]]';
|
||||
results[3].href = `${nconf.get('relative_path')}/admin/dashboard/users`;
|
||||
|
||||
results[3].name = '[[admin/dashboard:posts]]';
|
||||
results[4].name = '[[admin/dashboard:posts]]';
|
||||
|
||||
results[4].name = '[[admin/dashboard:topics]]';
|
||||
results[4].href = `${nconf.get('relative_path')}/admin/dashboard/topics`;
|
||||
results[5].name = '[[admin/dashboard:topics]]';
|
||||
results[5].href = `${nconf.get('relative_path')}/admin/dashboard/topics`;
|
||||
|
||||
if (results[5]) {
|
||||
results[5].name = '[[admin/dashboard:remote-posts]]';
|
||||
}
|
||||
if (results[6]) {
|
||||
results[6].name = '[[admin/dashboard:remote-topics]]';
|
||||
results[6].name = '[[admin/dashboard:remote-posts]]';
|
||||
}
|
||||
if (results[7]) {
|
||||
results[7].name = '[[admin/dashboard:remote-topics]]';
|
||||
}
|
||||
|
||||
({ results } = await plugins.hooks.fire('filter:admin.getStats', {
|
||||
@@ -287,6 +290,7 @@ dashboardController.getLogins = async (req, res) => {
|
||||
sessions = _.flatten(sessions).sort((a, b) => b.datetime - a.datetime);
|
||||
|
||||
res.render('admin/dashboard/logins', {
|
||||
graphTitle: '[[admin/dashboard:logins]]',
|
||||
set: 'logins',
|
||||
query: _.pick(req.query, ['units', 'until', 'count']),
|
||||
stats,
|
||||
@@ -315,6 +319,7 @@ dashboardController.getUsers = async (req, res) => {
|
||||
const users = await user.getUsersData(uids);
|
||||
|
||||
res.render('admin/dashboard/users', {
|
||||
graphTitle: '[[admin/dashboard:new-users]]',
|
||||
set: 'registrations',
|
||||
query: _.pick(req.query, ['units', 'until', 'count']),
|
||||
stats,
|
||||
@@ -342,6 +347,7 @@ dashboardController.getTopics = async (req, res) => {
|
||||
const topicData = await topics.getTopicsByTids(tids);
|
||||
|
||||
res.render('admin/dashboard/topics', {
|
||||
graphTitle: '[[admin/dashboard:topics]]',
|
||||
set: 'topics',
|
||||
query: _.pick(req.query, ['units', 'until', 'count']),
|
||||
stats,
|
||||
|
||||
@@ -1,36 +1,24 @@
|
||||
<div class="card mb-3" id="analytics-panel">
|
||||
<div class="card shadow-none mb-3" id="analytics-panel">
|
||||
<div class="card-header">
|
||||
<div class="d-flex justify-content-between">
|
||||
[[admin/dashboard:forum-traffic]]
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
{graphTitle}
|
||||
|
||||
<div class="d-flex gap-1">
|
||||
<select data-action="updateGraph" class="form-select form-select-sm">
|
||||
<option value="1">[[admin/dashboard:page-views-last-day]]</option>
|
||||
<option value="7">[[admin/dashboard:page-views-seven]]</option>
|
||||
<option value="30">[[admin/dashboard:page-views-thirty]]</option>
|
||||
<option value="custom">[[admin/dashboard:page-views-custom]]</option>
|
||||
<option value="range" class="hidden">[[admin/dashboard:page-views-custom]]</option>
|
||||
</select>
|
||||
<a class="btn btn-sm btn-light lh-sm" target="_blank" id="view-as-json" href="{config.relative_path}/api/v3/admin/analytics/{set}?type=hourly" data-bs-toggle="tooltip" data-bs-placement="bottom" title="[[admin/dashboard:view-as-json]]"><i class="fa fa-fw fa-xs fa-terminal text-primary"></i></a>
|
||||
<a class="btn btn-sm btn-light lh-sm" id="expand-analytics" href="#" data-bs-toggle="tooltip" data-bs-placement="bottom" title="[[admin/dashboard:expand-analytics]]"><i class="fa fa-fw fa-xs fa-expand text-primary"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="graph-container position-relative" id="analytics-traffic-container" style="height: 40vh; min-height: 300px; ">
|
||||
<canvas id="analytics-traffic" ></canvas>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-sm-3 hidden-xs text-center pageview-stats">
|
||||
<div><strong id="pageViewsThirty">{{{ if summary.month }}}{./summary.month}{{{ else }}}0{{{ end }}}</strong></div>
|
||||
<div><a href="#" class="updatePageviewsGraph text-sm" data-action="updateGraph" data-units="days" data-amount="30">[[admin/dashboard:page-views-thirty]]</a></div>
|
||||
</div>
|
||||
<div class="col-sm-3 text-center pageview-stats">
|
||||
<div><strong id="pageViewsSeven">{{{ if summary.week }}}{./summary.week}{{{ else }}}0{{{ end }}}</strong></div>
|
||||
<div><a href="#" class="updatePageviewsGraph text-sm" data-action="updateGraph" data-units="days" data-amount="7">[[admin/dashboard:page-views-seven]]</a></div>
|
||||
</div>
|
||||
<div class="col-sm-3 hidden-xs text-center pageview-stats">
|
||||
<div><strong id="pageViewsPastDay">{{{ if summary.day }}}{./summary.day}{{{ else }}}0{{{ end }}}</strong></div>
|
||||
<div><a href="#" class="updatePageviewsGraph text-sm" data-action="updateGraph" data-units="hours" data-amount="24">[[admin/dashboard:page-views-last-day]]</a></div>
|
||||
</div>
|
||||
<div class="col-sm-3 text-center pageview-stats">
|
||||
<div><strong><i class="fa fa-clock-o"></i></strong></div>
|
||||
<div><a href="#" class="updatePageviewsGraph text-sm" data-action="updateGraph" data-units="custom">[[admin/dashboard:page-views-custom]]</a></div>
|
||||
</div>
|
||||
<div class="card-body p-0">
|
||||
<div class="graph-container position-relative" id="analytics-traffic-container" style="width: 100%; {{{ if template.admin/dashboard }}}min-height: 300px;{{{ end }}}">
|
||||
<canvas id="analytics-traffic"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user