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/it.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/it.js') diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js index ccf54ed..201fdfc 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js @@ -520,15 +520,18 @@ export default { 'search.title': 'Cerca file', 'search.placeholder': 'Cerca in tutti i gruppi...', 'search.no_results': 'Nessun file corrisponde alla sua ricerca.', - 'search.synced': 'sincronizzato {ago}', - 'search.cache_note': 'La ricerca si basa su com’era ogni gruppo l’ultima volta che ' - + 'lo ha aperto. Apra un gruppo per aggiornarne qui i file.', 'search.col_group': 'Gruppo', 'search.result_count': { one: '{n} file trovato', other: '{n} file trovati', }, - 'search.hint': 'Cerca i nomi dei file in tutti gli indici di gruppo in cache.', + 'search.hint': 'Digita un termine per cercare in tutti i tuoi gruppi.', + 'search.indexing': 'Indicizzazione di {done} / {total} gruppi…', + 'search.unreachable': { one: '{n} gruppo non raggiungibile', other: '{n} gruppi non raggiungibili' }, + 'search.view_files': 'File', + 'search.view_videos': 'Video', + 'search.view_music': 'Musica', + 'search.connecting': 'Connessione ai gruppi…', // Presence, chat paging, leaving a group, the profile page 'presence.online': 'Un node che ospita questo gruppo è online', -- cgit v1.2.3