Skip to content

Commit 1e3d901

Browse files
fix: grading multiple fixes (#199)
* fix: modal title color, change menu to dropdown menu * fix: learner score and progress button * fix: add SUPPORT_URL on site config dev to avoid issues on render * feat: add confirmation modal to actions * feat: add success and error messages * test: add confim modal on tests * fix: enrollments issue * refactor: function to manage onError
1 parent aa1db13 commit 1e3d901

7 files changed

Lines changed: 522 additions & 75 deletions

File tree

site.config.dev.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,13 @@ const siteConfig: SiteConfig = {
1818
shellApp,
1919
headerApp,
2020
footerApp,
21-
instructorDashboardApp
21+
{
22+
...instructorDashboardApp,
23+
config: {
24+
...instructorDashboardApp.config,
25+
SUPPORT_URL: 'https://docs.openedx.org/en/latest/educators/index.html',
26+
}
27+
}
2228
],
2329
externalRoutes: [
2430
{

src/grading/components/GradingActionRow.tsx

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { useState } from 'react';
21
import { useParams } from 'react-router-dom';
32
import { useIntl } from '@openedx/frontend-base';
4-
import { useToggle, ActionRow, Button, IconButton, ModalPopup, Menu, MenuItem } from '@openedx/paragon';
3+
import { useToggle, ActionRow, Button, IconButton, Dropdown } from '@openedx/paragon';
54
import { TrendingUp, MoreVert, OpenInNew } from '@openedx/paragon/icons';
65
import { useCourseInfo } from '@src/data/apiHook';
76
import GradingConfigurationModal from '@src/grading/components/GradingConfigurationModal';
@@ -11,41 +10,34 @@ const GradingActionRow = () => {
1110
const { courseId = '' } = useParams<{ courseId: string }>();
1211
const intl = useIntl();
1312
const { data = { gradebookUrl: '', studioGradingUrl: '' } } = useCourseInfo(courseId);
14-
const [configurationMenuTarget, setConfigurationMenuTarget] = useState<HTMLButtonElement | null>(null);
15-
const [isOpenMenu, openMenu, closeMenu] = useToggle(false);
1613
const [isOpenConfigModal, openConfigModal, closeConfigModal] = useToggle(false);
1714

18-
const handleConfigurationMenuClick = (event: React.MouseEvent<HTMLButtonElement>) => {
19-
setConfigurationMenuTarget(event?.currentTarget);
20-
openMenu();
21-
};
22-
2315
const handleConfigModalOpen = () => {
2416
openConfigModal();
25-
closeMenu();
2617
};
2718

2819
return (
2920
<>
3021
<ActionRow>
3122
<Button as="a" href={data.gradebookUrl} iconBefore={TrendingUp} variant="outline-primary">{intl.formatMessage(messages.viewGradebook)}</Button>
32-
<IconButton
33-
alt={intl.formatMessage(messages.configurationAlt)}
34-
className="lead"
35-
iconAs={MoreVert}
36-
onClick={handleConfigurationMenuClick}
37-
/>
23+
<Dropdown>
24+
<Dropdown.Toggle
25+
as={IconButton}
26+
alt={intl.formatMessage(messages.configurationAlt)}
27+
className="lead"
28+
iconAs={MoreVert}
29+
/>
30+
<Dropdown.Menu>
31+
<Dropdown.Item onClick={handleConfigModalOpen}>
32+
{intl.formatMessage(messages.viewGradingConfiguration)}
33+
</Dropdown.Item>
34+
<Dropdown.Item as="a" href={data.studioGradingUrl} target="_blank">
35+
{intl.formatMessage(messages.viewCourseGradingSettings)}
36+
<OpenInNew className="ml-2" />
37+
</Dropdown.Item>
38+
</Dropdown.Menu>
39+
</Dropdown>
3840
</ActionRow>
39-
<ModalPopup positionRef={configurationMenuTarget} onClose={closeMenu} isOpen={isOpenMenu}>
40-
<Menu>
41-
<MenuItem onClick={handleConfigModalOpen}>
42-
{intl.formatMessage(messages.viewGradingConfiguration)}
43-
</MenuItem>
44-
<MenuItem iconAfter={OpenInNew} as="a" href={data.studioGradingUrl} target="_blank">
45-
{intl.formatMessage(messages.viewCourseGradingSettings)}
46-
</MenuItem>
47-
</Menu>
48-
</ModalPopup>
4941
<GradingConfigurationModal isOpen={isOpenConfigModal} onClose={closeConfigModal} />
5042
</>
5143
);

src/grading/components/GradingConfigurationModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const GradingConfigurationModal = ({ isOpen, onClose }: GradingConfigurationModa
1818
return (
1919
<ModalDialog size="lg" title={intl.formatMessage(messages.gradingConfiguration)} isOpen={isOpen} onClose={onClose} isOverflowVisible={false}>
2020
<ModalDialog.Header className="p-3 pl-4 border-bottom">
21-
<ModalDialog.Title as="h3" className="m-0">
21+
<ModalDialog.Title as="h3" className="m-0 text-primary-500">
2222
{intl.formatMessage(messages.gradingConfiguration)}
2323
</ModalDialog.Title>
2424
</ModalDialog.Header>

0 commit comments

Comments
 (0)