@openedx/frontend-app-instructor-dashboard 1.0.0-alpha.16 → 1.0.0-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -81,7 +81,24 @@ const GradingLearnerContent = ({ toolType, onShowTasks }) => {
|
|
|
81
81
|
customAction: (_jsx(Button, { disabled: !usernameOrEmail || !blockId, onClick: handleTaskStatusClick, children: intl.formatMessage(messages.taskStatusButtonLabel) }))
|
|
82
82
|
}
|
|
83
83
|
];
|
|
84
|
-
const allLearnersActionRows = [
|
|
84
|
+
const allLearnersActionRows = [
|
|
85
|
+
{
|
|
86
|
+
title: intl.formatMessage(messages.resetAttempts),
|
|
87
|
+
description: intl.formatMessage(messages.resetAllLearnersAttemptsDescription),
|
|
88
|
+
buttonLabel: intl.formatMessage(messages.resetAttemptsButtonLabel),
|
|
89
|
+
customAction: (_jsx(Button, { disabled: !blockId, onClick: handleResetAttempts, children: intl.formatMessage(messages.resetAttemptsButtonLabel) }))
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
title: intl.formatMessage(messages.rescoreSubmission),
|
|
93
|
+
description: intl.formatMessage(messages.rescoreSubmissionAllLearnersDescription),
|
|
94
|
+
customAction: (_jsxs("div", { className: "d-flex flex-column gap-3", children: [_jsx(Button, { disabled: !blockId, onClick: () => handleRescoreSubmission(), children: intl.formatMessage(messages.rescoreAllSubmissionButtonLabel) }), _jsx(Button, { disabled: !blockId, onClick: () => handleRescoreSubmission(true), children: intl.formatMessage(messages.rescoreIfImprovesScoreButtonLabel) })] })),
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
title: intl.formatMessage(messages.taskStatus),
|
|
98
|
+
description: intl.formatMessage(messages.taskStatusDescription),
|
|
99
|
+
customAction: (_jsx(Button, { onClick: handleTaskStatusClick, children: intl.formatMessage(messages.taskStatusButtonLabel) }))
|
|
100
|
+
}
|
|
101
|
+
];
|
|
85
102
|
const rows = toolType === 'single' ? singleLearnerActionRows : allLearnersActionRows;
|
|
86
103
|
const handleProblemChange = (location) => {
|
|
87
104
|
setBlockId(location);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GradingLearnerContent.js","sourceRoot":"","sources":["../../../src/grading/components/GradingLearnerContent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useParams } from 'react-router-dom';\nimport { useEffect, useState, useRef } from 'react';\nimport { useIntl } from '@openedx/frontend-base';\nimport { Button, FormControl } from '@openedx/paragon';\nimport ActionCard, { ActionCardProps } from '@src/components/ActionCard';\nimport SpecifyLearnerField from '@src/components/SpecifyLearnerField';\nimport SpecifyProblemField from '@src/components/SpecifyProblemField';\nimport { useChangeScore, useDeleteHistory, useRescoreSubmission, useResetAttempts } from '@src/grading/data/apiHook';\nimport messages from '@src/grading/messages';\nimport { GradingToolsType } from '@src/grading/types';\nimport { usePendingTasks } from '@src/data/apiHook';\n\ninterface GradingLearnerContentProps {\n toolType: GradingToolsType,\n onShowTasks: () => void,\n}\n\nconst GradingLearnerContent = ({ toolType, onShowTasks }: GradingLearnerContentProps) => {\n const intl = useIntl();\n const { courseId = '' } = useParams<{ courseId: string }>();\n const [usernameOrEmail, setUsernameOrEmail] = useState('');\n const [blockId, setBlockId] = useState('');\n const [score, setScore] = useState('');\n const learnerFieldRef = useRef<{ reset: () => void }>(null);\n const problemFieldRef = useRef<{ reset: () => void }>(null);\n\n const { mutate: resetAttempts } = useResetAttempts(courseId);\n const { mutate: deleteHistory } = useDeleteHistory(courseId);\n const { mutate: changeScore } = useChangeScore(courseId);\n const { mutate: rescoreSubmission } = useRescoreSubmission(courseId);\n const { refetch: refetchTasks } = usePendingTasks(courseId);\n\n const handleResetAttempts = (): void => {\n resetAttempts({ learner: usernameOrEmail, problem: blockId });\n };\n\n const handleRescoreSubmission = (onlyIfHigher = false): void => {\n rescoreSubmission({ learner: usernameOrEmail, problem: blockId, onlyIfHigher });\n };\n\n const handleDeleteHistory = (): void => {\n deleteHistory({ learner: usernameOrEmail, problem: blockId });\n };\n\n const handleOverrideScore = (): void => {\n changeScore({ learner: usernameOrEmail, problem: blockId, newScore: Number(score) });\n };\n\n const handleScoreChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const value = e.target.value;\n const numericRegex = /^-?\\d*\\.?\\d*$/;\n\n if (numericRegex.test(value) || value === '') {\n setScore(value);\n }\n };\n\n const handleTaskStatusClick = (): void => {\n refetchTasks();\n onShowTasks();\n };\n\n useEffect(() => {\n setUsernameOrEmail('');\n setBlockId('');\n setScore('');\n learnerFieldRef.current?.reset();\n problemFieldRef.current?.reset();\n }, [toolType]);\n\n const singleLearnerActionRows: ActionCardProps[] = [\n {\n title: intl.formatMessage(messages.resetAttempts),\n description: intl.formatMessage(messages.resetAttemptsDescription),\n customAction: (\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleResetAttempts}>\n {intl.formatMessage(messages.resetAttemptsButtonLabel)}\n </Button>\n )\n },\n {\n title: intl.formatMessage(messages.rescoreSubmission),\n description: intl.formatMessage(messages.rescoreSubmissionDescription),\n customAction: (\n <div className=\"d-flex flex-column gap-3\">\n <Button disabled={!usernameOrEmail || !blockId} onClick={() => handleRescoreSubmission()}>{intl.formatMessage(messages.rescoreSubmissionButtonLabel)}</Button>\n <Button disabled={!usernameOrEmail || !blockId} onClick={() => handleRescoreSubmission(true)}>{intl.formatMessage(messages.rescoreIfImprovesScoreButtonLabel)}</Button>\n </div>\n ),\n },\n {\n title: intl.formatMessage(messages.overrideScore),\n description: intl.formatMessage(messages.overrideScoreDescription),\n buttonLabel: intl.formatMessage(messages.overrideScoreButtonLabel),\n customAction: (\n <div className=\"d-flex align-items-center gap-2\">\n <FormControl\n name={intl.formatMessage(messages.overrideScorePlaceholder)}\n type=\"number\"\n placeholder={intl.formatMessage(messages.overrideScorePlaceholder)}\n value={score}\n onChange={handleScoreChange}\n />\n <Button disabled={!usernameOrEmail || !blockId || !score} onClick={handleOverrideScore}>{intl.formatMessage(messages.overrideScoreButtonLabel)}</Button>\n </div>\n )\n },\n {\n title: intl.formatMessage(messages.deleteHistory),\n description: intl.formatMessage(messages.deleteHistoryDescription),\n customAction: (\n <div className=\"d-flex flex-column gap-3\">\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleResetAttempts}>{intl.formatMessage(messages.resetAttemptsButtonLabel)}</Button>\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleDeleteHistory}>{intl.formatMessage(messages.deleteHistoryButtonLabel)}</Button>\n </div>\n ),\n },\n {\n title: intl.formatMessage(messages.taskStatus),\n description: intl.formatMessage(messages.taskStatusDescription),\n customAction: (\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleTaskStatusClick}>\n {intl.formatMessage(messages.taskStatusButtonLabel)}\n </Button>\n )\n }\n ];\n\n const allLearnersActionRows = [];\n\n const rows = toolType === 'single' ? singleLearnerActionRows : allLearnersActionRows;\n\n const handleProblemChange = (location: string): void => {\n setBlockId(location);\n };\n\n const handleLearnerChange = (usernameOrEmail: string): void => {\n setUsernameOrEmail(usernameOrEmail);\n };\n\n return (\n <>\n <p className=\"x-small text-primary mt-3\">\n {\n toolType === 'single'\n ? intl.formatMessage(messages.descriptionSingleLearner)\n : intl.formatMessage(messages.descriptionAllLearners)\n }\n </p>\n <div className=\"d-flex justify-content-between gap-4\">\n {toolType === 'single' && (\n <div className=\"w-50\">\n <SpecifyLearnerField ref={learnerFieldRef} onClickSelect={handleLearnerChange} />\n </div>\n )}\n <div className=\"w-50\">\n <SpecifyProblemField\n ref={problemFieldRef}\n fieldLabel={intl.formatMessage(messages.specifyProblem)}\n buttonLabel={intl.formatMessage(messages.select)}\n disabled={!usernameOrEmail && toolType === 'single'}\n usernameOrEmail={usernameOrEmail}\n onClickSelect={handleProblemChange}\n />\n </div>\n </div>\n {\n rows.map(({ title, description, buttonLabel, customAction, onButtonClick }, index) => (\n <ActionCard key={title} buttonLabel={buttonLabel} description={description} title={title} hasBorderBottom={index !== rows.length - 1} customAction={customAction} onButtonClick={onButtonClick} />\n ))\n }\n </>\n );\n};\n\nexport default GradingLearnerContent;\n"]}
|
|
1
|
+
{"version":3,"file":"GradingLearnerContent.js","sourceRoot":"","sources":["../../../src/grading/components/GradingLearnerContent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useParams } from 'react-router-dom';\nimport { useEffect, useState, useRef } from 'react';\nimport { useIntl } from '@openedx/frontend-base';\nimport { Button, FormControl } from '@openedx/paragon';\nimport ActionCard, { ActionCardProps } from '@src/components/ActionCard';\nimport SpecifyLearnerField from '@src/components/SpecifyLearnerField';\nimport SpecifyProblemField from '@src/components/SpecifyProblemField';\nimport { useChangeScore, useDeleteHistory, useRescoreSubmission, useResetAttempts } from '@src/grading/data/apiHook';\nimport messages from '@src/grading/messages';\nimport { GradingToolsType } from '@src/grading/types';\nimport { usePendingTasks } from '@src/data/apiHook';\n\ninterface GradingLearnerContentProps {\n toolType: GradingToolsType,\n onShowTasks: () => void,\n}\n\nconst GradingLearnerContent = ({ toolType, onShowTasks }: GradingLearnerContentProps) => {\n const intl = useIntl();\n const { courseId = '' } = useParams<{ courseId: string }>();\n const [usernameOrEmail, setUsernameOrEmail] = useState('');\n const [blockId, setBlockId] = useState('');\n const [score, setScore] = useState('');\n const learnerFieldRef = useRef<{ reset: () => void }>(null);\n const problemFieldRef = useRef<{ reset: () => void }>(null);\n\n const { mutate: resetAttempts } = useResetAttempts(courseId);\n const { mutate: deleteHistory } = useDeleteHistory(courseId);\n const { mutate: changeScore } = useChangeScore(courseId);\n const { mutate: rescoreSubmission } = useRescoreSubmission(courseId);\n const { refetch: refetchTasks } = usePendingTasks(courseId);\n\n const handleResetAttempts = (): void => {\n resetAttempts({ learner: usernameOrEmail, problem: blockId });\n };\n\n const handleRescoreSubmission = (onlyIfHigher = false): void => {\n rescoreSubmission({ learner: usernameOrEmail, problem: blockId, onlyIfHigher });\n };\n\n const handleDeleteHistory = (): void => {\n deleteHistory({ learner: usernameOrEmail, problem: blockId });\n };\n\n const handleOverrideScore = (): void => {\n changeScore({ learner: usernameOrEmail, problem: blockId, newScore: Number(score) });\n };\n\n const handleScoreChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const value = e.target.value;\n const numericRegex = /^-?\\d*\\.?\\d*$/;\n\n if (numericRegex.test(value) || value === '') {\n setScore(value);\n }\n };\n\n const handleTaskStatusClick = (): void => {\n refetchTasks();\n onShowTasks();\n };\n\n useEffect(() => {\n setUsernameOrEmail('');\n setBlockId('');\n setScore('');\n learnerFieldRef.current?.reset();\n problemFieldRef.current?.reset();\n }, [toolType]);\n\n const singleLearnerActionRows: ActionCardProps[] = [\n {\n title: intl.formatMessage(messages.resetAttempts),\n description: intl.formatMessage(messages.resetAttemptsDescription),\n customAction: (\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleResetAttempts}>\n {intl.formatMessage(messages.resetAttemptsButtonLabel)}\n </Button>\n )\n },\n {\n title: intl.formatMessage(messages.rescoreSubmission),\n description: intl.formatMessage(messages.rescoreSubmissionDescription),\n customAction: (\n <div className=\"d-flex flex-column gap-3\">\n <Button disabled={!usernameOrEmail || !blockId} onClick={() => handleRescoreSubmission()}>{intl.formatMessage(messages.rescoreSubmissionButtonLabel)}</Button>\n <Button disabled={!usernameOrEmail || !blockId} onClick={() => handleRescoreSubmission(true)}>{intl.formatMessage(messages.rescoreIfImprovesScoreButtonLabel)}</Button>\n </div>\n ),\n },\n {\n title: intl.formatMessage(messages.overrideScore),\n description: intl.formatMessage(messages.overrideScoreDescription),\n buttonLabel: intl.formatMessage(messages.overrideScoreButtonLabel),\n customAction: (\n <div className=\"d-flex align-items-center gap-2\">\n <FormControl\n name={intl.formatMessage(messages.overrideScorePlaceholder)}\n type=\"number\"\n placeholder={intl.formatMessage(messages.overrideScorePlaceholder)}\n value={score}\n onChange={handleScoreChange}\n />\n <Button disabled={!usernameOrEmail || !blockId || !score} onClick={handleOverrideScore}>{intl.formatMessage(messages.overrideScoreButtonLabel)}</Button>\n </div>\n )\n },\n {\n title: intl.formatMessage(messages.deleteHistory),\n description: intl.formatMessage(messages.deleteHistoryDescription),\n customAction: (\n <div className=\"d-flex flex-column gap-3\">\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleResetAttempts}>{intl.formatMessage(messages.resetAttemptsButtonLabel)}</Button>\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleDeleteHistory}>{intl.formatMessage(messages.deleteHistoryButtonLabel)}</Button>\n </div>\n ),\n },\n {\n title: intl.formatMessage(messages.taskStatus),\n description: intl.formatMessage(messages.taskStatusDescription),\n customAction: (\n <Button disabled={!usernameOrEmail || !blockId} onClick={handleTaskStatusClick}>\n {intl.formatMessage(messages.taskStatusButtonLabel)}\n </Button>\n )\n }\n ];\n\n const allLearnersActionRows = [\n {\n title: intl.formatMessage(messages.resetAttempts),\n description: intl.formatMessage(messages.resetAllLearnersAttemptsDescription),\n buttonLabel: intl.formatMessage(messages.resetAttemptsButtonLabel),\n customAction: (\n <Button disabled={!blockId} onClick={handleResetAttempts}>\n {intl.formatMessage(messages.resetAttemptsButtonLabel)}\n </Button>\n )\n },\n {\n title: intl.formatMessage(messages.rescoreSubmission),\n description: intl.formatMessage(messages.rescoreSubmissionAllLearnersDescription),\n customAction: (\n <div className=\"d-flex flex-column gap-3\">\n <Button disabled={!blockId} onClick={() => handleRescoreSubmission()}>{intl.formatMessage(messages.rescoreAllSubmissionButtonLabel)}</Button>\n <Button disabled={!blockId} onClick={() => handleRescoreSubmission(true)}>{intl.formatMessage(messages.rescoreIfImprovesScoreButtonLabel)}</Button>\n </div>\n ),\n },\n {\n title: intl.formatMessage(messages.taskStatus),\n description: intl.formatMessage(messages.taskStatusDescription),\n customAction: (\n <Button onClick={handleTaskStatusClick}>\n {intl.formatMessage(messages.taskStatusButtonLabel)}\n </Button>\n )\n }\n ];\n\n const rows = toolType === 'single' ? singleLearnerActionRows : allLearnersActionRows;\n\n const handleProblemChange = (location: string): void => {\n setBlockId(location);\n };\n\n const handleLearnerChange = (usernameOrEmail: string): void => {\n setUsernameOrEmail(usernameOrEmail);\n };\n\n return (\n <>\n <p className=\"x-small text-primary mt-3\">\n {\n toolType === 'single'\n ? intl.formatMessage(messages.descriptionSingleLearner)\n : intl.formatMessage(messages.descriptionAllLearners)\n }\n </p>\n <div className=\"d-flex justify-content-between gap-4\">\n {toolType === 'single' && (\n <div className=\"w-50\">\n <SpecifyLearnerField ref={learnerFieldRef} onClickSelect={handleLearnerChange} />\n </div>\n )}\n <div className=\"w-50\">\n <SpecifyProblemField\n ref={problemFieldRef}\n fieldLabel={intl.formatMessage(messages.specifyProblem)}\n buttonLabel={intl.formatMessage(messages.select)}\n disabled={!usernameOrEmail && toolType === 'single'}\n usernameOrEmail={usernameOrEmail}\n onClickSelect={handleProblemChange}\n />\n </div>\n </div>\n {\n rows.map(({ title, description, buttonLabel, customAction, onButtonClick }, index) => (\n <ActionCard key={title} buttonLabel={buttonLabel} description={description} title={title} hasBorderBottom={index !== rows.length - 1} customAction={customAction} onButtonClick={onButtonClick} />\n ))\n }\n </>\n );\n};\n\nexport default GradingLearnerContent;\n"]}
|
|
@@ -154,5 +154,20 @@ declare const messages: {
|
|
|
154
154
|
defaultMessage: string;
|
|
155
155
|
description: string;
|
|
156
156
|
};
|
|
157
|
+
resetAllLearnersAttemptsDescription: {
|
|
158
|
+
id: string;
|
|
159
|
+
defaultMessage: string;
|
|
160
|
+
description: string;
|
|
161
|
+
};
|
|
162
|
+
rescoreSubmissionAllLearnersDescription: {
|
|
163
|
+
id: string;
|
|
164
|
+
defaultMessage: string;
|
|
165
|
+
description: string;
|
|
166
|
+
};
|
|
167
|
+
rescoreAllSubmissionButtonLabel: {
|
|
168
|
+
id: string;
|
|
169
|
+
defaultMessage: string;
|
|
170
|
+
description: string;
|
|
171
|
+
};
|
|
157
172
|
};
|
|
158
173
|
export default messages;
|
package/dist/grading/messages.js
CHANGED
|
@@ -154,6 +154,21 @@ const messages = defineMessages({
|
|
|
154
154
|
id: 'instruct.grading.overrideScorePlaceholder',
|
|
155
155
|
defaultMessage: 'Score',
|
|
156
156
|
description: 'Placeholder text for the override score input field'
|
|
157
|
+
},
|
|
158
|
+
resetAllLearnersAttemptsDescription: {
|
|
159
|
+
id: 'instruct.grading.resetAllLearnersAttemptsDescription',
|
|
160
|
+
defaultMessage: 'Allows all learners to work on the problem again.',
|
|
161
|
+
description: 'Description for the reset attempts action card in the all learners view'
|
|
162
|
+
},
|
|
163
|
+
rescoreSubmissionAllLearnersDescription: {
|
|
164
|
+
id: 'instruct.grading.rescoreSubmissionAllLearnersDescription',
|
|
165
|
+
defaultMessage: 'For the specified problem, rescore all learners\' responses.',
|
|
166
|
+
description: 'Description for the rescore submission action card in the all learners view'
|
|
167
|
+
},
|
|
168
|
+
rescoreAllSubmissionButtonLabel: {
|
|
169
|
+
id: 'instruct.grading.rescoreAllSubmissionButtonLabel',
|
|
170
|
+
defaultMessage: 'Rescore All Learners\' Submissions',
|
|
171
|
+
description: 'Button label for the rescore submission action card in the all learners view'
|
|
157
172
|
}
|
|
158
173
|
});
|
|
159
174
|
export default messages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/grading/messages.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n pageTitle: {\n id: 'instruct.grading.pageTitle',\n defaultMessage: 'Grading Tools',\n description: 'Title for the grading page'\n },\n configurationAlt: {\n id: 'instruct.grading.configurationAlt',\n defaultMessage: 'Grading Configuration and Settings',\n description: 'Alt text for the configuration icon button'\n },\n viewGradebook: {\n id: 'instruct.grading.viewGradebook',\n defaultMessage: 'View Gradebook',\n description: 'Text for the button to view the gradebook'\n },\n singleLearner: {\n id: 'instruct.grading.singleLearner',\n defaultMessage: 'Single Learner',\n description: 'Single Learner button label to display corresponding grading tools'\n },\n allLearners: {\n id: 'instruct.grading.allLearners',\n defaultMessage: 'All Learners',\n description: 'All learners button label to display corresponding grading tools'\n },\n descriptionSingleLearner: {\n id: 'instruct.grading.descriptionSingleLearner',\n defaultMessage: 'These grading tools allow for grade review and adjustment for a specific learner on a specific problem.',\n description: 'Description for single learner grading tools'\n },\n descriptionAllLearners: {\n id: 'instruct.grading.descriptionAllLearners',\n defaultMessage: 'These grading tools allow for grade review and adjustment all enrolled learners on a specific problem.',\n description: 'Description for all learners grading tools'\n },\n gradingConfiguration: {\n id: 'instruct.grading.gradingConfiguration',\n defaultMessage: 'Grading Configuration',\n description: 'Title for the grading configuration modal'\n },\n close: {\n id: 'instruct.grading.modals.close',\n defaultMessage: 'Close',\n description: 'Text for the close button in the grading configuration modal'\n },\n viewGradingConfiguration: {\n id: 'instruct.grading.viewGradingConfiguration',\n defaultMessage: 'View Grading Configuration',\n description: 'View grading configuration menu item label'\n },\n viewCourseGradingSettings: {\n id: 'instruct.grading.viewCourseGradingSettings',\n defaultMessage: 'View Course Grading Settings',\n description: 'View course grading settings menu item label'\n },\n noGradingConfiguration: {\n id: 'instruct.grading.noGradingConfiguration',\n defaultMessage: 'No grading configuration found for this course.',\n description: 'Message to display when there is no grading configuration for the course'\n },\n resetAttempts: {\n id: 'instruct.grading.resetAttempts',\n defaultMessage: 'Reset Attempts',\n description: 'Title for the reset attempts action card'\n },\n resetAttemptsDescription: {\n id: 'instruct.grading.resetAttemptsDescription',\n defaultMessage: 'Allow a learner who has used up all attempts to work on the problem again.',\n description: 'Description for the reset attempts action card'\n },\n resetAttemptsButtonLabel: {\n id: 'instruct.grading.resetAttemptsButtonLabel',\n defaultMessage: 'Reset Attempts to Zero',\n description: 'Button label for the reset attempts action card'\n },\n rescoreSubmission: {\n id: 'instruct.grading.rescoreSubmission',\n defaultMessage: 'Rescore Submission',\n description: 'Title for the rescore submission action card'\n },\n rescoreSubmissionDescription: {\n id: 'instruct.grading.rescoreSubmissionDescription',\n defaultMessage: 'For the specified problem, two tools exist for rescoring learner responses.',\n description: 'Description for the rescore submission action card'\n },\n rescoreSubmissionButtonLabel: {\n id: 'instruct.grading.rescoreSubmissionButtonLabel',\n defaultMessage: 'Rescore Learner\\'s Submission',\n description: 'Button label for the rescore submission action card'\n },\n rescoreIfImprovesScoreButtonLabel: {\n id: 'instruct.grading.rescoreIfImprovesScoreButtonLabel',\n defaultMessage: 'Rescore Only if Score Improves',\n description: 'Button label for the rescore if improves score action in the rescore submission'\n },\n overrideScore: {\n id: 'instruct.grading.overrideScore',\n defaultMessage: 'Override Score',\n description: 'Title for the override score action card'\n },\n overrideScoreDescription: {\n id: 'instruct.grading.overrideScoreDescription',\n defaultMessage: 'For the specified problem, override the learner\\'s score. Input the new score, out of the total points available for this problem.',\n description: 'Description for the override score action card'\n },\n overrideScoreButtonLabel: {\n id: 'instruct.grading.overrideScoreButtonLabel',\n defaultMessage: 'Override Learner\\'s Score',\n description: 'Button label for the override score action card'\n },\n deleteHistory: {\n id: 'instruct.grading.deleteHistory',\n defaultMessage: 'Delete History',\n description: 'Title for the delete history action card'\n },\n deleteHistoryDescription: {\n id: 'instruct.grading.deleteHistoryDescription',\n defaultMessage: 'For the specified problem, permanently and completely delete the learner\\'s answers and scores from the database.',\n description: 'Description for the delete history action card'\n },\n deleteHistoryButtonLabel: {\n id: 'instruct.grading.deleteHistoryButtonLabel',\n defaultMessage: 'Delete Learner\\'s State',\n description: 'Button label for the delete history action card'\n },\n taskStatus: {\n id: 'instruct.grading.taskStatus',\n defaultMessage: 'Task Status',\n description: 'Title for the task status action card'\n },\n taskStatusDescription: {\n id: 'instruct.grading.taskStatusDescription',\n defaultMessage: 'Show the status for the tasks that you submitted for this problem.',\n description: 'Description for the task status action card'\n },\n taskStatusButtonLabel: {\n id: 'instruct.grading.taskStatusButtonLabel',\n defaultMessage: 'Show Task Status',\n description: 'Button label for the task status action card'\n },\n specifyProblem: {\n id: 'instruct.grading.specifyProblem',\n defaultMessage: 'Specify Problem:',\n description: 'Label for the specify problem input field'\n },\n select: {\n id: 'instruct.grading.select',\n defaultMessage: 'Select',\n description: 'Label for the select button in the specify problem field'\n },\n overrideScorePlaceholder: {\n id: 'instruct.grading.overrideScorePlaceholder',\n defaultMessage: 'Score',\n description: 'Placeholder text for the override score input field'\n }\n});\n\nexport default messages;\n"]}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/grading/messages.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n pageTitle: {\n id: 'instruct.grading.pageTitle',\n defaultMessage: 'Grading Tools',\n description: 'Title for the grading page'\n },\n configurationAlt: {\n id: 'instruct.grading.configurationAlt',\n defaultMessage: 'Grading Configuration and Settings',\n description: 'Alt text for the configuration icon button'\n },\n viewGradebook: {\n id: 'instruct.grading.viewGradebook',\n defaultMessage: 'View Gradebook',\n description: 'Text for the button to view the gradebook'\n },\n singleLearner: {\n id: 'instruct.grading.singleLearner',\n defaultMessage: 'Single Learner',\n description: 'Single Learner button label to display corresponding grading tools'\n },\n allLearners: {\n id: 'instruct.grading.allLearners',\n defaultMessage: 'All Learners',\n description: 'All learners button label to display corresponding grading tools'\n },\n descriptionSingleLearner: {\n id: 'instruct.grading.descriptionSingleLearner',\n defaultMessage: 'These grading tools allow for grade review and adjustment for a specific learner on a specific problem.',\n description: 'Description for single learner grading tools'\n },\n descriptionAllLearners: {\n id: 'instruct.grading.descriptionAllLearners',\n defaultMessage: 'These grading tools allow for grade review and adjustment all enrolled learners on a specific problem.',\n description: 'Description for all learners grading tools'\n },\n gradingConfiguration: {\n id: 'instruct.grading.gradingConfiguration',\n defaultMessage: 'Grading Configuration',\n description: 'Title for the grading configuration modal'\n },\n close: {\n id: 'instruct.grading.modals.close',\n defaultMessage: 'Close',\n description: 'Text for the close button in the grading configuration modal'\n },\n viewGradingConfiguration: {\n id: 'instruct.grading.viewGradingConfiguration',\n defaultMessage: 'View Grading Configuration',\n description: 'View grading configuration menu item label'\n },\n viewCourseGradingSettings: {\n id: 'instruct.grading.viewCourseGradingSettings',\n defaultMessage: 'View Course Grading Settings',\n description: 'View course grading settings menu item label'\n },\n noGradingConfiguration: {\n id: 'instruct.grading.noGradingConfiguration',\n defaultMessage: 'No grading configuration found for this course.',\n description: 'Message to display when there is no grading configuration for the course'\n },\n resetAttempts: {\n id: 'instruct.grading.resetAttempts',\n defaultMessage: 'Reset Attempts',\n description: 'Title for the reset attempts action card'\n },\n resetAttemptsDescription: {\n id: 'instruct.grading.resetAttemptsDescription',\n defaultMessage: 'Allow a learner who has used up all attempts to work on the problem again.',\n description: 'Description for the reset attempts action card'\n },\n resetAttemptsButtonLabel: {\n id: 'instruct.grading.resetAttemptsButtonLabel',\n defaultMessage: 'Reset Attempts to Zero',\n description: 'Button label for the reset attempts action card'\n },\n rescoreSubmission: {\n id: 'instruct.grading.rescoreSubmission',\n defaultMessage: 'Rescore Submission',\n description: 'Title for the rescore submission action card'\n },\n rescoreSubmissionDescription: {\n id: 'instruct.grading.rescoreSubmissionDescription',\n defaultMessage: 'For the specified problem, two tools exist for rescoring learner responses.',\n description: 'Description for the rescore submission action card'\n },\n rescoreSubmissionButtonLabel: {\n id: 'instruct.grading.rescoreSubmissionButtonLabel',\n defaultMessage: 'Rescore Learner\\'s Submission',\n description: 'Button label for the rescore submission action card'\n },\n rescoreIfImprovesScoreButtonLabel: {\n id: 'instruct.grading.rescoreIfImprovesScoreButtonLabel',\n defaultMessage: 'Rescore Only if Score Improves',\n description: 'Button label for the rescore if improves score action in the rescore submission'\n },\n overrideScore: {\n id: 'instruct.grading.overrideScore',\n defaultMessage: 'Override Score',\n description: 'Title for the override score action card'\n },\n overrideScoreDescription: {\n id: 'instruct.grading.overrideScoreDescription',\n defaultMessage: 'For the specified problem, override the learner\\'s score. Input the new score, out of the total points available for this problem.',\n description: 'Description for the override score action card'\n },\n overrideScoreButtonLabel: {\n id: 'instruct.grading.overrideScoreButtonLabel',\n defaultMessage: 'Override Learner\\'s Score',\n description: 'Button label for the override score action card'\n },\n deleteHistory: {\n id: 'instruct.grading.deleteHistory',\n defaultMessage: 'Delete History',\n description: 'Title for the delete history action card'\n },\n deleteHistoryDescription: {\n id: 'instruct.grading.deleteHistoryDescription',\n defaultMessage: 'For the specified problem, permanently and completely delete the learner\\'s answers and scores from the database.',\n description: 'Description for the delete history action card'\n },\n deleteHistoryButtonLabel: {\n id: 'instruct.grading.deleteHistoryButtonLabel',\n defaultMessage: 'Delete Learner\\'s State',\n description: 'Button label for the delete history action card'\n },\n taskStatus: {\n id: 'instruct.grading.taskStatus',\n defaultMessage: 'Task Status',\n description: 'Title for the task status action card'\n },\n taskStatusDescription: {\n id: 'instruct.grading.taskStatusDescription',\n defaultMessage: 'Show the status for the tasks that you submitted for this problem.',\n description: 'Description for the task status action card'\n },\n taskStatusButtonLabel: {\n id: 'instruct.grading.taskStatusButtonLabel',\n defaultMessage: 'Show Task Status',\n description: 'Button label for the task status action card'\n },\n specifyProblem: {\n id: 'instruct.grading.specifyProblem',\n defaultMessage: 'Specify Problem:',\n description: 'Label for the specify problem input field'\n },\n select: {\n id: 'instruct.grading.select',\n defaultMessage: 'Select',\n description: 'Label for the select button in the specify problem field'\n },\n overrideScorePlaceholder: {\n id: 'instruct.grading.overrideScorePlaceholder',\n defaultMessage: 'Score',\n description: 'Placeholder text for the override score input field'\n },\n resetAllLearnersAttemptsDescription: {\n id: 'instruct.grading.resetAllLearnersAttemptsDescription',\n defaultMessage: 'Allows all learners to work on the problem again.',\n description: 'Description for the reset attempts action card in the all learners view'\n },\n rescoreSubmissionAllLearnersDescription: {\n id: 'instruct.grading.rescoreSubmissionAllLearnersDescription',\n defaultMessage: 'For the specified problem, rescore all learners\\' responses.',\n description: 'Description for the rescore submission action card in the all learners view'\n },\n rescoreAllSubmissionButtonLabel: {\n id: 'instruct.grading.rescoreAllSubmissionButtonLabel',\n defaultMessage: 'Rescore All Learners\\' Submissions',\n description: 'Button label for the rescore submission action card in the all learners view'\n }\n});\n\nexport default messages;\n"]}
|