]> www.vanbest.org Git - motioneye-debian/commitdiff
add URL version to various static resources
authorCalin Crisan <ccrisan@gmail.com>
Tue, 31 Oct 2017 15:41:44 +0000 (17:41 +0200)
committerCalin Crisan <ccrisan@gmail.com>
Tue, 31 Oct 2017 15:41:44 +0000 (17:41 +0200)
motioneye/handlers.py
motioneye/templates/base.html
motioneye/templates/main.html
motioneye/templates/manifest.json
motioneye/templates/version.html

index 2622d5a68943928126d03135a9a8e187406b545e..4fc206c8b439b791e6da2d32ad30e2a98b9e43e4 100644 (file)
@@ -97,8 +97,12 @@ class BaseHandler(RequestHandler):
         RequestHandler.finish(self, chunk=chunk)
 
     def render(self, template_name, content_type='text/html', **context):
+        import motioneye
+        
         self.set_header('Content-Type', content_type)
         
+        context.setdefault('version', motioneye.VERSION)
+        
         content = template.render(template_name, **context)
         self.finish(content)
 
@@ -222,8 +226,6 @@ class NotFoundHandler(BaseHandler):
 
 class MainHandler(BaseHandler):
     def get(self):
-        import motioneye
-        
         # additional config
         main_sections = config.get_additional_structure(camera=False, separators=True)[0]
         camera_sections = config.get_additional_structure(camera=True, separators=True)[0]
@@ -232,32 +234,29 @@ class MainHandler(BaseHandler):
         os_version = update.get_os_version()
 
         self.render('main.html',
-                frame=False,
-                version=motioneye.VERSION,
-                motion_version=motion_info[1] if motion_info else '(none)',
-                os_version=' '.join(os_version),
-                enable_update=settings.ENABLE_UPDATE,
-                enable_reboot=settings.ENABLE_REBOOT,
-                add_remove_cameras=settings.ADD_REMOVE_CAMERAS,
-                main_sections=main_sections,
-                camera_sections=camera_sections,
-                hostname=socket.gethostname(),
-                title=self.get_argument('title', None),
-                admin_username=config.get_main().get('@admin_username'),
-                has_streaming_auth=motionctl.has_streaming_auth(),
-                has_new_movie_format_support=motionctl.has_new_movie_format_support(),
-                has_h264_omx_support=motionctl.has_h264_omx_support(),
-                has_motion=bool(motionctl.find_motion()[0]),
-                mask_width=utils.MASK_WIDTH)
+                    frame=False,
+                    motion_version=motion_info[1] if motion_info else '(none)',
+                    os_version=' '.join(os_version),
+                    enable_update=settings.ENABLE_UPDATE,
+                    enable_reboot=settings.ENABLE_REBOOT,
+                    add_remove_cameras=settings.ADD_REMOVE_CAMERAS,
+                    main_sections=main_sections,
+                    camera_sections=camera_sections,
+                    hostname=socket.gethostname(),
+                    title=self.get_argument('title', None),
+                    admin_username=config.get_main().get('@admin_username'),
+                    has_streaming_auth=motionctl.has_streaming_auth(),
+                    has_new_movie_format_support=motionctl.has_new_movie_format_support(),
+                    has_h264_omx_support=motionctl.has_h264_omx_support(),
+                    has_motion=bool(motionctl.find_motion()[0]),
+                    mask_width=utils.MASK_WIDTH)
 
 
 class ManifestHandler(BaseHandler):
     def get(self):
-        import motioneye
-        
         self.set_header('Content-Type', 'application/manifest+json')
         self.set_header('Cache-Control', 'max-age=2592000')  # 30 days
-        self.render('manifest.json', version=motioneye.VERSION)
+        self.render('manifest.json')
 
 
 class ConfigHandler(BaseHandler):
@@ -1097,32 +1096,32 @@ class PictureHandler(BaseHandler):
             self.get_argument('title', None) is not None):
 
             self.render('main.html',
-                    frame=True,
-                    camera_id=camera_id,
-                    camera_config=camera_config,
-                    title=self.get_argument('title', camera_config.get('@name', '')),
-                    admin_username=config.get_main().get('@admin_username'),
-                    static_path='../../../static/')
+                        frame=True,
+                        camera_id=camera_id,
+                        camera_config=camera_config,
+                        title=self.get_argument('title', camera_config.get('@name', '')),
+                        admin_username=config.get_main().get('@admin_username'),
+                        static_path='../../../static/')
 
         elif utils.is_remote_camera(camera_config):
             def on_response(remote_ui_config=None, error=None):
                 if error:
                     return self.render('main.html',
-                            frame=True,
-                            camera_id=camera_id,
-                            camera_config=camera_config,
-                            title=self.get_argument('title', ''))
+                                       frame=True,
+                                       camera_id=camera_id,
+                                       camera_config=camera_config,
+                                       title=self.get_argument('title', ''))
 
                 # issue a fake motion_camera_ui_to_dict() call to transform
                 # the remote UI values into motion config directives
                 remote_config = config.motion_camera_ui_to_dict(remote_ui_config)
                 
                 self.render('main.html',
-                        frame=True,
-                        camera_id=camera_id,
-                        camera_config=remote_config,
-                        title=self.get_argument('title', remote_config['@name']),
-                        admin_username=config.get_main().get('@admin_username'))
+                            frame=True,
+                            camera_id=camera_id,
+                            camera_config=remote_config,
+                            title=self.get_argument('title', remote_config['@name']),
+                            admin_username=config.get_main().get('@admin_username'))
 
             remote.get_config(camera_config, on_response)
         
@@ -1880,16 +1879,13 @@ class PowerHandler(BaseHandler):
 
 class VersionHandler(BaseHandler):
     def get(self):
-        import motioneye
-
         motion_info = motionctl.find_motion()
         os_version = update.get_os_version()
 
         self.render('version.html',
-                version=motioneye.VERSION,
-                os_version=' '.join(os_version),
-                motion_version=motion_info[1] if motion_info else '',
-                hostname=socket.gethostname())
+                    os_version=' '.join(os_version),
+                    motion_version=motion_info[1] if motion_info else '',
+                    hostname=socket.gethostname())
 
     post = get
 
index 4a3361881b477bca92e05b89e43069da07762a64..48041cc889ef8fc0335752d3de660629a688a584 100644 (file)
         {% endblock %}
         <title>{% block title %}{% endblock %}</title>
         {% block style %}
-            <link rel="stylesheet" type="text/css" href="{{static_path}}css/jquery.timepicker.css" />
-            <link rel="shortcut icon" href="{{static_path}}favicon.ico" />
-            <link rel="apple-touch-icon" href="{{static_path}}favicon.ico" />
-            <link rel="manifest" href="{{static_path}}../manifest.json" />
+            <link rel="stylesheet" type="text/css" href="{{static_path}}css/jquery.timepicker.css?v={{version}}" />
+            <link rel="shortcut icon" href="{{static_path}}favicon.ico?v={{version}}" />
+            <link rel="apple-touch-icon" href="{{static_path}}favicon.ico?v={{version}}" />
+            <link rel="manifest" href="{{static_path}}../manifest.json?v={{version}}" />
         {% endblock %}
         {% block script %}
-            <script type="text/javascript" src="{{static_path}}js/css-browser-selector.js"></script>
-            <script type="text/javascript" src="{{static_path}}js/jquery.min.js"></script>
-            <script type="text/javascript" src="{{static_path}}js/jquery.timepicker.min.js"></script>
-            <script type="text/javascript" src="{{static_path}}js/jquery.mousewheel.js"></script>
+            <script type="text/javascript" src="{{static_path}}js/css-browser-selector.js?v={{version}}"></script>
+            <script type="text/javascript" src="{{static_path}}js/jquery.min.js?v={{version}}"></script>
+            <script type="text/javascript" src="{{static_path}}js/jquery.timepicker.min.js?v={{version}}"></script>
+            <script type="text/javascript" src="{{static_path}}js/jquery.mousewheel.js?v={{version}}"></script>
 
             <script type="text/javascript">
                 var staticPath = '{{static_path}}';
index ae645cdf09291bcec42bc9b95cedeb8f293a2b78..80ad87ee4dfdc62eada955cd27aa4700ed4adfbc 100644 (file)
 
 {% block style %}
     {{super()}}
-    <link rel="stylesheet" type="text/css" href="{{static_path}}css/ui.css" />
-    <link rel="stylesheet" type="text/css" href="{{static_path}}css/main.css" />
+    <link rel="stylesheet" type="text/css" href="{{static_path}}css/ui.css?v={{version}}" />
+    <link rel="stylesheet" type="text/css" href="{{static_path}}css/main.css?v={{version}}" />
     {% if frame %}
-        <link rel="stylesheet" type="text/css" href="{{static_path}}css/frame.css" />
+        <link rel="stylesheet" type="text/css" href="{{static_path}}css/frame.css?v={{version}}" />
     {% endif %}
 {% endblock %}
 
 {% block script %}
     {{super()}}
-    <script type="text/javascript" src="{{static_path}}js/ui.js"></script>
-    <script type="text/javascript" src="{{static_path}}js/main.js"></script>
+    <script type="text/javascript" src="{{static_path}}js/ui.js?v={{version}}"></script>
+    <script type="text/javascript" src="{{static_path}}js/main.js?v={{version}}"></script>
     {% if frame %}
-        <script type="text/javascript" src="{{static_path}}js/frame.js"></script>
+        <script type="text/javascript" src="{{static_path}}js/frame.js?v={{version}}"></script>
     {% endif %}
     <script type="text/javascript">
         var adminUsername = '{{admin_username}}';
index 9de67f81b61bce36ffa2c89d83f79db0ac416256..6af1c20258dc97fcbdb7432a0b09c13c3113c36d 100644 (file)
@@ -7,10 +7,10 @@
     "theme_color": "#414141",
     "background_color": "#414141",
     "icons": [
-        {"src": "{{static_path}}img/launcher-icon-96.png",  "sizes": "96x96",   "type": "image/png"},
-        {"src": "{{static_path}}img/launcher-icon-144.png", "sizes": "144x144", "type": "image/png"},
-        {"src": "{{static_path}}img/launcher-icon-192.png", "sizes": "192x192", "type": "image/png"},
-        {"src": "{{static_path}}img/launcher-icon-256.png", "sizes": "256x256", "type": "image/png"}
+        {"src": "{{static_path}}img/launcher-icon-96.png?v={{version}}",  "sizes": "96x96",   "type": "image/png"},
+        {"src": "{{static_path}}img/launcher-icon-144.png?v={{version}}", "sizes": "144x144", "type": "image/png"},
+        {"src": "{{static_path}}img/launcher-icon-192.png?v={{version}}", "sizes": "192x192", "type": "image/png"},
+        {"src": "{{static_path}}img/launcher-icon-256.png?v={{version}}", "sizes": "256x256", "type": "image/png"}
     ],
     "start_url": ".",
     "display": "standalone"
index 41281f56cb509671f463c81aac9da872c60de16e..8a921401df4dc4f025549a00e4ff1b50dc0fc332 100644 (file)
@@ -6,7 +6,7 @@
         var hostname = '{{hostname}}';
         var version = '{{version}}';
     </script>
-    <script type="text/javascript" src="{{static_path}}js/version.js"></script>
+    <script type="text/javascript" src="{{static_path}}js/version.js?v={{version}}"></script>
 {% endblock %}
 
 {% block body %}