mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-23 18:26:22 +00:00
Implemented getting affiliation list, and setting affiliation
This commit is contained in:
@@ -1749,6 +1749,55 @@ _ui_room_broadcast(const char * const room_jid, const char * const message)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_handle_room_affiliation_list_error(const char * const room, const char * const affiliation,
|
||||
const char * const error)
|
||||
{
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
if (window) {
|
||||
win_save_vprint(window, '!', NULL, 0, COLOUR_ERROR, "", "Error retrieving %s list: %s", affiliation, error);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_handle_room_affiliation_list(const char * const room, const char * const affiliation, GSList *jids)
|
||||
{
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
if (window) {
|
||||
if (jids) {
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", "Affiliation: %s", affiliation);
|
||||
GSList *curr_jid = jids;
|
||||
while (curr_jid) {
|
||||
char *jid = curr_jid->data;
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", " %s", jid);
|
||||
curr_jid = g_slist_next(curr_jid);
|
||||
}
|
||||
win_save_print(window, '!', NULL, 0, 0, "", "");
|
||||
} else {
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", "No users found with affiliation: %s", affiliation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_handle_room_affiliation_set_error(const char * const room, const char * const jid, const char * const affiliation,
|
||||
const char * const error)
|
||||
{
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
if (window) {
|
||||
win_save_vprint(window, '!', NULL, 0, COLOUR_ERROR, "", "Error setting %s affiliation for %s: %s", affiliation, jid, error);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_handle_room_affiliation_set(const char * const room, const char * const jid, const char * const affiliation)
|
||||
{
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
if (window) {
|
||||
win_save_vprint(window, '!', NULL, 0, 0, "", "Affiliation for %s set: %s", jid, affiliation);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_ui_status(void)
|
||||
{
|
||||
@@ -2698,4 +2747,9 @@ ui_init_module(void)
|
||||
ui_show_room_affiliation_list = _ui_show_room_affiliation_list;
|
||||
ui_handle_room_info_error = _ui_handle_room_info_error;
|
||||
ui_show_room_disco_info = _ui_show_room_disco_info;
|
||||
ui_handle_room_affiliation_list_error = _ui_handle_room_affiliation_list_error;
|
||||
ui_handle_room_affiliation_list =_ui_handle_room_affiliation_list;
|
||||
ui_handle_room_affiliation_set_error =_ui_handle_room_affiliation_set_error;
|
||||
ui_handle_room_affiliation_set = _ui_handle_room_affiliation_set;
|
||||
|
||||
}
|
||||
|
||||
@@ -170,6 +170,12 @@ void (*ui_handle_room_configuration)(const char * const room, DataForm *form);
|
||||
void (*ui_handle_room_configuration_form_error)(const char * const room, const char * const message);
|
||||
void (*ui_handle_room_config_submit_result)(const char * const room);
|
||||
void (*ui_handle_room_config_submit_result_error)(const char * const room, const char * const message);
|
||||
void (*ui_handle_room_affiliation_list_error)(const char * const room, const char * const affiliation,
|
||||
const char * const error);
|
||||
void (*ui_handle_room_affiliation_list)(const char * const room, const char * const affiliation, GSList *jids);
|
||||
void (*ui_handle_room_affiliation_set_error)(const char * const room, const char * const jid,
|
||||
const char * const affiliation, const char * const error);
|
||||
void (*ui_handle_room_affiliation_set)(const char * const room, const char * const jid, const char * const affiliation);
|
||||
void (*ui_show_form)(ProfWin *window, const char * const room, DataForm *form);
|
||||
void (*ui_show_form_field)(ProfWin *window, DataForm *form, char *tag);
|
||||
void (*ui_show_form_help)(ProfWin *window, DataForm *form);
|
||||
|
||||
Reference in New Issue
Block a user