Mercurial > sci
annotate scid/theme.h @ 85:cf49ab595e2e default tip @
sciworkerd: avoid spawning several tasks
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 09 Mar 2023 10:43:48 +0100 |
parents | 71cd8447e3a4 |
children |
rev | line source |
---|---|
30 | 1 /* |
2 * theme.h -- theme management | |
3 * | |
80
71cd8447e3a4
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
60
diff
changeset
|
4 * Copyright (c) 2021-2023 David Demelier <markand@malikania.fr> |
30 | 5 * |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
28
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #ifndef SCID_THEME_H |
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #define SCID_THEME_H |
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 |
30 | 22 /** |
23 * \file theme.h | |
24 * \brief Theme management | |
25 * | |
26 * Themes are written in Javascript and usually with a combination of | |
27 * [mustache][] files as well. The Javascript code is executed before rendering | |
28 * the page with a JSON document containing the data to generate. | |
29 * | |
30 * This has been designed to address the issue that many web frameworks require | |
31 * different kind of HTML entities to generate the view and as such, the scid | |
32 * application can not generate those HTML tags. | |
33 * | |
34 * This module uses a global Javascript context to perform rendering, you must | |
35 * call theme_open before doing anything else. Once done, use theme_finish to | |
36 * cleanup resources. | |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
37 * |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
38 * This module logs message with tag `theme`. |
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
39 * |
46
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
40 * ### Functions |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
41 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
42 * The following functions can be defined in the Javascript code. |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
43 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
44 * #### onPageIndex |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
45 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
46 * Called to render the index page, usually the dashboard with most recent |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
47 * builds on every projects. |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
48 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
49 * ```javascript |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
50 * { |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
51 * "projects: [ |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
52 * { |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
53 * "name": "project name", |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
54 * "desc": "project short description", |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
55 * "url": "project URL or homepage", |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
56 * "jobs": [ |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
57 * { |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
58 * "job": job-id, |
57
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
59 * "tag": "job tag / revision" |
60
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
60 * "status": true / false // If at least one failed |
46
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
61 * } |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
62 * ] |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
63 * "n-failed": number of failed jobs |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
64 * "n-succes": number of successful jobs |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
65 * } |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
66 * ] |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
67 * } |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
68 * ``` |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
69 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
70 * #### onPageJobresults |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
71 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
72 * Called to render most recent jobresults for a given job id. |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
73 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
74 * ```javascript |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
75 * { |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
76 * "jobresults": [ |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
77 * { |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
78 * "id": jobresult id, |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
79 * "job_id": parent job id, |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
80 * "worker_name": "worker which realized the task", |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
81 * "console": "stdout and stderr merge", |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
82 * "exitcode": process exit code, |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
83 * "sigcode": process termination code (0 means success), |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
84 * "date": job result insertion date |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
85 * } |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
86 * ] |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
87 * } |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
88 * ``` |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
89 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
90 * #### onPageStatus |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
91 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
92 * Called to render a unique status message (e.g. 404, 401). |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
93 * |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
94 * ```javascript |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
95 * { |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
96 * "status": number // Exemple: 400, 401 |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
97 * } |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
98 * ``` |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
99 * |
60
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
100 * #### onPageWorkers |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
101 * |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
102 * Called to list all workers. |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
103 * |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
104 * ```javascript |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
105 * { |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
106 * "workers": [ |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
107 * { |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
108 * "name": "worker name", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
109 * "desc": "worker description", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
110 * } |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
111 * ] |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
112 * } |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
113 * ``` |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
114 * |
57
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
115 * #### onPageWorker |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
116 * |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
117 * Called to show a worker information and its recent jobs. |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
118 * |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
119 * ```javascript |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
120 * { |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
121 * "name": "worker name", |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
122 * "desc": "worker description", |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
123 * "jobresults": [ |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
124 * { |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
125 * "id": jobresult id, |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
126 * "job_id": parent job id, |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
127 * "worker_name": "worker which realized the task", |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
128 * "console": "stdout and stderr merge", |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
129 * "exitcode": process exit code, |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
130 * "sigcode": process termination code (0 means success), |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
131 * "date": job result insertion date |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
132 * } |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
133 * ] |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
134 * } |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
135 * ``` |
bc617784ec97
scid: many fixes in pages
David Demelier <markand@malikania.fr>
parents:
46
diff
changeset
|
136 * |
60
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
137 * #### onPageProjects |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
138 * |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
139 * Called to list all projects. |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
140 * |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
141 * ```javascript |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
142 * { |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
143 * "projects": [ |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
144 * { |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
145 * "name": "project name", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
146 * "desc": "project description", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
147 * "url" "project URL or homepage", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
148 * } |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
149 * ] |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
150 * } |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
151 * ``` |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
152 * |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
153 * #### onPageProject |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
154 * |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
155 * ```javascript |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
156 * { |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
157 * "name": "project name", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
158 * "desc": "project description", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
159 * "url" "project URL or homepage", |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
160 * "script": "project script code" |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
161 * } |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
162 * ``` |
3804a2ab60ec
misc: documentation improvements
David Demelier <markand@malikania.fr>
parents:
57
diff
changeset
|
163 * |
33
1d0ddf9e6efd
misc: general documentation
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
164 * [mustache]: https://mustache.github.io/ |
30 | 165 */ |
166 | |
29
695637f1d8a7
scid: first index page in javascript
David Demelier <markand@malikania.fr>
parents:
28
diff
changeset
|
167 #include <jansson.h> |
695637f1d8a7
scid: first index page in javascript
David Demelier <markand@malikania.fr>
parents:
28
diff
changeset
|
168 |
695637f1d8a7
scid: first index page in javascript
David Demelier <markand@malikania.fr>
parents:
28
diff
changeset
|
169 #include "pageutil.h" |
695637f1d8a7
scid: first index page in javascript
David Demelier <markand@malikania.fr>
parents:
28
diff
changeset
|
170 |
30 | 171 /** |
172 * Open the theme specified by directory path. | |
173 * | |
174 * \pre directory != NULL | |
175 * \param directory path to the theme directory (absolute path is recommended). | |
176 */ | |
177 void | |
28
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 theme_open(const char *directory); |
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 |
30 | 180 /** |
181 * Return the path to the filename relative to the theme directory. | |
182 * | |
183 * \pre filename != NULL | |
184 * \param filename the filename to append | |
185 * \return the full path | |
186 * \note This function return a thread-local static variable. | |
187 */ | |
28
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 const char * |
30 | 189 theme_path(const char *filename); |
29
695637f1d8a7
scid: first index page in javascript
David Demelier <markand@malikania.fr>
parents:
28
diff
changeset
|
190 |
30 | 191 /** |
46
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
192 * Call a function from Javascript with an optional JSON document. |
30 | 193 * |
46
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
194 * \pre function != NULL |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
195 * \param function the function name to call from Javascript |
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
196 * \param doc the optional document to pass to the Javascript function |
30 | 197 * \return a newly allocated rendered string |
198 * \note You must free the return value | |
199 */ | |
29
695637f1d8a7
scid: first index page in javascript
David Demelier <markand@malikania.fr>
parents:
28
diff
changeset
|
200 char * |
46
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
201 theme_render(const char *function, json_t *doc); |
41
00b9af607524
scid: implement /jobresults/id page
David Demelier <markand@malikania.fr>
parents:
40
diff
changeset
|
202 |
00b9af607524
scid: implement /jobresults/id page
David Demelier <markand@malikania.fr>
parents:
40
diff
changeset
|
203 /** |
30 | 204 * Render the status page (for error code). |
205 * | |
206 * The document requires the following properties: | |
207 * | |
40
752bb1cd2dd8
themes: improve status page
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
208 * \param status the status code (e.g. 404) |
46
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
209 * \param msg the status message (e.g. Not found) |
30 | 210 * \return a newly allocated rendered string |
211 * \note You must free the return value | |
212 */ | |
213 char * | |
46
16f1c72d1635
scid: simplify theme code
David Demelier <markand@malikania.fr>
parents:
43
diff
changeset
|
214 theme_status(int status, const char *msg); |
30 | 215 |
216 /** | |
217 * Cleanup theme resources. | |
218 */ | |
28
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
219 void |
30 | 220 theme_finish(void); |
28
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
221 |
4c16bb25e4f1
scid: implement themes in javascript
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
222 #endif /* !SCID_THEME_H */ |