mirror of
https://github.com/TakeV-Lambda/Tooth.git
synced 2024-09-27 21:23:15 +00:00
feat(lists)[edit]: members page
This commit is contained in:
parent
7369adf624
commit
fe8016c0e5
|
@ -152,6 +152,56 @@ public class Tooth.Views.Lists : Views.Timeline {
|
||||||
list_settings_page_general.add(replies_group);
|
list_settings_page_general.add(replies_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var to_remove = new Gee.ArrayList<string>();
|
||||||
|
new Request.GET (@"/api/v1/lists/$(t_list.id)/accounts")
|
||||||
|
.with_account (accounts.active)
|
||||||
|
.then ((sess, msg) => {
|
||||||
|
if (Network.get_array_size(msg) > 0) {
|
||||||
|
var list_settings_page_members = new Adw.PreferencesPage() {
|
||||||
|
icon_name = "tooth-people-symbolic",
|
||||||
|
title = _("Members")
|
||||||
|
};
|
||||||
|
|
||||||
|
var rm_group = new Adw.PreferencesGroup() {
|
||||||
|
title = _("Remove Members")
|
||||||
|
};
|
||||||
|
|
||||||
|
Network.parse_array (msg, node => {
|
||||||
|
var member = API.Account.from (node);
|
||||||
|
var avi = new Widgets.Avatar() {
|
||||||
|
account = member,
|
||||||
|
size = 32
|
||||||
|
};
|
||||||
|
var m_switch = new Switch() {
|
||||||
|
active = true,
|
||||||
|
state = true,
|
||||||
|
valign = Align.CENTER,
|
||||||
|
halign = Align.CENTER
|
||||||
|
};
|
||||||
|
m_switch.state_set.connect((x) => {
|
||||||
|
if (!x) {
|
||||||
|
to_remove.add(member.id);
|
||||||
|
} else if (to_remove.contains(member.id)) {
|
||||||
|
to_remove.remove(member.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return x;
|
||||||
|
});
|
||||||
|
|
||||||
|
var member_row = new Adw.ActionRow() {
|
||||||
|
title = member.full_handle
|
||||||
|
};
|
||||||
|
member_row.add_prefix(avi);
|
||||||
|
member_row.add_suffix(m_switch);
|
||||||
|
|
||||||
|
rm_group.add(member_row);
|
||||||
|
});
|
||||||
|
|
||||||
|
list_settings_page_members.add(rm_group);
|
||||||
|
edit_preferences_window.add(list_settings_page_members);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.exec();
|
||||||
|
|
||||||
edit_preferences_window.add(list_settings_page_general);
|
edit_preferences_window.add(list_settings_page_general);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue