fixed inline editing views admin conflict btw filters an save button

This commit is contained in:
2026-09-18 11:25:15 +02:00
parent ae7802fc43
commit fa13910d98
13 changed files with 100 additions and 144 deletions
@@ -0,0 +1,22 @@
/**
* gin_compat_preprocess_block() ajoute la classe "views-exposed-form" au
* <form> pour que Claro/Gin lui appliquent nativement leur mise en page
* flex (voir claro/css/components/views-exposed-form.css). Mais le wrapper
* du bloc porte déjà cette même classe de façon native (indépendamment de
* nous), donc la règle Claro/Gin "card" (padding, marge, bordure, ombre)
* s'applique aux deux éléments imbriqués et double l'espace utilisé. On ne
* neutralise ici que le wrapper, pour qu'une seule "card" (celle du
* <form>) reste visible — le style visuel proprement dit reste 100% celui
* de Gin, on ne fait que retirer la duplication.
*/
.views-exposed-form.block {
padding: 0 !important;
margin: 0 0 var(--gin-spacing-l, 24px) !important;
border: 0 !important;
background: none !important;
box-shadow: none !important;
}
.views-exposed-form.block form.views-exposed-form{
margin: 0!important;
}
@@ -0,0 +1,5 @@
type: module
name: 'Gin Compat'
description: 'Correctifs de compatibilité CSS/JS pour le thème d''administration Gin (éléments Views/Better Exposed Filters rendus hors du contexte habituel de la vue, ex. bloc de filtres exposés).'
package: Gin
core_version_requirement: '^10.5 || ^11'
@@ -0,0 +1,4 @@
exposed-filters-block:
css:
theme:
css/exposed-filters-block.css: {}
@@ -0,0 +1,31 @@
<?php
/**
* @file
* Correctifs de compatibilité pour le thème d'administration Gin.
*/
/**
* Implements hook_preprocess_block().
*
* Un formulaire de filtres exposés placé en bloc autonome (Views > "Exposed
* form in block") perd la classe "views-exposed-form" sur sa balise <form> :
* Drupal core (BlockViewBuilder::preRender()) retire volontairement
* #attributes du contenu d'un bloc pour le fusionner dans le wrapper du
* bloc, donc tout ce qu'on ajoute via hook_form_alter atterrit sur le <div>
* englobant plutôt que sur le <form>. Or c'est justement cette classe que
* Claro/Gin ciblent nativement pour la mise en page flex (voir
* claro/css/components/views-exposed-form.css). On la réinjecte donc ici,
* après ce "vol" d'attributs, directement sur le contenu du bloc afin
* qu'elle atterrisse sur le <form> lors de son propre rendu.
*/
function gin_compat_preprocess_block(array &$variables) {
$plugin_id = $variables['plugin_id'] ?? '';
if (str_starts_with($plugin_id, 'views_exposed_filter_block:')) {
$variables['content']['#attributes']['class'][] = 'views-exposed-form';
// Le wrapper du bloc porte nativement cette même classe : neutralise sa
// "card" (padding/marge/bordure/ombre) pour éviter qu'elle se double
// avec celle du <form>. Voir css/exposed-filters-block.css.
$variables['content']['#attached']['library'][] = 'gin_compat/exposed-filters-block';
}
}