From 3bba370fd9a65c509330aacd1677bae5c17fda9e Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 29 Jun 2014 12:53:52 +0300 Subject: [PATCH] added a full screen button to camera frames --- static/css/frame.css | 8 +++++--- static/js/frame.js | 11 ++++++++++- static/js/main.js | 8 ++++++++ templates/frame.html | 5 ++--- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/static/css/frame.css b/static/css/frame.css index 92ac8f9..18b04da 100644 --- a/static/css/frame.css +++ b/static/css/frame.css @@ -49,12 +49,13 @@ div.camera-frame { 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; } @@ -62,7 +63,7 @@ img.camera { img.camera.error, img.camera.loading { opacity: 0; - height: 100%; + height: 100% !important; } div.camera-placeholder { @@ -73,10 +74,11 @@ 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; } diff --git a/static/js/frame.js b/static/js/frame.js index af4997b..89e2c67 100644 --- a/static/js/frame.js +++ b/static/js/frame.js @@ -37,6 +37,7 @@ function setupCameraFrame() { 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; @@ -67,9 +68,17 @@ function setupCameraFrame() { 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'); diff --git a/static/js/main.js b/static/js/main.js index 820a9e3..07fb3d3 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -1782,6 +1782,7 @@ function addCameraFrameUi(cameraConfig) { '
' + '' + '
' + + '
' + '
' + '
' + '
' + @@ -1798,6 +1799,7 @@ function addCameraFrameUi(cameraConfig) { 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'); @@ -1860,6 +1862,12 @@ function addCameraFrameUi(cameraConfig) { }; }(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; diff --git a/templates/frame.html b/templates/frame.html index 6b3635a..ee0d3d3 100644 --- a/templates/frame.html +++ b/templates/frame.html @@ -15,9 +15,8 @@ streaming_framerate="{{camera_config['stream_maxrate']}}" streaming_server_resize="{{camera_config['@webcam_server_resize']}}">
-
- -
+
{% endblock %} -- 2.39.5