From cf0b78893c2cbda6a09556b4311947e21ec3639a Mon Sep 17 00:00:00 2001 From: Eduard Wisch Date: Sun, 19 Apr 2026 11:24:48 +0200 Subject: [PATCH] fix: API-Endpoint in Setup aus Browser-URL statt DOL_MAIN_URL_ROOT [deploy] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DOL_MAIN_URL_ROOT ist in Docker-Setups oft die interne Container-URL (z.B. 192.168.155.1:8090), die externe Clients nicht erreichen. Stattdessen Scheme + Host aus dem aktuellen Request verwenden — genau die URL die der User gerade im Browser hat, die garantiert auch von außen erreichbar ist. Zusätzlich Hinweistext unter dem Endpoint wie die URL in der PWA einzutragen ist (ohne den /custom/…-Suffix). Co-Authored-By: Claude Opus 4.7 (1M context) --- admin/setup.php | 9 ++++++++- langs/de_DE/eplan.lang | 1 + langs/en_US/eplan.lang | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/admin/setup.php b/admin/setup.php index 1ae1527..caaffd9 100644 --- a/admin/setup.php +++ b/admin/setup.php @@ -106,8 +106,15 @@ print ''; print '
'.$langs->trans("EplanApiTokenHint").''; print ''; +// Endpoint aus der aktuellen Browser-URL ableiten — DOL_MAIN_URL_ROOT +// zeigt in Docker-Setups die interne Container-URL (z.B. 192.168…:8090), +// die externe Clients nicht erreichen. +$scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http'; +$host = $_SERVER['HTTP_HOST'] ?? ''; +$api_endpoint = $scheme.'://'.$host.'/custom/eplan/ajax/pwa_api.php'; print ''.$langs->trans("EplanApiEndpoint").''; -print ''.dol_escape_htmltag(DOL_MAIN_URL_ROOT.'/custom/eplan/ajax/pwa_api.php').''; +print ''.dol_escape_htmltag($api_endpoint).''; +print '
'.$langs->trans("EplanApiEndpointHint").''; print ''; print ''; print '
'; diff --git a/langs/de_DE/eplan.lang b/langs/de_DE/eplan.lang index ef31d83..6b336d7 100644 --- a/langs/de_DE/eplan.lang +++ b/langs/de_DE/eplan.lang @@ -14,6 +14,7 @@ EplanApiTokenDesc = Der Token authentifiziert die ElektroPlan-PWA gegen diesen D EplanApiTokenValue = Token EplanApiTokenHint = Einmal anklicken zum Markieren, dann Strg+C zum Kopieren. EplanApiEndpoint = API-Endpoint +EplanApiEndpointHint = Diese URL trägst Du zusammen mit dem Token in der PWA ⚙-Einstellungen als Dolibarr-URL ein (ohne "/custom/eplan/ajax/pwa_api.php"). EplanTokenRotieren = Neuen Token erzeugen EplanTokenRotierenConfirm = Neuen Token erzeugen? Der alte wird sofort ungültig und die PWA muss neu konfiguriert werden. EplanTokenRotiert = Neuer Token erzeugt. PWA mit dem neuen Token aktualisieren. diff --git a/langs/en_US/eplan.lang b/langs/en_US/eplan.lang index cd78687..80c7f95 100644 --- a/langs/en_US/eplan.lang +++ b/langs/en_US/eplan.lang @@ -14,6 +14,7 @@ EplanApiTokenDesc = The token authenticates the ElektroPlan PWA against this Dol EplanApiTokenValue = Token EplanApiTokenHint = Click once to select, then Ctrl+C to copy. EplanApiEndpoint = API endpoint +EplanApiEndpointHint = Enter this URL together with the token in the PWA gear settings as Dolibarr URL (without "/custom/eplan/ajax/pwa_api.php"). EplanTokenRotieren = Generate new token EplanTokenRotierenConfirm = Generate new token? The old one is immediately invalid and the PWA must be reconfigured. EplanTokenRotiert = New token generated. Update the PWA with the new token.