:recycle!: Normalize UDN comparison and improve WebRenderer detection
- Fix renderer filtering logic to normalize `udn` and id by stripping 'uuid:' prefix
- Replace fragile model_name-based detection with reliable friendly-name check for WebRenderers ('Web Audio – ' prefix)
- Add `manufacturer` field to renderer types and registry
- Update badge count in UnifiedControlView.vue to use filtered renderers
This commit is contained in:
@@ -77,9 +77,9 @@ const onlineServersCount = computed(
|
||||
() => allServers.value.filter((s) => s.online).length,
|
||||
);
|
||||
|
||||
// Nombre de renderers online pour afficher dans le badge
|
||||
// Nombre de renderers online (filtrés) pour afficher dans le badge
|
||||
const onlineRenderersCount = computed(
|
||||
() => allRenderers.value.filter((r) => r.online).length,
|
||||
() => filterRenderers(allRenderers.value).filter((r) => r.online).length,
|
||||
);
|
||||
|
||||
// Gestion de l'ouverture du drawer depuis le bouton
|
||||
@@ -106,11 +106,14 @@ function handleRendererSelect(rendererId: string) {
|
||||
// Filter to show only our own WebRenderer based on UDN match
|
||||
function filterRenderers(renderers: typeof allRenderers.value) {
|
||||
const myUdn = webRenderer.rendererUdn.value;
|
||||
const normalizedUdn = myUdn?.replace(/^uuid:/, '') ?? null;
|
||||
return renderers.filter((r) => {
|
||||
const isWebRenderer = r.model_name?.includes("WebRenderer") ?? false;
|
||||
// WebRenderers have "Web Audio – " as friendly_name prefix
|
||||
const isWebRenderer = r.friendly_name?.startsWith("Web Audio – ") ?? false;
|
||||
if (isWebRenderer) {
|
||||
if (myUdn === null) return false;
|
||||
return r.id === myUdn;
|
||||
if (normalizedUdn === null) return false;
|
||||
const normalizedId = r.id.replace(/^uuid:/, '');
|
||||
return normalizedId === normalizedUdn;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user