From ea0bfd5a54bedc0a6ad9b1969396b2ace1e1d1c3 Mon Sep 17 00:00:00 2001 From: grimhilt Date: Mon, 27 Feb 2023 22:34:36 +0100 Subject: [PATCH] add modal to add new imap mailbox --- front/babel.config.js | 8 +- front/package-lock.json | 196 ++++++++++++++++ front/package.json | 2 + front/src/App.vue | 8 +- front/src/assets/close.svg | 3 + front/src/services/API.js | 7 + front/src/services/imapAPI.js | 7 + front/src/views/modals/AddMailboxModal.vue | 222 ++++++++++++++++++ front/src/views/modals/Modal.vue | 80 +++++++ front/src/views/sidebar/Sidebar.vue | 8 +- front/src/views/sidebar/folders/Folder.vue | 35 --- front/src/views/sidebar/folders/Folders.vue | 47 ---- .../{folders => mailboxes}/Account.vue | 0 .../sidebar/{folders => mailboxes}/All.vue | 0 front/src/views/sidebar/mailboxes/Mailbox.vue | 48 ++++ .../src/views/sidebar/mailboxes/Mailboxes.vue | 54 +++++ front/src/views/sidebar/users/Users.vue | 2 +- front/yarn.lock | 43 +++- 18 files changed, 673 insertions(+), 97 deletions(-) create mode 100644 front/src/assets/close.svg create mode 100644 front/src/services/API.js create mode 100644 front/src/services/imapAPI.js create mode 100644 front/src/views/modals/AddMailboxModal.vue create mode 100644 front/src/views/modals/Modal.vue delete mode 100644 front/src/views/sidebar/folders/Folder.vue delete mode 100644 front/src/views/sidebar/folders/Folders.vue rename front/src/views/sidebar/{folders => mailboxes}/Account.vue (100%) rename front/src/views/sidebar/{folders => mailboxes}/All.vue (100%) create mode 100644 front/src/views/sidebar/mailboxes/Mailbox.vue create mode 100644 front/src/views/sidebar/mailboxes/Mailboxes.vue diff --git a/front/babel.config.js b/front/babel.config.js index e955840..2b7083e 100644 --- a/front/babel.config.js +++ b/front/babel.config.js @@ -1,5 +1,3 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} + + + diff --git a/front/package-lock.json b/front/package-lock.json index 099effa..119c09d 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -8,6 +8,8 @@ "name": "mail", "version": "0.1.0", "dependencies": { + "@vueuse/components": "^9.13.0", + "@vueuse/core": "^9.13.0", "axios": "^1.3.4", "core-js": "^3.8.3", "vue": "^3.2.13", @@ -2420,6 +2422,12 @@ "@types/node": "*" } }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", + "license": "MIT" + }, "node_modules/@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.4.tgz", @@ -3131,6 +3139,131 @@ "dev": true, "license": "MIT" }, + "node_modules/@vueuse/components": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/components/-/components-9.13.0.tgz", + "integrity": "sha512-UJ8PjQ4SGb2rsVIy9vhEc6aCu+3+2cc+xEfGNX8/M1NKIuL2Vo6c2Kc2fYFaRzWZkP8HWXu+IcwvnAzL44IEFA==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + } + }, + "node_modules/@vueuse/components/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -13155,6 +13288,11 @@ "@types/node": "*" } }, + "@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, "@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.4.tgz", @@ -13682,6 +13820,64 @@ "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", "dev": true }, + "@vueuse/components": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/components/-/components-9.13.0.tgz", + "integrity": "sha512-UJ8PjQ4SGb2rsVIy9vhEc6aCu+3+2cc+xEfGNX8/M1NKIuL2Vo6c2Kc2fYFaRzWZkP8HWXu+IcwvnAzL44IEFA==", + "requires": { + "@vueuse/core": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, + "@vueuse/core": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "requires": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, + "@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" + }, + "@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "requires": { + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.13.11", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + } + } + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", diff --git a/front/package.json b/front/package.json index daba1d6..98804be 100644 --- a/front/package.json +++ b/front/package.json @@ -8,6 +8,8 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "@vueuse/components": "^9.13.0", + "@vueuse/core": "^9.13.0", "axios": "^1.3.4", "core-js": "^3.8.3", "vue": "^3.2.13", diff --git a/front/src/App.vue b/front/src/App.vue index 245511c..1922974 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -12,15 +12,15 @@ import { RouterView } from "vue-router"; diff --git a/front/src/assets/close.svg b/front/src/assets/close.svg new file mode 100644 index 0000000..2b7083e --- /dev/null +++ b/front/src/assets/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/front/src/services/API.js b/front/src/services/API.js new file mode 100644 index 0000000..7246847 --- /dev/null +++ b/front/src/services/API.js @@ -0,0 +1,7 @@ +import axios from 'axios' + +export default(url='localhost') => { + return axios.create({ + baseURL: url, + }); +} \ No newline at end of file diff --git a/front/src/services/imapAPI.js b/front/src/services/imapAPI.js new file mode 100644 index 0000000..4c67441 --- /dev/null +++ b/front/src/services/imapAPI.js @@ -0,0 +1,7 @@ +import API from './API' + +export default { + getQuote() { + return API().get('/'); + } +} \ No newline at end of file diff --git a/front/src/views/modals/AddMailboxModal.vue b/front/src/views/modals/AddMailboxModal.vue new file mode 100644 index 0000000..6c1bb9d --- /dev/null +++ b/front/src/views/modals/AddMailboxModal.vue @@ -0,0 +1,222 @@ + + + + + \ No newline at end of file diff --git a/front/src/views/modals/Modal.vue b/front/src/views/modals/Modal.vue new file mode 100644 index 0000000..1c8d31b --- /dev/null +++ b/front/src/views/modals/Modal.vue @@ -0,0 +1,80 @@ + + + + + + \ No newline at end of file diff --git a/front/src/views/sidebar/Sidebar.vue b/front/src/views/sidebar/Sidebar.vue index eb71918..e8f389b 100644 --- a/front/src/views/sidebar/Sidebar.vue +++ b/front/src/views/sidebar/Sidebar.vue @@ -1,18 +1,18 @@ - - \ No newline at end of file diff --git a/front/src/views/sidebar/folders/Folders.vue b/front/src/views/sidebar/folders/Folders.vue deleted file mode 100644 index 215f91b..0000000 --- a/front/src/views/sidebar/folders/Folders.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - \ No newline at end of file diff --git a/front/src/views/sidebar/folders/Account.vue b/front/src/views/sidebar/mailboxes/Account.vue similarity index 100% rename from front/src/views/sidebar/folders/Account.vue rename to front/src/views/sidebar/mailboxes/Account.vue diff --git a/front/src/views/sidebar/folders/All.vue b/front/src/views/sidebar/mailboxes/All.vue similarity index 100% rename from front/src/views/sidebar/folders/All.vue rename to front/src/views/sidebar/mailboxes/All.vue diff --git a/front/src/views/sidebar/mailboxes/Mailbox.vue b/front/src/views/sidebar/mailboxes/Mailbox.vue new file mode 100644 index 0000000..38e3a84 --- /dev/null +++ b/front/src/views/sidebar/mailboxes/Mailbox.vue @@ -0,0 +1,48 @@ + + + + + \ No newline at end of file diff --git a/front/src/views/sidebar/mailboxes/Mailboxes.vue b/front/src/views/sidebar/mailboxes/Mailboxes.vue new file mode 100644 index 0000000..28d2bc2 --- /dev/null +++ b/front/src/views/sidebar/mailboxes/Mailboxes.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/front/src/views/sidebar/users/Users.vue b/front/src/views/sidebar/users/Users.vue index c118262..6385a67 100644 --- a/front/src/views/sidebar/users/Users.vue +++ b/front/src/views/sidebar/users/Users.vue @@ -5,7 +5,7 @@