Extracted form field display code
This commit is contained in:
@@ -1871,44 +1871,8 @@ _ui_draw_term_title(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ui_handle_room_configuration(const char * const room, DataForm *form)
|
_ui_handle_form_field(ProfWin *window, FormField *field)
|
||||||
{
|
{
|
||||||
GString *title = g_string_new(room);
|
|
||||||
g_string_append(title, " config");
|
|
||||||
ProfWin *window = wins_new(title->str, WIN_MUC_CONFIG);
|
|
||||||
g_string_free(title, TRUE);
|
|
||||||
int num = wins_get_num(window);
|
|
||||||
ui_switch_win(num);
|
|
||||||
|
|
||||||
if (form->title != NULL) {
|
|
||||||
win_save_print(window, '-', NULL, 0, 0, "", form->title);
|
|
||||||
} else {
|
|
||||||
win_save_vprint(window, '-', NULL, 0, 0, "", "Configuration for room %s.", room);
|
|
||||||
}
|
|
||||||
win_save_print(window, '-', NULL, 0, 0, "", "");
|
|
||||||
|
|
||||||
if (form->instructions != NULL) {
|
|
||||||
win_save_vprint(window, '-', NULL, 0, 0, "", "Instructions:");
|
|
||||||
win_save_print(window, '-', NULL, 0, 0, "", form->instructions);
|
|
||||||
win_save_print(window, '-', NULL, 0, 0, "", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
GSList *fields = form->fields;
|
|
||||||
GSList *curr_field = fields;
|
|
||||||
while (curr_field != NULL) {
|
|
||||||
FormField *field = curr_field->data;
|
|
||||||
|
|
||||||
if (g_strcmp0(field->type, "hidden") != 0) {
|
|
||||||
if (field->required) {
|
|
||||||
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", "%s (", field->label);
|
|
||||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, COLOUR_AWAY, "", field->var);
|
|
||||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", ") Required: ");
|
|
||||||
} else {
|
|
||||||
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", "%s (", field->label);
|
|
||||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, COLOUR_AWAY, "", field->var);
|
|
||||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", "): ");
|
|
||||||
}
|
|
||||||
|
|
||||||
GSList *values = field->values;
|
GSList *values = field->values;
|
||||||
GSList *curr_value = values;
|
GSList *curr_value = values;
|
||||||
|
|
||||||
@@ -2023,6 +1987,49 @@ _ui_handle_room_configuration(const char * const room, DataForm *form)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ui_handle_room_configuration(const char * const room, DataForm *form)
|
||||||
|
{
|
||||||
|
GString *title = g_string_new(room);
|
||||||
|
g_string_append(title, " config");
|
||||||
|
ProfWin *window = wins_new(title->str, WIN_MUC_CONFIG);
|
||||||
|
g_string_free(title, TRUE);
|
||||||
|
|
||||||
|
int num = wins_get_num(window);
|
||||||
|
ui_switch_win(num);
|
||||||
|
|
||||||
|
if (form->title != NULL) {
|
||||||
|
win_save_print(window, '-', NULL, 0, 0, "", form->title);
|
||||||
|
} else {
|
||||||
|
win_save_vprint(window, '-', NULL, 0, 0, "", "Configuration for room %s.", room);
|
||||||
|
}
|
||||||
|
win_save_print(window, '-', NULL, 0, 0, "", "");
|
||||||
|
|
||||||
|
if (form->instructions != NULL) {
|
||||||
|
win_save_vprint(window, '-', NULL, 0, 0, "", "Instructions:");
|
||||||
|
win_save_print(window, '-', NULL, 0, 0, "", form->instructions);
|
||||||
|
win_save_print(window, '-', NULL, 0, 0, "", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
GSList *fields = form->fields;
|
||||||
|
GSList *curr_field = fields;
|
||||||
|
while (curr_field != NULL) {
|
||||||
|
FormField *field = curr_field->data;
|
||||||
|
|
||||||
|
if (g_strcmp0(field->type, "hidden") != 0) {
|
||||||
|
if (field->required) {
|
||||||
|
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", "%s (", field->label);
|
||||||
|
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, COLOUR_AWAY, "", field->var);
|
||||||
|
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", ") Required: ");
|
||||||
|
} else {
|
||||||
|
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", "%s (", field->label);
|
||||||
|
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, COLOUR_AWAY, "", field->var);
|
||||||
|
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", "): ");
|
||||||
|
}
|
||||||
|
|
||||||
|
_ui_handle_form_field(window, field);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TODO add command to get help for a field
|
TODO add command to get help for a field
|
||||||
|
|||||||
Reference in New Issue
Block a user