+
+ /* Ajax */
+
+function ajax(method, url, data, success) {
+ $.ajax({
+ type: method,
+ url: url,
+ data: data,
+ success: success,
+ failure: function (request, options, error) {
+ alert('Request failed with code: ' + request.status);
+ }
+ });
+}
+
+
+ /* UI */
+
function initUI() {
$('input[type=checkbox].styled').each(function () {
makeCheckBox($(this));
$('#motionMoviesSwitch').change(updateSettingsUI);
$('#motionNotificationsSwitch').change(updateSettingsUI);
$('#workingScheduleSwitch').change(updateSettingsUI);
+
+ $('#videoDeviceSwitch').change(fetchCameraSettings);
}
function updateSettingsUI() {
});
}
+function cameraUi2Dict() {
+
+}
+
+function dict2CameraUi(dict) {
+
+}
+
+function fetchCurrentConfig() {
+ ajax('GET', '/config/list/', null, function (data) {
+ var i, cameras = data.cameras;
+ var videoDeviceSelect = $('#videoDeviceSelect');
+ videoDeviceSelect.html('');
+ for (i = 0; i < cameras.length; i++) {
+ var camera = cameras[i];
+ videoDeviceSelect.append('<option value="' + camera['@id'] + '">' + camera['@name'] + '</option>');
+ }
+
+ if (cameras.length) {
+ videoDeviceSelect[0].selectedIndex = 0;
+ fetchCameraSettings();
+ }
+ });
+}
+
+function fetchCameraSettings() {
+ var cameraId = $('#videoDeviceSelect').val();
+ if (cameraId != null) {
+ ajax('GET', '/config/' + cameraId + '/get/', null, function (data) {
+ dict2CameraUi(data);
+ });
+ }
+ else {
+ dict2CameraUi({});
+ }
+}
+
$(document).ready(function () {
/* open/close settings */
$('img.settings-button').click(function () {
initUI();
updateSettingsUI();
+ fetchCurrentConfig();
});
<div class="settings-top-bar">
<img class="settings-button" src="{{STATIC_URL}}img/settings.png" title="settings">
<select class="video-device styled" id="videoDeviceSelect">
- <option>USB Camera 2.0</option>
- <option>A4Tech Camera</option>
</select>
</div>
<div class="logo">
<td class="settings-item-label"><span class="settings-item-label">Video Resolution</span></td>
<td class="settings-item-value">
<select class="video-resolution styled device" id="resolutionSelect">
- <option>640 x 480</option>
- <option>1024 x 768</option>
</select>
</td>
<td><span class="help-mark" title="the video resolution (larger values yield better quality but require larger storage space and bandwidth)">?</span></td>