fixed inline editing views admin conflict btw filters an save button
This commit is contained in:
@@ -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';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user