Enhance backend configuration and error handling: Update CORS settings to allow dynamic origins, improve RabbitMQ connection handling in chat services, and adjust API server host configuration. Refactor environment variables for better flexibility and add fallback mechanisms for WebSocket and chat services. Update frontend environment files for consistent API and WebSocket URLs.

This commit is contained in:
Torsten Schulz (local)
2026-03-18 22:45:22 +01:00
parent eda70aee65
commit e6fee04b56
29 changed files with 1226 additions and 396 deletions

View File

@@ -51,8 +51,11 @@
:title="$t('home.nologin.login.passworddescription')" @keydown.enter="doLogin"
ref="passwordInput">
</div>
<div>
<label><input type="checkbox"><span>{{ $t('home.nologin.login.stayLoggedIn') }}</span></label>
<div class="stay-logged-in-row">
<label class="stay-logged-in-label">
<input class="stay-logged-in-checkbox" type="checkbox">
<span>{{ $t('home.nologin.login.stayLoggedIn') }}</span>
</label>
</div>
</div>
<div>
@@ -125,7 +128,8 @@ export default {
const response = await apiClient.post('/api/auth/login', { username: this.username, password: this.password });
this.login(response.data);
} catch (error) {
this.$root.$refs.errorDialog.open(`tr:error.${error.response.data.error}`);
const errorKey = error?.response?.data?.error || 'network';
this.$root.$refs.errorDialog.open(`tr:error.${errorKey}`);
}
}
}
@@ -146,34 +150,45 @@ export default {
display: flex;
align-items: stretch;
justify-content: center;
overflow: hidden;
gap: 2em;
width: 100%;
height: 100%;
flex: 1;
min-height: 0;
}
.home-structure>div {
flex: 1;
text-align: center;
display: flex;
min-height: 0;
}
.mascot {
flex: 0 0 clamp(180px, 22%, 280px);
justify-content: center;
align-items: center;
background-color: #fdf1db;
width: 80%;
height: 80%;
min-height: 400px;
align-items: stretch;
background: linear-gradient(180deg, #fff5e8 0%, #fce7ca 100%);
border: 1px solid rgba(248, 162, 43, 0.16);
border-radius: 20px;
box-shadow: 0 10px 24px rgba(93, 64, 55, 0.08);
overflow: hidden;
align-self: center;
height: clamp(320px, 68vh, 560px);
min-height: 320px;
max-height: 560px;
}
.actions {
display: flex;
flex-direction: column;
gap: 2em;
flex: 1 1 auto;
min-height: 0;
}
.actions>div {
flex: 1;
min-height: 0;
background-color: #FFF4F0;
align-items: center;
justify-content: flex-start;
@@ -188,6 +203,33 @@ export default {
color: var(--color-primary-orange);
}
.stay-logged-in-row {
width: 100%;
display: flex;
justify-content: flex-start;
margin-top: 0.35rem;
}
.stay-logged-in-label {
display: inline-flex;
align-items: center;
gap: 0.55rem;
cursor: pointer;
font-size: 0.95rem;
}
.stay-logged-in-checkbox {
width: 16px;
min-width: 16px;
height: 16px;
min-height: 16px;
margin: 0;
padding: 0;
flex: 0 0 16px;
accent-color: var(--color-primary-orange);
box-shadow: none;
}
.seo-content {
max-width: 1000px;
margin: 24px auto 0 auto;
@@ -233,7 +275,32 @@ export default {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
justify-content: flex-start;
width: 100%;
height: 100%;
min-height: 0;
overflow: hidden;
}
@media (max-width: 960px) {
.home-structure {
flex-direction: column;
gap: 1rem;
overflow: auto;
}
.mascot {
min-height: 260px;
height: 260px;
flex: 0 0 260px;
}
.actions {
min-height: auto;
}
.actions>div {
min-height: 260px;
}
}
</style>