From f27cfa214f1c6afcf59046b6455c196f4a939f4f Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 17 Jun 2021 14:57:37 +0200 Subject: [PATCH] Handling pagination and filtering options in audit trail. --- .github/workflows/modoboa.yml | 10 ++- MANIFEST.in | 1 + frontend/.env.development | 1 - frontend/public/config.json | 3 + frontend/src/api/logs.js | 4 +- frontend/src/api/repository.js | 5 +- .../src/components/logs/AuditTrailList.vue | 44 +++++++++--- frontend/src/main.js | 17 +++-- frontend/yarn.lock | 6 +- modoboa/admin/settings.py | 27 -------- modoboa/admin/templates/admin/index.html | 24 ------- modoboa/admin/urls.py | 6 +- modoboa/admin/views/__init__.py | 2 - modoboa/admin/views/base.py | 11 --- modoboa/core/api/v2/urls.py | 14 +++- modoboa/core/api/v2/views.py | 68 +++++++++++++++++++ modoboa/core/api/v2/viewsets.py | 11 ++- .../core/commands/templates/settings.py.tpl | 4 -- modoboa/urls_api_v2.py | 8 --- requirements.txt | 1 - 20 files changed, 159 insertions(+), 108 deletions(-) delete mode 100644 frontend/.env.development create mode 100644 frontend/public/config.json delete mode 100644 modoboa/admin/settings.py delete mode 100644 modoboa/admin/templates/admin/index.html delete mode 100644 modoboa/admin/views/base.py create mode 100644 modoboa/core/api/v2/views.py diff --git a/.github/workflows/modoboa.yml b/.github/workflows/modoboa.yml index 6e55fa14b..bd3c26eca 100644 --- a/.github/workflows/modoboa.yml +++ b/.github/workflows/modoboa.yml @@ -156,7 +156,15 @@ jobs: uses: actions/setup-python@v2 with: python-version: '3.8' - - name: Install dependencies + - name: Build frontend + shell: bash -l {0} + run: | + cd frontend + nvm install 12 + yarn install + yarn build + cd .. + - name: Build packages run: | sudo apt-get install librrd-dev rrdtool libssl-dev gettext python -m pip install --upgrade pip setuptools wheel diff --git a/MANIFEST.in b/MANIFEST.in index 66fe4dd44..01c9bbf19 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,7 @@ include README.rst CONTRIBUTING.rst LICENSE requirements.txt include modoboa/admin/tests/dovecot recursive-include modoboa *.html *.js *.css *.png *.po *.mo *.json *.gif *.ttf *.woff *.woff2 +recursive-include frontend/dist *.js *.json *.ico *.html *.css *.png *.map recursive-include modoboa/core/templates *.tpl recursive-include modoboa/core/commands/templates *.tpl recursive-include doc * diff --git a/frontend/.env.development b/frontend/.env.development deleted file mode 100644 index aeb8bba9e..000000000 --- a/frontend/.env.development +++ /dev/null @@ -1 +0,0 @@ -VUE_APP_API_BASE_URL=http://localhost:8000/api/v2 diff --git a/frontend/public/config.json b/frontend/public/config.json new file mode 100644 index 000000000..ba4206b4b --- /dev/null +++ b/frontend/public/config.json @@ -0,0 +1,3 @@ +{ + "API_BASE_URL": "http://localhost:8000/api/v2" +} diff --git a/frontend/src/api/logs.js b/frontend/src/api/logs.js index 2d2ce9a54..a2f108cb2 100644 --- a/frontend/src/api/logs.js +++ b/frontend/src/api/logs.js @@ -3,7 +3,7 @@ import repository from './repository' const resource = 'logs' export default { - getAll () { - return repository.get(`/${resource}/`) + getAll (params) { + return repository.get(`/${resource}/`, { params }) } } diff --git a/frontend/src/api/repository.js b/frontend/src/api/repository.js index 3c14f1bbd..672ec3670 100644 --- a/frontend/src/api/repository.js +++ b/frontend/src/api/repository.js @@ -1,15 +1,16 @@ +import Vue from 'vue' import axios from 'axios' import Cookies from 'js-cookie' import router from '../router' import store from '../store' -const baseURL = process.env.VUE_APP_API_BASE_URL || '' -const _axios = axios.create({ baseURL }) +const _axios = axios.create() _axios.interceptors.request.use( function (config) { // Do something before request is sent + config.baseURL = Vue.prototype.$config.API_BASE_URL return config }, function (error) { diff --git a/frontend/src/components/logs/AuditTrailList.vue b/frontend/src/components/logs/AuditTrailList.vue index 3ecc0a451..a8088c068 100644 --- a/frontend/src/components/logs/AuditTrailList.vue +++ b/frontend/src/components/logs/AuditTrailList.vue @@ -17,7 +17,8 @@ :items="logs" :search="search" class="elevation-1" - :options.sync="pagination" + :options.sync="options" + :server-items-length="total" >