Ability to add, edit, and delete camera groups in the UI (#10296)

* Add dialog for creating new camera group

* Support adding of camera groups and dynamically updating the config

* Support deleting and edit existing camera groups

* Don't show separator if user has no groups

* Formatting

* fix background
This commit is contained in:
Nicolas Mowen
2024-03-06 18:15:50 -07:00
committed by GitHub
parent 90db27e3c8
commit 3d90f50d84
6 changed files with 282 additions and 38 deletions

View File

@@ -292,7 +292,7 @@ def config_set():
f.close()
# Validate the config schema
try:
FrigateConfig.parse_raw(new_raw_config)
config_obj = FrigateConfig.parse_raw(new_raw_config)
except Exception:
with open(config_file, "w") as f:
f.write(old_raw_config)
@@ -314,6 +314,13 @@ def config_set():
500,
)
json = request.get_json(silent=True) or {}
if json.get("requires_restart", 1) == 0:
current_app.frigate_config = FrigateConfig.runtime_config(
config_obj, current_app.plus_api
)
return make_response(
jsonify(
{

View File

@@ -204,17 +204,22 @@ def update_yaml_from_url(file_path, url):
key_path.pop(i - 1)
except ValueError:
pass
new_value = new_value_list[0]
update_yaml_file(file_path, key_path, new_value)
if len(new_value_list) > 1:
update_yaml_file(file_path, key_path, new_value_list)
else:
update_yaml_file(file_path, key_path, new_value_list[0])
def update_yaml_file(file_path, key_path, new_value):
yaml = YAML()
yaml.indent(mapping=2, sequence=4, offset=2)
with open(file_path, "r") as f:
data = yaml.load(f)
data = update_yaml(data, key_path, new_value)
with open("/config/test.yaml", "w") as f:
yaml.dump(data, f)
with open(file_path, "w") as f:
yaml.dump(data, f)