Added /room add for *-multi

This commit is contained in:
James Booth
2014-09-14 00:18:06 +01:00
parent b52911f7b4
commit 68b839a508
4 changed files with 72 additions and 21 deletions

View File

@@ -1921,37 +1921,37 @@ cmd_room(gchar **args, struct cmd_help_t help)
if (!form_tag_exists(current->form, tag)) {
ui_current_print_line("Form does not contain a field with tag %s", tag);
} else {
form_field_type_t field_type = form_get_field_type_by_tag(current->form, tag);
form_field_type_t field_type = form_get_field_type(current->form, tag);
gboolean valid = FALSE;
switch (field_type) {
case FIELD_TEXT_SINGLE:
case FIELD_TEXT_PRIVATE:
case FIELD_JID_SINGLE:
form_set_value_by_tag(current->form, tag, value);
form_set_value(current->form, tag, value);
ui_current_print_line("%s set to %s", tag, value);
break;
case FIELD_BOOLEAN:
if (g_strcmp0(value, "on") == 0) {
form_set_value_by_tag(current->form, tag, "1");
form_set_value(current->form, tag, "1");
ui_current_print_line("%s set to %s", tag, value);
} else if (g_strcmp0(value, "off") == 0) {
form_set_value_by_tag(current->form, tag, "0");
form_set_value(current->form, tag, "0");
ui_current_print_line("%s set to %s", tag, value);
} else {
ui_current_print_line("Value %s not valid for boolean field: %s", value, tag);
}
break;
case FIELD_LIST_SINGLE:
valid = form_field_contains_option_by_tag(current->form, tag, value);
valid = form_field_contains_option(current->form, tag, value);
if (valid == TRUE) {
form_set_value_by_tag(current->form, tag, value);
form_set_value(current->form, tag, value);
ui_current_print_line("%s set to %s", tag, value);
} else {
ui_current_print_line("Value %s not a valid option for field: %s", value, tag);
}
break;
default:
ui_current_print_line("Set command not valid for field: %s", value, tag);
ui_current_print_line("Set command not valid for field: %s", tag);
break;
}
}
@@ -1977,7 +1977,27 @@ cmd_room(gchar **args, struct cmd_help_t help)
if (!form_tag_exists(current->form, tag)) {
ui_current_print_line("Form does not contain a field with tag %s", tag);
} else {
ui_current_print_line("Add Tag: %s, Value: %s", tag, value);
form_field_type_t field_type = form_get_field_type(current->form, tag);
gboolean valid = FALSE;
switch (field_type) {
case FIELD_LIST_MULTI:
valid = form_field_contains_option(current->form, tag, value);
if (valid == TRUE) {
form_add_value(current->form, tag, value);
ui_current_print_line("Added %s to %s", value, tag);
} else {
ui_current_print_line("Value %s not a valid option for field: %s", value, tag);
}
break;
case FIELD_TEXT_MULTI:
case FIELD_JID_MULTI:
form_add_value(current->form, tag, value);
ui_current_print_line("Added %s to %s", value, tag);
break;
default:
ui_current_print_line("Add command not valid for field: %s", tag);
break;
}
}
}