Add Save Only button to config editor (#5090)

* Add Save Only button to save config without restarting

* Fixes

* fix formatting

* change to query parameter from header

* lint fixes
This commit is contained in:
yeahme49 2023-01-15 11:25:49 -06:00 committed by GitHub
parent 621aa0cf61
commit e39fb51dec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 9 deletions

View File

@ -710,6 +710,8 @@ def config_raw():
@bp.route("/config/save", methods=["POST"]) @bp.route("/config/save", methods=["POST"])
def config_save(): def config_save():
save_option = request.args.get("save_option")
new_config = request.get_data().decode() new_config = request.get_data().decode()
if not new_config: if not new_config:
@ -753,13 +755,16 @@ def config_save():
400, 400,
) )
try: if save_option == "restart":
restart_frigate() try:
except Exception as e: restart_frigate()
logging.error(f"Error restarting Frigate: {e}") except Exception as e:
return "Config successfully saved, unable to restart Frigate", 200 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") @bp.route("/config/schema.json")

View File

@ -17,13 +17,13 @@ export default function Config() {
const [success, setSuccess] = useState(); const [success, setSuccess] = useState();
const [error, setError] = useState(); const [error, setError] = useState();
const onHandleSaveConfig = async (e) => { const onHandleSaveConfig = async (e, save_option) => {
if (e) { if (e) {
e.stopPropagation(); e.stopPropagation();
} }
axios axios
.post('config/save', window.editor.getValue(), { .post(`config/save?save_option=${save_option}`, window.editor.getValue(), {
headers: { 'Content-Type': 'text/plain' }, headers: { 'Content-Type': 'text/plain' },
}) })
.then((response) => { .then((response) => {
@ -97,9 +97,12 @@ export default function Config() {
<Button className="mx-2" onClick={(e) => handleCopyConfig(e)}> <Button className="mx-2" onClick={(e) => handleCopyConfig(e)}>
Copy Config Copy Config
</Button> </Button>
<Button className="mx-2" onClick={(e) => onHandleSaveConfig(e)}> <Button className="mx-2" onClick={(e) => onHandleSaveConfig(e, "restart")}>
Save & Restart Save & Restart
</Button> </Button>
<Button className="mx-2" onClick={(e) => onHandleSaveConfig(e, "saveonly")}>
Save Only
</Button>
</div> </div>
</div> </div>