Merge pull request 'sync - 0.4.5' (#34) from dev into main
continuous-integration/drone/push Build is passing Details

Reviewed-on: #34
This commit is contained in:
Philipp Dormann 2021-04-01 16:46:05 +00:00
commit 7ae0081d69
15 changed files with 128 additions and 50 deletions

View File

@ -2,10 +2,67 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [0.4.5](https://git.odit.services/lfk/selfservice/compare/0.4.4...0.4.5)
- Merge pull request 'feature/32-registration-language' (#33) from feature/32-registration-language into dev [`#32`](https://git.odit.services/lfk/selfservice/issues/32)
- 🐞 fix /profile/ router on register [`52a0828`](https://git.odit.services/lfk/selfservice/commit/52a082841d47d1ed9c0997776a0784285a3f6ba7)
- pass browser locale to api/runners/register/ [`e3f7497`](https://git.odit.services/lfk/selfservice/commit/e3f7497af5860b2472b6cdfd33090b9d68b9fb49)
#### [0.4.4](https://git.odit.services/lfk/selfservice/compare/0.4.3...0.4.4)
> 31 March 2021
- 🚀Bumped version to v0.4.4 [`9b62962`](https://git.odit.services/lfk/selfservice/commit/9b62962758f8a73d669bca69b77f2c09a13c9e7a)
- 🚑 hotfix - baseurl_selfservice -> baseurl [`84dc33b`](https://git.odit.services/lfk/selfservice/commit/84dc33bf14ace839261aea02ffbcac5d627f8200)
#### [0.4.3](https://git.odit.services/lfk/selfservice/compare/0.4.2...0.4.3)
> 31 March 2021
- 🚀Bumped version to v0.4.3 [`cad34d3`](https://git.odit.services/lfk/selfservice/commit/cad34d357b9bd8501eed26b35b5324d2b4f756c3)
- 🚑 hotfix - Profile api path [`2056ce1`](https://git.odit.services/lfk/selfservice/commit/2056ce1e62a33e14bce5bdef5ea8cd38e039dc62)
#### [0.4.2](https://git.odit.services/lfk/selfservice/compare/0.4.1...0.4.2)
> 31 March 2021
- 🚀Bumped version to v0.4.2 [`3b2c99c`](https://git.odit.services/lfk/selfservice/commit/3b2c99c7090de03aab12415342136460ddd735ee)
- 🚑 fix organization registration token [`f150821`](https://git.odit.services/lfk/selfservice/commit/f150821f0f60e4798b02ebf50588da61ccb51279)
#### [0.4.1](https://git.odit.services/lfk/selfservice/compare/0.4.0...0.4.1)
> 31 March 2021
- Fixed registration routing [`2141f62`](https://git.odit.services/lfk/selfservice/commit/2141f62dca7ecb2be2579a7e79ffca513563c22a)
- 🚀Bumped version to v0.4.1 [`5191ece`](https://git.odit.services/lfk/selfservice/commit/5191ecea1eb3ac66a3f0c2743d43ff5b505061b7)
#### [0.4.0](https://git.odit.services/lfk/selfservice/compare/0.3.1...0.4.0)
> 31 March 2021
- Merge pull request 'bugfix/27-route-matching' (#28) from bugfix/27-route-matching into dev [`#27`](https://git.odit.services/lfk/selfservice/issues/27)
- added missing routes [`f603e53`](https://git.odit.services/lfk/selfservice/commit/f603e531512a2245ea2fe41304eb039080bcba28)
- added env config instructions [`ba604f7`](https://git.odit.services/lfk/selfservice/commit/ba604f77e9ce770e60f032cf393a5987a0401fbe)
- 🚀Bumped version to v0.4.0 [`149fbdf`](https://git.odit.services/lfk/selfservice/commit/149fbdf58180d1af33f9741d9076df0bb1591130)
- Home - route fixes [`c178932`](https://git.odit.services/lfk/selfservice/commit/c178932d943e08168fa6be39eb0a1d7e4a25824a)
- route fix for favicon + background [`106bf4c`](https://git.odit.services/lfk/selfservice/commit/106bf4c0ff07fe847f98aa250230f2a272f55a04)
- favicon fix [`63d9ee2`](https://git.odit.services/lfk/selfservice/commit/63d9ee2f867e42ecd23ca1d48d59b6deb7458d76)
- load main.js as deferred [`2e7a718`](https://git.odit.services/lfk/selfservice/commit/2e7a718daa7ca607622e3e339bdb85f5c64cfcf0)
#### [0.3.1](https://git.odit.services/lfk/selfservice/compare/0.3.0...0.3.1)
> 31 March 2021
- 🐞 fixed Vite/ Tailwind build [`27b81d8`](https://git.odit.services/lfk/selfservice/commit/27b81d87aeb907f6c3d35ea6f55b4fe56c1e79b4)
- 🚀Bumped version to v0.3.1 [`6e0bf56`](https://git.odit.services/lfk/selfservice/commit/6e0bf56289852cda0c30325f4b8ca7826386abf4)
#### [0.3.0](https://git.odit.services/lfk/selfservice/compare/0.2.0...0.3.0) #### [0.3.0](https://git.odit.services/lfk/selfservice/compare/0.2.0...0.3.0)
> 30 March 2021
- Merge branch 'bugfix/23-broken-build' into dev [`#23`](https://git.odit.services/lfk/selfservice/issues/23) - Merge branch 'bugfix/23-broken-build' into dev [`#23`](https://git.odit.services/lfk/selfservice/issues/23)
- migrate to Tailwind JIT + views + router/ build fix [`15b60f6`](https://git.odit.services/lfk/selfservice/commit/15b60f60b5d4f3c4035460f25807c5f5f2f19578) - migrate to Tailwind JIT + views + router/ build fix [`15b60f6`](https://git.odit.services/lfk/selfservice/commit/15b60f60b5d4f3c4035460f25807c5f5f2f19578)
- 🚀Bumped version to v0.3.0 [`cb5f48d`](https://git.odit.services/lfk/selfservice/commit/cb5f48d913b8aff2b138c93c4e29a2b8a553529d)
- 🐞 fix release config [`ae44d7e`](https://git.odit.services/lfk/selfservice/commit/ae44d7e2e86b9bee74d453301846d02b29c632f2) - 🐞 fix release config [`ae44d7e`](https://git.odit.services/lfk/selfservice/commit/ae44d7e2e86b9bee74d453301846d02b29c632f2)
- 🚀Bumped version to v0.1.2 [`5253fb1`](https://git.odit.services/lfk/selfservice/commit/5253fb18325ce9069e84180b30110ae97752ef20) - 🚀Bumped version to v0.1.2 [`5253fb1`](https://git.odit.services/lfk/selfservice/commit/5253fb18325ce9069e84180b30110ae97752ef20)

View File

@ -4,7 +4,7 @@ runner selfservice portal
## ⚡ Development ## ⚡ Development
### Requirements ### Requirements
- Node.js v14.15.0 or newer - Node.js v14.16.0 or newer
- yarn package manager >= v1.22.10 < 2 - yarn package manager >= v1.22.10 < 2
### Recommended Extensions ### Recommended Extensions
@ -14,9 +14,17 @@ runner selfservice portal
### Fastest Dev Environment ### Fastest Dev Environment
- You can install the [Remote - Containers](https://github.com/Microsoft/vscode-remote-release) extension and use all recommended extensions and editor settings via the provided `./devcontainer/` config - You can install the [Remote - Containers](https://github.com/Microsoft/vscode-remote-release) extension and use all recommended extensions and editor settings via the provided `./devcontainer/` config
## 🔨 environment config ### Manual Dev Environment
```
yarn && yarn dev --open
```
## 🔨 Environment config
- copy the `/public/env.sample.js` file to `/public/env.js` - copy the `/public/env.sample.js` file to `/public/env.js`
- set the required environment variables - set the required environment variables
- `documentserver_key`: url to the [document server](https://git.odit.services/lfk/document-server) instance - `documentserver_key`: url to the [document server](https://git.odit.services/lfk/document-server) instance
- `baseurl`: url to the main instance - `baseurl`: url to the main lfk instance - WITH TRAILING SLASH
- see [@lfk/deployment](https://git.odit.services/lfk/deployment) for a complete deployment guide - see [@lfk/deployment](https://git.odit.services/lfk/deployment) for a complete deployment guide
- `baseurl_selfservice`: location of the selfservice instance - WITH TRAILING SLASH
- e.g. path: `/selfservice/`
- e.g. url: `https://example.com/selfservice/`

View File

@ -11,7 +11,7 @@
<body class="dark:bg-gray-900 text-black dark:text-white p-0"> <body class="dark:bg-gray-900 text-black dark:text-white p-0">
<div id="app"></div> <div id="app"></div>
<script src="/env.js"></script> <script src="/env.js"></script>
<script type="module" src="/src/main.js"></script> <script defer type="module" src="/src/main.js"></script>
</body> </body>
</html> </html>

View File

@ -7,9 +7,16 @@ http {
error_page 404 /index.html; error_page 404 /index.html;
root /usr/share/nginx/html; root /usr/share/nginx/html;
location / { location / {
rewrite /register/(.*) /$1 break;
rewrite /profile/(.*) /$1 break;
try_files $uri $uri/ /index.html; try_files $uri $uri/ /index.html;
} }
location ~* \.(?:ico|css|gif|jpe?g|png)$ { location ~* \.(?:ico|css|gif|jpe?g|png)$ {
rewrite /register/(.*) /$1 break;
rewrite /profile/(.*) /$1 break;
expires 1y; expires 1y;
add_header Pragma public; add_header Pragma public;
add_header Cache-Control "public"; add_header Cache-Control "public";

View File

@ -1,6 +1,6 @@
{ {
"name": "@odit/lfk-selfservice", "name": "@odit/lfk-selfservice",
"version": "0.3.0", "version": "0.4.5",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build", "build": "vite build",
@ -17,17 +17,17 @@
"vue-router": "4.0.5" "vue-router": "4.0.5"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/jit": "0.1.17", "@tailwindcss/jit": "0.1.18",
"@tailwindcss/aspect-ratio": "0.2.0", "@tailwindcss/aspect-ratio": "0.2.0",
"@tailwindcss/forms": "0.3.2", "@tailwindcss/forms": "0.3.2",
"@tailwindcss/line-clamp": "0.2.0", "@tailwindcss/line-clamp": "0.2.0",
"@tailwindcss/typography": "0.4.0", "@tailwindcss/typography": "0.4.0",
"@vitejs/plugin-vue": "1.2.0", "@vitejs/plugin-vue": "1.2.1",
"@vue/compiler-sfc": "3.0.9", "@vue/compiler-sfc": "3.0.10",
"autoprefixer": "10.2.5", "autoprefixer": "10.2.5",
"tailwindcss": "2.0.4", "tailwindcss": "2.0.4",
"release-it": "14.5.0", "release-it": "14.5.0",
"vite": "2.1.3" "vite": "2.1.5"
}, },
"release-it": { "release-it": {
"git": { "git": {

View File

@ -1,6 +1,6 @@
module.exports = { module.exports = {
plugins: { plugins: {
tailwindcss: {}, '@tailwindcss/jit': {},
autoprefixer: {}, autoprefixer: {},
}, },
} }

View File

@ -1,10 +1,10 @@
const config = { const config = {
// required // required
documentserver_key: '', documentserver_key: '',
// required // required, with trailing slash
baseurl: '', baseurl: '',
// optional, will fallback to /selfservice // optional, will fallback to /selfservice/
baseurl_selfservice: '/selfservice', baseurl_selfservice: '/selfservice/',
// optional, will fallback to /imprint // optional, will fallback to /imprint
url_imprint: '', url_imprint: '',
// optional, will fallback to /privacy // optional, will fallback to /privacy

View File

@ -2,8 +2,4 @@
<main> <main>
<router-view></router-view> <router-view></router-view>
</main> </main>
</template> </template>
<script setup>
config.baseurl_selfservice = (config.baseurl_selfservice || "/selfservice");
</script>

View File

@ -1,16 +1,24 @@
import EnvError from './components/EnvError.vue'; // import EnvError from './components/EnvError.vue';
import Home from './views/Home.vue'; import Home from './views/Home.vue';
import Imprint from './views/Imprint.vue'; import Imprint from './views/Imprint.vue';
import Privacy from './views/Privacy.vue'; import Privacy from './views/Privacy.vue';
import Register from './views/Register.vue'; import Register from './views/Register.vue';
import Profile from './views/Profile.vue'; import Profile from './views/Profile.vue';
import ProfileNone from './views/ProfileNone.vue';
console.log(config);
/** @type {import('vue-router').RouterOptions['routes']} */ /** @type {import('vue-router').RouterOptions['routes']} */
export const routes = [ export const routes = [
{ path: '/', component: Home }, { path: config.baseurl_selfservice + '', component: Home },
{ path: '/imprint', component: Imprint }, { path: config.baseurl_selfservice + 'imprint', component: Imprint },
{ path: '/privacy', component: Privacy }, { path: config.baseurl_selfservice + 'imprint/', component: Imprint },
{ path: '/register', component: Register }, { path: config.baseurl_selfservice + 'privacy', component: Privacy },
{ path: '/register/:token', component: Register, props: true }, { path: config.baseurl_selfservice + 'privacy/', component: Privacy },
{ path: '/profile/:token', component: Profile, props: true } { path: config.baseurl_selfservice + 'register', component: Register },
{ path: config.baseurl_selfservice + 'register/', component: Register },
{ path: config.baseurl_selfservice + 'register/:token', component: Register, props: true },
{ path: config.baseurl_selfservice + 'profile', component: Profile },
{ path: config.baseurl_selfservice + 'profile/', component: ProfileNone },
{ path: config.baseurl_selfservice + 'profile/:token', component: Profile, props: true }
]; ];

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="bg-cover bg-fixed m-0 h-screen" style="background-image: url('/background.jpg');"> <div class="bg-cover bg-fixed m-0 h-screen" style="background-image: url('./background.jpg');">
<section class="container px-4 py-24 mx-auto"> <section class="container px-4 py-24 mx-auto">
<div class="w-full mx-auto text-center"> <div class="w-full mx-auto text-center">
<img src="/favicon.png" class="h-32 mx-auto" /> <img src="/favicon.png" class="h-32 mx-auto" />
@ -9,14 +9,14 @@
<p class="px-0 mb-6 text-lg text-gray-100 md:text-xl lg:px-24">Selfservice Portal</p> <p class="px-0 mb-6 text-lg text-gray-100 md:text-xl lg:px-24">Selfservice Portal</p>
<p class="px-0 mb-6 text-md text-gray-100 lg:px-24">{{ $t('main_page_text') }}</p> <p class="px-0 mb-6 text-md text-gray-100 lg:px-24">{{ $t('main_page_text') }}</p>
<div class="mt-6 sm:flex place-content-center"> <div class="mt-6 sm:flex place-content-center">
<router-link <a
class="w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-gray-900 bg-white shadow-sm hover:text-gray-600 focus:outline-none focus:text-gray-600 transition ease-in-out duration-150 xl:text-lg xl:py-4" class="w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-gray-900 bg-white shadow-sm hover:text-gray-600 focus:outline-none focus:text-gray-600 transition ease-in-out duration-150 xl:text-lg xl:py-4"
to="/register" href="./register"
>{{ $t('register_now') }}</router-link> >{{ $t('register_now') }}</a>
<router-link <a
to="/profile" href="./profile"
class="mt-4 sm:ml-4 sm:mt-0 w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-white bg-gray-800 shadow-sm hover:bg-gray-700 focus:outline-none focus:bg-gray-700 transition ease-in-out duration-150 xl:text-lg xl:py-4" class="mt-4 sm:ml-4 sm:mt-0 w-full sm:w-auto inline-flex px-6 py-3 border border-transparent text-base font-semibold rounded-md text-white bg-gray-800 shadow-sm hover:bg-gray-700 focus:outline-none focus:bg-gray-700 transition ease-in-out duration-150 xl:text-lg xl:py-4"
>{{ $t('view_my_data') }}</router-link> >{{ $t('view_my_data') }}</a>
</div> </div>
</div> </div>
</section> </section>
@ -26,4 +26,5 @@
<script setup> <script setup>
import Footer from "@/components/Footer.vue"; import Footer from "@/components/Footer.vue";
console.log(config);
</script> </script>

View File

@ -184,7 +184,7 @@ const props = defineProps({
token: String token: String
}) })
const accesstoken = atob(props.token); const accesstoken = atob(props.token);
axios.get(`${config.baseurl_selfservice}/api/runners/me/${accesstoken}`) axios.get(`${config.baseurl}api/runners/me/${accesstoken}`)
.then(({ data }) => { .then(({ data }) => {
state.phone = data.phone; state.phone = data.phone;
state.email = data.email; state.email = data.email;

View File

@ -0,0 +1 @@
<template>You have not provided a valid access key...</template>

View File

@ -261,14 +261,11 @@ import isEmail from 'validator/es/lib/isEmail';
import isMobilePhone from 'validator/es/lib/isMobilePhone'; import isMobilePhone from 'validator/es/lib/isMobilePhone';
import isPostalCode from 'validator/es/lib/isPostalCode'; import isPostalCode from 'validator/es/lib/isPostalCode';
import { useToast } from "vue-toastification"; import { useToast } from "vue-toastification";
// import { router } from '../router';
import { i18n } from '../language';
const props = defineProps({ const props = defineProps({
token: String token: String
}) })
if (props.token) { if (props.token) {
props.token = atob(props.token);
axios.get(`${config.baseurl}api/organizations/selfservice/${props.token}`) axios.get(`${config.baseurl}api/organizations/selfservice/${props.token}`)
.then(({ data }) => { .then(({ data }) => {
state.org_name = data.name; state.org_name = data.name;
@ -321,14 +318,16 @@ function login() {
postdata.team = org_team.value; postdata.team = org_team.value;
} }
toast("registration in progress..."); toast("registration in progress...");
let url = `${config.baseurl}api/runners/register`; const browserlocale = ((navigator.languages && navigator.languages[0]) || '').substr(0, 2);
let url = `${config.baseurl}api/runners/register/?locale=${browserlocale}`;
if (props.token) { if (props.token) {
url = `${config.baseurl}api/runners/register/${props.token}` url = `${config.baseurl}api/runners/register/${props.token}/?locale=${browserlocale}`
} }
axios.post(url, postdata) axios.post(url, postdata)
.then(({ data }) => { .then(({ data }) => {
const token = btoa(data.token); const token = btoa(data.token);
// router.push(`${config.baseurl_selfservice}/profile/${token}`); // alert(token);
location.replace(`${config.baseurl_selfservice}profile/${token}`);
}) })
.catch((error) => { .catch((error) => {
console.log(error); console.log(error);

View File

@ -1,11 +1,11 @@
module.exports = { module.exports = {
purge: [], purge: [ './index.html', './src/**/*.{vue,js,ts,jsx,tsx}' ],
darkMode: "media", // or 'media' or 'class' darkMode: 'media', // or 'media' or 'class'
theme: { theme: {
extend: {}, extend: {}
}, },
variants: { variants: {
extend: {}, extend: {}
}, },
plugins: [], plugins: []
} };

View File

@ -4,6 +4,7 @@ import path from 'path';
export default defineConfig({ export default defineConfig({
plugins: [ vue() ], plugins: [ vue() ],
base: './',
resolve: { resolve: {
alias: { alias: {
'@': path.resolve(__dirname, '/src') '@': path.resolve(__dirname, '/src')