diff --git a/frigate/http.py b/frigate/http.py index 1f4fb4e75..815c700cc 100644 --- a/frigate/http.py +++ b/frigate/http.py @@ -710,6 +710,8 @@ def config_raw(): @bp.route("/config/save", methods=["POST"]) def config_save(): + save_option = request.args.get("save_option") + new_config = request.get_data().decode() if not new_config: @@ -753,13 +755,16 @@ def config_save(): 400, ) - try: - restart_frigate() - except Exception as e: - logging.error(f"Error restarting Frigate: {e}") - return "Config successfully saved, unable to restart Frigate", 200 + if save_option == "restart": + try: + restart_frigate() + except Exception as e: + logging.error(f"Error restarting Frigate: {e}") + return "Config successfully saved, unable to restart Frigate", 200 - return "Config successfully saved, restarting...", 200 + return "Config successfully saved, restarting...", 200 + else: + return "Config successfully saved.", 200 @bp.route("/config/schema.json") diff --git a/web/src/routes/Config.jsx b/web/src/routes/Config.jsx index 590201d47..e043bbf28 100644 --- a/web/src/routes/Config.jsx +++ b/web/src/routes/Config.jsx @@ -17,13 +17,13 @@ export default function Config() { const [success, setSuccess] = useState(); const [error, setError] = useState(); - const onHandleSaveConfig = async (e) => { + const onHandleSaveConfig = async (e, save_option) => { if (e) { e.stopPropagation(); } axios - .post('config/save', window.editor.getValue(), { + .post(`config/save?save_option=${save_option}`, window.editor.getValue(), { headers: { 'Content-Type': 'text/plain' }, }) .then((response) => { @@ -97,9 +97,12 @@ export default function Config() { - +