feat(clickTtHttpPageRoutes, ClickTtView): implement proxy navigation script and enhance URL selection

- Added a new function to inject a navigation script into HTML responses, enabling seamless proxy navigation for links and form submissions.
- Updated the ClickTtView component to include new preset URL options for HTTV and TTDE login, improving user experience by providing quick access to common links.
- Adjusted form handling logic to support the new preset URLs, ensuring proper URL management during proxy interactions.
This commit is contained in:
Torsten Schulz (local)
2026-03-10 22:48:54 +01:00
parent 71ac054d48
commit 59d7c3559c
2 changed files with 95 additions and 13 deletions

View File

@@ -17,10 +17,12 @@
<option value="clubInfo">Vereinsinfo (clubInfoDisplay)</option>
<option value="regionMeetings">Regionsspielplan (regionMeetingFilter)</option>
<option value="url">Direkte URL</option>
<option value="preset:httv-home">HTTV Einstieg: https://httv.de</option>
<option value="preset:ttde-login">TTDE Login: ttde-id.liga.nu/oauth2/authz/ttde...</option>
</select>
</div>
<div class="form-group" v-if="pageType !== 'url'">
<div class="form-group" v-if="pageType === 'leaguePage' || pageType === 'clubInfo' || pageType === 'regionMeetings'">
<label>Verband</label>
<select v-model="association" class="form-select">
<option value="HeTTV">HeTTV (Hessen)</option>
@@ -30,7 +32,7 @@
</select>
</div>
<div class="form-group" v-if="pageType !== 'url' && pageType !== 'clubInfo'">
<div class="form-group" v-if="pageType === 'leaguePage' || pageType === 'regionMeetings'">
<label>Championship / Saison</label>
<input
v-model="championship"
@@ -50,17 +52,6 @@
/>
</div>
<div class="form-group" v-if="pageType === 'url'">
<label>URL-Vorlage</label>
<select v-model="directUrl" class="form-select form-input-wide">
<option value="">Bitte auswählen...</option>
<option value="https://httv.de">HTTV Einstieg: https://httv.de</option>
<option value="https://ttde-id.liga.nu/oauth2/authz/ttde?scope=nuLiga&response_type=code&redirect_uri=https%3A%2F%2Fhttv.click-tt.de%2Fcgi-bin%2FWebObjects%2FnuLigaTTDE.woa%2Fwa%2FoAuthLogin&state=nonce%3DVF6WbXUOvTjpsGq9zoZ6oxTH7625JEGH&client_id=XtVpGjXKAhz3BZuu">
TTDE Login: ttde-id.liga.nu/oauth2/authz/ttde...
</option>
</select>
</div>
<div class="form-group" v-if="pageType === 'url'">
<label>URL</label>
<input
@@ -98,6 +89,10 @@
import { ref, computed } from 'vue';
const backendBaseUrl = import.meta.env.VITE_BACKEND || 'http://localhost:3005';
const presetUrls = {
'preset:httv-home': 'https://httv.de',
'preset:ttde-login': 'https://ttde-id.liga.nu/oauth2/authz/ttde?scope=nuLiga&response_type=code&redirect_uri=https%3A%2F%2Fhttv.click-tt.de%2Fcgi-bin%2FWebObjects%2FnuLigaTTDE.woa%2Fwa%2FoAuthLogin&state=nonce%3DVF6WbXUOvTjpsGq9zoZ6oxTH7625JEGH&client_id=XtVpGjXKAhz3BZuu',
};
export default {
name: 'ClickTtView',
@@ -114,6 +109,9 @@ export default {
if (pageType.value === 'url') {
return directUrl.value.trim().length > 0;
}
if (pageType.value.startsWith('preset:')) {
return true;
}
if (pageType.value === 'clubInfo') {
return clubId.value.trim().length > 0;
}
@@ -126,6 +124,8 @@ export default {
if (pageType.value === 'url') {
params.set('url', directUrl.value.trim());
} else if (pageType.value.startsWith('preset:')) {
params.set('url', presetUrls[pageType.value]);
} else {
params.set('type', pageType.value);
params.set('association', association.value);