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 feecd557c5..ccf168b948 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
@@ -17,7 +17,7 @@ class GroupsTableHeader extends React.Component {
key: "Name",
title: props.t("Common:Title"),
resizable: true,
- enable: true,
+ enable: props.managerAccountsGroupsColumnIsEnabled,
default: true,
sortBy: "title",
minWidth: 210,
@@ -35,36 +35,19 @@ class GroupsTableHeader extends React.Component {
},
];
- const columns = this.getColumns(defaultColumns);
+ const columns = props.getColumns(defaultColumns);
this.state = { columns };
}
- getColumns = (defaultColumns) => {
- const columns = [];
- const storageColumns = localStorage.getItem(
- `${TABLE_COLUMNS}=${this.props.userId}`,
- );
-
- if (storageColumns) {
- const splitColumns = storageColumns.split(",");
-
- for (let col of defaultColumns) {
- const column = splitColumns.find((key) => key === col.key);
- column ? (col.enable = true) : (col.enable = false);
- columns.push(col);
- }
- return columns;
- }
-
- return defaultColumns;
- };
-
onColumnChange = (key) => {
const { columns } = this.state;
const columnIndex = columns.findIndex((c) => c.key === key);
if (columnIndex === -1) return;
+
+ this.props.setColumnEnable(key);
+
columns[columnIndex].enable = !columns[columnIndex].enable;
this.setState({ columns });
@@ -147,6 +130,7 @@ export default inject(
userStore,
infoPanelStore,
settingsStore,
+ tableStore,
}) => ({
filter: peopleStore.groupsStore.groupsFilter,
setFilter: peopleStore.groupsStore.setGroupsFilter,
@@ -154,6 +138,10 @@ export default inject(
userId: userStore.user?.id,
infoPanelVisible: infoPanelStore.isVisible,
withPaging: settingsStore.withPaging,
+ getColumns: tableStore.getColumns,
+ setColumnEnable: tableStore.setColumnEnable,
+ managerAccountsGroupsColumnIsEnabled:
+ tableStore.managerAccountsGroupsColumnIsEnabled,
}),
)(
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 030e66cc5e..070c301eff 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
@@ -27,6 +27,7 @@ const GroupsTableItem = ({
setCurrentGroup,
getGroupContextOptions,
setInsideGroupBackUrl,
+ managerAccountsGroupsColumnIsEnabled,
}) => {
const navigate = useNavigate();
@@ -126,19 +127,23 @@ const GroupsTableItem = ({
-
-
- {item.manager?.displayName}
-
-
+ {managerAccountsGroupsColumnIsEnabled ? (
+
+
+ {item.manager?.displayName}
+
+
+ ) : (
+
+ )}
);
diff --git a/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/index.js b/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/index.js
index 3a59e56d05..8d6998b918 100644
--- a/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/index.js
+++ b/packages/client/src/pages/Home/Section/AccountsBody/Groups/TableView/index.js
@@ -30,6 +30,8 @@ const GroupsTableView = ({
hasMoreGroups,
groupsIsFiltered,
groupsFilterTotal,
+
+ managerAccountsGroupsColumnIsEnabled,
}) => {
const ref = useRef(null);
const [hideColumns, setHideColumns] = React.useState(false);
@@ -79,6 +81,9 @@ const GroupsTableView = ({
isChecked={selection.includes(item)}
hideColumns={hideColumns}
itemIndex={index}
+ managerAccountsGroupsColumnIsEnabled={
+ managerAccountsGroupsColumnIsEnabled
+ }
/>
))}
@@ -96,6 +101,7 @@ export default inject(
settingsStore,
infoPanelStore,
userStore,
+ tableStore,
}) => {
const {
usersStore,
@@ -123,6 +129,8 @@ export default inject(
const { isVisible: infoPanelVisible } = infoPanelStore;
+ const { managerAccountsGroupsColumnIsEnabled } = tableStore;
+
return {
groups,
selection,
@@ -142,6 +150,8 @@ export default inject(
hasMoreGroups,
groupsIsFiltered,
groupsFilterTotal,
+
+ managerAccountsGroupsColumnIsEnabled,
};
},
)(observer(GroupsTableView));
diff --git a/packages/client/src/store/TableStore.js b/packages/client/src/store/TableStore.js
index 6df7ea9b74..756205802a 100644
--- a/packages/client/src/store/TableStore.js
+++ b/packages/client/src/store/TableStore.js
@@ -3,6 +3,7 @@ import { TableVersions } from "SRC_DIR/helpers/constants";
const TABLE_COLUMNS = `filesTableColumns_ver-${TableVersions.Files}`;
const TABLE_ACCOUNTS_PEOPLE_COLUMNS = `peopleTableColumns_ver-${TableVersions.People}`;
+const TABLE_ACCOUNTS_GROUPS_COLUMNS = `groupsTableColumns_ver-${TableVersions.Groups}`;
const TABLE_ACCOUNTS_INSIDE_GROUP_COLUMNS = `insideGroupTableColumns_ver-${TableVersions.InsideGroup}`;
const TABLE_ROOMS_COLUMNS = `roomsTableColumns_ver-${TableVersions.Rooms}`;
const TABLE_TRASH_COLUMNS = `trashTableColumns_ver-${TableVersions.Trash}`;
@@ -56,6 +57,8 @@ class TableStore {
emailAccountsColumnIsEnabled = true;
storageAccountsColumnIsEnabled = true;
+ managerAccountsGroupsColumnIsEnabled = true;
+
typeAccountsInsideGroupColumnIsEnabled = true;
groupAccountsInsideGroupColumnIsEnabled = true;
emailAccountsInsideGroupColumnIsEnabled = true;
@@ -137,6 +140,9 @@ class TableStore {
setAccountsColumnStorage = (enable) =>
(this.storageAccountsColumnIsEnabled = enable);
+ setAccountsGroupsColumnManager = (enable) =>
+ (this.managerAccountsGroupsColumnIsEnabled = enable);
+
setAccountsInsideGroupColumnType = (enable) =>
(this.typeAccountsInsideGroupColumnIsEnabled = enable);
setAccountsInsideGroupColumnEmail = (enable) =>
@@ -155,6 +161,7 @@ class TableStore {
isTrashFolder,
isAccountsPeople,
isAccountsGroups,
+ isAccountsInsideGroup,
} = this.treeFoldersStore;
const isRooms = isRoomsFolder || isArchiveFolder;
@@ -176,6 +183,13 @@ class TableStore {
}
if (isAccountsGroups) {
+ this.setAccountsGroupsColumnManager(
+ splitColumns.includes("Head of Group"),
+ );
+ return;
+ }
+
+ if (isAccountsInsideGroup) {
this.setAccountsInsideGroupColumnType(splitColumns.includes("Type"));
this.setAccountsInsideGroupColumnEmail(splitColumns.includes("Mail"));
this.setAccountsInsideGroupColumnGroup(
@@ -212,6 +226,7 @@ class TableStore {
isTrashFolder,
isAccountsPeople,
isAccountsGroups,
+ isAccountsInsideGroup,
} = this.treeFoldersStore;
const isRooms = isRoomsFolder || isArchiveFolder;
@@ -262,7 +277,7 @@ class TableStore {
? this.setRoomColumnType(!this.roomColumnTypeIsEnabled)
: isAccountsPeople
? this.setAccountsColumnType(!this.typeAccountsColumnIsEnabled)
- : isAccountsGroups
+ : isAccountsInsideGroup
? this.setAccountsInsideGroupColumnType(
!this.typeAccountsInsideGroupColumnIsEnabled,
)
@@ -307,6 +322,12 @@ class TableStore {
: this.setRoomColumnQuota(!this.roomQuotaColumnIsEnable);
return;
+ case "Head of Group":
+ this.setAccountsGroupsColumnManager(
+ !this.managerAccountsGroupsColumnIsEnabled,
+ );
+ return;
+
default:
return;
}
@@ -341,6 +362,7 @@ class TableStore {
isAccountsPeople,
isAccountsGroups,
isRecentTab,
+ isAccountsInsideGroup,
} = this.treeFoldersStore;
const isRooms = isRoomsFolder || isArchiveFolder;
const userId = this.userStore.user?.id;
@@ -353,12 +375,14 @@ class TableStore {
: isAccountsPeople
? `${TABLE_ACCOUNTS_PEOPLE_COLUMNS}=${userId}`
: isAccountsGroups
- ? `${TABLE_ACCOUNTS_INSIDE_GROUP_COLUMNS}=${userId}`
- : isTrashFolder
- ? `${TABLE_TRASH_COLUMNS}=${userId}`
- : isRecentTab
- ? `${TABLE_RECENT_COLUMNS}=${userId}`
- : `${TABLE_COLUMNS}=${userId}`;
+ ? `${TABLE_ACCOUNTS_GROUPS_COLUMNS}=${userId}`
+ : isAccountsInsideGroup
+ ? `${TABLE_ACCOUNTS_INSIDE_GROUP_COLUMNS}=${userId}`
+ : isTrashFolder
+ ? `${TABLE_TRASH_COLUMNS}=${userId}`
+ : isRecentTab
+ ? `${TABLE_RECENT_COLUMNS}=${userId}`
+ : `${TABLE_COLUMNS}=${userId}`;
}
get columnStorageName() {
diff --git a/packages/client/src/store/TreeFoldersStore.js b/packages/client/src/store/TreeFoldersStore.js
index 0d7458b5e2..7d5f86f9f9 100644
--- a/packages/client/src/store/TreeFoldersStore.js
+++ b/packages/client/src/store/TreeFoldersStore.js
@@ -219,8 +219,17 @@ class TreeFoldersStore {
return window.location.pathname.includes("accounts/people");
}
+ get isAccountsInsideGroup() {
+ const insideGroupPattern = /accounts\/groups\/.*\/filter/;
+
+ return insideGroupPattern.test(window.location.pathname);
+ }
+
get isAccountsGroups() {
- return window.location.pathname.includes("accounts/groups");
+ return (
+ window.location.pathname.includes("accounts/groups") &&
+ !this.isAccountsInsideGroup
+ );
}
get isPersonalRoom() {