fix: pfeil groesser, tab ohne fokus-kasten, version 1.1.0 (cache-bust)
- Aufklapp-Pfeil deutlich groesser (26px). - Tabs: kein Fokus-Kasten mehr, nur untere Linie markiert den aktiven Tab. - CB_VERSION + Header auf 1.1.0 -> bricht gecachte alte admin.js/frontend.js (Ursache, dass ein Dienst auf einer Seite nicht aufklappbar war). - Aufklappen via Event-Delegation (robust gegen Load-Order/dynamische Zeilen). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -30,16 +30,15 @@
|
|||||||
const $btn = $( '.cb-service-toggle', box );
|
const $btn = $( '.cb-service-toggle', box );
|
||||||
$btn.attr( 'aria-expanded', open ? 'true' : 'false' ).text( open ? '▾' : '▸' );
|
$btn.attr( 'aria-expanded', open ? 'true' : 'false' ).text( open ? '▾' : '▸' );
|
||||||
}
|
}
|
||||||
function bindToggle( box ) {
|
/* Delegated once on document → works for existing AND dynamically added rows,
|
||||||
$( '.cb-service-toggle', box ).on( 'click', function () {
|
* and is resilient to load-order issues. */
|
||||||
const open = $( this ).attr( 'aria-expanded' ) !== 'true';
|
$( document ).on( 'click', '.cb-service-toggle, .cb-service-title', function () {
|
||||||
setExpanded( box, open );
|
const box = $( this ).closest( '.cb-service-box' );
|
||||||
} );
|
|
||||||
// Clicking the title also expands/collapses.
|
|
||||||
$( '.cb-service-title', box ).on( 'click', function () {
|
|
||||||
const open = $( '.cb-service-toggle', box ).attr( 'aria-expanded' ) !== 'true';
|
const open = $( '.cb-service-toggle', box ).attr( 'aria-expanded' ) !== 'true';
|
||||||
setExpanded( box, open );
|
setExpanded( box, open );
|
||||||
} );
|
} );
|
||||||
|
function bindToggle( box ) {
|
||||||
|
// No-op kept for call sites; toggling is handled by delegation above.
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ── Re-index a row's field names after a remove ── */
|
/* ── Re-index a row's field names after a remove ── */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Plugin Name: GDPR Content Blocker
|
* Plugin Name: GDPR Content Blocker
|
||||||
* Plugin URI: https://lucas-orth.de
|
* Plugin URI: https://lucas-orth.de
|
||||||
* Description: DSGVO-konformer Consent-Blocker für externe iframes. Lädt Drittinhalte erst nach aktiver Einwilligung.
|
* Description: DSGVO-konformer Consent-Blocker für externe iframes. Lädt Drittinhalte erst nach aktiver Einwilligung.
|
||||||
* Version: 1.0.0
|
* Version: 1.1.0
|
||||||
* Author: Lucas Orth
|
* Author: Lucas Orth
|
||||||
* Author URI: https://lucas-orth.de
|
* Author URI: https://lucas-orth.de
|
||||||
* Text Domain: gdpr-content-blocker
|
* Text Domain: gdpr-content-blocker
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
defined( 'ABSPATH' ) || exit;
|
defined( 'ABSPATH' ) || exit;
|
||||||
|
|
||||||
define( 'CB_VERSION', '1.0.0' );
|
define( 'CB_VERSION', '1.1.0' );
|
||||||
define( 'CB_FILE', __FILE__ );
|
define( 'CB_FILE', __FILE__ );
|
||||||
define( 'CB_DIR', plugin_dir_path( __FILE__ ) );
|
define( 'CB_DIR', plugin_dir_path( __FILE__ ) );
|
||||||
define( 'CB_URL', plugin_dir_url( __FILE__ ) );
|
define( 'CB_URL', plugin_dir_url( __FILE__ ) );
|
||||||
|
|||||||
@@ -417,9 +417,9 @@ class CB_Settings {
|
|||||||
}
|
}
|
||||||
/* expand/collapse arrow (black, no box) */
|
/* expand/collapse arrow (black, no box) */
|
||||||
.cb-admin-wrap .cb-service-toggle {
|
.cb-admin-wrap .cb-service-toggle {
|
||||||
width: 24px;
|
width: 32px;
|
||||||
height: 24px;
|
height: 32px;
|
||||||
font-size: 16px;
|
font-size: 26px;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #1d2327;
|
color: #1d2327;
|
||||||
@@ -462,6 +462,13 @@ class CB_Settings {
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-bottom: -1px;
|
margin-bottom: -1px;
|
||||||
}
|
}
|
||||||
|
/* No focus box on tabs — only the bottom underline marks the active tab. */
|
||||||
|
.cb-admin-wrap .nav-tab:focus,
|
||||||
|
.cb-admin-wrap .nav-tab:focus-visible,
|
||||||
|
.cb-admin-wrap .nav-tab:active {
|
||||||
|
box-shadow: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
/* 20px breathing room between tabs and content */
|
/* 20px breathing room between tabs and content */
|
||||||
.cb-admin-wrap .cb-tab-content {
|
.cb-admin-wrap .cb-tab-content {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Tags: dsgvo, gdpr, consent, iframe, datenschutz, gdpr-content-blocker
|
|||||||
Requires at least: 6.0
|
Requires at least: 6.0
|
||||||
Tested up to: 6.7
|
Tested up to: 6.7
|
||||||
Requires PHP: 8.1
|
Requires PHP: 8.1
|
||||||
Stable tag: 1.0.0
|
Stable tag: 1.1.0
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
@@ -93,6 +93,15 @@ ZIP muss einen Ordner `gdpr-content-blocker/` auf oberster Ebene enthalten.
|
|||||||
|
|
||||||
== Changelog ==
|
== Changelog ==
|
||||||
|
|
||||||
|
= 1.1.0 =
|
||||||
|
* Vorlagen für Google Maps, YouTube, OpenStreetMap, Vimeo
|
||||||
|
* Client-seitige Erkennung (Elementor-Videos, per JS nachgeladene iframes)
|
||||||
|
* Webseiten-Scan mit Vorlagenerkennung und Quellseiten
|
||||||
|
* Dienste ein-/ausklappbar mit An-/Aus-Schalter
|
||||||
|
* Lizenz- und Update-Auslieferung über eigenen Server
|
||||||
|
* Sprachen: Deutsch + Englisch
|
||||||
|
* Widerruf als Link; Tab „Über das Plugin"; diverse UI-Verbesserungen
|
||||||
|
|
||||||
= 1.0.0 =
|
= 1.0.0 =
|
||||||
* Erstveröffentlichung
|
* Erstveröffentlichung
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user