diff --git a/packages/client/src/helpers/constants.js b/packages/client/src/helpers/constants.js index beff8b109e..4d7dff3c61 100644 --- a/packages/client/src/helpers/constants.js +++ b/packages/client/src/helpers/constants.js @@ -85,7 +85,7 @@ export const TableVersions = Object.freeze({ Files: "3", People: "3", Trash: "4", - Groups: "5", + Groups: "6", InsideGroup: "6", Recent: "1", }); 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..63ac3ba80d 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 @@ -30,9 +30,9 @@ import { withTranslation } from "react-i18next"; import { TableHeader } from "@docspace/shared/components/table"; import { Events } from "@docspace/shared/enums"; +import { TableVersions } from "SRC_DIR/helpers/constants"; -const TABLE_VERSION = "5"; -const TABLE_COLUMNS = `groupsTableColumns_ver-${TABLE_VERSION}`; +const TABLE_COLUMNS = `groupsTableColumns_ver-${TableVersions.Groups}`; class GroupsTableHeader extends React.Component { constructor(props) { @@ -49,6 +49,15 @@ class GroupsTableHeader extends React.Component { minWidth: 210, onClick: this.onFilter, }, + { + key: "People", + title: props.t("Common:People"), + enable: props.peopleAccountsGroupsColumnIsEnabled, + sortBy: "membersCount", + onClick: this.onFilter, + resizable: true, + onChange: this.onColumnChange, + }, { key: "Head of Group", title: props.t("Common:HeadOfGroup"), @@ -161,6 +170,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/pages/Home/Section/Filter/index.js b/packages/client/src/pages/Home/Section/Filter/index.js index 0506e8da4a..85da6ece3a 100644 --- a/packages/client/src/pages/Home/Section/Filter/index.js +++ b/packages/client/src/pages/Home/Section/Filter/index.js @@ -2021,6 +2021,13 @@ const SectionFilterContent = ({ default: true, }; + const people = { + id: "sort-by_people", + key: "membersCount", + label: t("Common:People"), + default: true, + }; + const manager = { id: "sort-by_manager", key: "manager", @@ -2028,7 +2035,7 @@ const SectionFilterContent = ({ default: true, }; - groupsOptions.push(title, manager); + groupsOptions.push(title, people, manager); return groupsOptions; } 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,