From: Eduardo Silva Date: Sun, 21 Aug 2016 15:59:28 +0000 (-0300) Subject: Add "event_end" treatment in the user inteface X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=a65526850d26218273ab7d4896236b20adf63ece;p=motioneye-debian Add "event_end" treatment in the user inteface --- diff --git a/motioneye/config.py b/motioneye/config.py index 21f872f..91ec1b1 100644 --- a/motioneye/config.py +++ b/motioneye/config.py @@ -913,6 +913,9 @@ def motion_camera_ui_to_dict(ui, old_config=None): # event end on_event_end = ['%(script)s stop %%t' % {'script': meyectl.find_command('relayevent')}] + + if ui['command_post_notifications_enabled']: + on_event_end += utils.split_semicolon(ui['command_post_notifications_exec']) data['on_event_end'] = '; '.join(on_event_end) @@ -1053,6 +1056,7 @@ def motion_camera_dict_to_ui(data): 'email_notifications_enabled': False, 'web_hook_notifications_enabled': False, 'command_notifications_enabled': False, + 'command_post_notifications_enabled': False, # working schedule 'working_schedule': False, @@ -1297,6 +1301,24 @@ def motion_camera_dict_to_ui(data): ui['command_notifications_enabled'] = True ui['command_notifications_exec'] = '; '.join(command_notifications) + # event end + on_event_end = data.get('on_event_end') or [] + if on_event_end: + on_event_end = utils.split_semicolon(on_event_end) + + command_post_notifications = [] + for e in on_event_end: + if e.count('relayevent') or e.count('eventrelay.py'): + continue # ignore internal relay script + + else: # custom command + command_post_notifications.append(e) + + if command_post_notifications: + ui['command_post_notifications_enabled'] = True + ui['command_post_notifications_exec'] = '; '.join(command_post_notifications) + + # movie end on_movie_end = data.get('on_movie_end') or [] if on_movie_end: diff --git a/motioneye/static/js/main.js b/motioneye/static/js/main.js index 47dd60e..0173103 100644 --- a/motioneye/static/js/main.js +++ b/motioneye/static/js/main.js @@ -1570,6 +1570,8 @@ function cameraUi2Dict() { 'web_hook_notifications_http_method': $('#webHookNotificationsHttpMethodSelect').val(), 'command_notifications_enabled': $('#commandNotificationsEnabledSwitch')[0].checked, 'command_notifications_exec': $('#commandNotificationsEntry').val(), + 'command_post_notifications_enabled': $('#commandPostNotificationsEnabledSwitch')[0].checked, + 'command_post_notifications_exec': $('#commandPostNotificationsEntry').val(), /* working schedule */ 'working_schedule': $('#workingScheduleEnabledSwitch')[0].checked, @@ -1912,6 +1914,8 @@ function dict2CameraUi(dict) { $('#commandNotificationsEnabledSwitch')[0].checked = dict['command_notifications_enabled']; markHideIfNull('command_notifications_enabled', 'commandNotificationsEnabledSwitch'); $('#commandNotificationsEntry').val(dict['command_notifications_exec']); + $('#commandPostNotificationsEnabledSwitch')[0].checked = dict['command_post_notifications_enabled']; markHideIfNull('command_post_notifications_enabled', 'commandPostNotificationsEnabledSwitch'); + $('#commandPostNotificationsEntry').val(dict['command_post_notifications_exec']); /* working schedule */ $('#workingScheduleEnabledSwitch')[0].checked = dict['working_schedule']; markHideIfNull('working_schedule', 'workingScheduleEnabledSwitch'); diff --git a/motioneye/templates/main.html b/motioneye/templates/main.html index 2e82f01..f05bb89 100644 --- a/motioneye/templates/main.html +++ b/motioneye/templates/main.html @@ -912,6 +912,19 @@ ? + +
+ + + Run A Post Command + + ? + + + Command + + ? + {% for config in camera_sections.get('notifications', {}).get('configs', []) %} {{config_item(config, "motionDetectionEnabled")}} {% endfor %}