Files
xamxam/app/templates/partials/form/fieldset-licence-explanation.php
Pontoporeia 95fcbc919a Remove required from all admin add/edit form inputs
- Skip required-field validation for orientation/ap/finality/licence/jury in admin add+edit
2026-05-13 17:59:13 +02:00

113 lines
5.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Shared partial — "Degrés d'ouverture et licences" fieldset.
*
* Renders:
* 1. Généralités (editable via form help blocks)
* 2. Radio choice: Libre / Interne / Interdit (filtered by enabled flags)
* 3. Licence dropdown + custom licence text input
* 4. CC2r checkbox
*
* Variables consumed:
* array $formData — raw form data for repopulation
* array $licenseTypes — [{id, name}]
* bool $libreEnabled — show Libre option (always true for admin)
* bool $interneEnabled — show Interne option
* bool $interditEnabled — show Interdit option
* string $generalitiesHtml — HTML content for Généralités section (editable)
* int $defaultAccessTypeId — default selected access type (default: 2)
*/
$formData = $formData ?? [];
$licenseTypes = $licenseTypes ?? [];
$libreEnabled = $libreEnabled ?? true;
$interneEnabled = $interneEnabled ?? true;
$interditEnabled = $interditEnabled ?? true;
$generalitiesHtml = $generalitiesHtml ?? '';
$defaultAccessTypeId = $defaultAccessTypeId ?? 2;
$adminMode = $adminMode ?? false;
?>
<fieldset class="licence-explanation">
<legend>Degrés d'ouverture et licences</legend>
<!-- Généralités -->
<div class="licence-generalites">
<h3>Généralités</h3>
<?php if ($generalitiesHtml): ?>
<div class="form-help-editable"><?= $generalitiesHtml ?></div>
<?php else: ?>
<ul>
<li>L'auteur·ice peut décider entre trois degrés de partage de son travail : <strong>libre</strong>, <strong>interne</strong>, <strong>interdit</strong>.</li>
<li>L'auteur·ice peut, à tout moment, décider de <strong>restreindre</strong> le degré d'accès à son travail. Il ne peut néanmoins pas l'ouvrir davantage.</li>
<li>Le choix effectué dans ce formulaire sera d'application <strong>une semaine après la soutenance orale</strong> de l'auteur·ice. Celui-ci peut donc décider de restreindre ce choix avant sa publication (mais pas l'ouvrir).</li>
<li>L'erg se réserve le droit de restreindre le degré d'ouverture du TFE ce en accord avec le règlement.</li>
<li>Dans tous les cas, l'auteur·ice garde les droits d'auteurs, de diffusion, d'utilisation, etc. de son travail sauf si la licence choisie restreindrait ses droits.</li>
<li>La diffusion « xamxam » est indépendante de la diffusion à la BAIU.</li>
</ul>
<?php endif; ?>
</div>
<!-- Degré d'ouverture -->
<div class="licence-choice">
<h3>J'autorise l'erg à archiver mon TFE de la manière suivante :</h3>
<?php $selectedAccess = $formData['access_type_id'] ?? (string)$defaultAccessTypeId; ?>
<?php if ($libreEnabled): ?>
<div class="licence-degree">
<label class="admin-checkbox-label">
<input type="radio" name="access_type_id" value="1"
<?= $selectedAccess === '1' ? 'checked' : '' ?> <?= $adminMode ? '' : 'required' ?>>
<strong>🔓 Libre</strong> — Mon TFE est en libre accès à tout le monde sur la plateforme des TFE ainsi que dans la bibliothèque de l'erg.
</label>
</div>
<?php endif; ?>
<?php if ($interneEnabled): ?>
<div class="licence-degree">
<label class="admin-checkbox-label">
<input type="radio" name="access_type_id" value="2"
<?= $selectedAccess === '2' ? 'checked' : '' ?> <?= $adminMode ? '' : 'required' ?>>
<strong>🔒 Interne</strong> — Mon TFE n'est accessible que sur place en physique. Une note descriptive est disponible sur le site.
</label>
</div>
<?php endif; ?>
<?php if ($interditEnabled): ?>
<div class="licence-degree">
<label class="admin-checkbox-label">
<input type="radio" name="access_type_id" value="3"
<?= $selectedAccess === '3' ? 'checked' : '' ?> <?= $adminMode ? '' : 'required' ?>>
<strong>🚫 Interdit</strong> — Mon TFE n'est pas disponible en physique ni sur le site. Une note descriptive est disponible sur le site.
</label>
</div>
<?php endif; ?>
<p class="licence-note"><em>L'auteur·ice peut, à tout moment, décider de restreindre son propre choix. Iel ne peut par contre pas l'ouvrir.</em></p>
</div>
<!-- Licence -->
<div class="licence-license-choice">
<h3>Licence du TFE</h3>
<?php
$name = 'license_id'; $label = 'Licence :'; $options = $licenseTypes;
$selected = $formData['license_id'] ?? ''; $placeholder = '— Sélectionner —'; $required = !$adminMode;
include APP_ROOT . '/templates/partials/form/select-field.php';
?>
<?php
$name = 'license_custom'; $label = 'Ou précisez une autre licence :';
$value = htmlspecialchars($formData['license_custom'] ?? '');
$hint = 'Ex: CC BY-NC 4.0, Tous droits réservés...';
include APP_ROOT . '/templates/partials/form/text-field.php';
?>
<div class="admin-form-group">
<label class="admin-checkbox-label">
<input type="checkbox" name="cc2r" value="1"
<?= !empty($formData['cc2r']) ? 'checked' : '' ?>>
J'accepte les Conditions Collectives de Réutilisation (CC2r)
</label>
<small><a href="https://cc2r.net/" target="_blank" rel="noopener">En savoir plus sur la CC2r ↗</a></small>
</div>
</div>
</fieldset>