7 Commits
20 changed files with 71 additions and 174 deletions
+4 -2
View File
@@ -149,6 +149,7 @@
"drupal/webform": "^6.3",
"drupal/workflow": "~2.1.13",
"drush/drush": "^13",
"js-cookie/js-cookie": "*",
"kint-php/kint": "^3.3",
"politsin/jquery-ui-touch-punch": "^1",
"smalot/pdfparser": "*",
@@ -213,7 +214,8 @@
"merge-plugin": {
"include": [
"web/profiles/d8-starterkit-profile/composer.json",
"web/modules/contrib/webform/composer.libraries.json"
"web/modules/contrib/webform/composer.libraries.json",
"web/modules/contrib/js_cookie/composer.libraries.json"
],
"recurse": true,
"replace": false,
@@ -263,7 +265,7 @@
"Exposed operators are not included in fieldsets https://www.drupal.org/project/views_ef_fieldset/issues/3173822": "https://git.drupalcode.org/project/views_ef_fieldset/-/merge_requests/1/diffs.patch"
},
"drupal/term_reference_tree": {
"Term Reference Tree: Re-implement Track List https://www.drupal.org/project/term_reference_tree/issues/3064280": "https://www.drupal.org/files/issues/2026-09-24/term_reference_tree-3064280-tracklist-2.0.3.patch"
"Term Reference Tree: Re-implement Track List https://www.drupal.org/project/term_reference_tree/issues/3064280": "https://www.drupal.org/files/issues/2026-09-30/term_reference_tree-3064280_bring_back_tracklist-26.patch"
},
"drupal/workflow": {
"Restore ^11 on submodule info.yml, lost in #3607490 regression https://www.drupal.org/project/workflow/issues/3607490": "./patches/workflow-3607490-submodule-info-d11-2.1.13.patch"
Generated
+16 -1
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "85d0cffc7560e559907e02263d5833e4",
"content-hash": "6449ed4edc4ae4b7c0ffbef85541b703",
"packages": [
{
"name": "asm89/stack-cors",
@@ -13165,6 +13165,21 @@
"MIT"
]
},
{
"name": "js-cookie/js-cookie",
"version": "3.0.5",
"dist": {
"type": "tar",
"url": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz"
},
"type": "drupal-library",
"extra": {
"installer-name": "js-cookie"
},
"license": [
"MIT"
]
},
{
"name": "justinrainbow/json-schema",
"version": "6.8.2",
-13
View File
@@ -1,13 +0,0 @@
uuid: dd6fca1d-1ffe-4b5a-b984-000111a96f21
langcode: en
status: true
dependencies: { }
_core:
default_config_hash: jonvgt3CkUM2eMLTFwWfHileWWDC4YtXCuIlCahTk_I
id: personal
label: 'Personal contact form'
recipients: { }
reply: ''
weight: 0
message: 'Your message has been sent.'
redirect: ''
-7
View File
@@ -1,7 +0,0 @@
_core:
default_config_hash: U69DBeuvXuNVOC15rVNaBjDPK2fWFbo9v4takdYSSO8
default_form: feedback
flood:
limit: 5
interval: 3600
user_default_enabled: false
@@ -163,7 +163,6 @@ third_party_settings:
children:
- field_famille
- langcode
- translation
- field_memo
- field_workflow
- created
@@ -275,9 +274,15 @@ content:
weight: 14
region: content
settings:
rows: 5
rows: 15
placeholder: ''
third_party_settings: { }
third_party_settings:
maxlength:
maxlength_js: null
maxlength_js_label: ''
maxlength_js_enforce: false
advanced_text_formatter:
show_token_tree: 0
field_reference:
type: computed_string_widget
weight: 4
@@ -313,9 +318,10 @@ content:
weight: 35
region: content
settings:
start_minimized: false
start_minimized: true
leaves_only: false
select_parents: false
select_all: false
cascading_selection: 0
track_list: true
max_depth: 0
@@ -1,11 +0,0 @@
uuid: 655bab63-c43d-45ec-9c10-3558501d9651
langcode: en
status: true
dependencies:
module:
- contact
id: contact_message.token
label: Token
description: ''
targetEntityType: contact_message
cache: true
-2
View File
@@ -14,7 +14,6 @@ module:
asset_cache_bust: 0
autocomplete_deluxe: 0
autologout: 0
ban: 0
better_exposed_filters: 0
betterlogin: 0
block: 0
@@ -50,7 +49,6 @@ module:
config_update: 0
consumer_image_styles: 0
consumers: 0
contact: 0
content_lock: 0
context: 0
contextual: 0
@@ -1,11 +0,0 @@
uuid: b03ab3e9-b8a0-452e-9a76-7b36c162cb11
langcode: en
status: true
dependencies:
config:
- contact.form.personal
id: contact_message.personal
target_entity_type_id: contact_message
target_bundle: personal
default_langcode: site_default
language_alterable: false
@@ -1,2 +0,0 @@
label: 'Formulaire de contact personnel'
message: 'Votre message a été envoyé.'
@@ -1,17 +0,0 @@
uuid: 134147cd-f707-4a44-b578-fe47c9fddc7e
langcode: en
status: true
dependencies:
module:
- contact
_core:
default_config_hash: dRrc9PkLOme-LkddT28g1s2j6A6r8qJLW6I1FA4HD9M
id: contact.copy
configuration:
email_body:
content:
value: |-
<p class="contact-email-intro">Here is a copy of the message you sent to {{ recipient_name }} at {{ site_name }}.</p>
<hr>
{{ body }}
format: email_html
@@ -1,19 +0,0 @@
uuid: 4aa2ac66-aaba-414c-a0a3-bf12aa119aef
langcode: en
status: true
dependencies:
module:
- contact
_core:
default_config_hash: qM-nS_f8vJxvO0QPUg8SYmt3iTXAPcvj94xpXXBznQ4
id: contact.mail
configuration:
email_body:
content:
value: |-
<p class="contact-email-intro">Hello {{ recipient_name }},<br>
<a href="{{ sender_url }}">{{ sender_name }}</a> has sent you a message via your form at {{ site_name }}.
If you don't want to receive such emails, you can <a href="{{ recipient_edit_url }}">change your settings</a>.</p>
<hr>
{{ body }}
format: email_html
@@ -1,12 +0,0 @@
uuid: 5d8666b2-21ff-456a-9c5c-792c28e69173
langcode: en
status: true
dependencies:
module:
- contact
_core:
default_config_hash: hNnHk1jtvS_lezOW8CXkrFUEg3SlVaH8SEIilXxmC0Y
id: contact
configuration:
email_subject:
value: '[{{ site_name }}] {{ subject }}'
@@ -1,17 +0,0 @@
uuid: a6c8aaf1-3f3b-481a-8276-ca3e9d204599
langcode: en
status: true
dependencies:
module:
- contact
_core:
default_config_hash: XNel772jUgO_1nTeBKv6KY1dOnm9ZTxw873dLdQn21I
id: contact_form.copy
configuration:
email_body:
content:
value: |-
<p class="contact-email-intro">Here is a copy of the message you sent using the contact form <a href="{{ form_url }}">{{ form }}</a>.</p>
<hr>
{{ body }}
format: email_html
@@ -1,17 +0,0 @@
uuid: f0143eb1-9260-4046-8001-868f7ff18f99
langcode: en
status: true
dependencies:
module:
- contact
_core:
default_config_hash: 1TIKtMkjY26cVN1RPOzGE60sVx3nFvKHw-LR3I-STNw
id: contact_form.mail
configuration:
email_body:
content:
value: |-
<p class="contact-email-intro"><a href="{{ sender_url }}">{{ sender_name }}</a> sent a message using the contact form <a href="{{ form_url }}">{{ form }}</a>.</p>
<hr>
{{ body }}
format: email_html
@@ -1,12 +0,0 @@
uuid: 6016c007-4e4c-4fe5-9454-a4159f6fe678
langcode: en
status: true
dependencies:
module:
- contact
_core:
default_config_hash: Hmb6-2KQp-459chRvJx4haH9MprIHzG-rZheK5skgac
id: contact_form
configuration:
email_subject:
value: '[{{ form }}] {{ subject }}'
@@ -0,0 +1,8 @@
/**
* Gin dark mode: entity-meta sidebars are styled by Claro light tokens
* outside gin's node-form scope (commerce license/order/product forms).
* Re-apply gin's text color so the sidebar stays readable in dark mode.
*/
html.gin--dark-mode .entity-meta__header {
color: var(--gin-color-text, #fbfbfe);
}
@@ -1,17 +1,26 @@
/**
* Term reference tree widget: selection tree on the left, sortable track
* list on the right. Transposed from the retired matminimal theme.
*
* Flexbox row instead of inline-block columns so the two blocks never wrap
* onto separate lines, whatever their content width (the previous
* inline-block version wrapped on environments with a narrower form region).
*/
.term-reference-tree > ul,
.term-reference-tree aside.term-reference-tree-track-list {
display: inline-block;
vertical-align: top;
.term-reference-tree.term-reference-tree-track-list-shown {
display: flex;
flex-direction: row;
align-items: flex-start;
}
.term-reference-tree > ul {
padding-right: 1em;
.term-reference-tree.term-reference-tree-track-list-shown > ul {
flex: 1 1 45%;
min-width: 45%;
padding-right: 1em;
margin: 0;
}
.term-reference-tree aside.term-reference-tree-track-list {
.term-reference-tree.term-reference-tree-track-list-shown aside.term-reference-tree-track-list {
flex: 1 1 55%;
border-left: 1px solid #aaa;
padding-left: 1em;
}
@@ -9,3 +9,9 @@ admin_tables:
css:
theme:
css/admin-tables.css: {}
gin_darkmode:
version: 1.0
css:
theme:
css/gin-darkmode.css: {}
@@ -5,33 +5,24 @@
* Admin back-office enhancements.
*/
use Drupal\term_reference_tree\Plugin\Field\FieldWidget\TermReferenceTree;
/**
* Implements hook_field_widget_single_element_form_alter().
*
* Attaches the widget layout library wherever the term reference tree widget
* renders (thesaurus on materiau, etc.), so the selection tree (left) and the
* sortable track list (right) sit side by side.
*
* Transposed from the retired matminimal theme CSS, which was tied to the old
* adminimal-based admin theme. The selectors target the widget's own markup
* classes and are admin-theme agnostic (works under Gin 4 and Gin 5).
*/
function materio_admin_field_widget_single_element_form_alter(array &$element, \Drupal\Core\Form\FormStateInterface $form_state, array $context) {
if (isset($context['widget']) && $context['widget'] instanceof TermReferenceTree) {
$element['#attached']['library'][] = 'materio_admin/term_reference_tree';
}
}
/**
* Implements hook_page_attachments().
*
* Loads the general admin table styling on every admin route (compact
* paddings + constrained widths, replacing the old matminimal rules).
*
* Also loads the term reference tree widget layout (selection tree left,
* sortable track list right) on admin routes. Attaching it here instead of
* hook_field_widget_single_element_form_alter() keeps the widget element's
* own #attached libraries intact: setting #attached in that alter hook
* prevented FormBuilder's element-info defaults merge ($element += $info)
* from applying the checkbox_tree element #attached, which silently dropped
* term_reference_tree/term_reference_tree_js and _css.
*/
function materio_admin_page_attachments(array &$attachments) {
if (\Drupal::service('router.admin_context')->isAdminRoute()) {
$attachments['#attached']['library'][] = 'materio_admin/admin_tables';
$attachments['#attached']['library'][] = 'materio_admin/gin_darkmode';
$attachments['#attached']['library'][] = 'materio_admin/term_reference_tree';
}
}