user groups: Add support for user group update event.

This commit is contained in:
m-e-l-u-h-a-n 2023-02-03 15:15:58 +05:30 committed by Tim Abbott
parent 6147f2bd7a
commit c0cd6f7f04
4 changed files with 35 additions and 1 deletions

View File

@ -239,13 +239,22 @@ run_test("user groups", ({override}) => {
event = event_fixtures.user_group__update;
{
const stub = make_stub();
const user_group_settings_ui_stub = make_stub();
override(user_groups, "update", stub.f);
override(user_groups_settings_ui, "update_group", user_group_settings_ui_stub.f);
dispatch(event);
assert.equal(stub.num_calls, 1);
const args = stub.get_args("event");
assert.equal(user_group_settings_ui_stub.num_calls, 1);
let args = stub.get_args("event");
assert_same(args.event.group_id, event.group_id);
assert_same(args.event.data.name, event.data.name);
assert_same(args.event.data.description, event.data.description);
args = user_group_settings_ui_stub.get_args("group_id");
assert_same(args.group_id, event.group_id);
}
});

View File

@ -776,6 +776,7 @@ export function dispatch_normal_event(event) {
break;
case "update":
user_groups.update(event);
user_groups_settings_ui.update_group(event.group_id);
break;
default:
blueslip.error("Unexpected event type user_group/" + event.op);

View File

@ -80,6 +80,12 @@ function show_membership_settings(group) {
});
}
export function update_settings_pane(group) {
const $edit_container = get_edit_container(group);
$edit_container.find(".group-name").text(group.name);
$edit_container.find(".group-description").text(group.description);
}
export function show_settings_for(node) {
const group = get_user_group_for_target(node);
const html = render_user_group_settings({

View File

@ -133,6 +133,24 @@ export function add_group_to_table(group) {
}
}
export function update_group(group_id) {
if (!overlays.groups_open()) {
return;
}
const group = user_groups.get_user_group_from_id(group_id);
const $group_row = row_for_group_id(group_id);
// update left side pane
$group_row.find(".group-name").text(group.name);
$group_row.find(".description").text(group.description);
if (get_active_data().id === group.id) {
// update right side pane
user_group_edit.update_settings_pane(group);
// update settings title
$("#groups_overlay .user-group-info-title").text(group.name);
}
}
export function change_state(section) {
if (!section) {
show_user_group_settings_pane.nothing_selected();