From af52ce4e5d85863490b4c8b3ee49685fd30fc86c Mon Sep 17 00:00:00 2001 From: gysmo38 Date: Sun, 7 Jun 2020 15:28:36 +0200 Subject: [PATCH] Add toggle for control --- .../{onvif-srvd.sh => onvif-srvd} | 0 firmware_mod/www/cgi-bin/ui_control.cgi | 19 +++------- firmware_mod/www/js/control.js | 38 ++++++------------- 3 files changed, 17 insertions(+), 40 deletions(-) rename firmware_mod/controlscripts/{onvif-srvd.sh => onvif-srvd} (100%) diff --git a/firmware_mod/controlscripts/onvif-srvd.sh b/firmware_mod/controlscripts/onvif-srvd similarity index 100% rename from firmware_mod/controlscripts/onvif-srvd.sh rename to firmware_mod/controlscripts/onvif-srvd diff --git a/firmware_mod/www/cgi-bin/ui_control.cgi b/firmware_mod/www/cgi-bin/ui_control.cgi index 04b78e6..1bddfff 100755 --- a/firmware_mod/www/cgi-bin/ui_control.cgi +++ b/firmware_mod/www/cgi-bin/ui_control.cgi @@ -1,7 +1,6 @@ #!/bin/sh . /system/sdcard/www/cgi-bin/func.cgi -. /system/sdcard/scripts/common_functions.sh export LD_LIBRARY_PATH=/system/lib export LD_LIBRARY_PATH=/thirdlib:$LD_LIBRARY_PATH @@ -14,18 +13,10 @@ echo "" if [ -n "$F_cmd" ]; then case "$F_cmd" in get_services) - echo "auto_night_mode#:#$(auto_night_mode status)#:#$(test -f /system/sdcard/config/autostart/auto-night-detection && echo 'true' || echo 'false')#:#false" - echo "debug-on-osd#:#$(debug_on_osd status)#:#$(test -f /system/sdcard/config/autostart/debug-on-osd && echo 'true' || echo 'false')#:#false" - echo "ftp_server#:#$(ftp_server status)#:#$(test -f /system/sdcard/config/autostart/ftp_server && echo 'true' || echo 'false')#:#false" - echo "mqtt-control#:#$(mqtt_control status)#:#$(test -f /system/sdcard/config/autostart/mqtt-control && echo 'true' || echo 'false')#:#false" - echo "mqtt-status#:#$(mqtt_status status)#:#$(test -f /system/sdcard/config/autostart/mqtt-status && echo 'true' || echo 'false')#:#false" - echo "onvif-srvd#:#$(onvif_srvd status)#:#$(test -f /system/sdcard/config/autostart/onvif-srvd && echo 'true' || echo 'false')#:#false" - echo "recording#:#$(recording status)#:#$(test -f /system/sdcard/config/autostart/recording && echo 'true' || echo 'false')#:#false" - echo "rtsp-h264#:#$(rtsp_h264_server status)#:#$(test -f /system/sdcard/config/autostart/rtsp-h264 && echo 'true' || echo 'false')#:#false" - echo "rtsp-mjpeg#:#$(rtsp_mjpeg_server status)#:#$(test -f /system/sdcard/config/autostart/rtsp-mjpeg && echo 'true' || echo 'false')#:#false" - echo "sound-on-startup#:#$(sound_on_startup status)#:#$(test -f /system/sdcard/config/autostart/sound-on-startup && echo 'true' || echo 'false')#:#false" - echo "telegram-bot#:#$(telegram_bot status)#:#$(test -f /system/sdcard/config/autostart/telegram-bot && echo 'true' || echo 'false')#:#false" - echo "timelapse#:#$(timelapse status)#:#$(test -f /system/sdcard/config/autostart/timelapse && echo 'true' || echo 'false')#:#false" + services="auto-night-detection debug-on-osd ftp_server mqtt-control mqtt-status onvif-srvd recording rtsp-h264 rtsp-mjpeg sound-on-startup telegram-bot timelapse" + for service in $services ; do + echo "${service}#:#$(test -f /run/${service}.pid && echo 'started' || echo 'stopped')#:#$(test -f /system/sdcard/config/autostart/${service} && echo 'true' || echo 'false')#:#false" + done return ;; autoStartService) @@ -41,7 +32,7 @@ if [ -n "$F_cmd" ]; then return ;; services) - $F_service $F_action + $(/system/sdcard/controlscripts/${F_service} $F_action) > /dev/null return ;; getFiles) diff --git a/firmware_mod/www/js/control.js b/firmware_mod/www/js/control.js index 976c90b..ab3c59a 100755 --- a/firmware_mod/www/js/control.js +++ b/firmware_mod/www/js/control.js @@ -207,23 +207,13 @@ function start(branch,mode) { //Function control service (stop/start) function controlService(action,serviceName) { $.get("cgi-bin/ui_control.cgi", {cmd: "services",service: serviceName, action: action}, function(result){ - if (action == 'on') { - $('#start_'+serviceName).removeAttr('onclick'); - $('#stop_'+serviceName).attr('onclick','controlService("off","'+serviceName+'")'); - $('#start_'+serviceName).removeClass('w3-text-green'); - $('#start_'+serviceName).addClass('w3-text-grey'); - $('#stop_'+serviceName).removeClass('w3-text-grey'); - $('#stop_'+serviceName).addClass('w3-text-red'); + $('#control_'+serviceName).removeAttr('onclick'); + if (action == 'start') { + $('#control_'+serviceName).attr('onclick','controlService("stop","'+serviceName+'")') } else { - $('#stop_'+serviceName).removeAttr('onclick'); - $('#start_'+serviceName).attr('onclick','controlService("on","'+serviceName+'")'); - $('#start_'+serviceName).removeClass('w3-text-grey'); - $('#start_'+serviceName).addClass('w3-text-green'); - $('#stop_'+serviceName).removeClass('w3-text-red'); - $('#stop_'+serviceName).addClass('w3-text-grey'); + $('#control_'+serviceName).attr('onclick','controlService("start","'+serviceName+'")') } - $('#start').append(""+config_info[0]+""); }); } @@ -247,19 +237,15 @@ function getServices() { for (var i = 0; i < config_all.length-1; i++) { var config_info = config_all[i].split("#:#"); // Select button color accrding status - if (config_info[1] == "ON") { - var color_start = "w3-text-grey' style='cursor:not-allowed' id='start_"+config_info[0]+"'>"; - var color_stop = "w3-text-red'onclick='controlService(\"off\",\""+config_info[0]+"\")' id='stop_"+config_info[0]+"'>"; - } - else { - var color_start = "w3-text-green' onclick='controlService(\"on\",\""+config_info[0]+"\")' id='start_"+config_info[0]+"'>"; - var color_stop = "w3-text-grey' style='cursor:not-allowed' id='stop_"+config_info[0]+"'>"; - } - var checked = "onclick='autoStartService(\"true\",\""+config_info[0]+"\")')"; + var control_checked = "onclick='controlService(\"start\",\""+config_info[0]+"\")')"; + if (config_info[1] == "started") + control_checked = "checked onclick='controlService(\"stop\",\""+config_info[0]+"\")')"; + var autostart_checked = "onclick='autoStartService(\"true\",\""+config_info[0]+"\")')"; if(config_info[2] == "true") - checked = "checked onclick='autoStartService(\"false\",\""+config_info[0]+"\")')"; - - $('#tabServices').append(""+config_info[0]+"Off On"); + autostart_checked = "checked onclick='autoStartService(\"false\",\""+config_info[0]+"\")')"; + $('#tabServices').append(""+config_info[0]+"\ + Stop Start\ + Off On"); } });