@elice/material-assignment 1.240718.2 → 1.240719.0
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.
- package/cjs/_virtual/_rollupPluginBabelHelpers.js +383 -0
- package/cjs/components/index.js +9 -0
- package/cjs/components/material-assignment/MaterialAssignment.js +23 -17
- package/cjs/components/material-assignment/MaterialAssignmentContent.js +281 -194
- package/cjs/components/material-assignment/MaterialAssignmentUploadModal.js +181 -138
- package/cjs/components/material-assignment/constants/color.js +1 -1
- package/cjs/components/material-assignment/index.js +7 -0
- package/cjs/components/material-assignment/locales/index.js +13 -0
- package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.js +32 -24
- package/cjs/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +19 -9
- package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContent.js +774 -548
- package/cjs/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +436 -303
- package/cjs/components/material-assignment-admin/index.js +7 -0
- package/cjs/components/shared/MaterialAssignmentContainer.js +23 -13
- package/es/_virtual/_rollupPluginBabelHelpers.js +374 -0
- package/es/components/index.js +2 -0
- package/es/components/material-assignment/MaterialAssignment.js +18 -17
- package/es/components/material-assignment/MaterialAssignmentContent.js +276 -194
- package/es/components/material-assignment/MaterialAssignmentUploadModal.js +177 -139
- package/es/components/material-assignment/constants/color.js +1 -1
- package/es/components/material-assignment/index.js +1 -0
- package/es/components/material-assignment/locales/index.js +4 -0
- package/es/components/material-assignment-admin/MaterialAssignmentAdmin.js +29 -25
- package/es/components/material-assignment-admin/MaterialAssignmentAdmin.styled.js +15 -9
- package/es/components/material-assignment-admin/MaterialAssignmentAdminContent.js +770 -549
- package/es/components/material-assignment-admin/MaterialAssignmentAdminContentTa.js +432 -304
- package/es/components/material-assignment-admin/index.js +1 -0
- package/es/components/shared/MaterialAssignmentContainer.js +19 -13
- package/package.json +9 -12
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
1
3
|
import React, { forwardRef } from 'react';
|
|
2
4
|
import { useForm, Controller } from 'react-hook-form';
|
|
3
5
|
import { config, getOrgUserGet, getOrgMaterialAssignmentGet, getOrgMaterialAssignmentSubmissionList, getOrgMaterialAssignmentGradeResultGet, getOrgMaterialAssignmentGradeList, postOrgMaterialAssignmentGradeEdit, postOrgMaterialAssignmentGradeResultManualScoreEdit, postOrgMaterialAssignmentGradeDelete } from '@elice/api-client';
|
|
4
|
-
import {
|
|
6
|
+
import { Flex, Vspace, ProfileImage, Hspace, Text, Tooltip, Icon, InfoTable, Button, TableNext, IconButton, Pagination, Modal, Label, Input, Textarea, Alert, Notification } from '@elice/blocks';
|
|
5
7
|
import { base } from '@elice/design-tokens';
|
|
6
8
|
import { eilStatusInfo, eilChat, eilDelete, eilArrowRightwardsBasic } from '@elice/icons';
|
|
7
9
|
import { FormattedDate } from '@elice/intl';
|
|
@@ -10,121 +12,173 @@ import dayjs from 'dayjs';
|
|
|
10
12
|
import MaterialAssignmentContainer from '../shared/MaterialAssignmentContainer.js';
|
|
11
13
|
import { StyledMaterialAssignmentAdminHeader, StyledMaterialAssignmentAdminHeaderCell, StyledMaterialAssignmentAdminGradeWrapper, StyledMaterialAssignmentAdminTextareaWrapper, StyledMaterialAssignmentAdminManualScoreEditButtonWrapper, StyledMaterialAssignmentAdminManualScoreEditButton } from './MaterialAssignmentAdmin.styled.js';
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
materialAssignmentId,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}, ref) => {
|
|
15
|
+
var FETCH_GRADE_LIST_COUNT = 5;
|
|
16
|
+
var MaterialAssignmentAdminContent = forwardRef(function (_ref, ref) {
|
|
17
|
+
var materialAssignmentId = _ref.materialAssignmentId,
|
|
18
|
+
userId = _ref.userId,
|
|
19
|
+
adminUserId = _ref.adminUserId,
|
|
20
|
+
updateMaterialUserBrowserResponse = _ref.updateMaterialUserBrowserResponse;
|
|
20
21
|
var _a;
|
|
21
22
|
// Form
|
|
22
|
-
|
|
23
|
+
var gradeEditFormMethods = useForm({
|
|
23
24
|
defaultValues: {
|
|
24
25
|
score: 0,
|
|
25
26
|
comment: ''
|
|
26
27
|
},
|
|
27
28
|
mode: 'onChange'
|
|
28
29
|
});
|
|
29
|
-
|
|
30
|
+
var manualScoreEditFormMethods = useForm({
|
|
30
31
|
defaultValues: {
|
|
31
32
|
manualScore: 0
|
|
32
33
|
},
|
|
33
34
|
mode: 'onChange'
|
|
34
35
|
});
|
|
35
36
|
// API Status
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
var isReady = useMaterialConfigApiClientUpdate(config.init);
|
|
38
|
+
var _React$useState = React.useState('idle'),
|
|
39
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
40
|
+
submissionListGetStatus = _React$useState2[0],
|
|
41
|
+
setSubmissionListGetStatus = _React$useState2[1];
|
|
42
|
+
var _React$useState3 = React.useState('idle'),
|
|
43
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
44
|
+
gradeDeleteStatus = _React$useState4[0],
|
|
45
|
+
setGradeDeleteStatus = _React$useState4[1];
|
|
39
46
|
// State related with component
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
var _React$useState5 = React.useState(false),
|
|
48
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
49
|
+
showGradeEditModal = _React$useState6[0],
|
|
50
|
+
setShowGradeEditModal = _React$useState6[1];
|
|
51
|
+
var _React$useState7 = React.useState(false),
|
|
52
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
53
|
+
showManualScoreEditModal = _React$useState8[0],
|
|
54
|
+
setShowManualScoreEditModal = _React$useState8[1];
|
|
55
|
+
var _React$useState9 = React.useState(null),
|
|
56
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
57
|
+
selectedGradeForShow = _React$useState10[0],
|
|
58
|
+
setSelectedGradeForShow = _React$useState10[1];
|
|
59
|
+
var _React$useState11 = React.useState(null),
|
|
60
|
+
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
61
|
+
selectedGradeForDelete = _React$useState12[0],
|
|
62
|
+
setSelectedGradeForDelete = _React$useState12[1];
|
|
44
63
|
// State related with api
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
64
|
+
var _React$useState13 = React.useState(null),
|
|
65
|
+
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
66
|
+
user = _React$useState14[0],
|
|
67
|
+
setUser = _React$useState14[1];
|
|
68
|
+
var _React$useState15 = React.useState(null),
|
|
69
|
+
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
70
|
+
materialAssignment = _React$useState16[0],
|
|
71
|
+
setMaterialAssignment = _React$useState16[1];
|
|
72
|
+
var _React$useState17 = React.useState(null),
|
|
73
|
+
_React$useState18 = _slicedToArray(_React$useState17, 2),
|
|
74
|
+
userSubmission = _React$useState18[0],
|
|
75
|
+
setUserSubmission = _React$useState18[1];
|
|
76
|
+
var _React$useState19 = React.useState(null),
|
|
77
|
+
_React$useState20 = _slicedToArray(_React$useState19, 2),
|
|
78
|
+
myGrade = _React$useState20[0],
|
|
79
|
+
setMyGrade = _React$useState20[1];
|
|
80
|
+
var _React$useState21 = React.useState(null),
|
|
81
|
+
_React$useState22 = _slicedToArray(_React$useState21, 2),
|
|
82
|
+
gradeResult = _React$useState22[0],
|
|
83
|
+
setGradeResult = _React$useState22[1];
|
|
84
|
+
var _React$useState23 = React.useState([]),
|
|
85
|
+
_React$useState24 = _slicedToArray(_React$useState23, 2),
|
|
86
|
+
gradeList = _React$useState24[0],
|
|
87
|
+
setGradeList = _React$useState24[1];
|
|
88
|
+
var _React$useState25 = React.useState(0),
|
|
89
|
+
_React$useState26 = _slicedToArray(_React$useState25, 2),
|
|
90
|
+
gradeListCount = _React$useState26[0],
|
|
91
|
+
setGradeListCount = _React$useState26[1];
|
|
92
|
+
var _React$useState27 = React.useState(1),
|
|
93
|
+
_React$useState28 = _slicedToArray(_React$useState27, 2),
|
|
94
|
+
gradeListPage = _React$useState28[0],
|
|
95
|
+
setGradeListPage = _React$useState28[1];
|
|
96
|
+
var gradeListOffset = (gradeListPage - 1) * FETCH_GRADE_LIST_COUNT;
|
|
97
|
+
var isAssignmentClosed = dayjs().isAfter(dayjs(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime));
|
|
98
|
+
var isScoreFinalized = Boolean(materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.scoreFinalizedDatetime);
|
|
99
|
+
var isUserSubmitted = Boolean(userSubmission);
|
|
100
|
+
var fetchUserGet = React.useCallback(function () {
|
|
58
101
|
void getOrgUserGet({
|
|
59
|
-
userId
|
|
60
|
-
}).then(
|
|
102
|
+
userId: userId
|
|
103
|
+
}).then(function (res) {
|
|
104
|
+
return res.user;
|
|
105
|
+
}).then(setUser);
|
|
61
106
|
}, [userId]);
|
|
62
|
-
|
|
107
|
+
var fetchMaterialAssignmentGet = React.useCallback(function () {
|
|
63
108
|
void getOrgMaterialAssignmentGet({
|
|
64
|
-
materialAssignmentId
|
|
65
|
-
}).then(
|
|
109
|
+
materialAssignmentId: materialAssignmentId
|
|
110
|
+
}).then(function (res) {
|
|
111
|
+
return res.materialAssignment;
|
|
112
|
+
}).then(setMaterialAssignment);
|
|
66
113
|
}, [materialAssignmentId]);
|
|
67
|
-
|
|
114
|
+
var fetchSubmissionList = React.useCallback(function () {
|
|
68
115
|
setSubmissionListGetStatus('pending');
|
|
69
116
|
void getOrgMaterialAssignmentSubmissionList({
|
|
70
|
-
materialAssignmentId,
|
|
117
|
+
materialAssignmentId: materialAssignmentId,
|
|
71
118
|
offset: 0,
|
|
72
119
|
count: 1,
|
|
73
120
|
filterConditions: {
|
|
74
121
|
isLast: true,
|
|
75
122
|
userIds: [userId]
|
|
76
123
|
}
|
|
77
|
-
}).then(
|
|
124
|
+
}).then(function (res) {
|
|
125
|
+
return res.materialAssignmentSubmissions[0];
|
|
126
|
+
}).then(function (submission) {
|
|
78
127
|
setUserSubmission(submission !== null && submission !== void 0 ? submission : null);
|
|
79
128
|
setSubmissionListGetStatus('resolved');
|
|
80
|
-
}).catch(err
|
|
129
|
+
}).catch(function (err) {
|
|
81
130
|
console.error(err);
|
|
82
131
|
setSubmissionListGetStatus('rejected');
|
|
83
132
|
});
|
|
84
133
|
}, [materialAssignmentId, userId]);
|
|
85
|
-
|
|
134
|
+
var fetchGradeResult = React.useCallback(function () {
|
|
86
135
|
void getOrgMaterialAssignmentGradeResultGet({
|
|
87
|
-
materialAssignmentId,
|
|
88
|
-
userId
|
|
89
|
-
}).then(
|
|
136
|
+
materialAssignmentId: materialAssignmentId,
|
|
137
|
+
userId: userId
|
|
138
|
+
}).then(function (res) {
|
|
139
|
+
return res.materialAssignmentGradeResult;
|
|
140
|
+
}).then(setGradeResult).catch(function () {
|
|
90
141
|
setGradeResult(null);
|
|
91
142
|
});
|
|
92
143
|
}, [materialAssignmentId, userId]);
|
|
93
|
-
|
|
144
|
+
var fetchGradeList = React.useCallback(function () {
|
|
94
145
|
void getOrgMaterialAssignmentGradeList({
|
|
95
|
-
materialAssignmentId,
|
|
146
|
+
materialAssignmentId: materialAssignmentId,
|
|
96
147
|
offset: gradeListOffset,
|
|
97
148
|
count: FETCH_GRADE_LIST_COUNT,
|
|
98
149
|
filterConditions: {
|
|
99
|
-
userId
|
|
150
|
+
userId: userId
|
|
100
151
|
}
|
|
101
|
-
}).then(({
|
|
102
|
-
materialAssignmentGrades,
|
|
103
|
-
|
|
104
|
-
}) => {
|
|
152
|
+
}).then(function (_ref2) {
|
|
153
|
+
var materialAssignmentGrades = _ref2.materialAssignmentGrades,
|
|
154
|
+
materialAssignmentGradeCount = _ref2.materialAssignmentGradeCount;
|
|
105
155
|
setGradeList(materialAssignmentGrades);
|
|
106
156
|
setGradeListCount(materialAssignmentGradeCount);
|
|
107
157
|
});
|
|
108
158
|
}, [gradeListOffset, materialAssignmentId, userId]);
|
|
109
|
-
|
|
159
|
+
var fetchMyGrade = React.useCallback(function () {
|
|
110
160
|
void getOrgMaterialAssignmentGradeList({
|
|
111
|
-
materialAssignmentId,
|
|
161
|
+
materialAssignmentId: materialAssignmentId,
|
|
112
162
|
offset: 0,
|
|
113
163
|
count: 1,
|
|
114
164
|
filterConditions: {
|
|
115
|
-
userId,
|
|
165
|
+
userId: userId,
|
|
116
166
|
gradeUserId: adminUserId
|
|
117
167
|
}
|
|
118
|
-
}).then(
|
|
168
|
+
}).then(function (res) {
|
|
169
|
+
return res.materialAssignmentGrades[0];
|
|
170
|
+
}).then(function (grade) {
|
|
171
|
+
return setMyGrade(grade !== null && grade !== void 0 ? grade : null);
|
|
172
|
+
});
|
|
119
173
|
}, [adminUserId, materialAssignmentId, userId]);
|
|
120
|
-
|
|
174
|
+
var handleManualScoreEditClick = function handleManualScoreEditClick() {
|
|
121
175
|
var _a, _b;
|
|
122
176
|
setShowManualScoreEditModal(true);
|
|
123
177
|
manualScoreEditFormMethods.reset({
|
|
124
178
|
manualScore: (_b = (_a = gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0
|
|
125
179
|
});
|
|
126
180
|
};
|
|
127
|
-
|
|
181
|
+
var handleGradeEditClick = function handleGradeEditClick() {
|
|
128
182
|
var _a, _b;
|
|
129
183
|
setShowGradeEditModal(true);
|
|
130
184
|
gradeEditFormMethods.reset({
|
|
@@ -132,82 +186,144 @@ const MaterialAssignmentAdminContent = forwardRef(({
|
|
|
132
186
|
comment: (_b = myGrade === null || myGrade === void 0 ? void 0 : myGrade.comment) !== null && _b !== void 0 ? _b : ''
|
|
133
187
|
});
|
|
134
188
|
};
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
189
|
+
var handleGradeEditSubmit = gradeEditFormMethods.handleSubmit( /*#__PURE__*/function () {
|
|
190
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref3) {
|
|
191
|
+
var score, comment;
|
|
192
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
193
|
+
while (1) switch (_context.prev = _context.next) {
|
|
194
|
+
case 0:
|
|
195
|
+
score = _ref3.score, comment = _ref3.comment;
|
|
196
|
+
_context.prev = 1;
|
|
197
|
+
_context.next = 4;
|
|
198
|
+
return postOrgMaterialAssignmentGradeEdit({
|
|
199
|
+
materialAssignmentGradeId: myGrade === null || myGrade === void 0 ? void 0 : myGrade.id,
|
|
200
|
+
materialAssignmentId: materialAssignmentId,
|
|
201
|
+
userId: userId,
|
|
202
|
+
score: score,
|
|
203
|
+
comment: comment
|
|
204
|
+
});
|
|
205
|
+
case 4:
|
|
206
|
+
fetchMyGrade();
|
|
207
|
+
fetchGradeResult();
|
|
208
|
+
fetchGradeList();
|
|
209
|
+
if (typeof updateMaterialUserBrowserResponse === 'function') {
|
|
210
|
+
updateMaterialUserBrowserResponse(userId);
|
|
211
|
+
}
|
|
212
|
+
Notification.success('저장되었습니다');
|
|
213
|
+
_context.next = 15;
|
|
214
|
+
break;
|
|
215
|
+
case 11:
|
|
216
|
+
_context.prev = 11;
|
|
217
|
+
_context.t0 = _context["catch"](1);
|
|
218
|
+
console.error(_context.t0);
|
|
219
|
+
Notification.error('오류가 발생했습니다.');
|
|
220
|
+
case 15:
|
|
221
|
+
_context.prev = 15;
|
|
222
|
+
setShowGradeEditModal(false);
|
|
223
|
+
return _context.finish(15);
|
|
224
|
+
case 18:
|
|
225
|
+
case "end":
|
|
226
|
+
return _context.stop();
|
|
227
|
+
}
|
|
228
|
+
}, _callee, null, [[1, 11, 15, 18]]);
|
|
229
|
+
}));
|
|
230
|
+
return function (_x) {
|
|
231
|
+
return _ref4.apply(this, arguments);
|
|
232
|
+
};
|
|
233
|
+
}());
|
|
234
|
+
var handleGradeDeleteSubmit = /*#__PURE__*/function () {
|
|
235
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
236
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
237
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
238
|
+
case 0:
|
|
239
|
+
if (selectedGradeForDelete) {
|
|
240
|
+
_context2.next = 2;
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
return _context2.abrupt("return");
|
|
244
|
+
case 2:
|
|
245
|
+
_context2.prev = 2;
|
|
246
|
+
setGradeDeleteStatus('pending');
|
|
247
|
+
_context2.next = 6;
|
|
248
|
+
return postOrgMaterialAssignmentGradeDelete({
|
|
249
|
+
materialAssignmentGradeId: selectedGradeForDelete.id
|
|
250
|
+
});
|
|
251
|
+
case 6:
|
|
252
|
+
// If delete my grade, re-fetch my grade data.
|
|
253
|
+
if (adminUserId === selectedGradeForDelete.gradeUser.id) {
|
|
254
|
+
fetchMyGrade();
|
|
255
|
+
}
|
|
256
|
+
fetchGradeList();
|
|
257
|
+
fetchGradeResult();
|
|
258
|
+
setGradeDeleteStatus('resolved');
|
|
259
|
+
if (typeof updateMaterialUserBrowserResponse === 'function') {
|
|
260
|
+
updateMaterialUserBrowserResponse(userId);
|
|
261
|
+
}
|
|
262
|
+
Notification.success('저장되었습니다');
|
|
263
|
+
_context2.next = 19;
|
|
264
|
+
break;
|
|
265
|
+
case 14:
|
|
266
|
+
_context2.prev = 14;
|
|
267
|
+
_context2.t0 = _context2["catch"](2);
|
|
268
|
+
console.error(_context2.t0);
|
|
269
|
+
setGradeDeleteStatus('rejected');
|
|
270
|
+
Notification.error('오류가 발생했습니다.');
|
|
271
|
+
case 19:
|
|
272
|
+
_context2.prev = 19;
|
|
273
|
+
setSelectedGradeForDelete(null);
|
|
274
|
+
return _context2.finish(19);
|
|
275
|
+
case 22:
|
|
276
|
+
case "end":
|
|
277
|
+
return _context2.stop();
|
|
278
|
+
}
|
|
279
|
+
}, _callee2, null, [[2, 14, 19, 22]]);
|
|
280
|
+
}));
|
|
281
|
+
return function handleGradeDeleteSubmit() {
|
|
282
|
+
return _ref5.apply(this, arguments);
|
|
283
|
+
};
|
|
284
|
+
}();
|
|
285
|
+
var handleManualScoreEditSubmit = manualScoreEditFormMethods.handleSubmit( /*#__PURE__*/function () {
|
|
286
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref6) {
|
|
287
|
+
var manualScore;
|
|
288
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
289
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
290
|
+
case 0:
|
|
291
|
+
manualScore = _ref6.manualScore;
|
|
292
|
+
_context3.prev = 1;
|
|
293
|
+
_context3.next = 4;
|
|
294
|
+
return postOrgMaterialAssignmentGradeResultManualScoreEdit({
|
|
295
|
+
userId: userId,
|
|
296
|
+
manualScore: manualScore,
|
|
297
|
+
materialAssignmentId: materialAssignmentId
|
|
298
|
+
});
|
|
299
|
+
case 4:
|
|
300
|
+
fetchGradeResult();
|
|
301
|
+
if (typeof updateMaterialUserBrowserResponse === 'function') {
|
|
302
|
+
updateMaterialUserBrowserResponse(userId);
|
|
303
|
+
}
|
|
304
|
+
Notification.success('저장되었습니다');
|
|
305
|
+
_context3.next = 13;
|
|
306
|
+
break;
|
|
307
|
+
case 9:
|
|
308
|
+
_context3.prev = 9;
|
|
309
|
+
_context3.t0 = _context3["catch"](1);
|
|
310
|
+
console.error(_context3.t0);
|
|
311
|
+
Notification.error('오류가 발생했습니다.');
|
|
312
|
+
case 13:
|
|
313
|
+
_context3.prev = 13;
|
|
314
|
+
setShowManualScoreEditModal(false);
|
|
315
|
+
return _context3.finish(13);
|
|
316
|
+
case 16:
|
|
317
|
+
case "end":
|
|
318
|
+
return _context3.stop();
|
|
319
|
+
}
|
|
320
|
+
}, _callee3, null, [[1, 9, 13, 16]]);
|
|
321
|
+
}));
|
|
322
|
+
return function (_x2) {
|
|
323
|
+
return _ref7.apply(this, arguments);
|
|
324
|
+
};
|
|
325
|
+
}());
|
|
326
|
+
React.useEffect(function () {
|
|
211
327
|
if (!isReady) {
|
|
212
328
|
return;
|
|
213
329
|
}
|
|
@@ -218,273 +334,346 @@ const MaterialAssignmentAdminContent = forwardRef(({
|
|
|
218
334
|
fetchSubmissionList();
|
|
219
335
|
fetchMaterialAssignmentGet();
|
|
220
336
|
}, [isReady, fetchUserGet, fetchMyGrade, fetchGradeList, fetchGradeResult, fetchSubmissionList, fetchMaterialAssignmentGet]);
|
|
221
|
-
React.useImperativeHandle(ref, ()
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
337
|
+
React.useImperativeHandle(ref, function () {
|
|
338
|
+
return {
|
|
339
|
+
refreshMaterialAssignment: function refreshMaterialAssignment() {
|
|
340
|
+
fetchMaterialAssignmentGet();
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
}, [fetchMaterialAssignmentGet]);
|
|
344
|
+
var renderHeader = function renderHeader() {
|
|
227
345
|
var _a, _b, _c;
|
|
228
|
-
return
|
|
346
|
+
return jsxs(StyledMaterialAssignmentAdminHeader, {
|
|
229
347
|
align: "center",
|
|
230
348
|
padding: "1rem",
|
|
231
|
-
width: "100%"
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
349
|
+
width: "100%",
|
|
350
|
+
children: [jsxs(Flex, {
|
|
351
|
+
auto: true,
|
|
352
|
+
align: "center",
|
|
353
|
+
children: [jsx(ProfileImage, {
|
|
354
|
+
src: (_a = user === null || user === void 0 ? void 0 : user.profileUrl) !== null && _a !== void 0 ? _a : '',
|
|
355
|
+
width: "2.5rem",
|
|
356
|
+
height: "2.5rem"
|
|
357
|
+
}), jsx(Hspace, {
|
|
358
|
+
width: 1
|
|
359
|
+
}), jsx(Text, {
|
|
360
|
+
size: "small",
|
|
361
|
+
role: "warmwhite",
|
|
362
|
+
children: user === null || user === void 0 ? void 0 : user.fullname
|
|
363
|
+
})]
|
|
364
|
+
}), jsxs(StyledMaterialAssignmentAdminHeaderCell, {
|
|
365
|
+
children: [jsx(Text, {
|
|
366
|
+
size: "tiny",
|
|
367
|
+
role: "gray4",
|
|
368
|
+
children: "\uC810\uC218"
|
|
369
|
+
}), jsx(Text, {
|
|
370
|
+
size: "small",
|
|
371
|
+
role: "white",
|
|
372
|
+
children: gradeResult ? "".concat((_c = (_b = gradeResult.manualScore) !== null && _b !== void 0 ? _b : gradeResult.avgCalcScore) !== null && _c !== void 0 ? _c : 0).concat(isScoreFinalized ? '(공개됨)' : '(비공개)') : '--'
|
|
373
|
+
})]
|
|
374
|
+
}), jsxs(StyledMaterialAssignmentAdminHeaderCell, {
|
|
375
|
+
children: [jsx(Text, {
|
|
376
|
+
size: "tiny",
|
|
377
|
+
role: "gray4",
|
|
378
|
+
children: "\uC81C\uCD9C \uC77C\uC2DC"
|
|
379
|
+
}), jsx(Text, {
|
|
380
|
+
size: "small",
|
|
381
|
+
role: "white",
|
|
382
|
+
children: userSubmission ? jsx(FormattedDate, {
|
|
383
|
+
value: userSubmission.createdDatetime,
|
|
384
|
+
dateStyle: "medium",
|
|
385
|
+
timeStyle: "short"
|
|
386
|
+
}) : '--'
|
|
387
|
+
})]
|
|
388
|
+
})]
|
|
389
|
+
});
|
|
261
390
|
};
|
|
262
|
-
|
|
263
|
-
return
|
|
391
|
+
var renderManualScoreEditButton = function renderManualScoreEditButton() {
|
|
392
|
+
return jsx(Tooltip, {
|
|
264
393
|
placement: "top",
|
|
265
394
|
title: isUserSubmitted ? '제출 기한이 지난 이후 조정할 수 있습니다.' : '미제출인 경우 조정할 수 없습니다.',
|
|
266
|
-
visible: !isAssignmentClosed || !isUserSubmitted ? undefined : false
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
395
|
+
visible: !isAssignmentClosed || !isUserSubmitted ? undefined : false,
|
|
396
|
+
children: jsx(StyledMaterialAssignmentAdminManualScoreEditButtonWrapper, {
|
|
397
|
+
disabled: !isAssignmentClosed || !isUserSubmitted,
|
|
398
|
+
children: jsx(StyledMaterialAssignmentAdminManualScoreEditButton, {
|
|
399
|
+
disabled: !isAssignmentClosed || !isUserSubmitted,
|
|
400
|
+
underline: true,
|
|
401
|
+
role: "navy3",
|
|
402
|
+
size: "tiny",
|
|
403
|
+
onClick: handleManualScoreEditClick,
|
|
404
|
+
children: "\uC810\uC218 \uC870\uC815\uD558\uAE30"
|
|
405
|
+
})
|
|
406
|
+
})
|
|
407
|
+
});
|
|
276
408
|
};
|
|
277
|
-
|
|
409
|
+
var renderGradeResult = function renderGradeResult() {
|
|
278
410
|
var _a, _b;
|
|
279
|
-
return
|
|
411
|
+
return jsxs(StyledMaterialAssignmentAdminGradeWrapper, {
|
|
280
412
|
wrap: true,
|
|
281
413
|
width: "100%",
|
|
282
|
-
align: "center"
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
414
|
+
align: "center",
|
|
415
|
+
children: [jsxs(Flex, {
|
|
416
|
+
auto: true,
|
|
417
|
+
align: "center",
|
|
418
|
+
children: [jsx(Text, {
|
|
419
|
+
role: "navy1",
|
|
420
|
+
size: "small",
|
|
421
|
+
lineHeight: "1.375rem",
|
|
422
|
+
children: user ? "".concat(user.fullname, " \uB2D8\uC758 \uC810\uC218") : null
|
|
423
|
+
}), jsx(Hspace, {
|
|
424
|
+
width: 0.25
|
|
425
|
+
}), jsx(Tooltip, {
|
|
426
|
+
useMaxWidth: true,
|
|
427
|
+
placement: "top",
|
|
428
|
+
title: "모든 채점 점수의 평균값이 반영된 종합 점수입니다. 평균값을 사용하지 않으려면 ‘조정하기'를 클릭해 직접 점수를 입력하세요.",
|
|
429
|
+
children: jsx(Icon, {
|
|
430
|
+
icon: eilStatusInfo,
|
|
431
|
+
color: base.color.navy1
|
|
432
|
+
})
|
|
433
|
+
}), jsx(Hspace, {
|
|
434
|
+
width: 0.75
|
|
435
|
+
}), jsx(Text, {
|
|
436
|
+
bold: true,
|
|
437
|
+
role: "white",
|
|
438
|
+
children: gradeResult ? "".concat((_b = (_a = gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0).concat(isScoreFinalized ? '(공개됨)' : '(비공개)') : '--'
|
|
439
|
+
})]
|
|
440
|
+
}), renderManualScoreEditButton()]
|
|
441
|
+
});
|
|
305
442
|
};
|
|
306
|
-
|
|
307
|
-
|
|
443
|
+
var renderSubmissionInfo = function renderSubmissionInfo() {
|
|
444
|
+
var statusText = function () {
|
|
308
445
|
if (submissionListGetStatus === 'pending') {
|
|
309
446
|
return null;
|
|
310
447
|
}
|
|
311
448
|
switch (true) {
|
|
312
449
|
case !isUserSubmitted && isAssignmentClosed:
|
|
313
|
-
return
|
|
450
|
+
return jsx(Text, {
|
|
314
451
|
bold: true,
|
|
315
452
|
role: "danger",
|
|
316
|
-
size: "small"
|
|
317
|
-
|
|
453
|
+
size: "small",
|
|
454
|
+
children: "\uC81C\uCD9C \uAE30\uD55C \uB9CC\uB8CC"
|
|
455
|
+
});
|
|
318
456
|
case isScoreFinalized:
|
|
319
|
-
return
|
|
457
|
+
return jsx(Text, {
|
|
320
458
|
bold: true,
|
|
321
459
|
role: "lightpurple",
|
|
322
|
-
size: "small"
|
|
323
|
-
|
|
460
|
+
size: "small",
|
|
461
|
+
children: "\uCC44\uC810 \uC644\uB8CC"
|
|
462
|
+
});
|
|
324
463
|
case isUserSubmitted:
|
|
325
|
-
return
|
|
464
|
+
return jsx(Text, {
|
|
326
465
|
bold: true,
|
|
327
466
|
role: "success",
|
|
328
|
-
size: "small"
|
|
329
|
-
|
|
467
|
+
size: "small",
|
|
468
|
+
children: "\uC81C\uCD9C\uB428"
|
|
469
|
+
});
|
|
330
470
|
case !isUserSubmitted:
|
|
331
|
-
return
|
|
471
|
+
return jsx(Text, {
|
|
332
472
|
bold: true,
|
|
333
473
|
role: "warning",
|
|
334
|
-
size: "small"
|
|
335
|
-
|
|
474
|
+
size: "small",
|
|
475
|
+
children: "\uBBF8\uC81C\uCD9C"
|
|
476
|
+
});
|
|
336
477
|
}
|
|
337
|
-
}
|
|
338
|
-
|
|
478
|
+
}();
|
|
479
|
+
var submissionAttachment = function () {
|
|
339
480
|
if (!userSubmission) {
|
|
340
481
|
return '--';
|
|
341
482
|
}
|
|
342
483
|
if (userSubmission.assignmentFileUrl) {
|
|
343
|
-
|
|
344
|
-
return
|
|
484
|
+
var assignmentFilename = decodeURIComponent(userSubmission.assignmentFileUrl && new URL(userSubmission.assignmentFileUrl).pathname.split('/').pop() || '');
|
|
485
|
+
return jsx("a", {
|
|
345
486
|
href: userSubmission.assignmentFileUrl,
|
|
346
487
|
download: assignmentFilename,
|
|
347
488
|
target: "_blank",
|
|
348
|
-
rel: "noopener noreferrer"
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
489
|
+
rel: "noopener noreferrer",
|
|
490
|
+
children: jsx(Text, {
|
|
491
|
+
hoverable: true,
|
|
492
|
+
underline: true,
|
|
493
|
+
role: "white",
|
|
494
|
+
size: "small",
|
|
495
|
+
children: assignmentFilename
|
|
496
|
+
})
|
|
497
|
+
});
|
|
355
498
|
}
|
|
356
499
|
if (userSubmission === null || userSubmission === void 0 ? void 0 : userSubmission.assignmentUrl) {
|
|
357
|
-
return
|
|
500
|
+
return jsx("a", {
|
|
358
501
|
href: userSubmission.assignmentUrl,
|
|
359
502
|
target: "_blank",
|
|
360
|
-
rel: "noopener noreferrer"
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
503
|
+
rel: "noopener noreferrer",
|
|
504
|
+
children: jsx(Text, {
|
|
505
|
+
hoverable: true,
|
|
506
|
+
underline: true,
|
|
507
|
+
role: "white",
|
|
508
|
+
size: "small",
|
|
509
|
+
children: userSubmission.assignmentUrl
|
|
510
|
+
})
|
|
511
|
+
});
|
|
367
512
|
}
|
|
368
|
-
}
|
|
369
|
-
return
|
|
370
|
-
dark: true
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
513
|
+
}();
|
|
514
|
+
return jsx(InfoTable, {
|
|
515
|
+
dark: true,
|
|
516
|
+
children: jsxs("tbody", {
|
|
517
|
+
children: [jsxs("tr", {
|
|
518
|
+
children: [jsx("td", {
|
|
519
|
+
children: "\uC0C1\uD0DC"
|
|
520
|
+
}), jsx("td", {
|
|
521
|
+
children: statusText
|
|
522
|
+
})]
|
|
523
|
+
}), jsxs("tr", {
|
|
524
|
+
children: [jsx("td", {
|
|
525
|
+
children: "\uACFC\uC81C \uC81C\uCD9C \uAE30\uD55C"
|
|
526
|
+
}), jsx("td", {
|
|
527
|
+
children: jsx(FormattedDate, {
|
|
528
|
+
value: materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.closeDatetime,
|
|
529
|
+
dateStyle: "medium",
|
|
530
|
+
timeStyle: "short"
|
|
531
|
+
})
|
|
532
|
+
})]
|
|
533
|
+
}), jsxs("tr", {
|
|
534
|
+
children: [jsx("td", {
|
|
535
|
+
children: "\uC81C\uCD9C \uC77C\uC2DC"
|
|
536
|
+
}), jsx("td", {
|
|
537
|
+
children: userSubmission ? jsx(FormattedDate, {
|
|
538
|
+
value: userSubmission.createdDatetime,
|
|
539
|
+
dateStyle: "medium",
|
|
540
|
+
timeStyle: "short"
|
|
541
|
+
}) : '--'
|
|
542
|
+
})]
|
|
543
|
+
}), jsxs("tr", {
|
|
544
|
+
children: [jsx("td", {
|
|
545
|
+
children: "\uC5C5\uB85C\uB4DC\uB41C \uACFC\uC81C"
|
|
546
|
+
}), jsx("td", {
|
|
547
|
+
children: submissionAttachment
|
|
548
|
+
})]
|
|
549
|
+
})]
|
|
550
|
+
})
|
|
551
|
+
});
|
|
380
552
|
};
|
|
381
|
-
|
|
382
|
-
return
|
|
553
|
+
var renderGradeList = function renderGradeList() {
|
|
554
|
+
return jsxs(Flex, {
|
|
383
555
|
column: true,
|
|
384
|
-
align: "center"
|
|
385
|
-
}, React.createElement(Flex, {
|
|
386
556
|
align: "center",
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
},
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
557
|
+
children: [jsxs(Flex, {
|
|
558
|
+
align: "center",
|
|
559
|
+
width: "100%",
|
|
560
|
+
children: [jsxs(Flex, {
|
|
561
|
+
column: true,
|
|
562
|
+
auto: true,
|
|
563
|
+
children: [jsx(Text, {
|
|
564
|
+
block: true,
|
|
565
|
+
bold: true,
|
|
566
|
+
role: "white",
|
|
567
|
+
lineHeight: 1.375,
|
|
568
|
+
children: "\uCC44\uC810 \uD604\uD669"
|
|
569
|
+
}), jsx(Text, {
|
|
570
|
+
block: true,
|
|
571
|
+
size: "tiny",
|
|
572
|
+
role: "navy3",
|
|
573
|
+
lineHeight: 1.6,
|
|
574
|
+
children: "\uCC44\uC810\uC644\uB8CC\uD55C \uCC44\uC810\uC790\uC758 \uC810\uC218\uC640 \uD53C\uB4DC\uBC31\uC744 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4."
|
|
575
|
+
})]
|
|
576
|
+
}), jsx(Tooltip, {
|
|
577
|
+
placement: "top",
|
|
578
|
+
title: isUserSubmitted ? '제출 기한이 지난 이후 채점할 수 있습니다.' : '미제출인 경우 채점할 수 없습니다.',
|
|
579
|
+
visible: !isAssignmentClosed || !isUserSubmitted ? undefined : false,
|
|
580
|
+
children: jsx("span", {
|
|
581
|
+
children: jsx(Button, {
|
|
582
|
+
size: "small",
|
|
583
|
+
role: "lightpurple",
|
|
584
|
+
disabled: !isAssignmentClosed || !isUserSubmitted,
|
|
585
|
+
onClick: handleGradeEditClick,
|
|
586
|
+
children: Boolean(myGrade) ? '내 채점 수정' : '내 채점 시작'
|
|
587
|
+
})
|
|
588
|
+
})
|
|
589
|
+
})]
|
|
590
|
+
}), jsx(Vspace, {
|
|
591
|
+
height: 0.75
|
|
592
|
+
}), jsx(TableNext, {
|
|
593
|
+
dark: true,
|
|
594
|
+
emptyMessage: "\uCC44\uC810 \uC644\uB8CC\uD55C \uCC44\uC810\uC790\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
|
|
595
|
+
columns: [{
|
|
596
|
+
Header: '채점자명',
|
|
597
|
+
accessor: 'fullname'
|
|
598
|
+
}, {
|
|
599
|
+
Header: '과제 점수',
|
|
600
|
+
accessor: 'grade'
|
|
601
|
+
}, {
|
|
602
|
+
Header: '채점 일시',
|
|
603
|
+
accessor: 'created',
|
|
604
|
+
textAlign: 'left'
|
|
605
|
+
}],
|
|
606
|
+
data: gradeList.map(function (grade) {
|
|
607
|
+
return {
|
|
608
|
+
fullname: jsxs(Flex, {
|
|
609
|
+
children: [jsx(Text, {
|
|
610
|
+
noWrap: true,
|
|
611
|
+
role: "navy0",
|
|
612
|
+
size: "small",
|
|
613
|
+
children: "".concat(grade.gradeUser.fullname).concat(grade.gradeUser.id === adminUserId ? '(나)' : '')
|
|
614
|
+
}), jsx(Hspace, {
|
|
615
|
+
width: 0.25
|
|
616
|
+
}), jsx(Text, {
|
|
617
|
+
ellipsis: true,
|
|
618
|
+
role: "navy3",
|
|
619
|
+
size: "small",
|
|
620
|
+
children: grade.gradeUser.email
|
|
621
|
+
})]
|
|
622
|
+
}),
|
|
623
|
+
grade: grade.score,
|
|
624
|
+
created: jsxs(Flex, {
|
|
625
|
+
align: "center",
|
|
626
|
+
justify: "space-between",
|
|
627
|
+
children: [jsx(FormattedDate, {
|
|
628
|
+
value: grade.createdDatetime,
|
|
629
|
+
dateStyle: "medium",
|
|
630
|
+
timeStyle: "short"
|
|
631
|
+
}), jsxs(Flex, {
|
|
632
|
+
align: "center",
|
|
633
|
+
children: [jsx(IconButton, {
|
|
634
|
+
icon: eilChat,
|
|
635
|
+
size: "tiny",
|
|
636
|
+
role: "navy3",
|
|
637
|
+
onClick: function onClick() {
|
|
638
|
+
setSelectedGradeForShow(grade);
|
|
639
|
+
}
|
|
640
|
+
}), jsx(Hspace, {
|
|
641
|
+
width: 0.5
|
|
642
|
+
}), jsx(IconButton, {
|
|
643
|
+
icon: eilDelete,
|
|
644
|
+
size: "tiny",
|
|
645
|
+
role: "navy3",
|
|
646
|
+
onClick: function onClick() {
|
|
647
|
+
setSelectedGradeForDelete(grade);
|
|
648
|
+
}
|
|
649
|
+
})]
|
|
650
|
+
})]
|
|
651
|
+
})
|
|
652
|
+
};
|
|
653
|
+
})
|
|
654
|
+
}), jsx(Vspace, {
|
|
655
|
+
height: 0.5
|
|
656
|
+
}), jsx(Pagination, {
|
|
657
|
+
dark: true,
|
|
658
|
+
offset: gradeListOffset,
|
|
659
|
+
count: FETCH_GRADE_LIST_COUNT,
|
|
660
|
+
total: gradeListCount,
|
|
661
|
+
isNext: gradeListOffset + FETCH_GRADE_LIST_COUNT < gradeListCount,
|
|
662
|
+
isPrev: gradeListOffset > 0,
|
|
663
|
+
onClickNext: function onClickNext() {
|
|
664
|
+
setGradeListPage(gradeListPage + 1);
|
|
665
|
+
},
|
|
666
|
+
onClickPrev: function onClickPrev() {
|
|
667
|
+
setGradeListPage(gradeListPage - 1);
|
|
668
|
+
}
|
|
669
|
+
})]
|
|
670
|
+
});
|
|
482
671
|
};
|
|
483
|
-
|
|
672
|
+
var renderGradeEditModal = function renderGradeEditModal() {
|
|
484
673
|
if (!showGradeEditModal) {
|
|
485
674
|
return null;
|
|
486
675
|
}
|
|
487
|
-
return
|
|
676
|
+
return jsxs(Modal, {
|
|
488
677
|
title: Boolean(myGrade) ? '내 채점 수정' : '과제 채점',
|
|
489
678
|
footerButtons: [{
|
|
490
679
|
label: '확인',
|
|
@@ -497,129 +686,145 @@ const MaterialAssignmentAdminContent = forwardRef(({
|
|
|
497
686
|
label: '취소',
|
|
498
687
|
size: 'small',
|
|
499
688
|
role: 'gray1',
|
|
500
|
-
onClick: ()
|
|
689
|
+
onClick: function onClick() {
|
|
501
690
|
setShowGradeEditModal(false);
|
|
502
691
|
}
|
|
503
692
|
}],
|
|
504
|
-
onHide: ()
|
|
693
|
+
onHide: function onHide() {
|
|
505
694
|
setShowGradeEditModal(false);
|
|
506
|
-
}
|
|
507
|
-
}, React.createElement(Label, {
|
|
508
|
-
bold: true,
|
|
509
|
-
block: true,
|
|
510
|
-
required: true
|
|
511
|
-
}, "\uC810\uC218"), React.createElement(Vspace, {
|
|
512
|
-
height: 0.5
|
|
513
|
-
}), React.createElement(Flex, {
|
|
514
|
-
align: "center"
|
|
515
|
-
}, React.createElement(Controller, {
|
|
516
|
-
control: gradeEditFormMethods.control,
|
|
517
|
-
name: "score",
|
|
518
|
-
rules: {
|
|
519
|
-
required: true,
|
|
520
|
-
min: 0,
|
|
521
|
-
max: 100
|
|
522
695
|
},
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
696
|
+
children: [jsx(Label, {
|
|
697
|
+
bold: true,
|
|
698
|
+
block: true,
|
|
699
|
+
required: true,
|
|
700
|
+
children: "\uC810\uC218"
|
|
701
|
+
}), jsx(Vspace, {
|
|
702
|
+
height: 0.5
|
|
703
|
+
}), jsxs(Flex, {
|
|
704
|
+
align: "center",
|
|
705
|
+
children: [jsx(Controller, {
|
|
706
|
+
control: gradeEditFormMethods.control,
|
|
707
|
+
name: "score",
|
|
708
|
+
rules: {
|
|
709
|
+
required: true,
|
|
710
|
+
min: 0,
|
|
711
|
+
max: 100
|
|
712
|
+
},
|
|
713
|
+
render: function render(_ref8) {
|
|
714
|
+
var field = _ref8.field,
|
|
715
|
+
fieldState = _ref8.fieldState;
|
|
716
|
+
return jsx(Input, Object.assign({}, field, {
|
|
717
|
+
invalid: fieldState.invalid,
|
|
718
|
+
size: "small",
|
|
719
|
+
width: "xsmall",
|
|
720
|
+
type: "number"
|
|
721
|
+
}));
|
|
722
|
+
}
|
|
723
|
+
}), jsx(Hspace, {
|
|
724
|
+
width: 0.5
|
|
725
|
+
}), jsx(Text, {
|
|
726
|
+
bold: true,
|
|
727
|
+
role: "gray9",
|
|
728
|
+
size: "small",
|
|
729
|
+
children: "\uC810"
|
|
730
|
+
}), jsx(Text, {
|
|
731
|
+
role: "gray6",
|
|
732
|
+
size: "small",
|
|
733
|
+
children: ' / 100점 만점'
|
|
734
|
+
})]
|
|
735
|
+
}), jsx(Vspace, {
|
|
736
|
+
height: 1.25
|
|
737
|
+
}), jsx(Label, {
|
|
738
|
+
bold: true,
|
|
739
|
+
block: true,
|
|
740
|
+
children: "\uD53C\uB4DC\uBC31"
|
|
741
|
+
}), jsx(Vspace, {
|
|
742
|
+
height: 0.5
|
|
743
|
+
}), jsx(Controller, {
|
|
744
|
+
control: gradeEditFormMethods.control,
|
|
745
|
+
name: "comment",
|
|
746
|
+
rules: {
|
|
747
|
+
maxLength: 1000
|
|
748
|
+
},
|
|
749
|
+
render: function render(_ref9) {
|
|
750
|
+
var field = _ref9.field;
|
|
751
|
+
return jsx(Textarea, {
|
|
752
|
+
value: field.value,
|
|
753
|
+
wordLimit: 1000,
|
|
754
|
+
rows: 8,
|
|
755
|
+
onChange: field.onChange
|
|
756
|
+
});
|
|
757
|
+
}
|
|
758
|
+
})]
|
|
759
|
+
});
|
|
563
760
|
};
|
|
564
|
-
|
|
761
|
+
var renderGradeShowModal = function renderGradeShowModal() {
|
|
565
762
|
if (!selectedGradeForShow) {
|
|
566
763
|
return null;
|
|
567
764
|
}
|
|
568
|
-
return
|
|
765
|
+
return jsxs(Modal, {
|
|
569
766
|
title: "\uCC44\uC810 \uACB0\uACFC \uD655\uC778",
|
|
570
767
|
footerButtons: [{
|
|
571
768
|
label: '확인',
|
|
572
769
|
size: 'small',
|
|
573
770
|
role: 'primary',
|
|
574
|
-
onClick: ()
|
|
771
|
+
onClick: function onClick() {
|
|
575
772
|
setSelectedGradeForShow(null);
|
|
576
773
|
}
|
|
577
774
|
}],
|
|
578
|
-
onHide: ()
|
|
775
|
+
onHide: function onHide() {
|
|
579
776
|
setSelectedGradeForShow(null);
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
777
|
+
},
|
|
778
|
+
children: [jsx(Label, {
|
|
779
|
+
bold: true,
|
|
780
|
+
block: true,
|
|
781
|
+
required: true,
|
|
782
|
+
children: "\uC810\uC218"
|
|
783
|
+
}), jsx(Vspace, {
|
|
784
|
+
height: 0.5
|
|
785
|
+
}), jsxs(Flex, {
|
|
786
|
+
align: "center",
|
|
787
|
+
children: [jsx(Input, {
|
|
788
|
+
disabled: true,
|
|
789
|
+
value: selectedGradeForShow.score,
|
|
790
|
+
size: "small",
|
|
791
|
+
width: "xsmall",
|
|
792
|
+
type: "number"
|
|
793
|
+
}), jsx(Hspace, {
|
|
794
|
+
width: 0.5
|
|
795
|
+
}), jsx(Text, {
|
|
796
|
+
bold: true,
|
|
797
|
+
role: "gray9",
|
|
798
|
+
size: "small",
|
|
799
|
+
children: "\uC810"
|
|
800
|
+
}), jsx(Text, {
|
|
801
|
+
role: "gray6",
|
|
802
|
+
size: "small",
|
|
803
|
+
children: ' / 100점 만점'
|
|
804
|
+
})]
|
|
805
|
+
}), jsx(Vspace, {
|
|
806
|
+
height: 1.25
|
|
807
|
+
}), jsx(Label, {
|
|
808
|
+
bold: true,
|
|
809
|
+
block: true,
|
|
810
|
+
children: "\uD53C\uB4DC\uBC31"
|
|
811
|
+
}), jsx(Vspace, {
|
|
812
|
+
height: 0.5
|
|
813
|
+
}), jsx(StyledMaterialAssignmentAdminTextareaWrapper, {
|
|
814
|
+
children: jsx(Textarea, {
|
|
815
|
+
disabled: true,
|
|
816
|
+
value: selectedGradeForShow.comment,
|
|
817
|
+
wordLimit: 1000,
|
|
818
|
+
rows: 8
|
|
819
|
+
})
|
|
820
|
+
})]
|
|
821
|
+
});
|
|
617
822
|
};
|
|
618
|
-
|
|
823
|
+
var renderGradeDeleteModal = function renderGradeDeleteModal() {
|
|
619
824
|
if (!selectedGradeForDelete) {
|
|
620
825
|
return null;
|
|
621
826
|
}
|
|
622
|
-
return
|
|
827
|
+
return jsxs(Modal, {
|
|
623
828
|
title: "\uCC44\uC810 \uC0AD\uC81C",
|
|
624
829
|
width: "narrow",
|
|
625
830
|
footerButtons: [{
|
|
@@ -633,47 +838,53 @@ const MaterialAssignmentAdminContent = forwardRef(({
|
|
|
633
838
|
label: '취소',
|
|
634
839
|
size: 'small',
|
|
635
840
|
role: 'gray1',
|
|
636
|
-
onClick: ()
|
|
841
|
+
onClick: function onClick() {
|
|
637
842
|
setSelectedGradeForDelete(null);
|
|
638
843
|
}
|
|
639
844
|
}],
|
|
640
|
-
onHide: ()
|
|
845
|
+
onHide: function onHide() {
|
|
641
846
|
setSelectedGradeForDelete(null);
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
847
|
+
},
|
|
848
|
+
children: [jsx(Text, {
|
|
849
|
+
role: "gray9",
|
|
850
|
+
children: "\uC0AD\uC81C\uB41C \uC810\uC218\uC640 \uD53C\uB4DC\uBC31\uC740 \uB2E4\uC2DC \uBCF5\uAD6C\uB420 \uC218 \uC5C6\uC73C\uBA70 \uD559\uC0DD\uC758 \uD3C9\uADE0 \uC810\uC218\uAC00 \uBCC0\uACBD\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
|
|
851
|
+
}), jsx(Vspace, {
|
|
852
|
+
height: 0.75
|
|
853
|
+
}), jsx(TableNext, {
|
|
854
|
+
columns: [{
|
|
855
|
+
Header: '채점자명',
|
|
856
|
+
accessor: 'fullname'
|
|
857
|
+
}, {
|
|
858
|
+
Header: '최종 점수',
|
|
859
|
+
accessor: 'score'
|
|
860
|
+
}],
|
|
861
|
+
data: [{
|
|
862
|
+
fullname: jsxs(Flex, {
|
|
863
|
+
children: [jsx(Text, {
|
|
864
|
+
noWrap: true,
|
|
865
|
+
role: "gray9",
|
|
866
|
+
size: "small",
|
|
867
|
+
children: selectedGradeForDelete.gradeUser.fullname
|
|
868
|
+
}), jsx(Hspace, {
|
|
869
|
+
width: 0.25
|
|
870
|
+
}), jsx(Text, {
|
|
871
|
+
ellipsis: true,
|
|
872
|
+
role: "gray5",
|
|
873
|
+
size: "small",
|
|
874
|
+
children: selectedGradeForDelete.gradeUser.email
|
|
875
|
+
})]
|
|
876
|
+
}),
|
|
877
|
+
score: selectedGradeForDelete.score
|
|
878
|
+
}]
|
|
879
|
+
})]
|
|
880
|
+
});
|
|
670
881
|
};
|
|
671
|
-
|
|
882
|
+
var renderManualScoreEditModal = function renderManualScoreEditModal() {
|
|
672
883
|
var _a, _b;
|
|
673
884
|
if (!showManualScoreEditModal) {
|
|
674
885
|
return null;
|
|
675
886
|
}
|
|
676
|
-
return
|
|
887
|
+
return jsxs(Modal, {
|
|
677
888
|
title: "\uC810\uC218 \uC870\uC815",
|
|
678
889
|
width: "narrow",
|
|
679
890
|
footerButtons: [{
|
|
@@ -687,76 +898,86 @@ const MaterialAssignmentAdminContent = forwardRef(({
|
|
|
687
898
|
label: '취소',
|
|
688
899
|
size: 'small',
|
|
689
900
|
role: 'gray1',
|
|
690
|
-
onClick: ()
|
|
901
|
+
onClick: function onClick() {
|
|
691
902
|
setShowManualScoreEditModal(false);
|
|
692
903
|
}
|
|
693
904
|
}],
|
|
694
|
-
onHide: ()
|
|
905
|
+
onHide: function onHide() {
|
|
695
906
|
setShowManualScoreEditModal(false);
|
|
696
|
-
}
|
|
697
|
-
}, React.createElement(Alert, {
|
|
698
|
-
role: "warning"
|
|
699
|
-
}, "\uC810\uC218 \uC870\uC815 \uC774\uD6C4 \uB2E4\uC2DC \uD3C9\uADE0\uAC12\uC73C\uB85C \uB418\uB3CC\uB9B4 \uC218 \uC5C6\uC73C\uB2C8 \uC720\uC758\uD574 \uC8FC\uC138\uC694."), React.createElement(Vspace, {
|
|
700
|
-
height: 1
|
|
701
|
-
}), React.createElement(Flex, {
|
|
702
|
-
align: "center"
|
|
703
|
-
}, React.createElement(Input, {
|
|
704
|
-
disabled: true,
|
|
705
|
-
size: "small",
|
|
706
|
-
width: "xsmall",
|
|
707
|
-
type: "number",
|
|
708
|
-
label: "\uC774\uC804 \uC810\uC218",
|
|
709
|
-
value: (_b = (_a = gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0
|
|
710
|
-
}), React.createElement(Hspace, {
|
|
711
|
-
width: 1
|
|
712
|
-
}), React.createElement(Icon, {
|
|
713
|
-
icon: eilArrowRightwardsBasic
|
|
714
|
-
}), React.createElement(Hspace, {
|
|
715
|
-
width: 1
|
|
716
|
-
}), React.createElement(Controller, {
|
|
717
|
-
control: manualScoreEditFormMethods.control,
|
|
718
|
-
name: "manualScore",
|
|
719
|
-
rules: {
|
|
720
|
-
required: true,
|
|
721
|
-
min: 0,
|
|
722
|
-
max: 100
|
|
723
907
|
},
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
})
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
908
|
+
children: [jsx(Alert, {
|
|
909
|
+
role: "warning",
|
|
910
|
+
children: "\uC810\uC218 \uC870\uC815 \uC774\uD6C4 \uB2E4\uC2DC \uD3C9\uADE0\uAC12\uC73C\uB85C \uB418\uB3CC\uB9B4 \uC218 \uC5C6\uC73C\uB2C8 \uC720\uC758\uD574 \uC8FC\uC138\uC694."
|
|
911
|
+
}), jsx(Vspace, {
|
|
912
|
+
height: 1
|
|
913
|
+
}), jsxs(Flex, {
|
|
914
|
+
align: "center",
|
|
915
|
+
children: [jsx(Input, {
|
|
916
|
+
disabled: true,
|
|
917
|
+
size: "small",
|
|
918
|
+
width: "xsmall",
|
|
919
|
+
type: "number",
|
|
920
|
+
label: "\uC774\uC804 \uC810\uC218",
|
|
921
|
+
value: (_b = (_a = gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.manualScore) !== null && _a !== void 0 ? _a : gradeResult === null || gradeResult === void 0 ? void 0 : gradeResult.avgCalcScore) !== null && _b !== void 0 ? _b : 0
|
|
922
|
+
}), jsx(Hspace, {
|
|
923
|
+
width: 1
|
|
924
|
+
}), jsx(Icon, {
|
|
925
|
+
icon: eilArrowRightwardsBasic
|
|
926
|
+
}), jsx(Hspace, {
|
|
927
|
+
width: 1
|
|
928
|
+
}), jsx(Controller, {
|
|
929
|
+
control: manualScoreEditFormMethods.control,
|
|
930
|
+
name: "manualScore",
|
|
931
|
+
rules: {
|
|
932
|
+
required: true,
|
|
933
|
+
min: 0,
|
|
934
|
+
max: 100
|
|
935
|
+
},
|
|
936
|
+
render: function render(_ref10) {
|
|
937
|
+
var field = _ref10.field,
|
|
938
|
+
fieldState = _ref10.fieldState;
|
|
939
|
+
return jsx(Input, Object.assign({}, field, {
|
|
940
|
+
invalid: fieldState.invalid,
|
|
941
|
+
size: "small",
|
|
942
|
+
width: "xsmall",
|
|
943
|
+
type: "number",
|
|
944
|
+
label: "\uC870\uC815 \uC810\uC218"
|
|
945
|
+
}));
|
|
946
|
+
}
|
|
947
|
+
}), jsx(Hspace, {
|
|
948
|
+
width: 0.75
|
|
949
|
+
}), jsx(Text, {
|
|
950
|
+
bold: true,
|
|
951
|
+
role: "gray9",
|
|
952
|
+
size: "small",
|
|
953
|
+
children: "\uC810"
|
|
954
|
+
}), jsx(Text, {
|
|
955
|
+
role: "gray6",
|
|
956
|
+
size: "small",
|
|
957
|
+
children: ' / 100점 만점'
|
|
958
|
+
})]
|
|
959
|
+
})]
|
|
960
|
+
});
|
|
744
961
|
};
|
|
745
|
-
return
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
962
|
+
return jsxs(Fragment, {
|
|
963
|
+
children: [renderHeader(), jsx(Flex, {
|
|
964
|
+
column: true,
|
|
965
|
+
auto: true,
|
|
966
|
+
padding: "3.625rem",
|
|
967
|
+
width: "100%",
|
|
968
|
+
height: "100%",
|
|
969
|
+
overflow: "hidden",
|
|
970
|
+
align: "center",
|
|
971
|
+
children: jsxs(MaterialAssignmentContainer, {
|
|
972
|
+
title: (_a = materialAssignment === null || materialAssignment === void 0 ? void 0 : materialAssignment.title) !== null && _a !== void 0 ? _a : '',
|
|
973
|
+
children: [renderGradeResult(), jsx(Vspace, {
|
|
974
|
+
height: 1.25
|
|
975
|
+
}), renderSubmissionInfo(), jsx(Vspace, {
|
|
976
|
+
height: 1.5
|
|
977
|
+
}), renderGradeList()]
|
|
978
|
+
})
|
|
979
|
+
}), renderGradeEditModal(), renderGradeShowModal(), renderGradeDeleteModal(), renderManualScoreEditModal()]
|
|
980
|
+
});
|
|
760
981
|
});
|
|
761
982
|
|
|
762
983
|
export { MaterialAssignmentAdminContent as default };
|