Files
Strix/webui/web/js/ui/config-panel.js
T
eduard256 74fe12bcf1 Improve camera model search with per-model ranking and two-stage loading
- Split camera results into individual models (Brand: Model format)
- Add model-specific relevance scoring for better search results
- Implement two-stage autocomplete: 10 results immediately, 50 after 1 second
- Filter out "Other" models from search results
- Sort models by relevance score (exact matches first)
- Add auto.json brand for automatic detection fallback

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 00:43:03 +03:00

40 lines
1.3 KiB
JavaScript

import { Go2RTCGenerator } from '../config-generators/go2rtc/index.js';
import { FrigateGenerator } from '../config-generators/frigate/index.js';
export class ConfigPanel {
constructor() {
this.stream = null;
}
render(stream) {
this.stream = stream;
// Update selected stream info
document.getElementById('selected-stream-type').textContent = stream.type;
document.getElementById('selected-stream-url').textContent = this.maskCredentials(stream.url);
// Generate configs
const urlConfig = stream.url;
const go2rtcConfig = Go2RTCGenerator.generate(stream);
const frigateConfig = FrigateGenerator.generate(stream);
// Update config displays
document.getElementById('config-url').textContent = urlConfig;
document.getElementById('config-go2rtc').textContent = go2rtcConfig;
document.getElementById('config-frigate').textContent = frigateConfig;
}
maskCredentials(url) {
try {
const urlObj = new URL(url);
if (urlObj.username || urlObj.password) {
urlObj.username = urlObj.username ? '***' : '';
urlObj.password = urlObj.password ? '***' : '';
}
return urlObj.toString();
} catch (e) {
return url;
}
}
}