comparison scid/theme.c @ 46:16f1c72d1635

scid: simplify theme code
author David Demelier <markand@malikania.fr>
date Mon, 15 Aug 2022 17:57:34 +0200
parents 576f4b1ec79f
children 070d8c92ca30
comparison
equal deleted inserted replaced
45:c03305b39b10 46:16f1c72d1635
300 duk_push_true(ctx); 300 duk_push_true(ctx);
301 break; 301 break;
302 case JSON_FALSE: 302 case JSON_FALSE:
303 duk_push_false(ctx); 303 duk_push_false(ctx);
304 break; 304 break;
305 case JSON_NULL:
306 duk_push_null(ctx);
307 break;
308 case JSON_OBJECT: 305 case JSON_OBJECT:
309 push_object(ctx, val); 306 push_object(ctx, val);
310 break; 307 break;
311 case JSON_ARRAY: 308 case JSON_ARRAY:
312 push_array(ctx, val); 309 push_array(ctx, val);
310 break;
311 default:
312 duk_push_null(ctx);
313 break; 313 break;
314 } 314 }
315 } 315 }
316 316
317 static inline void 317 static inline void
414 414
415 return path; 415 return path;
416 } 416 }
417 417
418 char * 418 char *
419 theme_page_index(json_t *json) 419 theme_render(const char *function, json_t *json)
420 { 420 {
421 assert(json); 421 assert(function);
422 422
423 return call(json, "onPageIndex"); 423 return call(json, function);
424 } 424 }
425 425
426 char * 426 char *
427 theme_page_jobresults(json_t *json) 427 theme_status(int status, const char *message)
428 { 428 {
429 assert(json); 429 return theme_render("onPageStatus", util_json_pack("{si ss}",
430
431 return call(json, "onPageJobresults");
432 }
433
434 char *
435 theme_page_status(int status, const char *message)
436 {
437 json_t *doc;
438 char *ret;
439
440 doc = util_json_pack("{si ss}",
441 "status", status, 430 "status", status,
442 "message", message 431 "message", message
443 ); 432 ));
444 ret = call(doc, "onPageStatus");
445
446 json_decref(doc);
447
448 return ret;
449 } 433 }
450 434
451 void 435 void
452 theme_free(void) 436 theme_finish(void)
453 { 437 {
454 duk_destroy_heap(context); 438 duk_destroy_heap(context);
455 } 439 }