From a61b4cee2bb4d2da84988841113a7f5ded4b4906 Mon Sep 17 00:00:00 2001 From: igor04091968 Date: Mon, 27 Apr 2026 01:47:16 +0300 Subject: [PATCH] fix(webui): prevent settings crash on missing class.data --- ansible/deploy_aw_server.yml | 18 ++++++++++++++++++ ansible/group_vars/all.example.yml | 6 ++++++ aw-server/settings/classes-worktime.json | 12 ++++++++---- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ansible/deploy_aw_server.yml b/ansible/deploy_aw_server.yml index d2095e5..2b75e61 100644 --- a/ansible/deploy_aw_server.yml +++ b/ansible/deploy_aw_server.yml @@ -163,6 +163,24 @@ status_code: 201 when: aw_apply_worktime_settings | default(false) | bool + - name: Apply baseline worktime period (startOfDay) + ansible.builtin.uri: + url: "http://127.0.0.1:{{ aw_server_port }}/api/0/settings/startOfDay" + method: POST + body: "{{ aw_worktime_start_of_day }}" + body_format: json + status_code: 200 + when: aw_apply_worktime_settings | default(false) | bool + + - name: Apply baseline worktime period (durationDefault seconds) + ansible.builtin.uri: + url: "http://127.0.0.1:{{ aw_server_port }}/api/0/settings/durationDefault" + method: POST + body: "{{ aw_worktime_duration_default }}" + body_format: json + status_code: 200 + when: aw_apply_worktime_settings | default(false) | bool + handlers: - name: Reload systemd ansible.builtin.systemd: diff --git a/ansible/group_vars/all.example.yml b/ansible/group_vars/all.example.yml index fdf1b60..398109a 100644 --- a/ansible/group_vars/all.example.yml +++ b/ansible/group_vars/all.example.yml @@ -13,3 +13,9 @@ aw_repo_root: "/home/igor/tmp/AWatch-rus" # Optional: apply a baseline worktime-focused categorization and views via AW settings API. # WARNING: this overwrites existing server-side settings/classes/views. aw_apply_worktime_settings: false + +# Optional defaults for the worktime period in Web UI. +# startOfDay controls day-boundary and default report window start. +# durationDefault controls default time range (seconds) shown in UI. +aw_worktime_start_of_day: "08:00" +aw_worktime_duration_default: 32400 diff --git a/aw-server/settings/classes-worktime.json b/aw-server/settings/classes-worktime.json index 8b26019..b6361f4 100644 --- a/aw-server/settings/classes-worktime.json +++ b/aw-server/settings/classes-worktime.json @@ -2,7 +2,8 @@ { "id": 0, "name": ["Работа"], - "rule": { "type": "none" } + "rule": { "type": "none" }, + "data": {} }, { "id": 1, @@ -47,7 +48,8 @@ { "id": 5, "name": ["Интернет"], - "rule": { "type": "none" } + "rule": { "type": "none" }, + "data": {} }, { "id": 6, @@ -62,7 +64,8 @@ { "id": 7, "name": ["Система"], - "rule": { "type": "none" } + "rule": { "type": "none" }, + "data": {} }, { "id": 8, @@ -81,6 +84,7 @@ "type": "regex", "regex": "ActivityWatch|\\baw-(watcher|qt)\\.exe\\b", "ignore_case": true - } + }, + "data": {} } ]