Add direct stream URL input support to web UI
This commit is contained in:
+12
-7
@@ -326,8 +326,16 @@
|
||||
var dbStreams = []; // from /api/streams
|
||||
var customStreams = []; // user-added
|
||||
|
||||
// Pre-populate custom streams from "url" query parameter (supports multiple)
|
||||
params.getAll('url').forEach(function(u) {
|
||||
u = u.trim();
|
||||
if (u && u.indexOf('://') !== -1 && customStreams.indexOf(u) === -1) {
|
||||
customStreams.push(u);
|
||||
}
|
||||
});
|
||||
|
||||
// subtitle
|
||||
document.getElementById('subtitle').textContent = ip ? 'Target: ' + ip : '';
|
||||
document.getElementById('subtitle').textContent = ip ? 'Target: ' + ip : 'Add stream URLs manually';
|
||||
|
||||
// back
|
||||
document.getElementById('btn-back').addEventListener('click', function() {
|
||||
@@ -339,7 +347,8 @@
|
||||
|
||||
async function loadStreams() {
|
||||
if (!ids || !ip) {
|
||||
renderError('Missing required parameters (ids, ip)');
|
||||
// No parameters — show empty list with add section
|
||||
renderAll();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -359,11 +368,7 @@
|
||||
|
||||
var data = await r.json();
|
||||
dbStreams = data.streams || [];
|
||||
if (dbStreams.length === 0 && customStreams.length === 0) {
|
||||
renderEmpty();
|
||||
} else {
|
||||
renderAll();
|
||||
}
|
||||
renderAll();
|
||||
} catch (e) {
|
||||
renderError('Connection error: ' + e.message);
|
||||
}
|
||||
|
||||
+8
-2
@@ -257,7 +257,7 @@
|
||||
</span>
|
||||
</label>
|
||||
<input type="text" id="ip" class="input input-large" placeholder="192.168.1.100" autocomplete="off" spellcheck="false">
|
||||
<p class="hint">IP address of the camera</p>
|
||||
<p class="hint">IP address or stream URL (rtsp://, http://, ...)</p>
|
||||
</div>
|
||||
|
||||
<button id="btn-check" class="btn btn-primary btn-large">Check Address</button>
|
||||
@@ -295,7 +295,13 @@
|
||||
|
||||
async function checkAddress() {
|
||||
const ip = ipInput.value.trim();
|
||||
if (!ip) { showToast('Enter an IP address'); return; }
|
||||
if (!ip) { showToast('Enter an IP address or stream URL'); return; }
|
||||
|
||||
// Direct stream URL — skip probe, go straight to create.html
|
||||
if (ip.indexOf('://') !== -1) {
|
||||
window.location.href = 'create.html?url=' + encodeURIComponent(ip);
|
||||
return;
|
||||
}
|
||||
|
||||
btnCheck.disabled = true;
|
||||
btnCheck.textContent = 'Checking...';
|
||||
|
||||
Reference in New Issue
Block a user