From 9cd856cf03b81f474ab254e3b98198e7c20c805c Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 16 Feb 2021 14:28:32 +0100 Subject: [PATCH] Use chips to display domain aliases. --- frontend/package.json | 2 +- frontend/src/api/account.js | 9 +++++ frontend/src/api/auth.js | 7 ++++ frontend/src/api/domains.js | 32 ++++++++++++++++ frontend/src/api/logs.js | 9 +++++ frontend/src/api/parameters.js | 18 +++++++++ .../{plugins/axios.js => api/repository.js} | 38 ++----------------- .../src/components/domains/DomainList.vue | 17 +++++++-- frontend/src/components/layout/Navbar.vue | 4 +- frontend/src/components/logs/LogList.vue | 4 +- .../components/parameters/ParametersForm.vue | 9 +++-- frontend/src/main.js | 1 - frontend/src/store/modules/auth.js | 12 +++--- frontend/src/store/modules/domains.js | 13 ++++--- frontend/src/views/Login.vue | 3 +- 15 files changed, 118 insertions(+), 60 deletions(-) create mode 100644 frontend/src/api/account.js create mode 100644 frontend/src/api/auth.js create mode 100644 frontend/src/api/domains.js create mode 100644 frontend/src/api/logs.js create mode 100644 frontend/src/api/parameters.js rename frontend/src/{plugins/axios.js => api/repository.js} (63%) diff --git a/frontend/package.json b/frontend/package.json index 67f05ce4c..92da867f1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,5 +1,5 @@ { - "name": "frontend", + "name": "Modoboa", "version": "0.1.0", "private": true, "scripts": { diff --git a/frontend/src/api/account.js b/frontend/src/api/account.js new file mode 100644 index 000000000..65f2bd5a7 --- /dev/null +++ b/frontend/src/api/account.js @@ -0,0 +1,9 @@ +import repository from './repository' + +const resource = 'account' + +export default { + getMe () { + return repository.get(`/${resource}/me/`) + } +} diff --git a/frontend/src/api/auth.js b/frontend/src/api/auth.js new file mode 100644 index 000000000..0fec62969 --- /dev/null +++ b/frontend/src/api/auth.js @@ -0,0 +1,7 @@ +import repository from './repository' + +export default { + requestToken (data) { + return repository.post('/token/', data) + } +} diff --git a/frontend/src/api/domains.js b/frontend/src/api/domains.js new file mode 100644 index 000000000..9f8fed7bd --- /dev/null +++ b/frontend/src/api/domains.js @@ -0,0 +1,32 @@ +import repository from './repository' + +const domainResource = 'domains' +const domainAliasResource = 'domainaliases' + +export default { + getDomains () { + return repository.get(`/${domainResource}/`) + }, + getDomainAliases (domain) { + let url = `/${domainAliasResource}/` + if (domain !== undefined) { + url += `?domain=${domain}` + } + return repository.get(url) + }, + createDomain (data) { + return repository.post(`/${domainResource}/`, data) + }, + updateDomain (domainId, data) { + return repository.put(`/${domainResource}/${domainId}/`, data) + }, + createDomainAlias (data) { + return repository.post(`/${domainAliasResource}/`, data) + }, + updateDomainAlias (aliasId, data) { + return repository.put(`/${domainAliasResource}/${aliasId}/`, data) + }, + deleteDomainAlias (aliasId) { + return repository.delete(`/${domainAliasResource}/${aliasId}/`) + } +} diff --git a/frontend/src/api/logs.js b/frontend/src/api/logs.js new file mode 100644 index 000000000..2d2ce9a54 --- /dev/null +++ b/frontend/src/api/logs.js @@ -0,0 +1,9 @@ +import repository from './repository' + +const resource = 'logs' + +export default { + getAll () { + return repository.get(`/${resource}/`) + } +} diff --git a/frontend/src/api/parameters.js b/frontend/src/api/parameters.js new file mode 100644 index 000000000..b4c6358e4 --- /dev/null +++ b/frontend/src/api/parameters.js @@ -0,0 +1,18 @@ +import repository from './repository' + +const resource = 'parameters' + +export default { + getApplications () { + return repository.get(`/${resource}/applications/`) + }, + getAppliction (app) { + return repository.get(`/${resource}/${app}/`) + }, + getApplicationStructure (app) { + return repository.get(`/${resource}/structure/?app=${app}`) + }, + saveApplication (app, data) { + return repository.post(`/${resource}/${app}/`, data) + } +} diff --git a/frontend/src/plugins/axios.js b/frontend/src/api/repository.js similarity index 63% rename from frontend/src/plugins/axios.js rename to frontend/src/api/repository.js index 3afb3ee72..b355c27f1 100644 --- a/frontend/src/plugins/axios.js +++ b/frontend/src/api/repository.js @@ -1,24 +1,11 @@ -'use strict' - -import Vue from 'vue' import axios from 'axios' import Cookies from 'js-cookie' import router from '../router' import store from '../store' -// Full config: https://github.com/axios/axios#request-config -axios.defaults.baseURL = process.VUE_APP_API_BASE_URL || '' -// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; -// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; - -const config = { - baseURL: process.env.VUE_APP_API_BASE_URL || '' - // timeout: 60 * 1000 // Timeout - // withCredentials: true // Check cross-site Access-Control -} - -const _axios = axios.create(config) +const baseURL = process.env.VUE_APP_API_BASE_URL || '' +const _axios = axios.create({ baseURL }) _axios.interceptors.request.use( function (config) { @@ -65,23 +52,4 @@ _axios.interceptors.response.use( } ) -Plugin.install = function (Vue, options) { - Vue.axios = _axios - window.axios = _axios - Object.defineProperties(Vue.prototype, { - axios: { - get () { - return _axios - } - }, - $axios: { - get () { - return _axios - } - } - }) -} - -Vue.use(Plugin) - -export default Plugin +export default _axios diff --git a/frontend/src/components/domains/DomainList.vue b/frontend/src/components/domains/DomainList.vue index 2e2b0d0d8..08fd8fd39 100644 --- a/frontend/src/components/domains/DomainList.vue +++ b/frontend/src/components/domains/DomainList.vue @@ -99,9 +99,17 @@ @@ -112,6 +120,7 @@