(r'^/$', handlers.MainHandler),
(r'^/config/main/(?P<op>set|get)/?$', handlers.ConfigHandler),
(r'^/config/(?P<camera_id>\d+)/(?P<op>get|set|rem|set_preview)/?$', handlers.ConfigHandler),
- (r'^/config/(?P<op>add|list|backup|restore)/?$', handlers.ConfigHandler),
+ (r'^/config/(?P<op>add|list|backup|restore|test|authorize)/?$', handlers.ConfigHandler),
(r'^/picture/(?P<camera_id>\d+)/(?P<op>current|list|frame)/?$', handlers.PictureHandler),
(r'^/picture/(?P<camera_id>\d+)/(?P<op>download|preview|delete)/(?P<filename>.+?)/?$', handlers.PictureHandler),
(r'^/picture/(?P<camera_id>\d+)/(?P<op>zipped|timelapse|delete_all)/(?P<group>.*?)/?$', handlers.PictureHandler),
{% endfor %}
</select>
{% elif config['type'] == 'html' %}
- <div class="html styled {{config['section']}} {% if config.get('camera') %}camera{% else %}main{% endif %}-config" id="{{config['name']}}Html">
+ <div class="html styled {{config['section']}} {% if config.get('camera') %}camera{% else %}main{% endif %}-config" id="{{config['name']}}Html"></div>
{% endif %}
</td>
<td>{% if config.get('description') %}<span class="help-mark" title="{{config['description']}}">?</span>{% endif %}</td>
</td>
<td><span class="help-mark" title="the used/total size of the disk where the root directory resides">?</span></td>
</tr>
+ <tr class="settings-item advanced-setting">
+ <td colspan="100"><div class="settings-item-separator"></div></td>
+ </tr>
+ <tr class="settings-item advanced-setting">
+ <td class="settings-item-label"><span class="settings-item-label">Upload Media Files</span></td>
+ <td class="settings-item-value"><input type="checkbox" class="styled storage camera-config" id="uploadEnabledSwitch"></td>
+ <td><span class="help-mark" title="enable this if you want your media files to be uploaded to an external service">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" depends="uploadEnabled">
+ <td class="settings-item-label"><span class="settings-item-label">Upload Service</span></td>
+ <td class="settings-item-value">
+ <select class="styled storage camera-config" id="uploadServiceSelect">
+ <option value="ftp">FTP Server</option>
+ <option value="sftp">SFTP Server</option>
+ <option value="http">HTTP Server</option>
+ <option value="https">HTTPS Server</option>
+ <option value="gdrive">Google Drive</option>
+ <option value="dropbox">Dropbox</option>
+ </select>
+ </td>
+ <td><span class="help-mark" title="choose a service to which the media files should be uploaded">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" required="true" depends="uploadEnabled uploadService=(ftp|sftp|http|https)">
+ <td class="settings-item-label"><span class="settings-item-label">Server Address</span></td>
+ <td class="settings-item-value"><input type="text" class="styled storage camera-config" id="uploadServerEntry"></td>
+ <td><span class="help-mark" title="the domain name or IP address of the server (e.g. ftp.example.com or 192.168.1.3)">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" required="true" min="1" max="65535" depends="uploadEnabled uploadService=(ftp|sftp|http|https)">
+ <td class="settings-item-label"><span class="settings-item-label">Server Port</span></td>
+ <td class="settings-item-value"><input type="text" class="number styled storage camera-config" id="uploadPortEntry"></td>
+ <td><span class="help-mark" title="the port to use when connecting to the service (leave it empty to use the default value)">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" required="true" depends="uploadEnabled uploadService=(ftp|sftp|http|https)">
+ <td class="settings-item-label"><span class="settings-item-label">Location</span></td>
+ <td class="settings-item-value"><input type="text" class="styled storage camera-config" id="uploadLocationEntry"></td>
+ <td><span class="help-mark" title="the location (relative path) where media files should be uploaded (e.g. /files/cam1/)">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" depends="uploadEnabled uploadService=(http|https)">
+ <td class="settings-item-label"><span class="settings-item-label">Method</span></td>
+ <td class="settings-item-value">
+ <select class="styled storage camera-config" id="uploadMethod">
+ <option value="post">POST</option>
+ <option value="put">PUT</option>
+ </select>
+ </td>
+ <td><span class="help-mark" title="the HTTP method to use when uploading files">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" depends="uploadEnabled uploadService=(ftp|sftp|http|https)">
+ <td class="settings-item-label"><span class="settings-item-label">Username</span></td>
+ <td class="settings-item-value"><input type="text" class="styled storage camera-config" id="uploadUsernameEntry"></td>
+ <td><span class="help-mark" title="the username for the upload service account">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" depends="uploadEnabled uploadService=(ftp|sftp|http|https)">
+ <td class="settings-item-label"><span class="settings-item-label">Password</span></td>
+ <td class="settings-item-value"><input type="password" class="styled storage camera-config" id="uploadPasswordEntry"></td>
+ <td><span class="help-mark" title="the password for the upload service account">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" required="true" depends="uploadEnabled uploadService=(gdrive|dropbox)">
+ <td class="settings-item-label"><span class="settings-item-label">Authorization Key</span></td>
+ <td class="settings-item-value"><input type="password" class="styled storage camera-config" id="uploadAuthKey"></td>
+ <td><span class="help-mark" title="the key used to authenticate with the upload service">?</span></td>
+ </tr>
+ <tr class="settings-item advanced-setting" depends="uploadEnabled uploadService=(gdrive|dropbox)">
+ <td class="settings-item-label"><span class="settings-item-label"></span></td>
+ <td class="settings-item-value">
+ <div class="html styled storage camera-config" id="authorizeLinkHtml">
+ <a href="javascript:authorizeUpload()">Obtain Authorization Key</a>
+ </div>
+ </td>
+ <td><span class="help-mark" title="click here to obtain the service authorization key">?</span></td>
+ </tr>
{% for config in camera_sections.get('storage', {}).get('configs', []) %}
{{config_item(config)}}
{% endfor %}