]> www.vanbest.org Git - motioneye-debian/commitdiff
full screen camera improvements
authorCalin Crisan <ccrisan@gmail.com>
Sat, 18 Jan 2014 17:37:23 +0000 (19:37 +0200)
committerCalin Crisan <ccrisan@gmail.com>
Sat, 18 Jan 2014 17:47:29 +0000 (19:47 +0200)
src/handlers.py
static/css/main.css
static/js/main.js

index f107628e21f40781111ef2ad23058c861cda5d15..4117c2fa607a59da3a53e03797e7f8fcfa0a08a0 100644 (file)
@@ -553,7 +553,11 @@ class PictureHandler(BaseHandler):
                 if sequence and picture:
                     mediafiles.set_picture_cache(camera_id, sequence, width, picture)
                 
-                self.finish(picture)
+                try:
+                    self.finish(picture)
+                
+                except IOError as e:
+                    logging.warning('could not write picture as response: %(msg)s' % {'msg': unicode(e)})
             
             remote.get_current_picture(camera_config, on_response, width=width, height=height)
 
index 158ed190f20a1a6fa4f8d279b4d940546850795f..ba1e8d3e6a335d38aa24d99886d4ff5f310aa87b 100644 (file)
@@ -681,6 +681,7 @@ img.camera {
     display: block;
     transition: opacity 0.2s linear;
     opacity: 1;
+    min-height: 160px;
 }
 
 img.camera.error,
@@ -705,6 +706,7 @@ img.no-camera {
 }
 
 div.camera-progress {
+    background: rgba(0, 0, 0, 0.001); /* otherwise IE would not extend this as expected */
     position: absolute;
     top: 0px;
     right: 0px;
index 77aea0cbb67b17c15072d8719cc4574702a4562d..1ad741d9013412a6af197e77e1b86fd861667cef 100644 (file)
@@ -1706,7 +1706,6 @@ function addCameraFrameUi(cameraConfig, framerate) {
     
     var nameSpan = cameraFrameDiv.find('span.camera-name');
     var configureButton = cameraFrameDiv.find('div.camera-button.configure');
-    var fullScreenButton = cameraFrameDiv.find('div.camera-button.full-screen');
     var picturesButton = cameraFrameDiv.find('div.camera-button.media-pictures');
     var moviesButton = cameraFrameDiv.find('div.camera-button.media-movies');
     var cameraPlaceholder = cameraFrameDiv.find('div.camera-placeholder');
@@ -1760,12 +1759,6 @@ function addCameraFrameUi(cameraConfig, framerate) {
         doConfigureCamera(cameraId);
     });
 
-    fullScreenButton.click(function (cameraId) {
-        return function () {
-            doFullScreenCamera(cameraId);
-        };
-    }(cameraId));
-    
     picturesButton.click(function (cameraId) {
         return function () {
             runMediaDialog(cameraId, 'picture');
@@ -1899,24 +1892,32 @@ function doFullScreenCamera(cameraId) {
     else {
         width = Math.round(0.9 * windowWidth);
     }
-    cameraFrameDiv.css('width', width);
+
+    cameraFrameDiv.find('div.camera-progress').addClass('visible');
     
-    runModalDialog({
-        title: cameraName,
-        closeButton: true,
-        //buttons: null,
-        content: cameraFrameDiv,
-        onClose: function () {
-            fullScreenCameraId = null;
-            cameraFrameDiv.css('width', '');
-            var nextFrame = pageContainer.children('div:eq(' + frameIndex + ')');
-            if (nextFrame.length) {
-                nextFrame.before(cameraFrameDiv);
-            }
-            else {
-                pageContainer.append(cameraFrameDiv);
+    var cameraImg = cameraFrameDiv.find('img.camera');
+    cameraImg.load(function showFullScreenCamera() {
+        cameraFrameDiv.css('width', width);
+        
+        runModalDialog({
+            title: cameraName,
+            closeButton: true,
+            content: cameraFrameDiv,
+            onShow: function () {
+                cameraImg.unbind('load', showFullScreenCamera);
+            },
+            onClose: function () {
+                fullScreenCameraId = null;
+                cameraFrameDiv.css('width', '');
+                var nextFrame = pageContainer.children('div:eq(' + frameIndex + ')');
+                if (nextFrame.length) {
+                    nextFrame.before(cameraFrameDiv);
+                }
+                else {
+                    pageContainer.append(cameraFrameDiv);
+                }
             }
-        }
+        });
     });
 }