From 5f2fda85badb14848098044b2b7fda12528b514a Mon Sep 17 00:00:00 2001 From: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com> Date: Tue, 18 Jun 2019 15:42:08 +0900 Subject: Resolve #5069 (#5070) --- src/client/app/common/views/components/poll-editor.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/client') diff --git a/src/client/app/common/views/components/poll-editor.vue b/src/client/app/common/views/components/poll-editor.vue index ed1d02aa2c..f7a4d3af8c 100644 --- a/src/client/app/common/views/components/poll-editor.vue +++ b/src/client/app/common/views/components/poll-editor.vue @@ -89,9 +89,7 @@ export default Vue.extend({ get() { const at = () => { - const [date] = moment(this.atDate).toISOString().split('T'); - const [hour, minute] = this.atTime.split(':'); - return moment(`${date}T${hour}:${minute}Z`).valueOf(); + return moment(`${this.atDate} ${this.atTime}`).valueOf(); }; const after = () => { -- cgit v1.2.3-freya From bb52ebdc3eb53db826e488ff50af04478edc50cb Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 18 Jun 2019 15:56:03 +0900 Subject: Provide version of postgresql --- src/client/app/common/views/widgets/server.info.vue | 1 + src/server/api/endpoints/meta.ts | 2 ++ 2 files changed, 3 insertions(+) (limited to 'src/client') diff --git a/src/client/app/common/views/widgets/server.info.vue b/src/client/app/common/views/widgets/server.info.vue index a97b4ec496..41ccd23bfe 100644 --- a/src/client/app/common/views/widgets/server.info.vue +++ b/src/client/app/common/views/widgets/server.info.vue @@ -3,6 +3,7 @@

Maintainer: {{ meta.maintainerName }}

Machine: {{ meta.machine }}

Node: {{ meta.node }}

+

PSQL: {{ meta.psql }}

Version: {{ meta.version }}

diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts index d18543f56a..4da0c7476c 100644 --- a/src/server/api/endpoints/meta.ts +++ b/src/server/api/endpoints/meta.ts @@ -6,6 +6,7 @@ import { fetchMeta } from '../../../misc/fetch-meta'; import * as pkg from '../../../../package.json'; import { Emojis } from '../../../models'; import { types, bool } from '../../../misc/schema'; +import { getConnection } from 'typeorm'; export const meta = { stability: 'stable', @@ -114,6 +115,7 @@ export default define(meta, async (ps, me) => { machine: os.hostname(), os: os.platform(), node: process.version, + psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), cpu: { model: os.cpus()[0].model, -- cgit v1.2.3-freya From b0280355e8f261919fab01aad911f77415605059 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 18 Jun 2019 16:17:20 +0900 Subject: Better request interval --- src/client/app/admin/views/dashboard.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/client') diff --git a/src/client/app/admin/views/dashboard.vue b/src/client/app/admin/views/dashboard.vue index 639ec190e2..15bd853c14 100644 --- a/src/client/app/admin/views/dashboard.vue +++ b/src/client/app/admin/views/dashboard.vue @@ -124,7 +124,7 @@ export default Vue.extend({ this.connection = this.$root.stream.useSharedConnection('serverStats'); this.updateStats(); - this.clock = setInterval(this.updateStats, 1000); + this.clock = setInterval(this.updateStats, 3000); this.$root.getMeta().then(meta => { this.meta = meta; -- cgit v1.2.3-freya From 4f284e1bc0a5d18eed5d6ad945ca23be2091238f Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 18 Jun 2019 16:49:58 +0900 Subject: Resolve #5063 --- locales/ja-JP.yml | 4 +++ src/client/app/admin/views/db.vue | 39 +++++++++++++++++++++++ src/client/app/admin/views/index.vue | 33 +++++++++++-------- src/server/api/endpoints/admin/get-table-stats.ts | 37 +++++++++++++++++++++ 4 files changed, 99 insertions(+), 14 deletions(-) create mode 100644 src/client/app/admin/views/db.vue create mode 100644 src/server/api/endpoints/admin/get-table-stats.ts (limited to 'src/client') diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 7053360a11..d9223b1c4b 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1226,8 +1226,12 @@ admin/views/index.vue: abuse: "スパム報告" queue: "ジョブキュー" logs: "ログ" + db: "データベース" back-to-misskey: "Misskeyに戻る" +admin/views/db.vue: + tables: "テーブル" + admin/views/dashboard.vue: dashboard: "ダッシュボード" accounts: "アカウント" diff --git a/src/client/app/admin/views/db.vue b/src/client/app/admin/views/db.vue new file mode 100644 index 0000000000..27bb81039e --- /dev/null +++ b/src/client/app/admin/views/db.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/client/app/admin/views/index.vue b/src/client/app/admin/views/index.vue index 43e47038f3..8a13fe1bf6 100644 --- a/src/client/app/admin/views/index.vue +++ b/src/client/app/admin/views/index.vue @@ -22,6 +22,7 @@
  • {{ $t('instance') }}
  • {{ $t('queue') }}
  • {{ $t('logs') }}
  • +
  • {{ $t('db') }}
  • {{ $t('moderators') }}
  • {{ $t('users') }}
  • {{ $t('@.drive') }}
  • @@ -43,6 +44,7 @@
    +
    @@ -59,19 +61,20 @@ import Vue from 'vue'; import i18n from '../../i18n'; import { version } from '../../config'; -import XDashboard from "./dashboard.vue"; -import XInstance from "./instance.vue"; -import XQueue from "./queue.vue"; -import XLogs from "./logs.vue"; -import XModerators from "./moderators.vue"; -import XEmoji from "./emoji.vue"; -import XAnnouncements from "./announcements.vue"; -import XUsers from "./users.vue"; -import XDrive from "./drive.vue"; -import XAbuse from "./abuse.vue"; -import XFederation from "./federation.vue"; - -import { faHeadset, faArrowLeft, faGlobe, faExclamationCircle, faTasks, faStream } from '@fortawesome/free-solid-svg-icons'; +import XDashboard from './dashboard.vue'; +import XInstance from './instance.vue'; +import XQueue from './queue.vue'; +import XLogs from './logs.vue'; +import XDb from './db.vue'; +import XModerators from './moderators.vue'; +import XEmoji from './emoji.vue'; +import XAnnouncements from './announcements.vue'; +import XUsers from './users.vue'; +import XDrive from './drive.vue'; +import XAbuse from './abuse.vue'; +import XFederation from './federation.vue'; + +import { faHeadset, faArrowLeft, faGlobe, faExclamationCircle, faTasks, faStream, faDatabase } from '@fortawesome/free-solid-svg-icons'; import { faGrin } from '@fortawesome/free-regular-svg-icons'; // Detect the user agent @@ -85,6 +88,7 @@ export default Vue.extend({ XInstance, XQueue, XLogs, + XDb, XModerators, XEmoji, XAnnouncements, @@ -108,7 +112,8 @@ export default Vue.extend({ faGlobe, faExclamationCircle, faTasks, - faStream + faStream, + faDatabase, }; }, methods: { diff --git a/src/server/api/endpoints/admin/get-table-stats.ts b/src/server/api/endpoints/admin/get-table-stats.ts new file mode 100644 index 0000000000..1abea18492 --- /dev/null +++ b/src/server/api/endpoints/admin/get-table-stats.ts @@ -0,0 +1,37 @@ +import define from '../../define'; +import { getConnection } from 'typeorm'; + +export const meta = { + requireCredential: false, + + desc: { + 'en-US': 'Get table stats' + }, + + tags: ['meta'], + + params: { + }, +}; + +export default define(meta, async () => { + const sizes = await + getConnection().query(` + SELECT relname AS "table", reltuples as "count", pg_total_relation_size(C.oid) AS "size" + FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) + WHERE nspname NOT IN ('pg_catalog', 'information_schema') + AND C.relkind <> 'i' + AND nspname !~ '^pg_toast';`) + .then(recs => { + const res = {} as Record; + for (const rec of recs) { + res[rec.table] = { + count: parseInt(rec.count, 10), + size: parseInt(rec.size, 10), + }; + } + return res; + }); + + return sizes; +}); -- cgit v1.2.3-freya From 2dac8d3d1f6fffd56c550fecb6b3122e34342123 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 18 Jun 2019 16:53:14 +0900 Subject: Update db.vue --- src/client/app/admin/views/db.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/client') diff --git a/src/client/app/admin/views/db.vue b/src/client/app/admin/views/db.vue index 27bb81039e..7818546e76 100644 --- a/src/client/app/admin/views/db.vue +++ b/src/client/app/admin/views/db.vue @@ -3,7 +3,7 @@
    -
    {{ table }} {{ tables[table].count }} {{ tables[table].size | bytes }}
    +
    {{ table }} {{ tables[table].count | number }} {{ tables[table].size | bytes }}
    -- cgit v1.2.3-freya