From 841442ca4c13a86b3dc73443ef17bf5c67895d81 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Fri, 12 Mar 2021 15:52:54 +0100 Subject: [PATCH] Added graphical statistics to domain detail page. --- frontend/package.json | 2 + frontend/src/api/statistics.js | 17 ++ .../src/components/domains/DomainSummary.vue | 3 + frontend/src/components/tools/DateField.vue | 43 +++++ .../src/components/tools/TimeSerieChart.vue | 162 ++++++++++++++++++ frontend/src/views/Domain.vue | 19 +- frontend/src/views/Domains.vue | 3 +- frontend/yarn.lock | 72 ++++++++ modoboa/maillog/api/__init__.py | 0 modoboa/maillog/api/v2/__init__.py | 0 modoboa/maillog/api/v2/serializers.py | 64 +++++++ modoboa/maillog/api/v2/urls.py | 11 ++ modoboa/maillog/api/v2/viewsets.py | 45 +++++ modoboa/maillog/graphics.py | 49 +++--- modoboa/urls_api_v2.py | 1 + 15 files changed, 461 insertions(+), 30 deletions(-) create mode 100644 frontend/src/api/statistics.js create mode 100644 frontend/src/components/tools/DateField.vue create mode 100644 frontend/src/components/tools/TimeSerieChart.vue create mode 100644 modoboa/maillog/api/__init__.py create mode 100644 modoboa/maillog/api/v2/__init__.py create mode 100644 modoboa/maillog/api/v2/serializers.py create mode 100644 modoboa/maillog/api/v2/urls.py create mode 100644 modoboa/maillog/api/v2/viewsets.py diff --git a/frontend/package.json b/frontend/package.json index e9f06fd65..e8ddddfbd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,11 +9,13 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "apexcharts": "^3.25.0", "core-js": "^3.6.5", "js-cookie": "^2.2.1", "luxon": "^1.26.0", "vee-validate": "^3.4.5", "vue": "^2.6.11", + "vue-apexcharts": "^1.6.0", "vue-cookie": "^1.1.4", "vue-gettext": "^2.1.10", "vue-router": "^3.2.0", diff --git a/frontend/src/api/statistics.js b/frontend/src/api/statistics.js new file mode 100644 index 000000000..381cd16b4 --- /dev/null +++ b/frontend/src/api/statistics.js @@ -0,0 +1,17 @@ +import repository from './repository' + +const resource = 'statistics' + +export default { + getStatistics ({ graphSet, period, graphicName, searchQuery, start, end }) { + const args = { + gset: graphSet, + period, + graphic: graphicName, + searchquery: searchQuery, + start: start, + end: end + } + return repository.get(`${resource}/`, { params: args }) + } +} diff --git a/frontend/src/components/domains/DomainSummary.vue b/frontend/src/components/domains/DomainSummary.vue index f488f0902..4b553badf 100644 --- a/frontend/src/components/domains/DomainSummary.vue +++ b/frontend/src/components/domains/DomainSummary.vue @@ -1,5 +1,8 @@