MAINT-8440 Create a tabbed panel for managing users for Region/Estate owners

meow-7.2.2
AndreyL ProductEngine 2018-04-14 02:47:35 +03:00
parent 41f4e85473
commit 6ef3c100fb
4 changed files with 931 additions and 776 deletions

File diff suppressed because it is too large Load Diff

View File

@ -64,6 +64,7 @@ class LLPanelEstateCovenant;
class LLPanelExperienceListEditor;
class LLPanelExperiences;
class LLPanelRegionExperiences;
class LLPanelEstateAccess;
class LLEventTimer;
class LLEnvironmentSettings;
@ -92,6 +93,7 @@ public:
//static void incrementSerial() { sRequestSerial++; }
static LLPanelEstateInfo* getPanelEstate();
static LLPanelEstateAccess* getPanelAccess();
static LLPanelEstateCovenant* getPanelCovenant();
static LLPanelRegionTerrainInfo* getPanelRegionTerrain();
static LLPanelRegionExperiences* getPanelExperiences();
@ -281,35 +283,11 @@ public:
void onClickEditDayCycle();
void onClickEditDayCycleHelp();
void onClickAddAllowedAgent();
void onClickRemoveAllowedAgent();
void onClickAddAllowedGroup();
void onClickRemoveAllowedGroup();
void onClickAddBannedAgent();
void onClickRemoveBannedAgent();
void onClickAddEstateManager();
void onClickRemoveEstateManager();
void onClickKickUser();
// Group picker callback is different, can't use core methods below
bool addAllowedGroup(const LLSD& notification, const LLSD& response);
void addAllowedGroup2(LLUUID id);
// Core methods for all above add/remove button clicks
static void accessAddCore(U32 operation_flag, const std::string& dialog_name);
static bool accessAddCore2(const LLSD& notification, const LLSD& response);
static void accessAddCore3(const uuid_vec_t& ids, void* data);
static void accessRemoveCore(U32 operation_flag, const std::string& dialog_name, const std::string& list_ctrl_name);
static bool accessRemoveCore2(const LLSD& notification, const LLSD& response);
// used for both add and remove operations
static bool accessCoreConfirm(const LLSD& notification, const LLSD& response);
bool kickUserConfirm(const LLSD& notification, const LLSD& response);
// Send the actual EstateOwnerRequest "estateaccessdelta" message
static void sendEstateAccessDelta(U32 flags, const LLUUID& agent_id);
void onKickUserCommit(const uuid_vec_t& ids);
static void onClickMessageEstate(void* data);
bool onMessageCommit(const LLSD& notification, const LLSD& response);
@ -345,7 +323,6 @@ protected:
void commitEstateAccess();
void commitEstateManagers();
void clearAccessLists();
BOOL checkSunHourSlider(LLUICtrl* child_ctrl);
U32 mEstateID;
@ -507,4 +484,46 @@ private:
LLUUID mDefaultExperience;
};
class LLPanelEstateAccess : public LLPanelRegionInfo
{
LOG_CLASS(LLPanelEnvironmentInfo);
public:
virtual BOOL postBuild();
virtual void updateChild(LLUICtrl* child_ctrl);
void updateControls(LLViewerRegion* region);
void onClickAddAllowedAgent();
void onClickRemoveAllowedAgent();
void onClickAddAllowedGroup();
void onClickRemoveAllowedGroup();
void onClickAddBannedAgent();
void onClickRemoveBannedAgent();
void onClickAddEstateManager();
void onClickRemoveEstateManager();
// Group picker callback is different, can't use core methods below
bool addAllowedGroup(const LLSD& notification, const LLSD& response);
void addAllowedGroup2(LLUUID id);
// Core methods for all above add/remove button clicks
static void accessAddCore(U32 operation_flag, const std::string& dialog_name);
static bool accessAddCore2(const LLSD& notification, const LLSD& response);
static void accessAddCore3(const uuid_vec_t& ids, void* data);
static void accessRemoveCore(U32 operation_flag, const std::string& dialog_name, const std::string& list_ctrl_name);
static bool accessRemoveCore2(const LLSD& notification, const LLSD& response);
// used for both add and remove operations
static bool accessCoreConfirm(const LLSD& notification, const LLSD& response);
// Send the actual EstateOwnerRequest "estateaccessdelta" message
static void sendEstateAccessDelta(U32 flags, const LLUUID& agent_id);
void clearAccessLists();
};
#endif

View File

@ -0,0 +1,295 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
border="true"
follows="top|left"
height="510"
help_topic="panel_region_access_tab"
label="Access"
layout="topleft"
left="0"
name="Access"
top="320"
width="530">
<tab_container
bottom="-10"
follows="all"
layout="topleft"
left="3"
name="tabs"
tab_min_width="70"
tab_height="30"
tab_position="top"
top="10"
halign="center"
right="-5">
<!-- ============================= ESTATE MANAGERS tab ====================== -->
<panel
background_opaque="true"
background_visible="true"
bg_alpha_color="DkGray"
bg_opaque_color="DkGray"
bottom="-1"
follows="all"
label="ESTATE MANAGERS"
layout="topleft"
left="0"
help_topic="estate_managers_tab"
name="estate_managers_panel"
right="-1"
top="0">
<text
type="string"
length="1"
bottom="34"
follows="left|top"
height="20"
layout="topleft"
name="estate_manager_label"
top_pad="10"
left="10"
width="200">
Estate Managers:
</text>
<!-- Estate Managers box -->
<view_border
bevel_style="none"
follows="top|left"
height="400"
layout="topleft"
left="10"
top_pad="-5"
width="498" />
<name_list
follows="left|top"
height="400"
layout="topleft"
left_delta="0"
multi_select="true"
name="estate_manager_name_list"
top_delta="0"
width="498" />
<!-- Estate Managers buttons -->
<button
follows="left|top"
height="23"
label="Add..."
layout="topleft"
left="10"
name="add_estate_manager_btn"
top_pad="6"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_estate_manager_btn"
left_pad="6"
width="114" />
</panel>
<!-- ================================ ALLOWED tab =========================== -->
<panel
background_opaque="true"
background_visible="true"
bg_alpha_color="DkGray"
bg_opaque_color="DkGray"
bottom="-1"
follows="all"
label="ALLOWED"
layout="topleft"
left="0"
help_topic="allowed_tab"
name="allowed_panel"
right="-1"
top="0">
<text
type="string"
length="1"
bottom="34"
follows="left|top"
height="20"
layout="topleft"
name="allow_resident_label"
top_pad="10"
left="10"
width="200">
Always allowed:
</text>
<!-- Always allowed box -->
<view_border
bevel_style="none"
follows="top|left"
height="400"
layout="topleft"
left="10"
top_pad="-5"
width="498" />
<name_list
follows="left|top"
height="400"
layout="topleft"
left_delta="0"
multi_select="true"
name="allowed_avatar_name_list"
top_delta="0"
width="498" />
<!-- Always allowed buttons -->
<button
follows="left|top"
height="23"
label="Add..."
layout="topleft"
left="10"
name="add_allowed_avatar_btn"
top_pad="6"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_allowed_avatar_btn"
left_pad="6"
width="114" />
</panel>
<!-- ============================= ALLOWED GROUPS tab ======================= -->
<panel
background_opaque="true"
background_visible="true"
bg_alpha_color="DkGray"
bg_opaque_color="DkGray"
bottom="-1"
follows="all"
label="ALLOWED GROUPS"
layout="topleft"
left="0"
help_topic="allowed_groups_tab"
name="allowed_groups_panel"
right="-1"
top="0">
<text
type="string"
length="1"
follows="left|top"
height="20"
layout="topleft"
left="10"
name="allow_group_label"
top_pad="10"
width="200">
Groups always allowed:
</text>
<!-- Groups always allowed box -->
<view_border
bevel_style="none"
follows="top|left"
height="400"
layout="topleft"
left="10"
top_pad="-5"
width="498" />
<name_list
follows="left|top"
height="400"
layout="topleft"
left_delta="0"
multi_select="true"
name="allowed_group_name_list"
top_delta="0"
width="498" />
<!-- Groups always allowed buttons -->
<button
follows="left|top"
height="23"
label="Add..."
layout="topleft"
left="10"
name="add_allowed_group_btn"
top_pad="6"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_allowed_group_btn"
left_pad="6"
top_delta="0"
width="114" />
</panel>
<!-- ================================ BANNED tab ============================ -->
<panel
background_opaque="true"
background_visible="true"
bg_alpha_color="DkGray"
bg_opaque_color="DkGray"
bottom="-1"
follows="all"
label="BANNED"
layout="topleft"
left="0"
help_topic="banned_tab"
name="banned_panel"
right="-1"
top="0">
<text
type="string"
length="1"
follows="left|top"
height="20"
layout="topleft"
left="10"
name="ban_resident_label"
top_pad="10"
width="200">
Always banned:
</text>
<!-- Always banned box -->
<view_border
bevel_style="none"
follows="top|left"
height="400"
layout="topleft"
left="10"
top_pad="-5"
width="498" />
<name_list
follows="left|top"
height="400"
layout="topleft"
left_delta="0"
multi_select="true"
name="banned_avatar_name_list"
top_delta="0"
width="498" />
<!-- Always banned buttons -->
<button
follows="left|top"
height="23"
label="Add..."
layout="topleft"
left="10"
name="add_banned_avatar_btn"
top_pad="6"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_banned_avatar_btn"
left_pad="6"
top_delta="0"
width="114" />
</panel>
</tab_container>
</panel>

View File

@ -159,212 +159,6 @@
top_pad="30"
left_delta="0"
width="97" />
<text
type="string"
length="1"
bottom="34"
follows="left|top"
height="20"
layout="topleft"
name="estate_manager_label"
top_pad="25"
left="10"
width="200">
Estate Managers:
</text>
<text
type="string"
length="1"
follows="left|top"
height="20"
layout="topleft"
left="280"
name="allow_resident_label"
top_delta="0"
width="200">
Always allowed:
</text>
<!-- Estate Managers box -->
<view_border
bevel_style="none"
follows="top|left"
height="71"
layout="topleft"
left="10"
top_pad="-5"
width="235" />
<name_list
follows="left|top"
height="71"
layout="topleft"
left_delta="0"
multi_select="true"
name="estate_manager_name_list"
top_delta="0"
width="235" />
<!-- Always allowed box -->
<view_border
bevel_style="none"
follows="top|left"
height="71"
layout="topleft"
left="280"
top_delta="0"
width="235" />
<name_list
follows="left|top"
height="71"
layout="topleft"
left_delta="0"
multi_select="true"
name="allowed_avatar_name_list"
top_delta="0"
width="235" />
<!-- Estate Managers buttons -->
<button
follows="left|top"
height="23"
label="Add..."
layout="topleft"
left="10"
name="add_estate_manager_btn"
top_pad="6"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_estate_manager_btn"
left_pad="6"
width="114" />
<!-- Always allowed buttons -->
<button
follows="left|top"
height="23"
left="280"
label="Add..."
layout="topleft"
name="add_allowed_avatar_btn"
top_delta="0"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_allowed_avatar_btn"
left_pad="6"
top_delta="0"
width="114" />
<text
type="string"
length="1"
follows="left|top"
height="20"
layout="topleft"
left="10"
name="allow_group_label"
top_pad="10"
width="200">
Groups always allowed:
</text>
<text
type="string"
length="1"
follows="left|top"
height="20"
layout="topleft"
left="280"
name="ban_resident_label"
top_delta="0"
width="200">
Always banned:
</text>
<!-- Groups always allowed box -->
<view_border
bevel_style="none"
follows="top|left"
height="71"
layout="topleft"
left="10"
top_pad="-5"
width="235" />
<name_list
follows="left|top"
height="71"
layout="topleft"
left_delta="0"
multi_select="true"
name="allowed_group_name_list"
top_delta="0"
width="235" />
<!-- Always banned box -->
<view_border
bevel_style="none"
follows="top|left"
height="71"
layout="topleft"
left="280"
top_delta="0"
width="235" />
<name_list
follows="left|top"
height="71"
layout="topleft"
left_delta="0"
multi_select="true"
name="banned_avatar_name_list"
top_delta="0"
width="235" />
<!-- Groups always allowed buttons -->
<button
follows="left|top"
height="23"
label="Add..."
layout="topleft"
left="10"
name="add_allowed_group_btn"
top_pad="6"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_allowed_group_btn"
left_pad="6"
top_delta="0"
width="114" />
<!-- Always banned buttons -->
<button
follows="left|top"
height="23"
label="Add..."
layout="topleft"
left="280"
name="add_banned_avatar_btn"
top_delta="0"
width="114" />
<button
follows="left|top"
height="23"
label="Remove..."
layout="topleft"
name="remove_banned_avatar_btn"
top_delta="0"
left_pad="6"
width="114" />
<button
follows="left|top"