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