mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
test: add ShareLinkTest + PureLogicTest (TDD), fix coverMap undefined in SearchController
This commit is contained in:
@@ -132,7 +132,7 @@ $checkedFormatsForSiteWeb = $checkedFormatsForSiteWeb ?? [];
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<form action="<?= $formAction ?>" method="post" enctype="multipart/form-data" class="admin-form"<?= $mode === 'edit' ? ' data-beforeunload-guard' : '' ?>>
|
||||
<form action="<?= $formAction ?>" method="post" enctype="multipart/form-data" class="admin-form" data-beforeunload-guard>
|
||||
<?= $hiddenFields ?>
|
||||
|
||||
<p class="required-note"><span class="asterisk">*</span> Champs obligatoires</p>
|
||||
@@ -173,50 +173,31 @@ $checkedFormatsForSiteWeb = $checkedFormatsForSiteWeb ?? [];
|
||||
$options = $languages;
|
||||
$checked = $formData["languages"] ?? [];
|
||||
$required = true;
|
||||
$hxPost = "/language-autre-fragment.php";
|
||||
$hxTarget = "#language-autre-row";
|
||||
$hxSwap = "outerHTML";
|
||||
include APP_ROOT . "/templates/partials/form/checkbox-list.php";
|
||||
unset($hxSwap);
|
||||
?>
|
||||
<?php
|
||||
$name = "language_autre";
|
||||
$label = "Autre(s) langue(s) :";
|
||||
$value = $oldFn("language_autre");
|
||||
$required = empty($formData["languages"]);
|
||||
$hint =
|
||||
"Si votre TFE contient une langue absente de la liste, précisez-la ici.";
|
||||
include APP_ROOT . "/templates/partials/form/text-field.php";
|
||||
$_langAutreRequired = empty($formData["languages"]);
|
||||
$_langAutreValue = $oldFn("language_autre");
|
||||
?>
|
||||
<div id="language-autre-row">
|
||||
<div>
|
||||
<label for="language_autre">Autre(s) langue(s) :<?= $_langAutreRequired ? ' <span class="asterisk">*</span>' : '' ?></label>
|
||||
<div>
|
||||
<input type="text"
|
||||
id="language_autre"
|
||||
name="language_autre"
|
||||
value="<?= $_langAutreValue ?>"
|
||||
<?= $_langAutreRequired ? 'required' : '' ?>>
|
||||
<small>Si votre TFE contient une langue absente de la liste, précisez-la ici.</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php unset($_langAutreRequired, $_langAutreValue); ?>
|
||||
</fieldset>
|
||||
<script>
|
||||
(function () {
|
||||
var fs = document.getElementById('languages-fieldset');
|
||||
if (!fs) return;
|
||||
var autreInput = fs.querySelector('input[name="language_autre"]');
|
||||
if (!autreInput) return;
|
||||
var autreLabel = fs.querySelector('label[for="language_autre"]');
|
||||
function update() {
|
||||
var anyChecked = fs.querySelectorAll('input[name="languages[]"]').length > 0
|
||||
? Array.from(fs.querySelectorAll('input[name="languages[]"]')).some(function(cb){ return cb.checked; })
|
||||
: false;
|
||||
autreInput.required = !anyChecked;
|
||||
if (autreLabel) {
|
||||
var star = autreLabel.querySelector('.asterisk');
|
||||
if (!anyChecked && !star) {
|
||||
var s = document.createElement('span');
|
||||
s.className = 'asterisk';
|
||||
s.textContent = '*';
|
||||
autreLabel.appendChild(document.createTextNode(' '));
|
||||
autreLabel.appendChild(s);
|
||||
} else if (anyChecked && star) {
|
||||
star.previousSibling && star.previousSibling.nodeType === 3 && star.previousSibling.remove();
|
||||
star.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
fs.addEventListener('change', function(e) {
|
||||
if (e.target && e.target.name === 'languages[]') update();
|
||||
});
|
||||
update();
|
||||
})();
|
||||
</script>
|
||||
|
||||
<!-- ═══════════════════ Mots-clés ═══════════════════ -->
|
||||
<fieldset>
|
||||
|
||||
Reference in New Issue
Block a user