From 58c119499054bc12eb0aac74580a00eac5350170 Mon Sep 17 00:00:00 2001 From: Aleksandr Lushkin Date: Tue, 20 Aug 2024 11:30:12 +0200 Subject: [PATCH] Client: Add people column --- .../Groups/TableView/GroupsTableHeader.js | 12 ++++++++++++ .../Groups/TableView/GroupsTableItem.js | 18 ++++++++++++++++++ .../AccountsBody/Groups/TableView/index.js | 10 +++++++++- packages/client/src/store/TableStore.js | 10 ++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) diff --git a/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableHeader.js b/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableHeader.js index 6259e39ac7..b682db6225 100644 --- a/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableHeader.js +++ b/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableHeader.js @@ -49,6 +49,16 @@ class GroupsTableHeader extends React.Component { minWidth: 210, onClick: this.onFilter, }, + { + key: "People", + title: props.t("Common:People"), + enable: props.peopleAccountsGroupsColumnIsEnabled, + default: true, + sortBy: "membersCount", + onClick: this.onFilter, + resizable: true, + onChange: this.onColumnChange, + }, { key: "Head of Group", title: props.t("Common:HeadOfGroup"), @@ -161,6 +171,8 @@ export default inject( setColumnEnable: tableStore.setColumnEnable, managerAccountsGroupsColumnIsEnabled: tableStore.managerAccountsGroupsColumnIsEnabled, + peopleAccountsGroupsColumnIsEnabled: + tableStore.peopleAccountsGroupsColumnIsEnabled, }), )( withTranslation(["People", "Common", "PeopleTranslations"])( diff --git a/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableItem.js b/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableItem.js index be0209ee8f..a06cb4f868 100644 --- a/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableItem.js +++ b/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/GroupsTableItem.js @@ -45,6 +45,7 @@ const GroupsTableItem = ({ getGroupContextOptions, getModel, openGroupAction, + peopleAccountsGroupsColumnIsEnabled, managerAccountsGroupsColumnIsEnabled, changeGroupSelection, @@ -139,6 +140,23 @@ const GroupsTableItem = ({ + {peopleAccountsGroupsColumnIsEnabled ? ( + + + {item.membersCount} + + + ) : ( +
+ )} + {managerAccountsGroupsColumnIsEnabled ? ( { const ref = useRef(null); @@ -110,6 +111,9 @@ const GroupsTableView = ({ managerAccountsGroupsColumnIsEnabled={ managerAccountsGroupsColumnIsEnabled } + peopleAccountsGroupsColumnIsEnabled={ + peopleAccountsGroupsColumnIsEnabled + } /> ))} @@ -155,7 +159,10 @@ export default inject( const { isVisible: infoPanelVisible } = infoPanelStore; - const { managerAccountsGroupsColumnIsEnabled } = tableStore; + const { + managerAccountsGroupsColumnIsEnabled, + peopleAccountsGroupsColumnIsEnabled, + } = tableStore; return { groups, @@ -177,6 +184,7 @@ export default inject( groupsIsFiltered, groupsFilterTotal, + peopleAccountsGroupsColumnIsEnabled, managerAccountsGroupsColumnIsEnabled, }; }, diff --git a/packages/client/src/store/TableStore.js b/packages/client/src/store/TableStore.js index 8d63973d2a..17ecd1d76f 100644 --- a/packages/client/src/store/TableStore.js +++ b/packages/client/src/store/TableStore.js @@ -80,6 +80,7 @@ class TableStore { emailAccountsColumnIsEnabled = true; storageAccountsColumnIsEnabled = true; + peopleAccountsGroupsColumnIsEnabled = true; managerAccountsGroupsColumnIsEnabled = true; typeAccountsInsideGroupColumnIsEnabled = true; @@ -163,6 +164,8 @@ class TableStore { setAccountsColumnStorage = (enable) => (this.storageAccountsColumnIsEnabled = enable); + setAccountsGroupsColumnPeople = (enable) => + (this.peopleAccountsGroupsColumnIsEnabled = enable); setAccountsGroupsColumnManager = (enable) => (this.managerAccountsGroupsColumnIsEnabled = enable); @@ -210,6 +213,7 @@ class TableStore { } if (getIsAccountsGroups()) { + this.setAccountsGroupsColumnPeople(splitColumns.includes("People")); this.setAccountsGroupsColumnManager( splitColumns.includes("Head of Group"), ); @@ -349,6 +353,12 @@ class TableStore { : this.setRoomColumnQuota(!this.roomQuotaColumnIsEnable); return; + case "People": + this.setAccountsGroupsColumnPeople( + !this.peopleAccountsGroupsColumnIsEnabled, + ); + return; + case "Head of Group": this.setAccountsGroupsColumnManager( !this.managerAccountsGroupsColumnIsEnabled,