From 0f742298deab3d2718a532fe36a473d2d3a6b38c Mon Sep 17 00:00:00 2001 From: Maxim Nikolenko Date: Wed, 18 Oct 2023 23:59:17 +0300 Subject: SL-20376 Clarify group membership status and leave-group confirmation dialog --- indra/newview/llgroupactions.cpp | 11 ++++++++++- indra/newview/llpanelgroup.cpp | 21 +++++++++++++++++---- .../newview/skins/default/xui/en/notifications.xml | 18 ++++++++++++++++-- .../skins/default/xui/en/panel_group_general.xml | 6 +++--- .../default/xui/en/panel_group_info_sidetray.xml | 8 ++++---- 5 files changed, 50 insertions(+), 14 deletions(-) (limited to 'indra') diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index 5db8424b99..1cdac686d7 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -366,7 +366,16 @@ void LLGroupActions::processLeaveGroupDataResponse(const LLUUID group_id) args["GROUP"] = gdatap->mName; LLSD payload; payload["group_id"] = group_id; - LLNotificationsUtil::add("GroupLeaveConfirmMember", args, payload, onLeaveGroup); + if (gdatap->mMembershipFee > 0) + { + args["COST"] = gdatap->mMembershipFee; + LLNotificationsUtil::add("GroupLeaveConfirmMember", args, payload, onLeaveGroup); + } + else + { + LLNotificationsUtil::add("GroupLeaveConfirmMemberNoFee", args, payload, onLeaveGroup); + } + } // static diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp index 57742f16a7..0ab0d85c78 100644 --- a/indra/newview/llpanelgroup.cpp +++ b/indra/newview/llpanelgroup.cpp @@ -273,8 +273,15 @@ void LLPanelGroup::onBtnGroupChatClicked(void* user_data) void LLPanelGroup::onBtnJoin() { - LL_DEBUGS() << "joining group: " << mID << LL_ENDL; - LLGroupActions::join(mID); + if (LLGroupActions::isInGroup(mID)) + { + LLGroupActions::leave(mID); + } + else + { + LL_DEBUGS() << "joining group: " << mID << LL_ENDL; + LLGroupActions::join(mID); + } } void LLPanelGroup::changed(LLGroupChange gc) @@ -312,12 +319,17 @@ void LLPanelGroup::update(LLGroupChange gc) LLGroupData agent_gdatap; bool is_member = gAgent.getGroupData(mID,agent_gdatap) || gAgent.isGodlikeWithoutAdminMenuFakery(); - bool join_btn_visible = !is_member && gdatap->mOpenEnrollment; + bool join_btn_visible = is_member || gdatap->mOpenEnrollment; mButtonJoin->setVisible(join_btn_visible); mJoinText->setVisible(join_btn_visible); - if(join_btn_visible) + if (is_member) + { + mJoinText->setValue(getString("group_member")); + mButtonJoin->setLabel(getString("leave_txt")); + } + else if(join_btn_visible) { LLStringUtil::format_map_t string_args; std::string fee_buff; @@ -332,6 +344,7 @@ void LLPanelGroup::update(LLGroupChange gc) fee_buff = getString("group_join_free", string_args); } mJoinText->setValue(fee_buff); + mButtonJoin->setLabel(getString("join_txt")); } } } diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 5115bcb27f..7b1449ea92 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4399,8 +4399,22 @@ Are you sure you want to return the selected objects to their owners? Transferab icon="alert.tga" name="GroupLeaveConfirmMember" type="alert"> -You are currently a member of the group <nolink>[GROUP]</nolink>. -Leave Group? +Leave the group '<nolink>[GROUP]</nolink>'? +Currently, the fee to join this "group" is L$ [COST]. + group + confirm + + + + +Leave the group '<nolink>[GROUP]</nolink>'? +There is currently no fee to join this group. group confirm - Free + No charge to join