diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 3b448a4de8..e4023745f8 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -117,7 +117,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator', 'benchpress' updateRegisteredGraph(data.onlineRegisteredCount, data.onlineGuestCount); updatePresenceGraph(data.users); - updateTopicsGraph(data.topics); + updateTopicsGraph(data.topTenTopics); $('#active-users').translateHtml(html); }; @@ -444,39 +444,36 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator', 'benchpress' } function updateTopicsGraph(topics) { - if (!Object.keys(topics).length) { - topics = { 0: { + if (!topics.length) { + topics = [{ title: 'No users browsing', - value: 1, - } }; + count: 1, + }]; } - var tids = Object.keys(topics); - graphs.topics.data.labels = []; graphs.topics.data.datasets[0].data = []; graphs.topics.data.datasets[0].backgroundColor = []; graphs.topics.data.datasets[0].hoverBackgroundColor = []; - for (var i = 0, ii = tids.length; i < ii; i += 1) { - graphs.topics.data.labels.push(topics[tids[i]].title); - graphs.topics.data.datasets[0].data.push(topics[tids[i]].value); + topics.forEach(function (topic, i) { + graphs.topics.data.labels.push(topic.title); + graphs.topics.data.datasets[0].data.push(topic.count); graphs.topics.data.datasets[0].backgroundColor.push(topicColors[i]); graphs.topics.data.datasets[0].hoverBackgroundColor.push(lighten(topicColors[i], 10)); - } + }); function buildTopicsLegend() { var legend = $('#topics-legend').html(''); - for (var i = 0, ii = tids.length; i < ii; i += 1) { - var topic = topics[tids[i]]; - var label = topic.value === '0' ? topic.title : ' ' + topic.title + ''; + topics.forEach(function (topic, i) { + var label = topic.count === '0' ? topic.title : ' ' + topic.title + ''; legend.append('
  • ' + '
    ' + '' + label + '' + '
  • '); - } + }); } buildTopicsLegend(); diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index 85aec8e52e..8f3d36eb0a 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -89,7 +89,7 @@ SocketRooms.getAll = function (socket, data, callback) { var topTenTopics = []; Object.keys(totals.topics).forEach(function (tid) { - topTenTopics.push({ tid: tid, count: totals.topics[tid].count }); + topTenTopics.push({ tid: tid, count: totals.topics[tid].count || 0 }); }); topTenTopics = topTenTopics.sort(function (a, b) { @@ -105,13 +105,11 @@ SocketRooms.getAll = function (socket, data, callback) { topics.getTopicsFields(topTenTids, ['title'], next); }, function (titles, next) { - totals.topics = {}; - topTenTopics.forEach(function (topic, index) { - totals.topics[topic.tid] = { - value: topic.count || 0, - title: String(titles[index].title), - }; + totals.topTenTopics = topTenTopics.map(function (topic, index) { + topic.title = titles[index].title; + return topic; }); + next(null, totals); }, ], callback);