From 51f6afa029fe69c20351cbd7bd82c2f3901b4802 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Thu, 7 May 2026 12:54:46 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20LinkedIn-Share=20=E2=80=94=20feed/=3Fsha?= =?UTF-8?q?reActive=3Dtrue=20statt=20deprecated=20share-offsite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LinkedIn /sharing/share-offsite/ akzeptiert seit ~2024 keinen text-Param mehr, der Composer oeffnet leer. Stattdessen /feed/?shareActive=true&text= prefillt den Compose-Dialog mit Text + Permalink (Permalink rendert LinkedIn als OG-Preview). Plus: Text geht weiterhin in die Zwischenablage als Fallback (Strg/⌘-V falls LinkedIn den Param mal wieder verschluckt). Pop-up-Blocker- Hinweis wenn window.open null zurueckgibt. Co-Authored-By: Claude Opus 4.7 (1M context) --- app/templates/v2/screens/antrag_detail.html | 22 ++++++++++----------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/app/templates/v2/screens/antrag_detail.html b/app/templates/v2/screens/antrag_detail.html index 358d5e2..749b2b1 100644 --- a/app/templates/v2/screens/antrag_detail.html +++ b/app/templates/v2/screens/antrag_detail.html @@ -865,21 +865,19 @@ window.v2ShowMatrixFieldInfo = function(field) { window.v2DetailShare = function(platform) { if (platform === 'linkedin') { - // LinkedIn legacy share-offsite akzeptiert nur url. Aber wir - // prefillen den Text via Clipboard + öffnen Composer parallel, - // damit der User mit Strg-V einfügen kann. + // LinkedIn hat /sharing/share-offsite/ zurueckgebaut — der prefillt + // keinen Text mehr. Stattdessen feed/?shareActive=true&text=… : das + // oeffnet den Compose-Dialog mit vorgefuelltem Text. Permalink ist + // im body schon enthalten, LinkedIn rendert daraus die OG-Preview. var body = buildLongShareText(); - var urlOnly = 'https://www.linkedin.com/sharing/share-offsite/?url=' + encodeURIComponent(PERMALINK); + var url = 'https://www.linkedin.com/feed/?shareActive=true&text=' + encodeURIComponent(body); + var win = window.open(url, '_blank', 'noopener'); + // Belt-and-suspenders: Text auch in die Zwischenablage, falls + // LinkedIn ihn doch verschluckt — dann reicht Strg/⌘-V im Composer. if (navigator.clipboard && navigator.clipboard.writeText) { - navigator.clipboard.writeText(body).then(function() { - window.open(urlOnly, '_blank', 'noopener'); - v2ShareToast('LinkedIn-Composer geöffnet — Text liegt in der Zwischenablage (Strg/⌘-V einfügen)'); - }, function() { - window.open(urlOnly, '_blank', 'noopener'); - }); - } else { - window.open(urlOnly, '_blank', 'noopener'); + navigator.clipboard.writeText(body).catch(function() {}); } + if (!win) v2ShareToast('Bitte Pop-up-Blocker prüfen — LinkedIn-Tab konnte nicht geöffnet werden.'); return; } var text = buildShareText(platform) + '\n' + PERMALINK;