diff --git a/CHANGELOG.md b/CHANGELOG.md index e7e69342a..ca7a9a2ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,69 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -#### [v1.0.4](https://github.com/Ocelot-Social-Community/Ocelot-Social/compare/1.0.3...v1.0.4) +#### [1.0.5](https://github.com/Ocelot-Social-Community/Ocelot-Social/compare/1.0.4...1.0.5) +- feat: 🍰 Landing Page And Other Internal Pages [`#4599`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4599) +- Bump eslint-plugin-prettier from 3.1.4 to 3.4.0 in /webapp [`#4577`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4577) +- Bump vue-scrollto from 2.17.1 to 2.20.0 in /webapp [`#4592`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4592) +- Bump date-fns from 2.22.1 to 2.23.0 [`#4596`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4596) +- Bump metascraper-description from 5.11.6 to 5.23.1 in /backend [`#4593`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4593) +- Bump slug from 2.1.1 to 5.1.0 [`#4525`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4525) +- Bump metascraper-lang from 5.11.8 to 5.23.1 in /backend [`#4587`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4587) +- Bump eslint-plugin-promise from 4.2.1 to 4.3.1 in /backend [`#4591`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4591) +- fix: 🍰 Quick Fix For backend Tests [`#4565`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4565) +- Bump eslint-config-prettier from 6.10.1 to 6.15.0 in /backend [`#4583`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4583) +- Bump subscriptions-transport-ws from 0.9.16 to 0.9.19 in /backend [`#4584`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4584) +- Bump metascraper-youtube from 5.11.8 to 5.23.0 in /backend [`#4579`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4579) +- Bump metascraper-publisher from 5.11.8 to 5.23.0 in /backend [`#4578`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4578) +- [Security] Bump node-notifier from 6.0.0 to 8.0.2 in /webapp [`#4299`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4299) +- Bump @storybook/addon-a11y from 5.3.21 to 6.3.6 in /webapp [`#4570`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4570) +- Bump metascraper-soundcloud from 5.11.8 to 5.23.0 in /backend [`#4576`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4576) +- Bump cross-env from 7.0.2 to 7.0.3 in /backend [`#4522`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4522) +- [Security] Bump browserslist from 4.9.1 to 4.16.6 in /backend [`#4444`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4444) +- 🍰 feat: Landing Page etc. [`#4555`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4555) +- [Security] Bump browserslist from 4.14.7 to 4.16.6 [`#4440`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4440) +- Bump auto-changelog from 2.2.1 to 2.3.0 [`#4515`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4515) +- Bump @storybook/vue from 5.3.21 to 6.3.6 in /webapp [`#4571`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4571) +- Bump @storybook/addon-actions from 5.3.18 to 5.3.21 in /webapp [`#4141`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4141) +- [Security] Bump ssri from 6.0.1 to 6.0.2 in /webapp [`#4390`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4390) +- [Security] Bump y18n from 4.0.0 to 4.0.3 in /backend [`#4356`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4356) +- Bump v-tooltip from 2.0.3 to 2.1.3 in /webapp [`#4308`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4308) +- Bump eslint-plugin-jest from 24.1.10 to 24.4.0 in /webapp [`#4564`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4564) +- Bump apollo-cache-inmemory from 1.6.5 to 1.6.6 in /webapp [`#4140`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4140) +- [Security] Bump websocket-extensions from 0.1.3 to 0.1.4 in /webapp [`#3975`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/3975) +- Bump linkify-it from 2.2.0 to 3.0.2 in /webapp [`#4139`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4139) +- [Security] Bump yargs-parser from 18.1.1 to 18.1.3 in /backend [`#3962`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/3962) +- [Security] Bump y18n from 3.2.1 to 3.2.2 in /webapp [`#4317`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4317) +- Bump vue-sweetalert-icons from 4.2.0 to 4.3.0 in /webapp [`#4142`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4142) +- Bump mustache from 4.0.1 to 4.2.0 in /backend [`#4310`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4310) +- [Security] Bump elliptic from 6.5.3 to 6.5.4 in /webapp [`#4286`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4286) +- [Security] Bump elliptic from 6.5.3 to 6.5.4 [`#4285`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4285) +- Bump neode from 0.3.7 to 0.4.7 [`#4162`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4162) +- Bump date-fns from 2.11.1 to 2.22.1 in /backend [`#4523`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4523) +- Bump stack-utils from 2.0.1 to 2.0.3 in /webapp [`#4076`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4076) +- Bump date-fns from 2.12.0 to 2.22.1 [`#4455`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4455) +- Bump date-fns from 2.12.0 to 2.22.1 in /webapp [`#4537`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4537) +- Bump cross-env from 7.0.2 to 7.0.3 [`#4032`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4032) +- Bump graphql-request from 1.8.2 to 2.0.0 [`#3988`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/3988) +- Bump cookie-universal-nuxt from 2.1.4 to 2.1.5 in /webapp [`#4561`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4561) +- Bump graphql from 14.6.0 to 14.7.0 in /webapp [`#4000`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4000) +- Bump prettier from 2.2.0 to 2.3.2 in /backend [`#4530`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4530) +- Bump merge-graphql-schemas from 1.7.7 to 1.7.8 in /backend [`#3959`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/3959) +- fix: 🍰 Fix Menu Legend Menu Bar Button Without Click Event [`#4556`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4556) +- Bump eslint-plugin-promise from 4.2.1 to 4.3.1 in /webapp [`#4534`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4534) +- feat: 🍰 Post Editor Legend [`#4492`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4492) +- New Issue type EPIC [`#4536`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4536) +- Upgrade to GitHub-native Dependabot [`#4399`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4399) +- Remove superfluous package-lock.json [`c7e4e6d`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/c7e4e6d2b26d448b3d2787aff4a0bde32c24e919) +- Delete superfluous and always conflicting file package-lock.json [`9932796`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/9932796d233789c76b917de533ec2efc99f6aa4a) +- Refactor pageParams, second step [`e8a0a5d`](https://github.com/Ocelot-Social-Community/Ocelot-Social/commit/e8a0a5d13c0610066c50c98d5e0d661ee8139217) + +#### [1.0.4](https://github.com/Ocelot-Social-Community/Ocelot-Social/compare/1.0.3...1.0.4) + +> 8 June 2021 + +- chore: 🍰 Release v1.0.4 [`#4475`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4475) - fixed wrong env variable [`#4474`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4474) - chore: [WIP] 🍰 New Deployment With 'base' And 'code' Docker Images [`#4452`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4452) - feat: 🍰 Flexible Footer Links [`#4468`](https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/4468) diff --git a/README.md b/README.md index 416fcaefb..67f94f94c 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Docker is a software development container tool that combines software and its d #### General Installation of Docker -There are [sevaral ways to install Docker CE](https://docs.docker.com/install/) on your computer or server. +There are [several ways to install Docker CE](https://docs.docker.com/install/) on your computer or server. * [install Docker Desktop on macOS](https://docs.docker.com/docker-for-mac/install/) * [install Docker Desktop on Windows](https://docs.docker.com/docker-for-windows/install/) diff --git a/backend/package.json b/backend/package.json index 8f9394168..e9abefc46 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "ocelot-social-backend", - "version": "1.0.4", + "version": "1.0.5", "description": "GraphQL Backend for ocelot.social", "repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social", "author": "ocelot.social Community", @@ -107,7 +107,7 @@ "neode": "^0.3.7", "node-fetch": "~2.6.1", "nodemailer": "^6.4.4", - "nodemailer-html-to-text": "^3.1.0", + "nodemailer-html-to-text": "^3.2.0", "npm-run-all": "~4.1.5", "request": "~2.88.2", "sanitize-html": "~1.22.0", diff --git a/backend/src/config/emails.js b/backend/src/config/emails.js new file mode 100644 index 000000000..34daaecb0 --- /dev/null +++ b/backend/src/config/emails.js @@ -0,0 +1,8 @@ +// this file is duplicated in `backend/src/config/` and `webapp/constants/` and replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/ +export default { + SUPPORT_EMAIL: 'devops@ocelot.social', + MODERATION_EMAIL: 'devops@ocelot.social', + // ATTENTION: the following links have to be defined even for internal pages with full URLs as example like 'https://staging.ocelot.social/support', because they are used in e-mails! + ORGANIZATION_LINK: 'https://ocelot.social', + SUPPORT_LINK: 'https://ocelot.social', +} diff --git a/backend/src/config/index.js b/backend/src/config/index.js index f3a8fb63c..d6d8cc166 100644 --- a/backend/src/config/index.js +++ b/backend/src/config/index.js @@ -1,5 +1,5 @@ import dotenv from 'dotenv' -import links from './links.js' +import emails from './emails.js' import metadata from './metadata.js' // Load env file @@ -79,9 +79,9 @@ const s3 = { const options = { EMAIL_DEFAULT_SENDER: env.EMAIL_DEFAULT_SENDER, - SUPPORT_URL: links.SUPPORT, + SUPPORT_URL: emails.SUPPORT_LINK, APPLICATION_NAME: metadata.APPLICATION_NAME, - ORGANIZATION_URL: links.ORGANIZATION, + ORGANIZATION_URL: emails.ORGANIZATION_LINK, PUBLIC_REGISTRATION: env.PUBLIC_REGISTRATION === 'true' || false, INVITE_REGISTRATION: env.INVITE_REGISTRATION !== 'false', // default = true } diff --git a/backend/src/config/links.js b/backend/src/config/links.js deleted file mode 100644 index b111726f3..000000000 --- a/backend/src/config/links.js +++ /dev/null @@ -1,17 +0,0 @@ -// this file is duplicated in `backend/src/config/links.js` and `webapp/constants/links.js` and replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/ -export default { - LANDING_PAGE: '/login', // examples: '/login', '/registration', '/organization', or external 'https://ocelot.social' - - // you can find and store templates at https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/templates/ - - SUPPORT: 'https://ocelot.social', // example for internal support page: 'https://staging.ocelot.social/support'. set a full URL please, because it is used in e-mails as well! - - // on null or empty strings internal pages are used, see 'webapp/locales/html/' - ORGANIZATION: 'https://ocelot.social', - DONATE: 'https://ocelot-social.herokuapp.com/donations', // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly - IMPRINT: 'https://ocelot-social.herokuapp.com/imprint', // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly - TERMS_AND_CONDITIONS: null, - CODE_OF_CONDUCT: null, - DATA_PRIVACY: null, - FAQ: 'https://ocelot.social', -} diff --git a/backend/yarn.lock b/backend/yarn.lock index 270a77778..f2e4c7b16 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -3808,6 +3808,15 @@ dom-serializer@^0.2.1: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" @@ -3826,6 +3835,11 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -3854,6 +3868,13 @@ domhandler@^3.0.0: dependencies: domelementtype "^2.0.1" +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -3879,6 +3900,15 @@ domutils@^2.0.0: domelementtype "^2.0.1" domhandler "^3.0.0" +domutils@^2.5.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dont-sniff-mimetype@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2" @@ -5338,17 +5368,17 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== -html-to-text@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-5.1.1.tgz#2d89db7bf34bc7bcb7d546b1b228991a16926e87" - integrity sha512-Bci6bD/JIfZSvG4s0gW/9mMKwBRoe/1RWLxUME/d6WUSZCdY7T60bssf/jFf7EYXRyqU4P5xdClVqiYU0/ypdA== +html-to-text@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-7.1.1.tgz#69de8d85b91646b4bc14fdf4f850e9e046efff15" + integrity sha512-c9QWysrfnRZevVpS8MlE7PyOdSuIOjg8Bt8ZE10jMU/BEngA6j3llj4GRfAmtQzcd1FjKE0sWu5IHXRUH9YxIQ== dependencies: + deepmerge "^4.2.2" he "^1.2.0" - htmlparser2 "^3.10.1" - lodash "^4.17.11" - minimist "^1.2.0" + htmlparser2 "^6.1.0" + minimist "^1.2.5" -htmlparser2@^3.10.1, htmlparser2@^3.9.1: +htmlparser2@^3.9.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -5370,6 +5400,16 @@ htmlparser2@^4.1.0: domutils "^2.0.0" entities "^2.0.0" +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + http-cache-semantics@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" @@ -6855,7 +6895,7 @@ lodash@4.17.15: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.11, lodash@~4.17.14, lodash@~4.17.15, lodash@~4.17.20: +lodash@^4.15.0, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.11, lodash@~4.17.14, lodash@~4.17.15, lodash@~4.17.20: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -7630,12 +7670,12 @@ node-releases@^1.1.71: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== -nodemailer-html-to-text@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nodemailer-html-to-text/-/nodemailer-html-to-text-3.1.0.tgz#11e4e435eb03e4f3b439aaf294b1bd1377e7f789" - integrity sha512-AijyAZgcFb6b53g1oMwdCKyLYQVJzbgZKbs3Bma8zR5hPR1gkajQKGGZbwtuA5JhUqnyC8pjp+tiaS7CkQ8TRg== +nodemailer-html-to-text@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/nodemailer-html-to-text/-/nodemailer-html-to-text-3.2.0.tgz#91b959491fef8f7d91796047abb728aa86d4a12b" + integrity sha512-RJUC6640QV1PzTHHapOrc6IzrAJUZtk2BdVdINZ9VTLm+mcQNyBO9LYyhrnufkzqiD9l8hPLJ97rSyK4WanPNg== dependencies: - html-to-text "^5.1.1" + html-to-text "7.1.1" nodemailer@^6.4.4: version "6.4.5" diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 5fceb2776..15cf00e7a 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -60,6 +60,11 @@ services: networks: - external-net +# the following network from the main YAML gives the warning `WARNING: Some networks were defined but are not used by any service: internal-net` and should be removed +# but removing is not possible yet, it seems: https://github.com/docker/compose/issues/3729#issuecomment-623154878 +# networks: +# internal-net: + volumes: webapp_node_modules: backend_node_modules: diff --git a/package.json b/package.json index 77c0f39ff..c3a9d2eda 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ocelot-social", - "version": "1.0.4", + "version": "1.0.5", "description": "Fullstack and API tests with cypress and cucumber for ocelot.social", "author": "ocelot.social Community", "license": "MIT", @@ -27,7 +27,7 @@ "@babel/register": "^7.12.10", "auto-changelog": "^2.3.0", "bcryptjs": "^2.4.3", - "codecov": "^3.7.1", + "codecov": "^3.8.2", "cross-env": "^7.0.3", "cucumber": "^6.0.5", "cypress": "^7.0.1", diff --git a/webapp/Dockerfile.maintenance b/webapp/Dockerfile.maintenance index dcc06ad61..d9fa6fe43 100644 --- a/webapp/Dockerfile.maintenance +++ b/webapp/Dockerfile.maintenance @@ -57,8 +57,10 @@ COPY package.json yarn.lock ./ RUN yarn install --production=false --frozen-lockfile --non-interactive COPY assets assets +# COPY components/_new/generic/ components/_new/generic COPY components/LocaleSwitch/ components/LocaleSwitch COPY components/Dropdown.vue components/Dropdown.vue +# COPY components/Logo/ components/Logo COPY layouts/blank.vue layouts/blank.vue COPY locales locales COPY mixins mixins diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index d2cb419a4..a06679149 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -25,10 +25,10 @@
- - {{ $t('contribution.inappropriatePictureText') }} + + {{ $t('contribution.inappropriatePicture') }} - +
{ const Wrapper = () => mount(DonationInfo, { mocks, localVue }) - it('includes a link to the ocelot.social donations website', () => { - expect(Wrapper().find('a').attributes('href')).toBe( - 'https://ocelot-social.herokuapp.com/donations', - ) - }) - it('displays a call to action button', () => { expect(Wrapper().find('.base-button').text()).toBe('donations.donate-now') }) diff --git a/webapp/components/DonationInfo/DonationInfo.vue b/webapp/components/DonationInfo/DonationInfo.vue index b1916a6e9..c6db40bc8 100644 --- a/webapp/components/DonationInfo/DonationInfo.vue +++ b/webapp/components/DonationInfo/DonationInfo.vue @@ -1,9 +1,9 @@ @@ -36,6 +36,11 @@ export default { }) }, }, + methods: { + redirectToPage(pageParams) { + pageParams.redirectToPage(this) + }, + }, apollo: { Donations: { query() { diff --git a/webapp/components/LoginButton/LoginButton.spec.js b/webapp/components/LoginButton/LoginButton.spec.js new file mode 100644 index 000000000..62e663714 --- /dev/null +++ b/webapp/components/LoginButton/LoginButton.spec.js @@ -0,0 +1,41 @@ +import { config, mount } from '@vue/test-utils' +import LoginButton from './LoginButton.vue' + +config.stubs['v-popover'] = '' + +describe('LoginButton.vue', () => { + let wrapper + let mocks + let propsData + + beforeEach(() => { + mocks = { + $t: jest.fn(), + navigator: { + clipboard: { + writeText: jest.fn(), + }, + }, + } + propsData = {} + }) + + describe('mount', () => { + const Wrapper = () => { + return mount(LoginButton, { mocks, propsData }) + } + + beforeEach(() => { + wrapper = Wrapper() + }) + + it('renders', () => { + expect(wrapper.contains('.login-button')).toBe(true) + }) + + it('open popup', () => { + wrapper.find('.base-button').trigger('click') + expect(wrapper.contains('.login-button')).toBe(true) + }) + }) +}) diff --git a/webapp/components/LoginButton/LoginButton.vue b/webapp/components/LoginButton/LoginButton.vue new file mode 100644 index 000000000..39f0fa4ae --- /dev/null +++ b/webapp/components/LoginButton/LoginButton.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/webapp/components/LoginForm/LoginForm.vue b/webapp/components/LoginForm/LoginForm.vue index 57429baa3..0d85ca33a 100644 --- a/webapp/components/LoginForm/LoginForm.vue +++ b/webapp/components/LoginForm/LoginForm.vue @@ -6,9 +6,9 @@

{{ $t('login.login') }}

@@ -54,6 +54,7 @@ @@ -101,7 +43,8 @@ export default { padding: 10px 10px; box-shadow: 0px -6px 12px -4px rgba(0, 0, 0, 0.1); } -span { +.division-line { + margin-left: 0.2rem; margin-right: 0.2rem; } diff --git a/webapp/components/PasswordReset/ChangePassword.vue b/webapp/components/PasswordReset/ChangePassword.vue index 5d1e02acf..e65a7a04f 100644 --- a/webapp/components/PasswordReset/ChangePassword.vue +++ b/webapp/components/PasswordReset/ChangePassword.vue @@ -79,7 +79,7 @@ export default { data() { const passwordForm = PasswordForm({ translate: this.$t }) return { - supportEmail: emails.SUPPORT, + supportEmail: emails.SUPPORT_EMAIL, formData: { ...passwordForm.formData, }, diff --git a/webapp/components/Registration/RegistrationSlideCreate.vue b/webapp/components/Registration/RegistrationSlideCreate.vue index cab0e1cce..35bba6614 100644 --- a/webapp/components/Registration/RegistrationSlideCreate.vue +++ b/webapp/components/Registration/RegistrationSlideCreate.vue @@ -142,7 +142,7 @@ export default { const passwordForm = PasswordForm({ translate: this.$t }) return { links, - supportEmail: emails.SUPPORT, + supportEmail: emails.SUPPORT_EMAIL, formData: { name: '', ...passwordForm.formData, diff --git a/webapp/components/Registration/RegistrationSlider.vue b/webapp/components/Registration/RegistrationSlider.vue index 2e297bc86..6bd704b32 100644 --- a/webapp/components/Registration/RegistrationSlider.vue +++ b/webapp/components/Registration/RegistrationSlider.vue @@ -1,10 +1,10 @@ + + diff --git a/webapp/locales/de.json b/webapp/locales/de.json index de8e98888..aa63d455a 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -781,6 +781,7 @@ "contact": "Kontakt", "data-privacy": "Datenschutzerklärung", "director": "Geschäftsführer", + "donate": "Spenden", "error-occurred": "Ein Fehler ist aufgetreten.", "faq": "FAQ", "germany": "Deutschland", diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 0ad660272..06086f04d 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -781,6 +781,7 @@ "contact": "Contact", "data-privacy": "Data privacy", "director": "Managing Director", + "donate": "Donate", "error-occurred": "An error occurred.", "faq": "FAQ", "germany": "Germany", diff --git a/webapp/locales/html/de/code-of-conduct.html b/webapp/locales/html/de/code-of-conduct.html index 96ac29482..bd0d41ba8 100644 --- a/webapp/locales/html/de/code-of-conduct.html +++ b/webapp/locales/html/de/code-of-conduct.html @@ -1,5 +1,4 @@ -

Ich bin der Inhalt vom Verhaltenskodex.

diff --git a/webapp/locales/html/de/data-privacy.html b/webapp/locales/html/de/data-privacy.html index cdfe50ac9..a6fc04470 100644 --- a/webapp/locales/html/de/data-privacy.html +++ b/webapp/locales/html/de/data-privacy.html @@ -1,5 +1,4 @@ -

Das hier wäre der Inhalt der Datenschutzbestimmungen.

diff --git a/webapp/locales/html/de/donate.html b/webapp/locales/html/de/donate.html new file mode 100644 index 000000000..70cf6e0bb --- /dev/null +++ b/webapp/locales/html/de/donate.html @@ -0,0 +1,4 @@ + + + +

Hier steht was zu den Spenden.

diff --git a/webapp/locales/html/de/faq.html b/webapp/locales/html/de/faq.html index db20366ef..da3b2447a 100644 --- a/webapp/locales/html/de/faq.html +++ b/webapp/locales/html/de/faq.html @@ -1,5 +1,4 @@ -

Hier stehen die FAQs.

diff --git a/webapp/locales/html/de/imprint.html b/webapp/locales/html/de/imprint.html index fc610d802..82450b370 100644 --- a/webapp/locales/html/de/imprint.html +++ b/webapp/locales/html/de/imprint.html @@ -1,5 +1,4 @@ -

Ich bin das Impressum.

diff --git a/webapp/locales/html/de/index.js b/webapp/locales/html/de/index.js index 4daae480e..341ab9bdd 100644 --- a/webapp/locales/html/de/index.js +++ b/webapp/locales/html/de/index.js @@ -5,6 +5,7 @@ import codeOfConduct from './code-of-conduct.html' import dataPrivacy from './data-privacy.html' import faq from './faq.html' import imprint from './imprint.html' +import donate from './donate.html' export default { organization, @@ -14,4 +15,5 @@ export default { dataPrivacy, faq, imprint, + donate, } diff --git a/webapp/locales/html/de/organization.html b/webapp/locales/html/de/organization.html index e3c2811f4..6abd63a6e 100644 --- a/webapp/locales/html/de/organization.html +++ b/webapp/locales/html/de/organization.html @@ -1,5 +1,4 @@ -

Hier wird das Netzwerk beschrieben.

diff --git a/webapp/locales/html/de/support.html b/webapp/locales/html/de/support.html index 65899c77b..081b6dbfa 100644 --- a/webapp/locales/html/de/support.html +++ b/webapp/locales/html/de/support.html @@ -1,5 +1,4 @@ -

Ich bin der Inhalt vom Support.

diff --git a/webapp/locales/html/de/terms-and-conditions.html b/webapp/locales/html/de/terms-and-conditions.html index 3a3c76775..af6c023a3 100644 --- a/webapp/locales/html/de/terms-and-conditions.html +++ b/webapp/locales/html/de/terms-and-conditions.html @@ -1,5 +1,4 @@ -

Ich bin der Inhalt der Seite "Nutzungsbedingungen".

diff --git a/webapp/locales/html/en/code-of-conduct.html b/webapp/locales/html/en/code-of-conduct.html index f971a2c31..d3a9d7078 100644 --- a/webapp/locales/html/en/code-of-conduct.html +++ b/webapp/locales/html/en/code-of-conduct.html @@ -1,5 +1,4 @@ -

I am the content of the code of conduct.

diff --git a/webapp/locales/html/en/data-privacy.html b/webapp/locales/html/en/data-privacy.html index 1383a0870..5c38928c8 100644 --- a/webapp/locales/html/en/data-privacy.html +++ b/webapp/locales/html/en/data-privacy.html @@ -1,5 +1,4 @@ -

This would be our data privacy section.

diff --git a/webapp/locales/html/en/donate.html b/webapp/locales/html/en/donate.html new file mode 100644 index 000000000..82abaff6a --- /dev/null +++ b/webapp/locales/html/en/donate.html @@ -0,0 +1,4 @@ + + + +

Here's what it says about donations.

diff --git a/webapp/locales/html/en/faq.html b/webapp/locales/html/en/faq.html index 0ed093fa9..e87174838 100644 --- a/webapp/locales/html/en/faq.html +++ b/webapp/locales/html/en/faq.html @@ -1,5 +1,4 @@ -

Here are the FAQs.

diff --git a/webapp/locales/html/en/imprint.html b/webapp/locales/html/en/imprint.html index 3f85b6e86..5f1cdae19 100644 --- a/webapp/locales/html/en/imprint.html +++ b/webapp/locales/html/en/imprint.html @@ -1,5 +1,4 @@ -

I am the imprint.

diff --git a/webapp/locales/html/en/index.js b/webapp/locales/html/en/index.js index 4daae480e..341ab9bdd 100644 --- a/webapp/locales/html/en/index.js +++ b/webapp/locales/html/en/index.js @@ -5,6 +5,7 @@ import codeOfConduct from './code-of-conduct.html' import dataPrivacy from './data-privacy.html' import faq from './faq.html' import imprint from './imprint.html' +import donate from './donate.html' export default { organization, @@ -14,4 +15,5 @@ export default { dataPrivacy, faq, imprint, + donate, } diff --git a/webapp/locales/html/en/organization.html b/webapp/locales/html/en/organization.html index 377fb0ba6..2be0dc833 100644 --- a/webapp/locales/html/en/organization.html +++ b/webapp/locales/html/en/organization.html @@ -1,5 +1,4 @@ -

Here the network is described.

diff --git a/webapp/locales/html/en/support.html b/webapp/locales/html/en/support.html index c663964b3..44b519e1d 100644 --- a/webapp/locales/html/en/support.html +++ b/webapp/locales/html/en/support.html @@ -1,5 +1,4 @@ -

I am the content of the support.

diff --git a/webapp/locales/html/en/terms-and-conditions.html b/webapp/locales/html/en/terms-and-conditions.html index a34211eda..746851607 100644 --- a/webapp/locales/html/en/terms-and-conditions.html +++ b/webapp/locales/html/en/terms-and-conditions.html @@ -1,5 +1,4 @@ -

I am the content of the page "Terms And Conditions".

diff --git a/webapp/maintenance/source/package.json b/webapp/maintenance/source/package.json index 2fcf86443..711d5c618 100644 --- a/webapp/maintenance/source/package.json +++ b/webapp/maintenance/source/package.json @@ -1,6 +1,6 @@ { "name": "@ocelot-social/maintenance", - "version": "1.0.3", + "version": "1.0.5", "description": "Maintenance page for ocelot.social", "repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social", "author": "ocelot.social Community", diff --git a/webapp/maintenance/source/pages/index.vue b/webapp/maintenance/source/pages/index.vue index 2e2cdfe3b..c38041ca7 100644 --- a/webapp/maintenance/source/pages/index.vue +++ b/webapp/maintenance/source/pages/index.vue @@ -8,9 +8,19 @@ - - Under maintenance - + + + + + + Under maintenance + @@ -35,17 +45,20 @@ diff --git a/webapp/mixins/internalPageMixins.js b/webapp/mixins/internalPageMixins.js new file mode 100644 index 000000000..2c2a517c4 --- /dev/null +++ b/webapp/mixins/internalPageMixins.js @@ -0,0 +1,26 @@ +import InternalPage from '~/components/_new/features/InternalPage/InternalPage.vue' + +export function internalPageMixins(pageParams) { + return { + layout: 'basic', + components: { + InternalPage, + }, + data() { + return { pageParams } + }, + head() { + return { + title: this.$t(this.pageParams.internalPage.headTitleIdent), + } + }, + created() { + if (!this.pageParams.isInternalPage) { + // to avoid possible errors, because 'window' is only defined on browser side but not in NodeJS on client side. check for 'typeof window' is neccessary, because if it's not defined at all you can't check for 'window !== undefined' without the same error 'window is undefined' + if (typeof window !== 'undefined') { + window.location.href = this.pageParams.externalLink + } + } + }, + } +} diff --git a/webapp/nuxt.config.js b/webapp/nuxt.config.js index 08eb66989..b4fc3aa7c 100644 --- a/webapp/nuxt.config.js +++ b/webapp/nuxt.config.js @@ -45,6 +45,7 @@ export default { 'imprint', 'data-privacy', 'faq', + 'donate', ], // pages to keep alive keepAlivePages: ['index'], diff --git a/webapp/package.json b/webapp/package.json index 374c7ab2e..f314662b3 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -1,6 +1,6 @@ { "name": "ocelot-social-webapp", - "version": "1.0.4", + "version": "1.0.5", "description": "ocelot.social Frontend", "repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social", "author": "ocelot.social Community", @@ -132,7 +132,7 @@ "eslint-plugin-import": "~2.20.2", "eslint-plugin-jest": "~24.4.0", "eslint-plugin-node": "~11.1.0", - "eslint-plugin-prettier": "~3.1.4", + "eslint-plugin-prettier": "~3.4.0", "eslint-plugin-promise": "~4.3.1", "eslint-plugin-standard": "~5.0.0", "eslint-plugin-vue": "~6.2.2", diff --git a/webapp/pages/code-of-conduct.spec.js b/webapp/pages/code-of-conduct.spec.js index 75e244c79..c050f65ba 100644 --- a/webapp/pages/code-of-conduct.spec.js +++ b/webapp/pages/code-of-conduct.spec.js @@ -5,6 +5,11 @@ import VueMeta from 'vue-meta' const localVue = global.localVue localVue.use(VueMeta, { keyName: 'head' }) +// avoid: 'Error: Not implemented: navigation (except hash changes)', see https://stackoverflow.com/questions/54090231/how-to-fix-error-not-implemented-navigation-except-hash-changes +const assignMock = jest.fn() +delete window.location +window.location = { assign: assignMock } + describe('code-of-conduct.vue', () => { let wrapper let mocks @@ -28,7 +33,7 @@ describe('code-of-conduct.vue', () => { }) it('renders', () => { - expect(wrapper.is('div')).toBe(true) + expect(wrapper.is('div')).toBeTruthy() }) it('has correct content', () => { diff --git a/webapp/pages/code-of-conduct.vue b/webapp/pages/code-of-conduct.vue index c3cf3bf54..3a3275c39 100644 --- a/webapp/pages/code-of-conduct.vue +++ b/webapp/pages/code-of-conduct.vue @@ -1,21 +1,12 @@ diff --git a/webapp/pages/data-privacy.spec.js b/webapp/pages/data-privacy.spec.js index a919bb742..c5e4e4d62 100644 --- a/webapp/pages/data-privacy.spec.js +++ b/webapp/pages/data-privacy.spec.js @@ -5,6 +5,11 @@ import VueMeta from 'vue-meta' const localVue = global.localVue localVue.use(VueMeta, { keyName: 'head' }) +// avoid: 'Error: Not implemented: navigation (except hash changes)', see https://stackoverflow.com/questions/54090231/how-to-fix-error-not-implemented-navigation-except-hash-changes +const assignMock = jest.fn() +delete window.location +window.location = { assign: assignMock } + describe('data-privacy.vue', () => { let wrapper let mocks @@ -28,7 +33,7 @@ describe('data-privacy.vue', () => { }) it('renders', () => { - expect(wrapper.is('div')).toBe(true) + expect(wrapper.is('div')).toBeTruthy() }) it('has correct content', () => { diff --git a/webapp/pages/data-privacy.vue b/webapp/pages/data-privacy.vue index 236fa5eeb..31f86c9b8 100644 --- a/webapp/pages/data-privacy.vue +++ b/webapp/pages/data-privacy.vue @@ -1,21 +1,12 @@ diff --git a/webapp/pages/donate.spec.js b/webapp/pages/donate.spec.js new file mode 100644 index 000000000..62a5d0f7d --- /dev/null +++ b/webapp/pages/donate.spec.js @@ -0,0 +1,43 @@ +import { mount } from '@vue/test-utils' +import Donate from './donate.vue' +import VueMeta from 'vue-meta' + +const localVue = global.localVue +localVue.use(VueMeta, { keyName: 'head' }) + +// avoid: 'Error: Not implemented: navigation (except hash changes)', see https://stackoverflow.com/questions/54090231/how-to-fix-error-not-implemented-navigation-except-hash-changes +const assignMock = jest.fn() +delete window.location +window.location = { assign: assignMock } + +describe('donate.vue', () => { + let wrapper + let mocks + + beforeEach(() => { + mocks = { + $t: (t) => t, + } + }) + + describe('mount', () => { + const Wrapper = () => { + return mount(Donate, { + mocks, + localVue, + }) + } + + beforeEach(() => { + wrapper = Wrapper() + }) + + it('renders', () => { + expect(wrapper.is('div')).toBeTruthy() + }) + + it('has correct content', () => { + expect(wrapper.vm.$metaInfo.title).toBe('site.donate') + }) + }) +}) diff --git a/webapp/pages/donate.vue b/webapp/pages/donate.vue new file mode 100644 index 000000000..aac73695f --- /dev/null +++ b/webapp/pages/donate.vue @@ -0,0 +1,12 @@ + + + diff --git a/webapp/pages/faq.spec.js b/webapp/pages/faq.spec.js index bb68a3638..3e92d3f7f 100644 --- a/webapp/pages/faq.spec.js +++ b/webapp/pages/faq.spec.js @@ -5,6 +5,11 @@ import VueMeta from 'vue-meta' const localVue = global.localVue localVue.use(VueMeta, { keyName: 'head' }) +// avoid: 'Error: Not implemented: navigation (except hash changes)', see https://stackoverflow.com/questions/54090231/how-to-fix-error-not-implemented-navigation-except-hash-changes +const assignMock = jest.fn() +delete window.location +window.location = { assign: assignMock } + describe('faq.vue', () => { let wrapper let mocks @@ -28,7 +33,7 @@ describe('faq.vue', () => { }) it('renders', () => { - expect(wrapper.is('div')).toBe(true) + expect(wrapper.is('div')).toBeTruthy() }) it('has correct content', () => { diff --git a/webapp/pages/faq.vue b/webapp/pages/faq.vue index 843c78461..ec0ee8eda 100644 --- a/webapp/pages/faq.vue +++ b/webapp/pages/faq.vue @@ -1,21 +1,12 @@ diff --git a/webapp/pages/imprint.spec.js b/webapp/pages/imprint.spec.js index 1a84b5794..120d99932 100644 --- a/webapp/pages/imprint.spec.js +++ b/webapp/pages/imprint.spec.js @@ -5,6 +5,11 @@ import VueMeta from 'vue-meta' const localVue = global.localVue localVue.use(VueMeta, { keyName: 'head' }) +// avoid: 'Error: Not implemented: navigation (except hash changes)', see https://stackoverflow.com/questions/54090231/how-to-fix-error-not-implemented-navigation-except-hash-changes +const assignMock = jest.fn() +delete window.location +window.location = { assign: assignMock } + describe('imprint.vue', () => { let wrapper let mocks @@ -28,7 +33,7 @@ describe('imprint.vue', () => { }) it('renders', () => { - expect(wrapper.is('div')).toBe(true) + expect(wrapper.is('div')).toBeTruthy() }) it('has correct content', () => { diff --git a/webapp/pages/imprint.vue b/webapp/pages/imprint.vue index 538e023a9..3c5fea10e 100644 --- a/webapp/pages/imprint.vue +++ b/webapp/pages/imprint.vue @@ -1,21 +1,12 @@ diff --git a/webapp/pages/index.vue b/webapp/pages/index.vue index d23582ad7..306ff49f1 100644 --- a/webapp/pages/index.vue +++ b/webapp/pages/index.vue @@ -5,11 +5,11 @@ - +

- - {{ $t('donations.donate-now') }} - + + {{ $t('donations.donate-now') }} +
{ let wrapper let mocks @@ -28,7 +33,7 @@ describe('organization.vue', () => { }) it('renders', () => { - expect(wrapper.is('div')).toBe(true) + expect(wrapper.is('div')).toBeTruthy() }) it('has correct content', () => { diff --git a/webapp/pages/organization.vue b/webapp/pages/organization.vue index 32add9fbb..7f6f3abd6 100644 --- a/webapp/pages/organization.vue +++ b/webapp/pages/organization.vue @@ -1,21 +1,12 @@ diff --git a/webapp/pages/password-reset.vue b/webapp/pages/password-reset.vue index caa7c3455..6d67c4cae 100644 --- a/webapp/pages/password-reset.vue +++ b/webapp/pages/password-reset.vue @@ -2,9 +2,9 @@