comparison scid/page-index.c @ 73:b0d1166de7d3

themes: improve status
author David Demelier <markand@malikania.fr>
date Tue, 24 Jan 2023 10:51:48 +0100
parents bc617784ec97
children 070d8c92ca30
comparison
equal deleted inserted replaced
72:3a5ecc40451a 73:b0d1166de7d3
26 #include "util.h" 26 #include "util.h"
27 27
28 static void 28 static void
29 set_job_status(json_t *project, json_t *job, json_t *jobresults, size_t *ns, size_t *nf) 29 set_job_status(json_t *project, json_t *job, json_t *jobresults, size_t *ns, size_t *nf)
30 { 30 {
31 json_t *iter, *status; 31 const char *status;
32 json_t *iter;
32 int exitcode, sigcode; 33 int exitcode, sigcode;
33 size_t i; 34 size_t i;
34 35
35 /* Compute number of failures and number of success. */ 36 /* Compute number of failures and number of success. */
36 json_array_foreach(jobresults, i, iter) { 37 json_array_foreach(jobresults, i, iter) {
40 (*ns)++; 41 (*ns)++;
41 else 42 else
42 (*nf)++; 43 (*nf)++;
43 } 44 }
44 45
45 /* At least one failed, set status to false. */ 46 /*
46 json_object_set_new(job, "status", json_boolean(nf)); 47 * We have three possibilities:
48 *
49 * - unknown: no result performed,
50 * - success: all results were successful,
51 * - failed: at least one has failed.
52 */
53 if (*nf == 0 && *ns == 0)
54 status = "unknown";
55 else if (*nf > 0)
56 status = "failed";
57 else
58 status = "success";
59
60 json_object_set_new(job, "status", json_string(status));
47 } 61 }
48 62
49 static void 63 static void
50 set_project_jobs(json_t *project, json_t *jobs) 64 set_project_jobs(json_t *project, json_t *jobs)
51 { 65 {