From 7620bc04c2322e7286b65eb0b69e0816859fbadb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kruli=C5=A1?= Date: Fri, 3 Jan 2025 23:29:12 +0100 Subject: [PATCH] Fixing SIS integration for supervisors. --- .../SisSupervisorGroupsContainer.js | 91 +++++++++++++++---- 1 file changed, 71 insertions(+), 20 deletions(-) diff --git a/src/containers/SisSupervisorGroupsContainer/SisSupervisorGroupsContainer.js b/src/containers/SisSupervisorGroupsContainer/SisSupervisorGroupsContainer.js index c85e4cb9c..e47db82e9 100644 --- a/src/containers/SisSupervisorGroupsContainer/SisSupervisorGroupsContainer.js +++ b/src/containers/SisSupervisorGroupsContainer/SisSupervisorGroupsContainer.js @@ -1,9 +1,11 @@ -import React, { Component } from 'react'; +import React, { Component, useContext } from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { connect } from 'react-redux'; import { FormattedMessage, injectIntl } from 'react-intl'; import { Table, Accordion, Card, OverlayTrigger, Popover } from 'react-bootstrap'; +import { useAccordionButton } from 'react-bootstrap/AccordionButton'; +import AccordionContext from 'react-bootstrap/AccordionContext'; import { Link } from 'react-router-dom'; import Box from '../../components/widgets/Box'; @@ -51,6 +53,27 @@ const filterGroupsForBinding = (groups, alreadyBoundGroups) => { return groups.filter(group => !bound[group.id] && !group.organizational && !group.archived); }; +const MyAccordionButton = ({ children, eventKey }) => { + const { activeEventKey } = useContext(AccordionContext); + const decoratedOnClick = useAccordionButton(eventKey); + const isCurrentEventKey = activeEventKey === eventKey; + + return ( +
+ + {children} +
+ ); +}; + +MyAccordionButton.propTypes = { + children: PropTypes.any, + eventKey: PropTypes.string.isRequired, +}; + class SisSupervisorGroupsContainer extends Component { state = { createDialog: null, bindDialog: null, pendingUnbinds: {} }; @@ -229,13 +252,13 @@ class SisSupervisorGroupsContainer extends Component { .map(course => ( - + {course && ( )} - + @@ -345,14 +368,21 @@ class SisSupervisorGroupsContainer extends Component { ))} - + {hasPermissions(group, 'update') && ( @@ -360,10 +390,17 @@ class SisSupervisorGroupsContainer extends Component { @@ -371,10 +408,17 @@ class SisSupervisorGroupsContainer extends Component { {hasPermissions(group, 'viewDetail') && ( @@ -384,10 +428,17 @@ class SisSupervisorGroupsContainer extends Component { hasPermissions(group, 'viewAssignments') && (