From eba2e6b14484c124f3c87ff95cd7ee640833e5d3 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Fri, 28 Aug 2026 15:35:20 +0200 Subject: feat(hub): cross-group search with reuse of existing views MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Search page fetches indexes from all groups, then renders consolidated entries through the existing FilesPanel, VideoApp, and MusicApp components — no reimplemented views. Groups appear as top-level directories in the file browser; video/music entries use a synthetic root with per-entry transport refs for thumbnails and metadata across groups. Music player lifted to app.js with getConnection(groupId) for cross-group playback. Connection pool (max 3, LRU eviction) manages lazy WebRTC connections. All 10 locales updated with search keys. Co-Authored-By: Claude Opus 4.6 --- packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js') diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js index 60e56c9..92ab2b9 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js @@ -522,15 +522,18 @@ export default { 'search.title': 'Rechercher des fichiers', 'search.placeholder': 'Rechercher dans tous les groupes...', 'search.no_results': 'Aucun fichier ne correspond à votre recherche.', - 'search.synced': 'synchronisé {ago}', - 'search.cache_note': 'La recherche s’appuie sur l’état de chaque groupe lors de ' - + 'votre dernière visite. Ouvrez un groupe pour mettre ses fichiers à jour ici.', 'search.col_group': 'Groupe', 'search.result_count': { one: '{n} fichier trouvé', other: '{n} fichiers trouvés', }, - 'search.hint': 'Recherche les noms de fichiers dans tous les index de groupe en cache.', + 'search.hint': 'Saisissez un terme pour rechercher dans tous vos groupes.', + 'search.indexing': 'Indexation de {done} / {total} groupes…', + 'search.unreachable': { one: '{n} groupe injoignable', other: '{n} groupes injoignables' }, + 'search.view_files': 'Fichiers', + 'search.view_videos': 'Vidéos', + 'search.view_music': 'Musique', + 'search.connecting': 'Connexion aux groupes…', // Presence, chat paging, leaving a group, the profile page 'presence.online': 'Un node servant ce groupe est en ligne', -- cgit v1.2.3