Пример #1
0
RESOW_DECL_METHOD(setup_create_form,env,resp,db) {

	gchar *path;
	gchar *appname;
	resow_application_t *app;
	request_cgi_env_t env_a;
	GSList *i;

	path=http_response_html_escape_string(HTTP_QUERY_PARAMETER(env, "path"));
	appname=http_response_html_escape_string(HTTP_QUERY_PARAMETER(env, "app"));

	memset(&env_a, 0, sizeof(request_cgi_env_t));
	app = application_load(appname, &env_a);
	if (app==NULL) {
		return HTTP_STATUS_BAD_REQUEST;
	}

	stream_open(resp, HTTP_STATUS_OK, 1);

	stream_printf(resp, "<html><head><title>Define new parameter for %s (at %s)</title></head>\n", app, path);
	stream_printf(resp, "<body>\n");
	stream_printf(resp, "<h1>Define new parameter for %s (at %s)</h1>\n",
		appname, path);

	stream_printf(resp, "<table><form method=\"POST\">\n");
	stream_printf(resp, "<tr><th></th><th>Parameter</th><th>Value</th></tr>\n");
	stream_printf(resp, "<tr><td><input type=\"hidden\" name=\"path\" value=\"%s\"></input><input type=\"hidden\" name=\"app\" value=\"%s\"></input></td>\n", path, appname);

	i = app->parameters;
	stream_printf(resp, "<td><select name=\"param\"%s>\n", i==NULL? " disabled" : "");
	while (i!=NULL) {
		stream_printf(resp, "\t<option>%s</option>\n", i->data);
		i=i->next;
	}
	stream_printf(resp, "</select></td>\n");
	stream_printf(resp, "<td><input type=\"text\" name=\"value\"></input></td>\n");
	stream_printf(resp, "</tr>\n");
	stream_printf(resp, "<tr><td></td><td><input type=\"submit\" value=\"Add\"></td></td></tr>\n");
	stream_printf(resp, "</form></table>\n");
	if (app->parameters==NULL)
		stream_printf(resp, "<p>There are no parameters to set in application <tt>%s</tt></p>\n", app->name);

	stream_printf(resp, "</body></html>\n");
	stream_close(resp);

	application_unload(app);

	g_free(path); g_free(appname);

	return HTTP_STATUS_OK;
}
Пример #2
0
static void load_app(intptr_t unused) {
	ER ercd;

	on_display_fb = lcd_screen_fb;
	application_unload();
	platform_pause_application(true);
	ercd = application_load_menu();
	memset(lcd_screen_fb->pixels, 0, BITMAP_PIXELS_SIZE(lcd_screen_fb->width, lcd_screen_fb->height));
	on_display_fb = ev3rt_console_fb;
	if (ercd == E_OK) {
		ev3rt_console_start_app();
	} else {
		platform_pause_application(false);
	}
}