* if a modal dialog is visible, it should be repositioned */
$(window).resize(updateModalDialogPosition);
- /* autoselect urls in read-only entries */
- $('#streamingSnapshotUrlEntry:text, #streamingMjpgUrlEntry:text, #streamingEmbedUrlEntry:text').click(function () {
- this.select();
- });
-
/* show a warning when enabling media files removal */
var preserveSelects = $('#preservePicturesSelect, #preserveMoviesSelect');
var rootDirectoryEntry = $('#rootDirectoryEntry');
$('#streamingPortEntry').val(dict['streaming_port']); markHideIfNull('streaming_port', 'streamingPortEntry');
$('#streamingAuthModeSelect').val(dict['streaming_auth_mode']); markHideIfNull('streaming_auth_mode', 'streamingAuthModeSelect');
$('#streamingMotion')[0].checked = dict['streaming_motion']; markHideIfNull('streaming_motion', 'streamingMotion');
-
+
var cameraUrl = location.protocol + '//' + location.host + basePath + 'picture/' + dict.id + '/';
-
+
var snapshotUrl = null;
var mjpgUrl = null;
var embedUrl = null;
-
+
if (dict['proto'] == 'mjpeg') {
mjpgUrl = dict['url'];
mjpgUrl = mjpgUrl.replace('127.0.0.1', window.location.host.split(':')[0]);
snapshotUrl = addAuthParams('GET', snapshotUrl);
}
}
-
- $('#streamingSnapshotUrlEntry').val(snapshotUrl); markHideIfNull(!snapshotUrl, 'streamingSnapshotUrlEntry');
- $('#streamingMjpgUrlEntry').val(mjpgUrl); markHideIfNull(!mjpgUrl, 'streamingMjpgUrlEntry');
- $('#streamingEmbedUrlEntry').val(embedUrl); markHideIfNull(!embedUrl, 'streamingEmbedUrlEntry');
+
+ $('#streamingSnapshotUrlHtml').data('url', snapshotUrl); markHideIfNull(!snapshotUrl, 'streamingSnapshotUrlHtml');
+ $('#streamingMjpgUrlHtml').data('url', mjpgUrl); markHideIfNull(!mjpgUrl, 'streamingMjpgUrlHtml');
+ $('#streamingEmbedUrlHtml').data('url', embedUrl); markHideIfNull(!embedUrl, 'streamingEmbedUrlHtml');
/* still images */
$('#stillImagesEnabledSwitch')[0].checked = dict['still_images']; markHideIfNull('still_images', 'stillImagesEnabledSwitch');
callback();
}
});
-}
+}
+
+function showUrl(url) {
+ var span = $('<span class="url-message-span"></span>');
+ span.html(url);
+ runAlertDialog(span);
+
+ var range, selection;
+ if (window.getSelection && document.createRange) {
+ selection = window.getSelection();
+ range = document.createRange();
+ range.selectNodeContents(span[0]);
+ selection.removeAllRanges();
+ selection.addRange(range);
+ }
+ else if (document.selection && document.body.createTextRange) {
+ range = document.body.createTextRange();
+ range.moveToElementText(span[0]);
+ range.select();
+ }
+}
+
+function showSnapshotUrl() {
+ var url = $('#streamingSnapshotUrlHtml').data('url');
+ showUrl(url);
+}
+
+function showMjpgUrl() {
+ var url = $('#streamingMjpgUrlHtml').data('url');
+ showUrl(url);
+}
+
+function showEmbedUrl() {
+ var url = $('#streamingEmbedUrlHtml').data('url');
+ showUrl(url);
+}
/* fetch & push */
<td colspan="100"><div class="settings-item-separator"></div></td>
</tr>
<tr class="settings-item advanced-setting">
- <td class="settings-item-label"><span class="settings-item-label">Snapshot URL</span></td>
- <td class="settings-item-value"><input type="text" class="styled streaming camera-config" id="streamingSnapshotUrlEntry" readonly="readonly"></td>
+ <td class="settings-item-label"><span class="settings-item-label">Useful URLs</span></td>
+ <td class="settings-item-value">
+ <div class="html styled streaming camera-config" id="streamingSnapshotUrlHtml">
+ <a href="javascript:showSnapshotUrl()">Snapshot URL</a>
+ </div>
+ </td>
<td><span class="help-mark" title="a URL that provides a JPEG image with the most recent snapshot of the camera">?</span></td>
</tr>
- <tr class="settings-item advanced-setting" depends="videoStreamingEnabled">
- <td class="settings-item-label"><span class="settings-item-label">Streaming URL</span></td>
- <td class="settings-item-value"><input type="text" class="styled streaming camera-config" id="streamingMjpgUrlEntry" readonly="readonly"></td>
- <td><span class="help-mark" title="a URL that provides a MJPEG stream of the camera (there is no password protection for this URL!)">?</span></td>
+ <tr class="settings-item advanced-setting">
+ <td class="settings-item-label"></td>
+ <td class="settings-item-value">
+ <div class="html styled streaming camera-config" id="streamingMjpgUrlHtml">
+ <a href="javascript:showMjpgUrl()">Streaming URL</a>
+ </div>
+ </td>
+ <td><span class="help-mark" title="a URL that provides a MJPEG stream of the camera">?</span></td>
</tr>
<tr class="settings-item advanced-setting">
- <td class="settings-item-label"><span class="settings-item-label">Embed URL</span></td>
- <td class="settings-item-value"><input type="text" class="styled streaming camera-config" id="streamingEmbedUrlEntry" readonly="readonly"></td>
+ <td class="settings-item-label"></td>
+ <td class="settings-item-value">
+ <div class="html styled streaming camera-config" id="streamingEmbedUrlHtml">
+ <a href="javascript:showEmbedUrl()">Embed URL</a>
+ </div>
+ </td>
<td><span class="help-mark" title="a URL that provides a minimal HTML document containing the camera frame, ready to be embedded">?</span></td>
</tr>
{% for config in camera_sections.get('streaming', {}).get('configs', []) %}