feat: ajouter bouton de recherche dans la sidebar avec trigger unifié data-search-toggle, styles bouton transparent full-width, section dédiée en haut de navigation, et documentation Docker pour suppression du thème

This commit is contained in:
Bruno Charest 2026-02-20 08:11:16 -05:00
parent 28b2ddaec3
commit 5ba43fa9d2
4 changed files with 32 additions and 3 deletions

View File

@ -163,6 +163,16 @@ Le thème offre un layout de type application avec barre latérale fixe, navigat
git clone https://github.com/votre-utilisateur/shaarli_bc_theme.git git clone https://github.com/votre-utilisateur/shaarli_bc_theme.git
``` ```
### 3. Supprimer le thème en place
```bash
# Via Docker
docker exec -it shaarli_bookmarks rm -rf /var/www/shaarli/tpl/shaarli-pro
# Ou manuellement
rm -rf /path/to/shaarli/tpl/shaarli-pro
```
### 2. Copie dans Shaarli ### 2. Copie dans Shaarli
Copier le dossier `shaarli-pro/` dans le répertoire `tpl/` de votre instance Shaarli, à côté du dossier `default/` : Copier le dossier `shaarli-pro/` dans le répertoire `tpl/` de votre instance Shaarli, à côté du dossier `default/` :

View File

@ -223,6 +223,14 @@ a:focus:not(:focus-visible) {
font-size: 0.9rem; font-size: 0.9rem;
transition: all 0.2s ease; transition: all 0.2s ease;
margin-bottom: 0.125rem; margin-bottom: 0.125rem;
width: 100%;
}
.sidebar-search-trigger {
border: none;
background: transparent;
text-align: left;
cursor: pointer;
} }
.sidebar-link:hover { .sidebar-link:hover {

View File

@ -86,7 +86,7 @@ document.addEventListener('DOMContentLoaded', () => {
// ===== Search Overlay (Spotlight Style) ===== // ===== Search Overlay (Spotlight Style) =====
const searchOverlay = document.getElementById('search-overlay'); const searchOverlay = document.getElementById('search-overlay');
const searchToggleBtn = document.getElementById('search-toggle-btn'); const searchToggleBtns = document.querySelectorAll('[data-search-toggle]');
const searchModalInput = document.getElementById('search-modal-input'); const searchModalInput = document.getElementById('search-modal-input');
const searchResults = document.getElementById('search-results'); const searchResults = document.getElementById('search-results');
const searchTagsBtn = document.getElementById('search-tags-btn'); const searchTagsBtn = document.getElementById('search-tags-btn');
@ -340,7 +340,9 @@ document.addEventListener('DOMContentLoaded', () => {
} }
} }
searchToggleBtn?.addEventListener('click', openSearch); searchToggleBtns.forEach((btn) => {
btn.addEventListener('click', openSearch);
});
// Close search on overlay click // Close search on overlay click
searchOverlay?.addEventListener('click', (e) => { searchOverlay?.addEventListener('click', (e) => {

View File

@ -15,6 +15,15 @@ Bookmarklet detection logic
</div> </div>
<nav class="sidebar-nav" aria-label="Menu latéral"> <nav class="sidebar-nav" aria-label="Menu latéral">
<div class="sidebar-section">
<div class="sidebar-section-title">Recherche</div>
<button type="button" class="sidebar-link sidebar-search-trigger" data-search-toggle
aria-label="Ouvrir la recherche">
<i class="mdi mdi-magnify" aria-hidden="true"></i>
<span>Rechercher</span>
</button>
</div>
<div class="sidebar-section"> <div class="sidebar-section">
<div class="sidebar-section-title">Navigation</div> <div class="sidebar-section-title">Navigation</div>
<a href="{$base_path}/" class="sidebar-link{if="$pageName=='linklist' && empty($search_tags)"} active{/if}" <a href="{$base_path}/" class="sidebar-link{if="$pageName=='linklist' && empty($search_tags)"} active{/if}"
@ -146,7 +155,7 @@ Bookmarklet detection logic
<i class="mdi mdi-bookmark-outline" aria-hidden="true"></i> <i class="mdi mdi-bookmark-outline" aria-hidden="true"></i>
<span>READ IT LATER</span> <span>READ IT LATER</span>
</a> </a>
<button class="header-nav-link" id="search-toggle-btn" aria-label="Rechercher (raccourci S)"> <button class="header-nav-link" id="search-toggle-btn" data-search-toggle aria-label="Rechercher (raccourci S)">
<i class="mdi mdi-magnify" aria-hidden="true"></i> <i class="mdi mdi-magnify" aria-hidden="true"></i>
<span>RECHERCHE</span> <span>RECHERCHE</span>
</button> </button>