");
switch(xmltv_status) {
default:
tcp_qprintf(tq, "
"
"XMLTV subsystem is not yet fully initialized, please retry "
"in a few seconds
");
http_output_html(hc, hr);
return 0;
case XMLTVSTATUS_FIND_GRABBERS_NOT_FOUND:
tcp_qprintf(tq, "");
ajax_box_begin(tq, AJAX_BOX_SIDEBOX, NULL, NULL, "XMLTV grabbers");
LIST_FOREACH(xg, &xmltv_grabbers, xg_link)
ngrabbers++;
ajax_table_header(hc, tq,
(const char *[]){"Grabber", "Status", NULL},
(int[]){4,2}, ngrabbers > displines, csize);
tcp_qprintf(tq, "
",
MAX(displines, ngrabbers) * 14);
LIST_FOREACH(xg, &xmltv_grabbers, xg_link) {
snprintf(buf, sizeof(buf),
"
%s", xg->xg_identifier, xg->xg_title);
cells[0] = buf;
cells[1] = xmltv_grabber_status(xg);
cells[2] = NULL;
ajax_table_row(tq, cells, csize, &o,
(const char *[]){NULL, "status"},
xg->xg_identifier);
}
ajax_mailbox_start(tq, "xmltvgrabbers");
tcp_qprintf(tq, "
");
ajax_box_end(tq, AJAX_BOX_SIDEBOX);
tcp_qprintf(tq, "
"
"", xg->xg_identifier);
switch(xg->xg_status) {
case XMLTV_GRABBER_DISABLED:
tcp_qprintf(tq,
"
This grabber is currently not enabled, click "
"here "
"to enable it
");
break;
case XMLTV_GRABBER_ENQUEUED:
case XMLTV_GRABBER_GRABBING:
case XMLTV_GRABBER_UNCONFIGURED:
case XMLTV_GRABBER_DYSFUNCTIONAL:
case XMLTV_GRABBER_IDLE:
tcp_qprintf(tq, "
%s
", xmltv_grabber_status_long(xg, xg->xg_status));
break;
}
tcp_qprintf(tq,"
");
ajax_box_end(tq, AJAX_BOX_SIDEBOX);
ajax_mailbox_start(tq, xg->xg_identifier);
http_output_html(hc, hr);
return 0;
}
/**
* Enable / Disable a grabber
*/
static int
ajax_xmltvgrabbermode(http_connection_t *hc, http_reply_t *hr,
const char *remain, void *opaque)
{
xmltv_grabber_t *xg;
tcp_queue_t *tq = &hr->hr_tq;
if(remain == NULL || (xg = xmltv_grabber_find(remain)) == NULL)
return HTTP_STATUS_NOT_FOUND;
xmltv_grabber_enable(xg);
tcp_qprintf(tq,"$('details_%s').innerHTML='Ok, please wait...';",
xg->xg_identifier);
http_output(hc, hr, "text/javascript; charset=UTF8", NULL, 0);
return 0;
}
/**
*
*/
void
ajax_config_xmltv_init(void)
{
http_path_add("/ajax/xmltvgrabber" , NULL, ajax_xmltvgrabber);
http_path_add("/ajax/xmltvgrabbermode" , NULL, ajax_xmltvgrabbermode);
}