Add mock mode for WebUI development
- Add mock API classes for camera search and stream discovery - Add mock mode toggle via ?mock=true URL parameter - Add visual mock mode indicator badge - Add dev-server.sh script for local development - Mock data includes 10 diverse streams (FFMPEG, ONVIF, JPEG, MJPEG, HLS, HTTP_VIDEO)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
// Mock implementation of CameraSearchAPI for development
|
||||
export class MockCameraAPI {
|
||||
constructor() {
|
||||
this.mockCameras = [
|
||||
{ brand: "Hikvision", model: "DS-2CD2042WD-I" },
|
||||
{ brand: "Hikvision", model: "DS-2CD2142FWD-I" },
|
||||
{ brand: "Hikvision", model: "DS-2CD2032-I" },
|
||||
{ brand: "Hikvision", model: "DS-2CD2385G1-I" },
|
||||
{ brand: "Dahua", model: "IPC-HFW4431R-Z" },
|
||||
{ brand: "Dahua", model: "IPC-HDBW4433R-ZS" },
|
||||
{ brand: "Dahua", model: "DH-IPC-HFW2431S-S-S2" },
|
||||
{ brand: "Dahua", model: "IPC-HDW2531T-AS-S2" },
|
||||
{ brand: "Axis", model: "M3046-V" },
|
||||
{ brand: "Axis", model: "P3245-LVE" },
|
||||
{ brand: "Axis", model: "M5525-E" },
|
||||
{ brand: "Uniview", model: "IPC322SR3-DVS28-F" },
|
||||
{ brand: "Uniview", model: "IPC2124SR3-DPF40" },
|
||||
{ brand: "Reolink", model: "RLC-410" },
|
||||
{ brand: "Reolink", model: "RLC-520A" },
|
||||
{ brand: "Reolink", model: "RLC-810A" },
|
||||
{ brand: "TP-Link", model: "VIGI C300HP-4" },
|
||||
{ brand: "TP-Link", model: "VIGI C540V" },
|
||||
{ brand: "Amcrest", model: "IP8M-2496EW" },
|
||||
{ brand: "Amcrest", model: "IP4M-1041B" },
|
||||
{ brand: "Foscam", model: "FI9900P" },
|
||||
{ brand: "Foscam", model: "R5" },
|
||||
];
|
||||
}
|
||||
|
||||
async search(query, limit = 10) {
|
||||
// Simulate network delay
|
||||
await this.delay(150);
|
||||
|
||||
const lowerQuery = query.toLowerCase();
|
||||
const filtered = this.mockCameras.filter(camera => {
|
||||
const searchText = `${camera.brand} ${camera.model}`.toLowerCase();
|
||||
return searchText.includes(lowerQuery);
|
||||
});
|
||||
|
||||
return {
|
||||
cameras: filtered.slice(0, limit),
|
||||
total: filtered.length
|
||||
};
|
||||
}
|
||||
|
||||
delay(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user