smb shares UI is now enabled on a per camera basis
authorCalin Crisan <ccrisan@gmail.com>
Wed, 25 Jun 2014 12:47:56 +0000 (15:47 +0300)
committerCalin Crisan <ccrisan@gmail.com>
Wed, 25 Jun 2014 12:47:56 +0000 (15:47 +0300)
src/config.py
src/handlers.py
static/js/main.js
templates/main.html

index 934a77e58333c07ee47f752537102b161babced8..bec11d35f187014c22b7d7b30543ed917c371086 100644 (file)
@@ -681,6 +681,7 @@ def camera_dict_to_ui(data):
         'rotation': int(data['rotate']),
         
         # file storage
+        'smb_shares': settings.SMB_SHARES,
         'storage_device': data['@storage_device'],
         'network_server': data['@network_server'],
         'network_share_name': data['@network_share_name'],
index b94062ff830a5f842677508ae388f6ce6a11b4c2..fea56a47aa6ed35dd0e058dcadec2b3de5330a7a 100644 (file)
@@ -142,7 +142,7 @@ class NotFoundHandler(BaseHandler):
 class MainHandler(BaseHandler):
     @BaseHandler.auth()
     def get(self):
-        self.render('main.html', smb_shares=settings.SMB_SHARES)
+        self.render('main.html')
 
 
 class ConfigHandler(BaseHandler):
index 0ea3542defb3f71b3d385eff241857fa19f569fd..bb47f249973e89deb6cf0e6ff627e6e2af629860 100644 (file)
@@ -372,12 +372,16 @@ function updateConfigUi() {
     }
     
     /* storage device */
-    if ($('#storageDeviceSelect').val() === 'local-disk') {
+    var smbShares = $('#storageDeviceSelect').data('smb_shares');
+    if ($('#storageDeviceSelect').val() === 'local-disk' || !smbShares) {
         $('#networkServerEntry').parents('tr:eq(0)').each(markHide);
         $('#networkUsernameEntry').parents('tr:eq(0)').each(markHide);
         $('#networkPasswordEntry').parents('tr:eq(0)').each(markHide);
         $('#networkShareNameEntry').parents('tr:eq(0)').each(markHide);
     }
+    if (!smbShares) {
+        $('#storageDeviceSelect').parents('tr:eq(0)').each(markHide);
+    }
     
     /* auto brightness */
     if ($('#autoBrightnessSwitch').get(0).checked) {
@@ -675,6 +679,7 @@ function dict2CameraUi(dict) {
     $('#framerateSlider').val(dict['framerate']);
     
     /* file storage */
+    $('#storageDeviceSelect').data('smb_shares', dict['smb_shares']);
     $('#storageDeviceSelect').val(dict['storage_device']);
     $('#networkServerEntry').val(dict['network_server']);
     $('#networkShareNameEntry').val(dict['network_share_name']);
index c45e59d500d6b47be4d602cc47869153e67b2cd9..8ee98730db557bfdccb89de16fd1cd804124c22f 100644 (file)
                 
                 <div class="settings-section-title advanced-setting">File Storage</div>
                 <table class="settings advanced-setting">
-                    <tr class="settings-item advanced-setting {% if not smb_shares %}hidden{% endif %}">
+                    <tr class="settings-item advanced-setting">
                         <td class="settings-item-label"><span class="settings-item-label">Storage Device</span></td>
                         <td class="settings-item-value">
                             <select class="styled storage" id="storageDeviceSelect">
                         </td>
                         <td><span class="help-mark" title="indicates the storage device where the image and video files will be saved">?</span></td>
                     </tr>
-                    <tr class="settings-item advanced-setting {% if not smb_shares %}hidden{% endif %}">
+                    <tr class="settings-item advanced-setting">
                         <td class="settings-item-label"><span class="settings-item-label">Network Server</span></td>
                         <td class="settings-item-value"><input type="text" class="styled storage" id="networkServerEntry"></td>
                         <td><span class="help-mark" title="the address of the network server (IP address or hostname)">?</span></td>
                     </tr>
-                    <tr class="settings-item advanced-setting {% if not smb_shares %}hidden{% endif %}">
+                    <tr class="settings-item advanced-setting">
                         <td class="settings-item-label"><span class="settings-item-label">Share Name</span></td>
                         <td class="settings-item-value"><input type="text" class="styled storage" id="networkShareNameEntry"></td>
                         <td><span class="help-mark" title="the name of the network share">?</span></td>
                     </tr>
-                    <tr class="settings-item advanced-setting {% if not smb_shares %}hidden{% endif %}">
+                    <tr class="settings-item advanced-setting">
                         <td class="settings-item-label"><span class="settings-item-label">Share Username</span></td>
                         <td class="settings-item-value"><input type="text" class="styled storage" id="networkUsernameEntry"></td>
                         <td><span class="help-mark" title="the username to be supplied when accessing the network share (leave empty if no username is required)">?</span></td>
                     </tr>
-                    <tr class="settings-item advanced-setting {% if not smb_shares %}hidden{% endif %}">
+                    <tr class="settings-item advanced-setting">
                         <td class="settings-item-label"><span class="settings-item-label">Share Password</span></td>
                         <td class="settings-item-value"><input type="password" class="styled storage" id="networkPasswordEntry"></td>
                         <td><span class="help-mark" title="the password required by the network share (leave empty if no password is required)">?</span></td>