mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-27 00:59:18 +02:00
Migrate all <img>-based icons to inline SVG via PHP helper
Replace every <img src="/assets/icons/..."> with <?= icon('name') ?>
across 26 template files. The PHP helper inlines the SVG markup into the
DOM so CSS color cascades naturally through fill="currentColor".
- Add src/icon.php helper: reads SVG file, sets width/height to 1em,
injects aria-hidden, supports optional CSS class
- Fix 12 icon SVGs that had hardcoded fill="#000000" or missing fill attr
- Replace search.svg with Phosphor fill-based magnifying glass
- Add explicit SVG sizes for admin header nav icons (16px/20px)
- Scope public search icon CSS to form[role=search]:not(.header-search-form)
to avoid breaking admin header layout; change stroke to fill
- Remove <img> filter: brightness(0) invert(1) hacks from admin.css
This commit is contained in:
@@ -73,11 +73,11 @@
|
||||
<div class="admin-actions">
|
||||
<a href="/partage/<?= urlencode($link['slug']) ?>" target="_blank" rel="noopener"
|
||||
class="admin-icon-btn admin-icon-btn--view" title="Visiter le formulaire">
|
||||
<img src="/assets/icons/play-triangle.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('play-triangle') ?>
|
||||
</a>
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--copy" title="Copier l'URL"
|
||||
onclick="copyUrl(<?= $link['id'] ?>)">
|
||||
<img src="/assets/icons/copy-duplicate.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('copy-duplicate') ?>
|
||||
</button>
|
||||
<form method="post" action="actions/acces-etudiante.php" class="publish-form">
|
||||
<input type="hidden" name="csrf_token" value="<?= htmlspecialchars($_SESSION['csrf_token']) ?>">
|
||||
@@ -87,15 +87,15 @@
|
||||
class="admin-icon-btn <?= $link['is_active'] ? 'admin-icon-btn--unpublish' : 'admin-icon-btn--publish' ?>"
|
||||
title="<?= $link['is_active'] ? 'Désactiver' : 'Activer' ?>">
|
||||
<?php if ($link['is_active']): ?>
|
||||
<img src="/assets/icons/columns.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('columns') ?>
|
||||
<?php else: ?>
|
||||
<img src="/assets/icons/play-triangle.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('play-triangle') ?>
|
||||
<?php endif; ?>
|
||||
</button>
|
||||
</form>
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--key" title="Modifier le mot de passe"
|
||||
onclick="openPasswordDialog(<?= $link['id'] ?>, <?= $hasPassword ? 'true' : 'false' ?>)">
|
||||
<img src="/assets/icons/fingerprint.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('fingerprint') ?>
|
||||
</button>
|
||||
<form method="post" action="actions/acces-etudiante.php" class="publish-form"
|
||||
id="delete-link-form-<?= $link['id'] ?>">
|
||||
@@ -104,7 +104,7 @@
|
||||
<input type="hidden" name="id" value="<?= $link['id'] ?>">
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--delete" title="Supprimer"
|
||||
onclick="openDeleteLinkDialog(<?= $link['id'] ?>)">
|
||||
<img src="/assets/icons/trash.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('trash') ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
<button type="button" class="admin-icon-btn" title="Copier le mot de passe"
|
||||
onclick="event.stopPropagation(); copyTextToClipboard(document.getElementById('pwd-<?= $link['id'] ?>').value)"
|
||||
style="width:24px;height:24px;">
|
||||
<img src="/assets/icons/copy-duplicate.svg" width="16" height="16" alt="" aria-hidden="true">
|
||||
<?= icon('copy-duplicate') ?>
|
||||
</button>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
@@ -100,11 +100,11 @@
|
||||
<div class="admin-actions">
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--edit" title="Éditer"
|
||||
onclick="event.stopPropagation(); openEditDialog(<?= $link['id'] ?>, <?= htmlspecialchars(json_encode($linkName), ENT_QUOTES) ?>, <?= $hasLinkPassword ? 'true' : 'false' ?>, <?= htmlspecialchars(json_encode($linkExpiresVal), ENT_QUOTES) ?>)">
|
||||
<img src="/assets/icons/pencil-note.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('pencil-note') ?>
|
||||
</button>
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--copy" title="Copier l'URL"
|
||||
onclick="event.stopPropagation(); copyUrl(<?= $link['id'] ?>)">
|
||||
<img src="/assets/icons/copy-duplicate.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('copy-duplicate') ?>
|
||||
</button>
|
||||
<form method="post" action="actions/acces-etudiante.php" class="publish-form" onclick="event.stopPropagation()">
|
||||
<input type="hidden" name="csrf_token" value="<?= htmlspecialchars($_SESSION['csrf_token']) ?>">
|
||||
@@ -114,9 +114,9 @@
|
||||
class="admin-icon-btn <?= $link['is_active'] ? 'admin-icon-btn--unpublish' : 'admin-icon-btn--publish' ?>"
|
||||
title="<?= $link['is_active'] ? 'Désactiver' : 'Activer' ?>">
|
||||
<?php if ($link['is_active']): ?>
|
||||
<img src="/assets/icons/columns.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('columns') ?>
|
||||
<?php else: ?>
|
||||
<img src="/assets/icons/play-triangle.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('play-triangle') ?>
|
||||
<?php endif; ?>
|
||||
</button>
|
||||
</form>
|
||||
@@ -127,7 +127,7 @@
|
||||
<input type="hidden" name="id" value="<?= $link['id'] ?>">
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--archive" title="Archiver"
|
||||
onclick="openArchiveLinkDialog(<?= $link['id'] ?>)">
|
||||
<img src="/assets/icons/monitor.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('monitor') ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
@@ -179,7 +179,7 @@
|
||||
<td class="admin-actions-col">
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--delete" title="Supprimer"
|
||||
onclick="openDeleteArchivedLinkDialog(<?= $link['id'] ?>)">
|
||||
<img src="/assets/icons/trash.svg" width="16" height="16" alt="" aria-hidden="true">
|
||||
<?= icon('trash') ?>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<main id="main-content">
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><img src="/assets/icons/arrow-left-circle.svg" width="32" height="32" alt="" aria-hidden="true"></a> Ajouter un TFE</h1>
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><?= icon('arrow-left-circle') ?></a> Ajouter un TFE</h1>
|
||||
|
||||
<?php
|
||||
// All form variables are already in scope from FormBootstrap::adminFormVariables().
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
data-key="<?= $aproposKey ?>">+ Ajouter une entrée</button>
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--delete delete-group-btn-f"
|
||||
data-key="<?= $aproposKey ?>" title="Supprimer ce contact">
|
||||
<img src="/assets/icons/trash-slash.svg" width="20" height="20" alt="" aria-hidden="true">
|
||||
<?= icon('trash-slash') ?>
|
||||
</button>
|
||||
</fieldset>
|
||||
<?php endforeach; ?>
|
||||
@@ -88,7 +88,7 @@
|
||||
data-key="<?= $aproposKey ?>">+ Ajouter une entrée</button>
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--delete delete-group-btn-f"
|
||||
data-key="<?= $aproposKey ?>" title="Supprimer ce contact">
|
||||
<img src="/assets/icons/trash-slash.svg" width="20" height="20" alt="" aria-hidden="true">
|
||||
<?= icon('trash-slash') ?>
|
||||
</button>
|
||||
</fieldset>
|
||||
</template>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<main id="main-content" class="full-editor-page">
|
||||
<h1><a href="/admin/contenus.php" class="admin-back-btn" title="Retour"><img src="/assets/icons/arrow-left-circle.svg" width="32" height="32" alt="" aria-hidden="true"></a> Éditer : <?= htmlspecialchars($editTitle) ?></h1>
|
||||
<h1><a href="/admin/contenus.php" class="admin-back-btn" title="Retour"><?= icon('arrow-left-circle') ?></a> Éditer : <?= htmlspecialchars($editTitle) ?></h1>
|
||||
|
||||
<?php if ($editType === 'about_page'): ?>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
</div>
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--delete remove-sidebar-link-btn"
|
||||
title="Supprimer ce lien">
|
||||
<img src="/assets/icons/trash-slash.svg" width="20" height="20" alt="" aria-hidden="true">
|
||||
<?= icon('trash-slash') ?>
|
||||
</button>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
@@ -87,7 +87,7 @@
|
||||
</div>
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--delete remove-sidebar-link-btn"
|
||||
title="Supprimer ce lien">
|
||||
<img src="/assets/icons/trash-slash.svg" width="20" height="20" alt="" aria-hidden="true">
|
||||
<?= icon('trash-slash') ?>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<td>
|
||||
<a href="/admin/contenus-edit.php?slug=<?= urlencode($p['slug']) ?>"
|
||||
class="admin-icon-btn admin-icon-btn--edit" title="Éditer">
|
||||
<img src="/assets/icons/pencil-note.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('pencil-note') ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -309,10 +309,10 @@ function languesStartRename(id) {
|
||||
+ '<input type="hidden" name="language_id" value="' + id + '">'
|
||||
+ '<input type="text" name="new_name" value="' + cell.getAttribute('data-name') + '" required class="admin-input--inline">'
|
||||
+ '<button type="submit" class="admin-icon-btn admin-icon-btn--edit" title="Valider">'
|
||||
+ '<img src="/assets/icons/check-circle.svg" width="32" height="32" alt="" aria-hidden="true">'
|
||||
+ '<?= icon('check-circle') ?>'
|
||||
+ '</button>'
|
||||
+ '<button type="button" class="admin-icon-btn admin-icon-btn--delete" onclick="languesCancelRename(' + id + ')" title="Annuler">'
|
||||
+ '<img src="/assets/icons/x-close.svg" width="32" height="32" alt="" aria-hidden="true">'
|
||||
+ '<?= icon('x-close') ?>'
|
||||
+ '</button></form>';
|
||||
cell.querySelector('input').focus();
|
||||
}
|
||||
@@ -321,7 +321,7 @@ function languesCancelRename(id) {
|
||||
var cell = document.getElementById('lang-name-' + id);
|
||||
cell.innerHTML = '<span class="tag-name-cell">' + cell.getAttribute('data-name') + '</span>'
|
||||
+ '<button type="button" class="admin-icon-btn admin-icon-btn--edit" title="Renommer" onclick="languesStartRename(' + id + ')">'
|
||||
+ '<img src="/assets/icons/pencil-note.svg" width="32" height="32" alt="" aria-hidden="true">'
|
||||
+ '<?= icon('pencil-note') ?>'
|
||||
+ '</button>';
|
||||
}
|
||||
|
||||
@@ -488,10 +488,10 @@ function motsclesStartRename(id) {
|
||||
+ '<input type="hidden" name="tag_id" value="' + id + '">'
|
||||
+ '<input type="text" name="new_name" value="' + cell.getAttribute('data-name') + '" required class="admin-input--inline">'
|
||||
+ '<button type="submit" class="admin-icon-btn admin-icon-btn--edit" title="Valider">'
|
||||
+ '<img src="/assets/icons/check-circle.svg" width="32" height="32" alt="" aria-hidden="true">'
|
||||
+ '<?= icon('check-circle') ?>'
|
||||
+ '</button>'
|
||||
+ '<button type="button" class="admin-icon-btn admin-icon-btn--delete" onclick="motsclesCancelRename(' + id + ')" title="Annuler">'
|
||||
+ '<img src="/assets/icons/x-close.svg" width="32" height="32" alt="" aria-hidden="true">'
|
||||
+ '<?= icon('x-close') ?>'
|
||||
+ '</button></form>';
|
||||
cell.querySelector('input').focus();
|
||||
}
|
||||
@@ -500,7 +500,7 @@ function motsclesCancelRename(id) {
|
||||
var cell = document.getElementById('motscles-name-' + id);
|
||||
cell.innerHTML = '<span class="tag-name-cell">' + cell.getAttribute('data-name') + '</span>'
|
||||
+ '<button type="button" class="admin-icon-btn admin-icon-btn--edit" title="Renommer" onclick="motsclesStartRename(' + id + ')">'
|
||||
+ '<img src="/assets/icons/pencil-note.svg" width="32" height="32" alt="" aria-hidden="true">'
|
||||
+ '<?= icon('pencil-note') ?>'
|
||||
+ '</button>';
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<main id="main-content">
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><img src="/assets/icons/arrow-left-circle.svg" width="32" height="32" alt="" aria-hidden="true"></a> Modifier un TFE</h1>
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><?= icon('arrow-left-circle') ?></a> Modifier un TFE</h1>
|
||||
|
||||
<?php
|
||||
// All form variables are already in scope from FormBootstrap::adminFormVariables().
|
||||
|
||||
@@ -87,7 +87,7 @@ $sortArrow = function(string $col) use ($sortCol, $sortDir): string {
|
||||
<td class="admin-actions-col">
|
||||
<div class="admin-actions">
|
||||
<a href="/admin/edit.php?id=<?= $thesis['id'] ?>" class="admin-icon-btn admin-icon-btn--edit" title="Éditer" onclick="event.stopPropagation()">
|
||||
<img src="/assets/icons/pencil-note.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('pencil-note') ?>
|
||||
</a>
|
||||
<form method="post" action="actions/publish.php" class="publish-form" onclick="event.stopPropagation()">
|
||||
<input type="hidden" name="csrf_token" value="<?= htmlspecialchars($_SESSION['csrf_token']) ?>">
|
||||
@@ -95,12 +95,12 @@ $sortArrow = function(string $col) use ($sortCol, $sortDir): string {
|
||||
<?php if ($thesis['is_published']): ?>
|
||||
<input type="hidden" name="action" value="unpublish">
|
||||
<button type="submit" class="admin-icon-btn admin-icon-btn--unpublish" title="Dépublier">
|
||||
<img src="/assets/icons/eye-slash.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('eye-slash') ?>
|
||||
</button>
|
||||
<?php else: ?>
|
||||
<input type="hidden" name="action" value="publish">
|
||||
<button type="submit" class="admin-icon-btn admin-icon-btn--publish" title="Publier">
|
||||
<img src="/assets/icons/eye.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('eye') ?>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</form>
|
||||
@@ -109,7 +109,7 @@ $sortArrow = function(string $col) use ($sortCol, $sortDir): string {
|
||||
<input type="hidden" name="thesis_id" value="<?= $thesis['id'] ?>">
|
||||
<button type="button" class="admin-icon-btn admin-icon-btn--delete" title="Supprimer"
|
||||
onclick="event.stopPropagation(); confirmDelete(<?= $thesis['id'] ?>, <?= htmlspecialchars(json_encode($thesis['title']), ENT_QUOTES) ?>)">
|
||||
<img src="/assets/icons/trash.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('trash') ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="admin-list-toolbar admin-list-toolbar--list">
|
||||
<div class="admin-toolbar-top">
|
||||
<div class="admin-toolbar-title-row">
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><img src="/assets/icons/arrow-left-circle.svg" width="32" height="32" alt="" aria-hidden="true"></a> Corbeille</h1>
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><?= icon('arrow-left-circle') ?></a> Corbeille</h1>
|
||||
<span class="admin-stat admin-stat--inline" style="margin-left:auto"><?= count($trashedTheses) ?> TFE(s)</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,7 +60,7 @@
|
||||
<input type="hidden" name="action" value="restore">
|
||||
<input type="hidden" name="thesis_id" value="<?= (int)$t['id'] ?>">
|
||||
<button type="submit" class="admin-icon-btn admin-icon-btn--edit" title="Restaurer">
|
||||
<img src="/assets/icons/archive-box.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('archive-box') ?>
|
||||
</button>
|
||||
</form>
|
||||
<form method="post" action="actions/corbeille.php" class="admin-inline-form" style="display:inline"
|
||||
@@ -69,7 +69,7 @@
|
||||
<input type="hidden" name="action" value="hard_delete">
|
||||
<input type="hidden" name="thesis_id" value="<?= (int)$t['id'] ?>">
|
||||
<button type="submit" class="admin-icon-btn admin-icon-btn--delete" title="Supprimer définitivement">
|
||||
<img src="/assets/icons/trash.svg" width="32" height="32" alt="" aria-hidden="true">
|
||||
<?= icon('trash') ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -33,7 +33,7 @@ document.addEventListener('htmx:afterSwap',()=>{document.querySelectorAll('input
|
||||
</div>
|
||||
</div>
|
||||
<div class="admin-btn-group">
|
||||
<a href="/admin/add.php" class="btn btn--primary btn--sm">+ Ajouter un TFE</a>
|
||||
<a href="/admin/add.php" class="btn btn--primary btn--sm"><?= icon('plus-circle') ?> Ajouter un TFE</a>
|
||||
<?php if ($trashCount > 0): ?>
|
||||
<a href="/admin/index.php?tab=trash" class="btn btn--sm <?= $tab === 'trash' ? 'btn--primary' : 'btn--secondary' ?>">
|
||||
Corbeille (<?= $trashCount ?>)
|
||||
@@ -42,12 +42,12 @@ document.addEventListener('htmx:afterSwap',()=>{document.querySelectorAll('input
|
||||
<?php if ($tmpTotalCount > 0): ?>
|
||||
<button type="button" class="btn btn--sm btn--secondary" id="tmp-cleanup-btn"
|
||||
onclick="document.getElementById('tmp-cleanup-dialog').showModal(); htmx.trigger('#tmp-cleanup-stats-wrapper','loadStats'); htmx.trigger('#peertube-orphans-wrapper','loadPeertube')">
|
||||
Nettoyer (<?= $tmpTotalCount ?>)
|
||||
<?= icon('trash') ?> Nettoyer (<?= $tmpTotalCount ?>)
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<button type="button" class="btn btn--primary btn--sm" id="import-dialog-btn"
|
||||
onclick="document.getElementById('import-dialog').showModal(); window.XamxamInitFilePonds()">
|
||||
Importer
|
||||
<?= icon('tray-arrow-up') ?> Importer
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
hx-indicator="#tmp-cleanup-stats-wrapper">
|
||||
<details class="n-section" open>
|
||||
<summary>
|
||||
<img src="/assets/icons/paint-brush-household.svg" width="14" height="14" alt="" aria-hidden="true">
|
||||
<?= icon('paint-brush-household') ?>
|
||||
Fichiers temporaires
|
||||
</summary>
|
||||
<p style="margin:0;color:var(--text-secondary)">Chargement…</p>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
<?php else: ?>
|
||||
<!-- ═══════════════════ ADMIN MODE: Recap page ═══════════════════ -->
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><img src="/assets/icons/arrow-left-circle.svg" width="32" height="32" alt="" aria-hidden="true"></a> Récapitulatif TFE</h1>
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><?= icon('arrow-left-circle') ?></a> Récapitulatif TFE</h1>
|
||||
|
||||
<?php if ($error): ?>
|
||||
<p class="toast" role="alert" data-type="error">⚠ <?= htmlspecialchars($error) ?></p>
|
||||
|
||||
@@ -52,10 +52,10 @@ function tagsStartRename(id) {
|
||||
+ '<input type=\"hidden\" name=\"tag_id\" value=\"' + id + '\">'
|
||||
+ '<input type=\"text\" name=\"new_name\" value=\"' + cell.getAttribute('data-name') + '\" required class=\"admin-input--inline\">'
|
||||
+ '<button type=\"submit\" class=\"admin-icon-btn admin-icon-btn--edit\" title=\"Valider\">'
|
||||
+ '<img src=\"/assets/icons/check-circle.svg\" width=\"32\" height=\"32\" alt=\"\" aria-hidden=\"true\">'
|
||||
+ '<?= icon("check-circle") ?>'
|
||||
+ '</button>'
|
||||
+ '<button type=\"button\" class=\"admin-icon-btn admin-icon-btn--delete\" onclick=\"tagsCancelRename(' + id + ')\" title=\"Annuler\">'
|
||||
+ '<img src=\"/assets/icons/x-close.svg\" width=\"32\" height=\"32\" alt=\"\" aria-hidden=\"true\">'
|
||||
+ '<?= icon("x-close") ?>'
|
||||
+ '</button></form>';
|
||||
cell.querySelector('input').focus();
|
||||
}
|
||||
@@ -64,7 +64,7 @@ function tagsCancelRename(id) {
|
||||
var cell = document.getElementById('tag-name-' + id);
|
||||
cell.innerHTML = '<span class=\"tag-name-cell\">' + cell.getAttribute('data-name') + '</span>'
|
||||
+ '<button type=\"button\" class=\"admin-icon-btn admin-icon-btn--edit\" title=\"Renommer\" onclick=\"tagsStartRename(' + id + ')\">'
|
||||
+ '<img src=\"/assets/icons/pencil-note.svg\" width=\"32\" height=\"32\" alt=\"\" aria-hidden=\"true\">'
|
||||
+ '<?= icon("pencil-note") ?>'
|
||||
+ '</button>';
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ document.addEventListener('htmx:afterSwap', function(evt) {
|
||||
<div class="admin-list-toolbar admin-list-toolbar--list" style="margin-bottom:var(--space-s)">
|
||||
<div class="admin-toolbar-top">
|
||||
<div class="admin-toolbar-title-row">
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><img src="/assets/icons/arrow-left-circle.svg" width="32" height="32" alt="" aria-hidden="true"></a> Mots-clés</h1>
|
||||
<h1><a href="/admin/" class="admin-back-btn" title="Retour à la liste"><?= icon('arrow-left-circle') ?></a> Mots-clés</h1>
|
||||
<span id="tags-total-count" class="admin-stat admin-stat--inline" style="margin-left:auto"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@ $_thesisId = $_GET['id'] ?? null;
|
||||
<nav aria-label="Navigation admin">
|
||||
<ul class="nav-left-links">
|
||||
<li><a href="/" target="_blank" rel="noopener noreferrer" class="nav-logo">
|
||||
<img src="/assets/icons/sign-out.svg" width="16" height="16" alt="" aria-hidden="true">XAMXAM<span class="sr-only"> (site public, nouvel onglet)</span>
|
||||
<?= icon('sign-out') ?>XAMXAM<span class="sr-only"> (site public, nouvel onglet)</span>
|
||||
</a></li>
|
||||
</ul>
|
||||
<ul class="nav-right-links">
|
||||
@@ -29,7 +29,7 @@ $_thesisId = $_GET['id'] ?? null;
|
||||
</a></li>
|
||||
<li><a href="/admin/parametres.php" <?= in_array($_currentPage, ['parametres.php', 'system.php', 'status.php', 'logs.php']) ? 'aria-current="page"' : '' ?>>Paramètres</a></li>
|
||||
<?php if ($_isAdmin && AdminAuth::hasPassword()): ?>
|
||||
<li data-nav-logout><a href="/admin/logout.php" aria-label="Déconnexion"><img src="/assets/icons/sign-in.svg" width="20" height="20" alt="" aria-hidden="true"><span class="sr-only">Déconnexion</span></a></li>
|
||||
<li data-nav-logout><a href="/admin/logout.php" aria-label="Déconnexion"><?= icon('sign-in') ?><span class="sr-only">Déconnexion</span></a></li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</nav>
|
||||
@@ -90,7 +90,7 @@ $_thesisId = $_GET['id'] ?? null;
|
||||
|
||||
<?php if ($_isAdmin && !$_isLogin): ?>
|
||||
<div class="admin-mobile-block">
|
||||
<img src="/assets/icons/desktop-monitor.svg" width="48" height="48" alt="" aria-hidden="true">
|
||||
<?= icon('desktop-monitor') ?>
|
||||
<h2>Section administrateur</h2>
|
||||
<p>L'administration n'est pas accessible sur mobile. Veuillez utiliser un ordinateur.</p>
|
||||
</div>
|
||||
@@ -106,7 +106,7 @@ $searchBarValue = $searchBarValue ?? $_GET['query'] ?? '';
|
||||
role="search" aria-label="Recherche" class="header-search-form">
|
||||
<label for="site-search-input" class="sr-only">Recherche</label>
|
||||
<div class="header-search-input-wrap">
|
||||
<img src="/assets/icons/search.svg" width="24" height="24" alt="" aria-hidden="true" class="header-search-icon">
|
||||
<?= icon('search', 0, 'header-search-icon') ?>
|
||||
<input
|
||||
id="site-search-input"
|
||||
type="text"
|
||||
|
||||
@@ -100,7 +100,7 @@ $websiteLabel = htmlspecialchars($_POST['website_label'] ?? '');
|
||||
hx-swap="innerHTML"
|
||||
hx-trigger="click"
|
||||
onclick="document.getElementById('relink-modal').showModal(); window.__xamxamRelinkCtx = { queueType: 'cover', thesisId: '<?= htmlspecialchars((string)($thesisId ?? $_GET['id'] ?? '')) ?>' };">
|
||||
<img src="/assets/icons/magic-wand.svg" width="16" height="16" alt="" aria-hidden="true" style="vertical-align:-2px;margin-right:var(--space-3xs)"> Relier un fichier existant
|
||||
<?= icon('magic-wand') ?> Relier un fichier existant
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@@ -128,7 +128,7 @@ $websiteLabel = htmlspecialchars($_POST['website_label'] ?? '');
|
||||
hx-swap="innerHTML"
|
||||
hx-trigger="click"
|
||||
onclick="document.getElementById('relink-modal').showModal(); window.__xamxamRelinkCtx = { queueType: 'note_intention', thesisId: '<?= htmlspecialchars((string)($thesisId ?? $_GET['id'] ?? '')) ?>' };">
|
||||
<img src="/assets/icons/magic-wand.svg" width="16" height="16" alt="" aria-hidden="true" style="vertical-align:-2px;margin-right:var(--space-3xs)"> Relier un fichier existant
|
||||
<?= icon('magic-wand') ?> Relier un fichier existant
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@@ -166,7 +166,7 @@ $websiteLabel = htmlspecialchars($_POST['website_label'] ?? '');
|
||||
hx-swap="innerHTML"
|
||||
hx-trigger="click"
|
||||
onclick="document.getElementById('relink-modal').showModal(); window.__xamxamRelinkCtx = { queueType: 'tfe', thesisId: '<?= htmlspecialchars((string)($thesisId ?? $_GET['id'] ?? '')) ?>' };">
|
||||
<img src="/assets/icons/magic-wand.svg" width="16" height="16" alt="" aria-hidden="true" style="vertical-align:-2px;margin-right:var(--space-3xs)"> Relier un fichier existant
|
||||
<?= icon('magic-wand') ?> Relier un fichier existant
|
||||
</button>
|
||||
<?php if ($peerTubeEnabled): ?>
|
||||
<button type="button" class="btn btn--sm btn--ghost peertube-browser-trigger"
|
||||
@@ -177,7 +177,7 @@ $websiteLabel = htmlspecialchars($_POST['website_label'] ?? '');
|
||||
hx-trigger="click"
|
||||
onclick="document.getElementById('peertube-relink-modal').showModal(); window.__xamxamPeertubeRelinkCtx = { thesisId: '<?= htmlspecialchars((string)($thesisId ?? $_GET['id'] ?? '')) ?>' };"
|
||||
>
|
||||
<img src="/assets/icons/magic-wand.svg" width="16" height="16" alt="" aria-hidden="true" style="vertical-align:-2px;margin-right:var(--space-3xs)"> Relier une vidéo PeerTube
|
||||
<?= icon('magic-wand') ?> Relier une vidéo PeerTube
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
@@ -207,7 +207,7 @@ $websiteLabel = htmlspecialchars($_POST['website_label'] ?? '');
|
||||
hx-swap="innerHTML"
|
||||
hx-trigger="click"
|
||||
onclick="document.getElementById('relink-modal').showModal(); window.__xamxamRelinkCtx = { queueType: 'annexe', thesisId: '<?= htmlspecialchars((string)($thesisId ?? $_GET['id'] ?? '')) ?>' };">
|
||||
<img src="/assets/icons/magic-wand.svg" width="16" height="16" alt="" aria-hidden="true" style="vertical-align:-2px;margin-right:var(--space-3xs)"> Relier un fichier existant
|
||||
<?= icon('magic-wand') ?> Relier un fichier existant
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
@@ -65,7 +65,7 @@ $adminMode = $adminMode ?? false;
|
||||
<br>
|
||||
</label>
|
||||
<details class="licence-details">
|
||||
<summary class="licence-summary"> <img src="/assets/icons/circle-i.svg" width="1rem" height="16" alt="" aria-hidden="true"> Info</summary>
|
||||
<summary class="licence-summary"> <?= icon('circle-i') ?> Info</summary>
|
||||
<p>
|
||||
Mon TFE est en libre accès à tout le monde sur la plateforme des TFE ainsi que dans la bibliothèque de l'erg. Je suis conscient des responsabilités et obligations légales qui viennent avec une diffusion externe – et acquiesce avoir lu la documentation prévue à cet effet par l'erg, ainsi qu'avoir discuté des enjeux d'une publication avec l'équipe pédagogique. J'accepte de partager mes droits de diffusion avec l'erg, ce uniquement dans le cadre d'une diffusion sur la plateforme xamxam.
|
||||
</p>
|
||||
@@ -86,7 +86,7 @@ $adminMode = $adminMode ?? false;
|
||||
</label>
|
||||
<br>
|
||||
<details class="licence-details">
|
||||
<summary class="licence-summary"> <img src="/assets/icons/circle-i.svg" width="1rem" height="16" alt="" aria-hidden="true"> Info</summary>
|
||||
<summary class="licence-summary"> <?= icon('circle-i') ?> Info</summary>
|
||||
<p>
|
||||
Mon TFE et ma note d'intention ne sont accessibles que sur place en physique ainsi que sur la plateforme xamxam par la communauté erg. Une note descriptive est disponible sur le site à toustes. J'autorise une (ré-)utilisation et diffusion dans un contexte académique et didactique au sein de l'erg.
|
||||
</p>
|
||||
@@ -109,7 +109,7 @@ $adminMode = $adminMode ?? false;
|
||||
</label>
|
||||
<br>
|
||||
<details class="licence-details">
|
||||
<summary class="licence-summary"> <img src="/assets/icons/circle-i.svg" width="1rem" height="16" alt="" aria-hidden="true"> Info</summary>
|
||||
<summary class="licence-summary"> <?= icon('circle-i') ?> Info</summary>
|
||||
<p>
|
||||
Mon TFE n'est pas disponible en physique ni sur le site. Une note descriptive est disponible sur le site.
|
||||
</p>
|
||||
|
||||
@@ -45,7 +45,7 @@ $langCount = count($selectedLanguages);
|
||||
<input type="hidden" name="<?= htmlspecialchars($name) ?>[]" value="<?= htmlspecialchars($lang['name']) ?>">
|
||||
<span class="tag-pill-name"><?= htmlspecialchars($lang['name']) ?></span>
|
||||
<button type="button" class="tag-pill-remove" title="Retirer « <?= htmlspecialchars($lang['name']) ?> »" aria-label="Retirer <?= htmlspecialchars($lang['name']) ?>">
|
||||
<img src="/assets/icons/trash-slash.svg" width="16" height="16" alt="" aria-hidden="true">
|
||||
<?= icon('trash-slash') ?>
|
||||
</button>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -48,7 +48,7 @@ $belowMin = $required && $tagCount < $minTags;
|
||||
<input type="hidden" name="<?= htmlspecialchars($name) ?>[]" value="<?= htmlspecialchars($tag['name']) ?>">
|
||||
<span class="tag-pill-name"><?= htmlspecialchars($tag['name']) ?></span>
|
||||
<button type="button" class="tag-pill-remove" title="Retirer « <?= htmlspecialchars($tag['name']) ?> »" aria-label="Retirer <?= htmlspecialchars($tag['name']) ?>">
|
||||
<img src="/assets/icons/trash-slash.svg" width="16" height="16" alt="" aria-hidden="true">
|
||||
<?= icon('trash-slash') ?>
|
||||
</button>
|
||||
</span>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -6,7 +6,7 @@ $_sbValue = $searchBarValue ?? $_GET['query'] ?? '';
|
||||
<form method="GET" action="/search"
|
||||
role="search" aria-label="Recherche">
|
||||
<label for="site-search-input" class="sr-only">Recherche</label>
|
||||
<img src="/assets/icons/search.svg" width="24" height="24" alt="" aria-hidden="true">
|
||||
<?= icon('search') ?>
|
||||
<input
|
||||
id="site-search-input"
|
||||
type="text"
|
||||
|
||||
Reference in New Issue
Block a user