Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ZMS-2936 MPDZBS): new zmscitizenview initial setup webcomponent #900

Merged
merged 119 commits into from
Feb 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
2a3dbcf
feat(ZMS-2936): initial setup webcomponent
lehju Oct 15, 2024
093d4ab
feat(ZMS-2936): format code
lehju Oct 15, 2024
72bc216
Merge branch 'next' into ZMS-setup-frontend
lehju Oct 15, 2024
f951a13
feat(ZMS-2936): add calendar backend calls
lehju Oct 21, 2024
27fc5e7
feat(ZMS-2936): format code
lehju Oct 21, 2024
2de11fc
feat(ZMS-2936): add timeslots
lehju Nov 11, 2024
fd155cd
feat(ZMS-2936): update versions
lehju Nov 12, 2024
8d732d7
feat(ZMS-2936): format code
lehju Nov 12, 2024
b8708d5
feat(ZMS-2936): fix console.log bug
lehju Nov 12, 2024
dcfb1e3
feat(ZMS-2936): add stepper component
lehju Nov 13, 2024
6ce7916
feat(ZMS-2936): add calendar component
lehju Nov 13, 2024
210c699
feat(ZMS-2936): format code
lehju Nov 13, 2024
6591588
feat(ZMS-2936): renaming
lehju Nov 15, 2024
b7cd764
feat(ZMS-2936): add logic to next button
lehju Nov 15, 2024
cea77e6
feat(ZMS-2936): format code
lehju Nov 15, 2024
efd8262
feat(ZMS-2936): add customer info fields and refactor code
lehju Nov 18, 2024
251842c
feat(ZMS-2936): refactor code
lehju Nov 18, 2024
bf2e955
feat(ZMS-2936): format code
lehju Nov 18, 2024
8b5387a
feat(ZMS-2936): format code
lehju Nov 18, 2024
9aaa80b
Merge pull request #695 from it-at-m/next
lehju Nov 20, 2024
90d99f8
CI/CD
tobiasholler Nov 20, 2024
eb22252
CI/CD
tobiasholler Nov 20, 2024
693eba1
feat(ZMS-2936): Formatting
tobiasholler Nov 20, 2024
1eb28b8
Merge branch 'feat-zms-2936-initial-setup-webcomponent' into feat-zms…
tobiasholler Nov 20, 2024
7f64372
CI/CD
tobiasholler Nov 20, 2024
4154e68
CI/CD
tobiasholler Nov 20, 2024
cb5d230
CI/CD
tobiasholler Nov 20, 2024
fab71da
CI/CD
tobiasholler Nov 20, 2024
9e1159e
Merge pull request #697 from it-at-m/feat-zms-2936-initial-setup-webc…
lehju Nov 20, 2024
f1bcaaf
feat(ZMS-2936): add appointment backend calls
lehju Nov 21, 2024
716c7ae
Merge remote-tracking branch 'origin/feat-zms-2936-initial-setup-webc…
lehju Nov 21, 2024
c0294e5
feat(ZMS-2936): add customer info to appointment
lehju Nov 22, 2024
191987e
feat(ZMS-2936): format code
lehju Nov 22, 2024
8fcebb2
feat(ZMS-2936): vite config added base path for dynamic prefix
tobiasholler Nov 25, 2024
73bf64d
Merge remote-tracking branch 'origin/next' into feat-zms-2936-initial…
tobiasholler Nov 25, 2024
6ba72d1
feat(ZMS-2936): added VITE_VUE_APP_API_URL environment variable in .e…
tobiasholler Nov 25, 2024
3dcaf4f
feat(ZMS-2936): add AppointmentSummary.vue
lehju Nov 27, 2024
911c4ef
feat(ZMS-2936): format code
lehju Nov 27, 2024
fb55f18
feat(ZMS-2936): add appointment activation callouts
lehju Nov 28, 2024
6babda9
feat(ZMS-2936): format code
lehju Nov 28, 2024
c192ef0
feat(ZMS-2936): add error message logic
lehju Nov 28, 2024
bd1af45
feat(ZMS-2936): fix lint problems
lehju Nov 29, 2024
3c3d74b
feat(ZMS-2936): add fetchAppointment
lehju Nov 29, 2024
789f1e3
feat(ZMS-2936): format code
lehju Nov 29, 2024
4e798a5
feat(ZMS-2936): add cancel and rebook appointment
lehju Dec 2, 2024
683e6d7
feat(ZMS-2936): format code
lehju Dec 2, 2024
a02a499
feat(ZMS-2936): add rebook appointment
lehju Dec 4, 2024
ef2da0c
feat(ZMS-2936): add cancel rebook
lehju Dec 4, 2024
ac136d9
feat(ZMS-2936): format code
lehju Dec 4, 2024
538ce98
feat(ZMS-2936): add location and space
lehju Dec 9, 2024
4d4667b
feat(ZMS-2936): format code
lehju Dec 9, 2024
263f750
feat(ZMS-2936): delete unused code
lehju Dec 9, 2024
2a05d49
feat(ZMS-2936): add bottom margin to h2 and h3
lehju Dec 10, 2024
68e00fd
feat(ZMS-2936): change customer info input behavior
lehju Dec 10, 2024
5f3f845
feat(ZMS-2936): format code
lehju Dec 10, 2024
f4af4f0
feat(ZMS-2936): add exclusiveLocation paramenter
lehju Dec 12, 2024
9d9ae4c
feat(ZMS-2936): format code
lehju Dec 12, 2024
a4e2925
feat(ZMS-2936): add dividing line and fix button layout
lehju Dec 16, 2024
3c9ac98
feat(ZMS-2936): format code
lehju Dec 16, 2024
2a299bf
feat(ZMS-2936): add location selection
lehju Jan 13, 2025
7aea1a9
feat(ZMS-2936): format code
lehju Jan 13, 2025
a9c4afb
feat(ZMS-2936): set back icon to the left
lehju Jan 14, 2025
240d307
feat(ZMS-2936): add focus after choosing timeslot
lehju Jan 16, 2025
2793b53
feat(ZMS-2936): format code
lehju Jan 16, 2025
508d0d7
feat(ZMS-2936): add skip link for combinable services
lehju Jan 20, 2025
484b8cb
feat(ZMS-2936): format code
lehju Jan 20, 2025
f75fb74
feat(ZMS-2936): add tabindex to AppointmentSummary.vue
lehju Jan 20, 2025
2a259b7
feat(ZMS-2936): format code
lehju Jan 20, 2025
7a09244
feat(ZMS-2936): add accessibility to form fields in CustomerInfo.vue
lehju Jan 22, 2025
befcfe9
feat(ZMS-2936): adapt confirmAppointmentText
lehju Jan 22, 2025
56ed559
feat(ZMS-2936): implemented temporary nginx cors
tobiasholler Jan 22, 2025
0274459
feat(ZMS-2936): add / to backend calls
lehju Jan 22, 2025
89382a1
Merge branch 'feat-zms-2936-initial-setup-webcomponent' of https://gi…
lehju Jan 22, 2025
ec333ff
Revert "feat(ZMS-2936): implemented temporary nginx cors"
tobiasholler Jan 27, 2025
04b8eec
feat(ZMS-2936): add min and max to calendar
lehju Jan 29, 2025
b6cb535
feat(ZMS-2936): fix min and max on calendar
lehju Jan 30, 2025
ce30678
Merge remote-tracking branch 'origin/feat-zms-2936-initial-setup-webc…
lehju Jan 30, 2025
cbf74a7
feat(ZMS-2936): format code
lehju Jan 30, 2025
9e85e17
feat(ZMS-2936): add test
lehju Feb 4, 2025
321dff8
feat(ZMS-2936): add office data
lehju Feb 5, 2025
17718c7
feat(ZMS-2936): format code
lehju Feb 5, 2025
5183c2c
feat(ZMS-2936): fix eslint problem
lehju Feb 5, 2025
9c3f6ac
feat(ZMS-2936): format code
lehju Feb 5, 2025
98156c9
feat(ZMS-2936): format code
lehju Feb 5, 2025
7f012ce
feat(ZMS-2936): test
lehju Feb 5, 2025
4d55e62
feat(ZMS-2936): fix ServiceFinder.vue
lehju Feb 6, 2025
be7c6d2
feat(ZMS-2936): format code
lehju Feb 6, 2025
4c2a0f1
feat(ZMS-2936): fix CalendarView.vue and add estimatedDuration to App…
lehju Feb 6, 2025
00f54f8
feat(ZMS-2936): format code
lehju Feb 6, 2025
3e40660
feat(ZMS-2936): add estimated duration
lehju Feb 10, 2025
53a3577
feat(ZMS-2936): format code
lehju Feb 10, 2025
513edeb
feat(2936): implemented component wrapper
tobiasholler Feb 10, 2025
4f33adc
Merge branch 'feat-zms-2936-initial-setup-webcomponent' of https://gi…
lehju Feb 10, 2025
e38f7a3
feat(ZMS-2936): fix index.html
lehju Feb 11, 2025
733a815
feat(ZMS-2936): fix estimated duration
lehju Feb 11, 2025
517dda7
feat(ZMS-2936): fix custoum textfield
lehju Feb 11, 2025
8e816d6
feat(ZMS-2936): format code
lehju Feb 11, 2025
5cfdcc6
feat(ZMS-2936): add link list to ServiceFinder.vue
lehju Feb 12, 2025
e5563dc
feat(ZMS-2936): format code
lehju Feb 12, 2025
9eed62e
feat(ZMS-2936): format code
lehju Feb 12, 2025
d0e82b8
feat(ZMS-2936): fix often searched services design
lehju Feb 12, 2025
67356cc
feat(ZMS-2936): add office hint
lehju Feb 12, 2025
8da51f1
feat(ZMS-2936): fix hint in AppointmentSummary.vue
lehju Feb 12, 2025
588faa6
feat(ZMS-2936): delete additional office data
lehju Feb 12, 2025
6cc771e
feat(ZMS-2936): fix bugs in CustomerInfo.vue
lehju Feb 12, 2025
95fb00b
feat(ZMS-2936): add appointmentNotFound error message
lehju Feb 13, 2025
51a44be
feat(ZMS-2936): add baseUrl
lehju Feb 13, 2025
e78b4e8
feat(ZMS-2936): fix comparison bug
lehju Feb 13, 2025
962f6c2
feat(ZMS-2936): add exclusive location
lehju Feb 14, 2025
7afe546
feat(ZMS-2936): fix timeslot bug
lehju Feb 18, 2025
1356fdb
feat(ZMS-2936): code documentation
lehju Feb 24, 2025
a95e609
feat(ZMS-2936): fix scroll bug CalendarView.vue
lehju Feb 24, 2025
9529aa5
Merge branch 'next' into feat-zms-2936-initial-setup-webcomponent
lehju Feb 24, 2025
97b0a59
feat(ZMS-2936): fix scroll bug for all views
lehju Feb 25, 2025
f96d2fa
feat(ZMS-2936): delete test folder
lehju Feb 25, 2025
8ef6ff0
feat(ZMS-2936): delete test
lehju Feb 25, 2025
b5e66ae
feat(ZMS-2936): fix package.json
lehju Feb 25, 2025
f04a410
feat(ZMS-2936): fix package.json
lehju Feb 25, 2025
b56ea6f
feat(ZMS-2936): pr feedback
lehju Feb 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/maven-node-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Frontend Build

on:
push:

jobs:
build:
runs-on: ubuntu-latest
env:
TZ: Europe/Berlin # timezone
strategy:
fail-fast: false
matrix:
include: # hier müssen die Pfade angegeben werden
- app-path: zmscitizenview
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- if: ${{hashFiles(format('./{0}/package.json', matrix.app-path))!=null}}
id: node
uses: it-at-m/.github/.github/actions/action-npm-build@main
with:
app-path: "${{ matrix.app-path }}"
- if: ${{hashFiles(format('./{0}/pom.xml', matrix.app-path))!=null}}
id: maven
uses: it-at-m/.github/.github/actions/action-maven-build@main
with:
app-path: "${{ matrix.app-path }}"
- uses: it-at-m/.github/.github/actions/action-build-image@main
with:
path: "${{ matrix.app-path }}"
image-name: "${{ matrix.app-path }}"
artifact-name: ${{join(steps.*.outputs.artifact-name)}}
registry-password: ${{ secrets.GITHUB_TOKEN }}
registry-username: ${{ github.actor }}
image-tags: "branch-${{ github.ref_name }}"
4 changes: 4 additions & 0 deletions zmscitizenview/.browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
> 1%
last 2 versions
not dead
not ie 11
5 changes: 5 additions & 0 deletions zmscitizenview/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
3 changes: 3 additions & 0 deletions zmscitizenview/.env.production
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
VITE_NODE_ENV=production
VITE_VUE_APP_API_URL=/buergeransicht
VITE_VUE_APP_SERVICE_BASE_URL="https://stadt.muenchen.de/service/info/"
25 changes: 25 additions & 0 deletions zmscitizenview/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.DS_Store
node_modules
/dist
target

# local env files
.env.local
.env.*.local
.env.development
.env.*.development

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
4 changes: 4 additions & 0 deletions zmscitizenview/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
dist
target
node_modules
processes/post-build.js
1 change: 1 addition & 0 deletions zmscitizenview/.prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"@muenchen/prettier-codeformat"
11 changes: 11 additions & 0 deletions zmscitizenview/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# For documentation see https://github.com/sclorg/nginx-container
FROM registry.access.redhat.com/ubi9/nginx-124:9.5-1731599569@sha256:17899b0ddb0c2dabf03edc6d4bbe073dc1fe0908331b37b9133a852d5a6006fc

# Copy built web application
COPY dist .

# Copy custom nginx configurations
COPY docker/nginx/*.conf "${NGINX_DEFAULT_CONF_PATH}"

# Start the web server
CMD nginx -g "daemon off;"
7 changes: 7 additions & 0 deletions zmscitizenview/docker/nginx/compression.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
gzip on;
gzip_http_version 1.1;
gzip_min_length 1100;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_comp_level 9;
7 changes: 7 additions & 0 deletions zmscitizenview/docker/nginx/health.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
location /actuator/health {
access_log off;
add_header 'Content-Type' 'application/json';
add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always;
add_header Cache-Control 'no-cache';
return 200 '{"status":"UP"}';
}
29 changes: 29 additions & 0 deletions zmscitizenview/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import js from "@eslint/js";
import vuePrettierEslintConfigSkipFormatting from "@vue/eslint-config-prettier/skip-formatting";
import vueTsEslintConfig from "@vue/eslint-config-typescript";
import { ESLint } from "eslint";
import vueEslintConfig from "eslint-plugin-vue";

export default [
...ESLint.defaultConfig,
js.configs.recommended,
...vueEslintConfig.configs["flat/recommended"],
...vueTsEslintConfig({
extends: ["strict", "stylistic"],
}),
vuePrettierEslintConfigSkipFormatting,
{
ignores: ["dist", "target", "node_modules", "env.d.ts"],
},
{
rules: {
"no-console": ["error", { allow: ["debug"] }],
"vue/component-name-in-template-casing": [
"error",
"kebab-case",
{ registeredComponentsOnly: false },
],
"@typescript-eslint/no-explicit-any": "off",
},
},
];
62 changes: 62 additions & 0 deletions zmscitizenview/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link href="/favicon.ico" rel="icon">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Terminvereinbarung Bürgeransicht Webcomponent</title>

<!-- Muenchen.de-Styles -->
<link
rel="stylesheet"
href="https://assets.muenchen.de/mde/1.0.7/css/muenchende-fontfaces.css"
/>
<link
rel="stylesheet"
href="https://assets.muenchen.de/mde/1.0.7/css/muenchende-style.css"
/>

<!-- built files will be auto injected -->
<script src="src/main.ts" type="module"></script>

</head>
<body>

<noscript>
<strong>Damit das Widget korrekt funktioniert, muss Javascript aktiviert werden.</strong>
</noscript>

<i18n-host>
<zms-appointment-wrapped></zms-appointment-wrapped>
</i18n-host>

<script type="text/javascript">
const element = document.getElementsByTagName('zms-appointment-wrapped')[0]
const urlElements = window.location.hash.split('/')
const url = new URL(window.location.href);
const params = new URLSearchParams(url.search);

if (urlElements.length >= 3 && urlElements[1] === 'services') {
element.setAttribute('service-id', urlElements[2])
}

if (urlElements.length >= 5 && urlElements[3] === 'locations') {
element.setAttribute('location-id', urlElements[4])
}

if (urlElements.length === 4 && urlElements[1] === 'appointment' && urlElements[2] === 'confirm') {
element.setAttribute('confirm-appointment-hash', urlElements[3])
}

if (urlElements.length === 3 && urlElements[1] === 'appointment') {
element.setAttribute('appointment-hash', urlElements[2])
}

if (params.get('exclusiveLocation')) {
element.setAttribute('exclusive-location', '1')
}
</script>

</body>

</html>
Loading
Loading