about summary refs log tree commit diff stats
path: root/src/ui/core.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-10-05 01:39:48 +0100
committerJames Booth <boothj5@gmail.com>2014-10-05 01:39:48 +0100
commit2026ab4b6ee7dca156b6b72d9889f2039279af27 (patch)
tree1a283c50e24b394c9bd546f75d145900455f6a86 /src/ui/core.c
parentfd5326b40b0f4d7389d2d8d76106cbb52ac26d9d (diff)
downloadprofani-tty-2026ab4b6ee7dca156b6b72d9889f2039279af27.tar.gz
Implemented getting affiliation list, and setting affiliation
Diffstat (limited to 'src/ui/core.c')
-rw-r--r--src/ui/core.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/ui/core.c b/src/ui/core.c
index b6168c58..ae47d881 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -1750,6 +1750,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)
 {
     char *recipient = ui_current_recipient();
@@ -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;
+
 }
<boothj5@gmail.com> 2013-12-14 15:34:17 +0000 Added simple mock test, refactored roster' href='/danisanti/profani-tty/commit/src/ui/window.h?id=107fdd355e487793e53799ce3ebed0659263a2f7'>107fdd35 ^
4aee5347 ^
9b177a9e ^
601a8803 ^
97aebb61 ^

9b177a9e ^
732533ee ^
9b177a9e ^
732533ee ^
52e9be4a ^

732533ee ^

9b55f2de ^
a4cadf78 ^

0a57c4de ^



a04031ce ^
c402f8d9 ^
a234ba0c ^
a2726b6a ^




3b2ceee8 ^
a2726b6a ^






ea83165a ^
af42bc44 ^
d043d539 ^
af42bc44 ^
a2726b6a ^

4d6e95d6 ^
36427971 ^
3a778cc9 ^
a2726b6a ^



4aee5347 ^
a2726b6a ^
630fef01 ^
a2726b6a ^



28dd5458 ^
a2726b6a ^

14f25992 ^
06ef6842 ^

4aee5347 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101