From a294a881ec479b1a90b2c3ade4a160ddd2a03dac Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 24 Aug 2018 06:41:53 +0900 Subject: [PATCH] Improve chart --- locales/ja-JP.yml | 9 +++ .../views/pages/admin/admin.chart.chart.ts | 5 -- .../desktop/views/pages/admin/admin.chart.vue | 76 +++++++++++++++---- 3 files changed, 70 insertions(+), 20 deletions(-) diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 31b81f1d7..a74da8cd9 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -941,6 +941,11 @@ desktop/views/pages/admin/admin.unverify-user.vue: desktop/views/pages/admin/admin.chart.vue: title: "チャート" + per-day: "1時間ごと" + per-hour: "1日ごと" + notes: "投稿" + users: "ユーザー" + drive: "ドライブ" local-notes: "ローカルの投稿" remote-notes: "リモートの投稿" local-notes-total: "ローカルの投稿 (累計)" @@ -953,6 +958,10 @@ desktop/views/pages/admin/admin.chart.vue: remote-drive: "リモートのドライブ使用量" local-drive-total: "ローカルのドライブ使用量 (累計)" remote-drive-total: "リモートのドライブ使用量 (累計)" + local-drive-files: "ローカルのドライブのファイル数" + remote-drive-files: "リモートのドライブのファイル数" + local-drive-files-total: "ローカルのドライブのファイル数 (累計)" + remote-drive-files-total: "リモートのドライブのファイル数 (累計)" desktop/views/pages/deck/deck.tl-column.vue: is-media-only: "メディア投稿のみ" diff --git a/src/client/app/desktop/views/pages/admin/admin.chart.chart.ts b/src/client/app/desktop/views/pages/admin/admin.chart.chart.ts index 62043b21d..d79b0ba19 100644 --- a/src/client/app/desktop/views/pages/admin/admin.chart.chart.ts +++ b/src/client/app/desktop/views/pages/admin/admin.chart.chart.ts @@ -26,11 +26,6 @@ export default Vue.extend({ scales: { xAxes: [{ type: 'time', - time: { - displayFormats: { - quarter: 'YYYY/MM/D h:mm' - } - }, distribution: 'series' }] } diff --git a/src/client/app/desktop/views/pages/admin/admin.chart.vue b/src/client/app/desktop/views/pages/admin/admin.chart.vue index c92caeb2f..4e0050e8b 100644 --- a/src/client/app/desktop/views/pages/admin/admin.chart.vue +++ b/src/client/app/desktop/views/pages/admin/admin.chart.vue @@ -3,21 +3,31 @@
%i18n:@title%:
- Per DAY | Per HOUR + %i18n:@per-day% | %i18n:@per-hour%
@@ -59,6 +69,10 @@ export default Vue.extend({ case 'remote-drive': return this.driveChart(false, false); case 'local-drive-total': return this.driveChart(true, true); case 'remote-drive-total': return this.driveChart(false, true); + case 'local-drive-files': return this.driveFilesChart(true, false); + case 'remote-drive-files': return this.driveFilesChart(false, false); + case 'local-drive-files-total': return this.driveFilesChart(true, true); + case 'remote-drive-files-total': return this.driveFilesChart(false, true); } }, stats(): any[] { @@ -76,11 +90,19 @@ export default Vue.extend({ normal: local ? x.notes.local.diffs.normal : x.notes.remote.diffs.normal, reply: local ? x.notes.local.diffs.reply : x.notes.remote.diffs.reply, renote: local ? x.notes.local.diffs.renote : x.notes.remote.diffs.renote, - total: local ? x.notes.local.diff : x.notes.remote.diff + all: local ? x.notes.local.diff : x.notes.remote.diff })); return [{ datasets: [{ + label: 'All', + fill: false, + borderColor: '#555', + borderWidth: 2, + pointBackgroundColor: '#fff', + lineTension: 0, + data: data.map(x => ({ t: x.date, y: x.all })) + }, { label: 'Normal', fill: false, borderColor: '#41ddde', @@ -107,6 +129,7 @@ export default Vue.extend({ }] }]; }, + notesTotalChart(local: boolean): any { const data = this.stats.slice().reverse().map(x => ({ date: new Date(x.date), @@ -125,6 +148,7 @@ export default Vue.extend({ }] }]; }, + usersChart(local: boolean, total: boolean): any { const data = this.stats.slice().reverse().map(x => ({ date: new Date(x.date), @@ -145,6 +169,7 @@ export default Vue.extend({ }] }]; }, + driveChart(local: boolean, total: boolean): any { const data = this.stats.slice().reverse().map(x => ({ date: new Date(x.date), @@ -174,7 +199,28 @@ export default Vue.extend({ }] } }]; - } + }, + + driveFilesChart(local: boolean, total: boolean): any { + const data = this.stats.slice().reverse().map(x => ({ + date: new Date(x.date), + count: local ? + total ? x.drive.local.totalCount : x.drive.local.diffCount : + total ? x.drive.remote.totalCount : x.drive.remote.diffCount + })); + + return [{ + datasets: [{ + label: local ? 'Local Drive Files' : 'Remote Drive Files', + fill: false, + borderColor: '#f6584f', + borderWidth: 2, + pointBackgroundColor: '#fff', + lineTension: 0, + data: data.map(x => ({ t: x.date, y: x.count })) + }] + }]; + }, } });