diff -r 000000000000 -r bca7a7e058a3 docs/progress.puml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/progress.puml Thu Feb 13 11:43:31 2020 +0100 @@ -0,0 +1,73 @@ +@startuml + +participant browser +participant submit_action +participant progress_action +participant HTTP_Session + +note over submit_action: \nLong time action... +note over progress_action: + +browser -> progress_action: check(progress_id) +note right of HTTP_Session #ff4444: first check can be\nstarted before commit\nis effective +activate progress_action +progress_action -> HTTP_Session: get(progress_id) +note right of HTTP_Session: status: "unknown" +HTTP_Session --> progress_action + +progress_action --> browser: JSON status "unknown" +deactivate progress_action +... + +browser -> submit_action: submit(progress_id) +activate submit_action + +submit_action -> HTTP_Session: set(progress_id, status, message, length, current) +activate HTTP_Session + +note right of HTTP_Session: status: "running"\nmessage: "Loading elements: "\nlength: 100\ncurrent: 1 + +HTTP_Session --> submit_action: OK + +... + +submit_action -> HTTP_Session: set(progress_id, status, message, length, current) + +note right of HTTP_Session: status: "running"\nmessage: "Loading elements: "\nlength: 100\ncurrent: 10 + +HTTP_Session --> submit_action: OK + +... + +browser -> progress_action: check(progress_id) +activate progress_action +progress_action -> HTTP_Session: get(progress_id) +HTTP_Session --> progress_action + +progress_action --> browser: JSON status "running" +deactivate progress_action +... + +submit_action -> HTTP_Session: set(progress_id, status, message, length, current) +HTTP_Session --> submit_action: OK + +... + +submit_action -> HTTP_Session: finish(progress_id) +note right of HTTP_Session: status: "finished" +HTTP_Session --> submit_action: OK + +submit_action --> browser: HTTP 200: OK +deactivate submit_action + +browser -> progress_action: check(progress_id) +activate progress_action +progress_action -> HTTP_Session: get(progress_id) +HTTP_Session --> progress_action + +deactivate HTTP_Session + +progress_action --> browser: JSON status "finished" +deactivate progress_action + +@enduml