mirror of
https://github.com/zulip/zulip.git
synced 2025-11-17 12:21:58 +00:00
user_group: Show join group button if user is not a direct member.
We would show the leave group button if user was a member either directly or via a subgroup. But that button is only applicable for adding/removing a direct membership, so we will show the join group button if the user belongs to a group via subgroup and not by direct membership.
This commit is contained in:
committed by
Tim Abbott
parent
a491b83b79
commit
c49c7a534f
@@ -224,6 +224,7 @@ function initialize_tooltip_for_membership_button(group_id) {
|
|||||||
settings_components.initialize_disable_button_hint_popover($tooltip_wrapper, tooltip_message);
|
settings_components.initialize_disable_button_hint_popover($tooltip_wrapper, tooltip_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Group membership button only adds or removes direct membership.
|
||||||
function update_group_membership_button(group_id) {
|
function update_group_membership_button(group_id) {
|
||||||
const $group_settings_button = group_membership_button(group_id);
|
const $group_settings_button = group_membership_button(group_id);
|
||||||
|
|
||||||
@@ -231,8 +232,12 @@ function update_group_membership_button(group_id) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const is_member = user_groups.is_user_in_group(group_id, people.my_current_user_id());
|
const is_direct_member = user_groups.is_user_in_group(
|
||||||
if (is_member) {
|
group_id,
|
||||||
|
people.my_current_user_id(),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
if (is_direct_member) {
|
||||||
$group_settings_button.text($t({defaultMessage: "Leave group"}));
|
$group_settings_button.text($t({defaultMessage: "Leave group"}));
|
||||||
} else {
|
} else {
|
||||||
$group_settings_button.text($t({defaultMessage: "Join group"}));
|
$group_settings_button.text($t({defaultMessage: "Join group"}));
|
||||||
@@ -242,9 +247,9 @@ function update_group_membership_button(group_id) {
|
|||||||
const can_leave_group = settings_data.can_leave_user_group(group_id);
|
const can_leave_group = settings_data.can_leave_user_group(group_id);
|
||||||
|
|
||||||
let can_update_membership = true;
|
let can_update_membership = true;
|
||||||
if (!is_member && !can_join_group) {
|
if (!is_direct_member && !can_join_group) {
|
||||||
can_update_membership = false;
|
can_update_membership = false;
|
||||||
} else if (is_member && !can_leave_group) {
|
} else if (is_direct_member && !can_leave_group) {
|
||||||
can_update_membership = false;
|
can_update_membership = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,7 +356,7 @@ export function show_settings_for(group) {
|
|||||||
),
|
),
|
||||||
creator: stream_data.maybe_get_creator_details(group.creator_id),
|
creator: stream_data.maybe_get_creator_details(group.creator_id),
|
||||||
is_creator: group.creator_id === current_user.user_id,
|
is_creator: group.creator_id === current_user.user_id,
|
||||||
is_member: user_groups.is_direct_member_of(people.my_current_user_id(), group.id),
|
is_direct_member: user_groups.is_direct_member_of(people.my_current_user_id(), group.id),
|
||||||
});
|
});
|
||||||
|
|
||||||
scroll_util.get_content_element($("#user_group_settings")).html(html);
|
scroll_util.get_content_element($("#user_group_settings")).html(html);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<div class="join_leave_button_wrapper inline-block">
|
<div class="join_leave_button_wrapper inline-block">
|
||||||
<button class="button small rounded join_leave_button" type="button" name="button">
|
<button class="button small rounded join_leave_button" type="button" name="button">
|
||||||
{{#if is_member}}
|
{{#if is_direct_member}}
|
||||||
{{t "Leave group" }}
|
{{t "Leave group" }}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{t "Join group" }}
|
{{t "Join group" }}
|
||||||
|
|||||||
Reference in New Issue
Block a user