Client: Fix hiding groups manager column
This commit is contained in:
parent
33a0c7f746
commit
83850d1f8d
@ -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"])(
|
||||
|
@ -27,6 +27,7 @@ const GroupsTableItem = ({
|
||||
setCurrentGroup,
|
||||
getGroupContextOptions,
|
||||
setInsideGroupBackUrl,
|
||||
managerAccountsGroupsColumnIsEnabled,
|
||||
}) => {
|
||||
const navigate = useNavigate();
|
||||
|
||||
@ -126,19 +127,23 @@ const GroupsTableItem = ({
|
||||
</Link>
|
||||
</TableCell>
|
||||
|
||||
<TableCell className={"table-container_group-manager"}>
|
||||
<Text
|
||||
title={item.manager?.displayName}
|
||||
fontWeight="600"
|
||||
fontSize="13px"
|
||||
isTextOverflow
|
||||
className="table-cell_group-manager"
|
||||
color={"#A3A9AE"}
|
||||
dir="auto"
|
||||
>
|
||||
{item.manager?.displayName}
|
||||
</Text>
|
||||
</TableCell>
|
||||
{managerAccountsGroupsColumnIsEnabled ? (
|
||||
<TableCell className={"table-container_group-manager"}>
|
||||
<Text
|
||||
title={item.manager?.displayName}
|
||||
fontWeight="600"
|
||||
fontSize="13px"
|
||||
isTextOverflow
|
||||
className="table-cell_group-manager"
|
||||
color={"#A3A9AE"}
|
||||
dir="auto"
|
||||
>
|
||||
{item.manager?.displayName}
|
||||
</Text>
|
||||
</TableCell>
|
||||
) : (
|
||||
<div />
|
||||
)}
|
||||
</Styled.GroupsRow>
|
||||
</Styled.GroupsRowWrapper>
|
||||
);
|
||||
|
@ -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
|
||||
}
|
||||
/>
|
||||
))}
|
||||
</TableBody>
|
||||
@ -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));
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
Loading…
Reference in New Issue
Block a user