div.camera-container {
height: 100%;
+ text-align: center;
+ overflow: hidden;
}
img.camera {
width: 100%;
height: auto;
- display: block;
transition: opacity 0.2s linear;
opacity: 1;
}
img.camera.error,
img.camera.loading {
opacity: 0;
- height: 100%;
+ height: 100% !important;
}
div.camera-placeholder {
left: 0px;
text-align: center;
transition: opacity 0.2s linear;
+ overflow: hidden;
}
img.no-camera {
- margin-top: 20%;
+ padding-top: 20%;
width: 30%;
opacity: 0.8;
}
var cameraProgress = cameraFrameDiv.find('div.camera-progress');
var cameraImg = cameraFrameDiv.find('img.camera');
var progressImg = cameraFrameDiv.find('img.camera-progress');
+ var body = $('body');
cameraFrameDiv[0].refreshDivider = 0;
cameraFrameDiv[0].streamingFramerate = parseInt(cameraFrameDiv.attr('streaming_framerate')) || 1;
this.loading = 0;
cameraImg.removeClass('error').removeClass('loading');
- cameraImg.css('height', '');
cameraPlaceholder.css('opacity', 0);
cameraProgress.removeClass('visible');
+
+ if (this.naturalWidth / this.naturalHeight > body.width() / body.height()) {
+ cameraImg.css('width', '100%');
+ cameraImg.css('height', 'auto');
+ }
+ else {
+ cameraImg.css('width', 'auto');
+ cameraImg.css('height', '100%');
+ }
});
cameraImg.addClass('loading');
'<div class="camera-top-bar">' +
'<span class="camera-name"></span>' +
'<div class="camera-buttons">' +
+ '<div class="button camera-button mouse-effect full-screen" title="full-screen window"></div>' +
'<div class="button camera-button mouse-effect media-pictures" title="pictures"></div>' +
'<div class="button camera-button mouse-effect media-movies" title="movies"></div>' +
'<div class="button camera-button mouse-effect configure" title="configure"></div>' +
var configureButton = cameraFrameDiv.find('div.camera-button.configure');
var picturesButton = cameraFrameDiv.find('div.camera-button.media-pictures');
var moviesButton = cameraFrameDiv.find('div.camera-button.media-movies');
+ var fullScreenButton = cameraFrameDiv.find('div.camera-button.full-screen');
var cameraPlaceholder = cameraFrameDiv.find('div.camera-placeholder');
var cameraProgress = cameraFrameDiv.find('div.camera-progress');
var cameraImg = cameraFrameDiv.find('img.camera');
};
}(cameraId));
+ fullScreenButton.click(function (cameraId) {
+ return function () {
+ window.open(window.location.href + 'picture/' + cameraId + '/frame/', '_blank');
+ };
+ }(cameraId));
+
/* error and load handlers */
cameraImg.error(function () {
this.error = true;
streaming_framerate="{{camera_config['stream_maxrate']}}" streaming_server_resize="{{camera_config['@webcam_server_resize']}}">
<div class="camera-container">
- <div class="camera-placeholder"><img class="no-camera" src="{{STATIC_URL}}img/no-camera.svg"></div>
- <img class="camera">
- <div class="camera-progress"><img class="camera-progress"></div>
+ <div class="camera-placeholder"><img class="no-camera" src="{{STATIC_URL}}img/no-camera.svg"></div><img
+ class="camera"><div class="camera-progress"><img class="camera-progress"></div>
</div>
</div>
{% endblock %}