touchstudy-core 0.1.162 → 0.1.164
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/dist/components/Chats/components/InputChat.d.ts +1 -2
- package/dist/components/Chats/components/TinyChatEditor.d.ts +10 -0
- package/dist/components/Dialogs/CreateQuestionDialog.d.ts +15 -0
- package/dist/components/Selectors/QuestionAnswerTypeSelector.d.ts +1 -0
- package/dist/containers/Classes/apiClients/classService.d.ts +1 -0
- package/dist/containers/Classes/configs/types.d.ts +1 -0
- package/dist/containers/Classes/hooks/useClassList.d.ts +1 -0
- package/dist/containers/Exams/apiClients/categoryService.d.ts +4 -0
- package/dist/containers/Exams/components/QuestionBlock.d.ts +5 -13
- package/dist/containers/Exams/components/QuestionGroupBlock.d.ts +8 -13
- package/dist/containers/Exams/components/QuestionShortInput.d.ts +10 -0
- package/dist/containers/Exams/hooks/useExamOptions.d.ts +8 -0
- package/dist/containers/Notes/components/NoteTinyEditor.d.ts +10 -0
- package/dist/containers/Notifications/configs/types.d.ts +2 -2
- package/dist/index.js +374 -136
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +375 -137
- package/dist/index.modern.js.map +1 -1
- package/dist/utils/enums/recentUserAction.d.ts +13 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -27,10 +27,10 @@ require('moment/locale/ko.js');
|
|
27
27
|
require('moment/locale/en-au.js');
|
28
28
|
var reactVirtualized = require('react-virtualized');
|
29
29
|
var formik = require('formik');
|
30
|
-
var styles$c = require('@mui/material/styles');
|
31
30
|
var tinymce = _interopDefault(require('tinymce'));
|
32
31
|
require('@wiris/mathtype-tinymce6');
|
33
32
|
var tinymceReact = require('@tinymce/tinymce-react');
|
33
|
+
var styles$c = require('@mui/material/styles');
|
34
34
|
var Grid = _interopDefault(require('@mui/material/Grid'));
|
35
35
|
var Typography = _interopDefault(require('@mui/material/Typography'));
|
36
36
|
var Card = _interopDefault(require('@mui/material/Card'));
|
@@ -1484,6 +1484,25 @@ var textbook_name = "교재 이름";
|
|
1484
1484
|
var korean_language = "국어";
|
1485
1485
|
var answer_cannot_be_empty = "답변은 비워둘 수 없습니다";
|
1486
1486
|
var are_you_sure_to_create_student_parent_note = "학생/학부모에게 노트를 생성하시겠습니까?";
|
1487
|
+
var notification_title = "알림 제목";
|
1488
|
+
var vieweduser = "사용자 조회";
|
1489
|
+
var updateduser = "사용자 업데이트";
|
1490
|
+
var creatednewuser = "새 사용자 생성";
|
1491
|
+
var importeduser = "사용자 가져오기";
|
1492
|
+
var viewedqna = "Q&A 조회";
|
1493
|
+
var completedqna = "Q&A 완료";
|
1494
|
+
var answeredqna = "Q&A 답변";
|
1495
|
+
var removemessageqna = "Q&A 메시지 삭제";
|
1496
|
+
var updatemessageqna = "Q&A 메시지 업데이트";
|
1497
|
+
var viewedexamresult = "시험 결과 조회";
|
1498
|
+
var printedexamresult = "시험 결과 출력";
|
1499
|
+
var viewedattendance = "출석 조회";
|
1500
|
+
var updatedattendance = "출석 업데이트";
|
1501
|
+
var addedteachertoclass = "교사 수업 추가";
|
1502
|
+
var removedteacherfromclass = "교사 수업 제거";
|
1503
|
+
var addedstudenttoclass = "학생 수업 추가";
|
1504
|
+
var removedstudentfromclass = "학생 수업 제거";
|
1505
|
+
var hidden = "숨겨진";
|
1487
1506
|
var lang_ko = {
|
1488
1507
|
problem_solving: problem_solving,
|
1489
1508
|
my_story: my_story,
|
@@ -2605,7 +2624,26 @@ var lang_ko = {
|
|
2605
2624
|
textbook_name: textbook_name,
|
2606
2625
|
korean_language: korean_language,
|
2607
2626
|
answer_cannot_be_empty: answer_cannot_be_empty,
|
2608
|
-
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note
|
2627
|
+
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note,
|
2628
|
+
notification_title: notification_title,
|
2629
|
+
vieweduser: vieweduser,
|
2630
|
+
updateduser: updateduser,
|
2631
|
+
creatednewuser: creatednewuser,
|
2632
|
+
importeduser: importeduser,
|
2633
|
+
viewedqna: viewedqna,
|
2634
|
+
completedqna: completedqna,
|
2635
|
+
answeredqna: answeredqna,
|
2636
|
+
removemessageqna: removemessageqna,
|
2637
|
+
updatemessageqna: updatemessageqna,
|
2638
|
+
viewedexamresult: viewedexamresult,
|
2639
|
+
printedexamresult: printedexamresult,
|
2640
|
+
viewedattendance: viewedattendance,
|
2641
|
+
updatedattendance: updatedattendance,
|
2642
|
+
addedteachertoclass: addedteachertoclass,
|
2643
|
+
removedteacherfromclass: removedteacherfromclass,
|
2644
|
+
addedstudenttoclass: addedstudenttoclass,
|
2645
|
+
removedstudentfromclass: removedstudentfromclass,
|
2646
|
+
hidden: hidden
|
2609
2647
|
};
|
2610
2648
|
|
2611
2649
|
var problem_solving$1 = "Problem Solving";
|
@@ -3750,6 +3788,25 @@ var textbook_name$1 = "Textbook name";
|
|
3750
3788
|
var korean_language$1 = "Korean";
|
3751
3789
|
var answer_cannot_be_empty$1 = "Answer cannot be empty";
|
3752
3790
|
var are_you_sure_to_create_student_parent_note$1 = "Are you sure you want to create a note for the student/parent?";
|
3791
|
+
var notification_title$1 = "Notification title";
|
3792
|
+
var vieweduser$1 = "Viewed user";
|
3793
|
+
var updateduser$1 = "Updated user";
|
3794
|
+
var creatednewuser$1 = "Created new user";
|
3795
|
+
var importeduser$1 = "Imported user";
|
3796
|
+
var viewedqna$1 = "Viewed Q&A";
|
3797
|
+
var completedqna$1 = "Completed Q&A";
|
3798
|
+
var answeredqna$1 = "Answered Q&A";
|
3799
|
+
var removemessageqna$1 = "Remove message Q&A";
|
3800
|
+
var updatemessageqna$1 = "Update message Q&A";
|
3801
|
+
var viewedexamresult$1 = "Viewed exam result";
|
3802
|
+
var printedexamresult$1 = "Printed exam result";
|
3803
|
+
var viewedattendance$1 = "Viewed attendance";
|
3804
|
+
var updatedattendance$1 = "Updated attendance";
|
3805
|
+
var addedteachertoclass$1 = "Added teacher to class";
|
3806
|
+
var removedteacherfromclass$1 = "Removed teacher from class";
|
3807
|
+
var addedstudenttoclass$1 = "Added student to class";
|
3808
|
+
var removedstudentfromclass$1 = "Removed student from class";
|
3809
|
+
var hidden$1 = "Hidden";
|
3753
3810
|
var lang_en = {
|
3754
3811
|
problem_solving: problem_solving$1,
|
3755
3812
|
my_story: my_story$1,
|
@@ -4873,7 +4930,26 @@ var lang_en = {
|
|
4873
4930
|
textbook_name: textbook_name$1,
|
4874
4931
|
korean_language: korean_language$1,
|
4875
4932
|
answer_cannot_be_empty: answer_cannot_be_empty$1,
|
4876
|
-
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note$1
|
4933
|
+
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note$1,
|
4934
|
+
notification_title: notification_title$1,
|
4935
|
+
vieweduser: vieweduser$1,
|
4936
|
+
updateduser: updateduser$1,
|
4937
|
+
creatednewuser: creatednewuser$1,
|
4938
|
+
importeduser: importeduser$1,
|
4939
|
+
viewedqna: viewedqna$1,
|
4940
|
+
completedqna: completedqna$1,
|
4941
|
+
answeredqna: answeredqna$1,
|
4942
|
+
removemessageqna: removemessageqna$1,
|
4943
|
+
updatemessageqna: updatemessageqna$1,
|
4944
|
+
viewedexamresult: viewedexamresult$1,
|
4945
|
+
printedexamresult: printedexamresult$1,
|
4946
|
+
viewedattendance: viewedattendance$1,
|
4947
|
+
updatedattendance: updatedattendance$1,
|
4948
|
+
addedteachertoclass: addedteachertoclass$1,
|
4949
|
+
removedteacherfromclass: removedteacherfromclass$1,
|
4950
|
+
addedstudenttoclass: addedstudenttoclass$1,
|
4951
|
+
removedstudentfromclass: removedstudentfromclass$1,
|
4952
|
+
hidden: hidden$1
|
4877
4953
|
};
|
4878
4954
|
|
4879
4955
|
i18n__default.use(reactI18next.initReactI18next).init({
|
@@ -6228,10 +6304,22 @@ function _finally(body, finalizer) {
|
|
6228
6304
|
|
6229
6305
|
(function (RecentUserAction) {
|
6230
6306
|
RecentUserAction["ViewedUser"] = "ViewedUser";
|
6307
|
+
RecentUserAction["UpdatedUser"] = "UpdatedUser";
|
6308
|
+
RecentUserAction["CreatedNewUser"] = "CreatedNewUser";
|
6309
|
+
RecentUserAction["ImportedUser"] = "ImportedUser";
|
6231
6310
|
RecentUserAction["ViewedQNA"] = "ViewedQNA";
|
6311
|
+
RecentUserAction["CompletedQNA"] = "CompletedQNA";
|
6312
|
+
RecentUserAction["AnsweredQNA"] = "AnsweredQNA";
|
6313
|
+
RecentUserAction["RemoveMessageQNA"] = "RemoveMessageQNA";
|
6314
|
+
RecentUserAction["UpdateMessageQNA"] = "UpdateMessageQNA";
|
6232
6315
|
RecentUserAction["ViewedExamResult"] = "ViewedExamResult";
|
6233
6316
|
RecentUserAction["PrintedExamResult"] = "PrintedExamResult";
|
6234
6317
|
RecentUserAction["ViewedAttendance"] = "ViewedAttendance";
|
6318
|
+
RecentUserAction["UpdatedAttendance"] = "UpdatedAttendance";
|
6319
|
+
RecentUserAction["AddedTeacherToClass"] = "AddedTeacherToClass";
|
6320
|
+
RecentUserAction["RemovedTeacherFromClass"] = "RemovedTeacherFromClass";
|
6321
|
+
RecentUserAction["AddedStudentToClass"] = "AddedStudentToClass";
|
6322
|
+
RecentUserAction["RemovedStudentFromClass"] = "RemovedStudentFromClass";
|
6235
6323
|
})(exports.RecentUserAction || (exports.RecentUserAction = {}));
|
6236
6324
|
|
6237
6325
|
(function (UserSortColumn) {
|
@@ -7538,6 +7626,8 @@ var getClassesApi = function getClassesApi(textSearch) {
|
|
7538
7626
|
return api.get("" + COURSE_URL, {
|
7539
7627
|
params: {
|
7540
7628
|
textSearch: textSearch,
|
7629
|
+
pageSize: 100,
|
7630
|
+
currentPage: 1,
|
7541
7631
|
roles: [exports.Role.Admin]
|
7542
7632
|
}
|
7543
7633
|
});
|
@@ -7589,11 +7679,7 @@ var ClassSelector = function ClassSelector(_ref) {
|
|
7589
7679
|
}, [searchString]);
|
7590
7680
|
React.useEffect(function () {
|
7591
7681
|
timeout && timeout.current && clearTimeout(timeout.current);
|
7592
|
-
|
7593
|
-
setClasses([]);
|
7594
|
-
} else {
|
7595
|
-
timeout.current = setTimeout(loadData, 300);
|
7596
|
-
}
|
7682
|
+
timeout.current = setTimeout(loadData, 300);
|
7597
7683
|
}, [searchString]);
|
7598
7684
|
var options = classes.filter(function (classOption) {
|
7599
7685
|
return !externalClassIds || externalClassIds && !externalClassIds.includes(classOption.id);
|
@@ -7614,7 +7700,7 @@ var ClassSelector = function ClassSelector(_ref) {
|
|
7614
7700
|
return setSearchString(inputValue);
|
7615
7701
|
},
|
7616
7702
|
isLoading: isLoading,
|
7617
|
-
placeholder: t('
|
7703
|
+
placeholder: t('select_placeholder'),
|
7618
7704
|
isMulti: true,
|
7619
7705
|
value: value,
|
7620
7706
|
onChange: onChange,
|
@@ -8097,6 +8183,12 @@ var ChatRightItem = function ChatRightItem(_ref) {
|
|
8097
8183
|
isOpenTooltip = _useTooltip.isOpenTooltip,
|
8098
8184
|
handleCloseTooltip = _useTooltip.handleCloseTooltip,
|
8099
8185
|
handleOpenTooltip = _useTooltip.handleOpenTooltip;
|
8186
|
+
React.useEffect(function () {
|
8187
|
+
if (window.MathJax) {
|
8188
|
+
var _window$MathJax;
|
8189
|
+
(_window$MathJax = window.MathJax) === null || _window$MathJax === void 0 ? void 0 : _window$MathJax.typeset();
|
8190
|
+
}
|
8191
|
+
}, [content]);
|
8100
8192
|
return React__default.createElement("div", null, showTimestamp && React__default.createElement(material.Typography, {
|
8101
8193
|
fontWeight: 500,
|
8102
8194
|
fontSize: "12px",
|
@@ -8169,17 +8261,15 @@ var ChatRightItem = function ChatRightItem(_ref) {
|
|
8169
8261
|
style: {
|
8170
8262
|
"float": "inline-end",
|
8171
8263
|
maxWidth: 400,
|
8172
|
-
background: styles.less_dark
|
8173
|
-
|
8174
|
-
|
8175
|
-
|
8176
|
-
|
8177
|
-
|
8178
|
-
|
8179
|
-
sx: {
|
8180
|
-
wordBreak: "break-word"
|
8264
|
+
background: styles.less_dark,
|
8265
|
+
color: "#FFF",
|
8266
|
+
fontSize: "14px",
|
8267
|
+
fontWeight: 500
|
8268
|
+
},
|
8269
|
+
dangerouslySetInnerHTML: {
|
8270
|
+
__html: content || ""
|
8181
8271
|
}
|
8182
|
-
}
|
8272
|
+
})))));
|
8183
8273
|
};
|
8184
8274
|
|
8185
8275
|
var ChatLeftItem = function ChatLeftItem(_ref) {
|
@@ -8193,6 +8283,12 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
|
|
8193
8283
|
toggleImageDialog = _ref.toggleImageDialog;
|
8194
8284
|
var _useTranslation = reactI18next.useTranslation(),
|
8195
8285
|
t = _useTranslation.t;
|
8286
|
+
React.useEffect(function () {
|
8287
|
+
if (window.MathJax) {
|
8288
|
+
var _window$MathJax;
|
8289
|
+
(_window$MathJax = window.MathJax) === null || _window$MathJax === void 0 ? void 0 : _window$MathJax.typeset();
|
8290
|
+
}
|
8291
|
+
}, [content]);
|
8196
8292
|
return React__default.createElement("div", null, showTimestamp && React__default.createElement(material.Typography, {
|
8197
8293
|
fontWeight: 500,
|
8198
8294
|
fontSize: "12px",
|
@@ -8246,17 +8342,15 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
|
|
8246
8342
|
}) : React__default.createElement("div", {
|
8247
8343
|
className: styles$1["wrap-content"] + " " + styles$1["content-chat-sender"],
|
8248
8344
|
style: {
|
8249
|
-
maxWidth: 400
|
8250
|
-
|
8251
|
-
|
8252
|
-
|
8253
|
-
|
8254
|
-
|
8255
|
-
|
8256
|
-
sx: {
|
8257
|
-
wordBreak: "break-word"
|
8345
|
+
maxWidth: 400,
|
8346
|
+
color: styles.gray_700,
|
8347
|
+
fontSize: "14px",
|
8348
|
+
fontWeight: 500
|
8349
|
+
},
|
8350
|
+
dangerouslySetInnerHTML: {
|
8351
|
+
__html: content || ""
|
8258
8352
|
}
|
8259
|
-
}
|
8353
|
+
}))));
|
8260
8354
|
};
|
8261
8355
|
|
8262
8356
|
var ImageDetailDialog = function ImageDetailDialog(_ref) {
|
@@ -8427,6 +8521,47 @@ var iconPlusCircle = function iconPlusCircle(_ref) {
|
|
8427
8521
|
}));
|
8428
8522
|
};
|
8429
8523
|
|
8524
|
+
var TinyChatEditor = function TinyChatEditor(_ref) {
|
8525
|
+
var _ref$disabled = _ref.disabled,
|
8526
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
8527
|
+
onChange = _ref.onChange,
|
8528
|
+
initValue = _ref.initValue,
|
8529
|
+
config = _ref.config;
|
8530
|
+
var isFirstChange = React.useRef(true);
|
8531
|
+
var _useTranslation = reactI18next.useTranslation(),
|
8532
|
+
t = _useTranslation.t;
|
8533
|
+
React.useEffect(function () {
|
8534
|
+
if (window.tinymce) {
|
8535
|
+
window.tinymce = tinymce;
|
8536
|
+
}
|
8537
|
+
}, []);
|
8538
|
+
var options = {
|
8539
|
+
height: 126,
|
8540
|
+
menubar: false,
|
8541
|
+
readonly: false,
|
8542
|
+
external_plugins: {
|
8543
|
+
tiny_mce_wiris: '/editor/wiris-for-tinymce.js'
|
8544
|
+
},
|
8545
|
+
toolbar: 'tiny_mce_wiris_formulaEditor',
|
8546
|
+
branding: false,
|
8547
|
+
extended_valid_elements: '*[.*]',
|
8548
|
+
placeholder: t("send_message")
|
8549
|
+
};
|
8550
|
+
var handleChange = function handleChange(value, _) {
|
8551
|
+
if (isFirstChange.current) {
|
8552
|
+
isFirstChange.current = false;
|
8553
|
+
return;
|
8554
|
+
}
|
8555
|
+
onChange(value);
|
8556
|
+
};
|
8557
|
+
return React__default.createElement(tinymceReact.Editor, {
|
8558
|
+
disabled: disabled,
|
8559
|
+
init: config || options,
|
8560
|
+
value: initValue,
|
8561
|
+
onEditorChange: handleChange
|
8562
|
+
});
|
8563
|
+
};
|
8564
|
+
|
8430
8565
|
var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
8431
8566
|
var open = _ref.open,
|
8432
8567
|
onClose = _ref.onClose,
|
@@ -8459,7 +8594,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
8459
8594
|
handleUpdateMessage(content || "");
|
8460
8595
|
}
|
8461
8596
|
}, function (_ref2) {
|
8462
|
-
|
8597
|
+
var setFieldValue = _ref2.setFieldValue;
|
8463
8598
|
return React__default.createElement(formik.Form, null, React__default.createElement("label", {
|
8464
8599
|
htmlFor: "content",
|
8465
8600
|
className: styles$1['form-label'] + " " + styles$1['form-label-dialog']
|
@@ -8471,7 +8606,16 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
8471
8606
|
name: "content",
|
8472
8607
|
validate: validate,
|
8473
8608
|
placeholder: t('the_problem_is_difficult'),
|
8474
|
-
className: styles$1['form-control']
|
8609
|
+
className: styles$1['form-control'],
|
8610
|
+
render: function render(_ref3) {
|
8611
|
+
var field = _ref3.field;
|
8612
|
+
return React__default.createElement(TinyChatEditor, {
|
8613
|
+
initValue: field.value,
|
8614
|
+
onChange: function onChange(text) {
|
8615
|
+
return setFieldValue("content", text);
|
8616
|
+
}
|
8617
|
+
});
|
8618
|
+
}
|
8475
8619
|
}), React__default.createElement(material.DialogActions, {
|
8476
8620
|
sx: {
|
8477
8621
|
display: 'flex',
|
@@ -8694,7 +8838,6 @@ var iconSendMessage = function iconSendMessage(_ref) {
|
|
8694
8838
|
|
8695
8839
|
var InputChat = function InputChat(_ref) {
|
8696
8840
|
var text = _ref.text,
|
8697
|
-
inputRef = _ref.inputRef,
|
8698
8841
|
onChangeInput = _ref.onChangeInput,
|
8699
8842
|
onSubmit = _ref.onSubmit,
|
8700
8843
|
isCompleted = _ref.isCompleted,
|
@@ -8707,15 +8850,6 @@ var InputChat = function InputChat(_ref) {
|
|
8707
8850
|
var handleSubmit = function handleSubmit() {
|
8708
8851
|
onSubmit();
|
8709
8852
|
};
|
8710
|
-
var handleInputChange = function handleInputChange(event) {
|
8711
|
-
onChangeInput(event.target.value);
|
8712
|
-
};
|
8713
|
-
var handleKeyPressEnter = function handleKeyPressEnter(e) {
|
8714
|
-
if (e.key === "Enter") {
|
8715
|
-
handleSubmit();
|
8716
|
-
return;
|
8717
|
-
}
|
8718
|
-
};
|
8719
8853
|
var handleSelectedFile = function handleSelectedFile(e) {
|
8720
8854
|
var files = e.target.files;
|
8721
8855
|
handleUploadImage(files[0]);
|
@@ -8738,8 +8872,8 @@ var InputChat = function InputChat(_ref) {
|
|
8738
8872
|
width: "100%"
|
8739
8873
|
}, React__default.createElement(material.Box, {
|
8740
8874
|
display: "flex",
|
8741
|
-
border: "1px solid #97A1AF",
|
8742
|
-
borderRadius: "6px",
|
8875
|
+
border: selectedFile ? "1px solid #97A1AF" : undefined,
|
8876
|
+
borderRadius: selectedFile ? "6px" : undefined,
|
8743
8877
|
flexDirection: "column"
|
8744
8878
|
}, selectedFile && React__default.createElement("div", {
|
8745
8879
|
style: {
|
@@ -8765,17 +8899,9 @@ var InputChat = function InputChat(_ref) {
|
|
8765
8899
|
}, React__default.createElement(io5.IoCloseOutline, {
|
8766
8900
|
color: "#fff",
|
8767
8901
|
size: 30
|
8768
|
-
}))), React__default.createElement(
|
8769
|
-
|
8770
|
-
|
8771
|
-
border: "none"
|
8772
|
-
},
|
8773
|
-
placeholder: t("send_message"),
|
8774
|
-
ref: inputRef,
|
8775
|
-
value: text,
|
8776
|
-
width: "100%",
|
8777
|
-
onKeyPress: handleKeyPressEnter,
|
8778
|
-
onChange: handleInputChange,
|
8902
|
+
}))), React__default.createElement(TinyChatEditor, {
|
8903
|
+
initValue: text,
|
8904
|
+
onChange: onChangeInput,
|
8779
8905
|
disabled: isCompleted
|
8780
8906
|
})), React__default.createElement(material.Typography, {
|
8781
8907
|
fontWeight: 500,
|
@@ -8785,8 +8911,8 @@ var InputChat = function InputChat(_ref) {
|
|
8785
8911
|
}, t('this_is_the_guidance_text'))), React__default.createElement(material.Box, {
|
8786
8912
|
display: "flex",
|
8787
8913
|
flexDirection: "column",
|
8788
|
-
justifyContent: "flex-
|
8789
|
-
alignItems: "flex-
|
8914
|
+
justifyContent: "flex-start",
|
8915
|
+
alignItems: "flex-end",
|
8790
8916
|
gap: "16px"
|
8791
8917
|
}, React__default.createElement(material.Button, {
|
8792
8918
|
variant: "contained",
|
@@ -9105,7 +9231,6 @@ var ChatContainer = function ChatContainer(_ref) {
|
|
9105
9231
|
onReachTop = _ref.onReachTop,
|
9106
9232
|
onReachBottom = _ref.onReachBottom,
|
9107
9233
|
onEndScrollToEnd = _ref.onEndScrollToEnd;
|
9108
|
-
var inputRef = React.useRef(null);
|
9109
9234
|
var listRef = React.useRef(null);
|
9110
9235
|
var listItemRef = React.useRef(null);
|
9111
9236
|
var scrollRef = React.useRef();
|
@@ -9188,9 +9313,7 @@ var ChatContainer = function ChatContainer(_ref) {
|
|
9188
9313
|
className: "d-flex justify-content-center align-items-center"
|
9189
9314
|
}, React__default.createElement(material.CircularProgress, null)), React__default.createElement(ChatList, Object.assign({}, chatListProps, {
|
9190
9315
|
listItemRef: listItemRef
|
9191
|
-
}))), React__default.createElement(InputChat, Object.assign({}, inputProps
|
9192
|
-
inputRef: inputRef
|
9193
|
-
})));
|
9316
|
+
}))), React__default.createElement(InputChat, Object.assign({}, inputProps)));
|
9194
9317
|
};
|
9195
9318
|
|
9196
9319
|
var MessageSortBy;
|
@@ -10922,7 +11045,11 @@ var useLoginPhoneNumber = function useLoginPhoneNumber(props) {
|
|
10922
11045
|
});
|
10923
11046
|
}, function (error) {
|
10924
11047
|
var _error$response, _error$response2, _error$response2$data;
|
10925
|
-
if ((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 500 && (error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.title) === "PhoneNumberIsDuplicated") reactToastify.toast.error(t("duplicate_passcode_for_siblings_please_contact_admin_for_assistance"));else
|
11048
|
+
if ((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 500 && (error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.title) === "PhoneNumberIsDuplicated") reactToastify.toast.error(t("duplicate_passcode_for_siblings_please_contact_admin_for_assistance"));else {
|
11049
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
11050
|
+
localStorage.removeItem(LEARNING_SPACE);
|
11051
|
+
reactToastify.toast.error(getErrorMessage(t, error));
|
11052
|
+
}
|
10926
11053
|
});
|
10927
11054
|
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
10928
11055
|
} catch (e) {
|
@@ -11451,7 +11578,8 @@ var useLogin$1 = function useLogin(_ref) {
|
|
11451
11578
|
}();
|
11452
11579
|
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
11453
11580
|
}, function (error) {
|
11454
|
-
|
11581
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
11582
|
+
localStorage.removeItem(LEARNING_SPACE);
|
11455
11583
|
reactToastify.toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
11456
11584
|
});
|
11457
11585
|
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
|
@@ -11547,6 +11675,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
11547
11675
|
error = _useState8[0],
|
11548
11676
|
setError = _useState8[1];
|
11549
11677
|
var firstLoadRef = React.useRef(true);
|
11678
|
+
var hasErrorRef = React.useRef(false);
|
11550
11679
|
var onVerify = React.useCallback(function (token) {
|
11551
11680
|
setTokenReCaptcha(token);
|
11552
11681
|
}, []);
|
@@ -11562,7 +11691,8 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
11562
11691
|
if (!tokenReCaptcha) return Promise.resolve();
|
11563
11692
|
resetData();
|
11564
11693
|
setLoadingQR(true);
|
11565
|
-
if (!academyDomain) localStorage.setItem(LEARNING_SPACE, "true");
|
11694
|
+
if (!academyDomain || hasErrorRef.current) localStorage.setItem(LEARNING_SPACE, "true");
|
11695
|
+
if (hasErrorRef.current) localStorage.removeItem(ACADEMY_DOMAIN);
|
11566
11696
|
var _temp = _catch(function () {
|
11567
11697
|
return Promise.resolve(generateQRCode(academyDomain, tokenReCaptcha)).then(function (response) {
|
11568
11698
|
setQrCodeData(response.data);
|
@@ -11583,6 +11713,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
11583
11713
|
setInfo(recievedData === null || recievedData === void 0 ? void 0 : recievedData.data);
|
11584
11714
|
setStatus(QRCodeStatus.Scanned);
|
11585
11715
|
} catch (error) {
|
11716
|
+
hasErrorRef.current = true;
|
11586
11717
|
setInvalid(true);
|
11587
11718
|
}
|
11588
11719
|
};
|
@@ -11888,7 +12019,8 @@ var useLoginWithEmail = function useLoginWithEmail(_ref) {
|
|
11888
12019
|
}), token, redirectUrl);
|
11889
12020
|
});
|
11890
12021
|
}, function (error) {
|
11891
|
-
|
12022
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
12023
|
+
localStorage.removeItem(LEARNING_SPACE);
|
11892
12024
|
reactToastify.toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
11893
12025
|
});
|
11894
12026
|
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
@@ -12008,7 +12140,8 @@ var useLogin$2 = function useLogin(_ref) {
|
|
12008
12140
|
}), token, redirectUrl);
|
12009
12141
|
});
|
12010
12142
|
}, function (error) {
|
12011
|
-
|
12143
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
12144
|
+
localStorage.removeItem(LEARNING_SPACE);
|
12012
12145
|
reactToastify.toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
12013
12146
|
}));
|
12014
12147
|
} catch (e) {
|
@@ -14351,6 +14484,48 @@ var iconCloseDialog = function iconCloseDialog(_ref) {
|
|
14351
14484
|
}));
|
14352
14485
|
};
|
14353
14486
|
|
14487
|
+
var NoteTinyEditor = function NoteTinyEditor(_ref) {
|
14488
|
+
var _ref$disabled = _ref.disabled,
|
14489
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
14490
|
+
onChange = _ref.onChange,
|
14491
|
+
initValue = _ref.initValue,
|
14492
|
+
config = _ref.config;
|
14493
|
+
var isFirstChange = React.useRef(true);
|
14494
|
+
var _useTranslation = reactI18next.useTranslation(),
|
14495
|
+
t = _useTranslation.t;
|
14496
|
+
React.useEffect(function () {
|
14497
|
+
if (window.tinymce) {
|
14498
|
+
window.tinymce = tinymce;
|
14499
|
+
}
|
14500
|
+
}, []);
|
14501
|
+
var options = {
|
14502
|
+
height: 280,
|
14503
|
+
menubar: false,
|
14504
|
+
readonly: false,
|
14505
|
+
external_plugins: {
|
14506
|
+
tiny_mce_wiris: '/editor/wiris-for-tinymce.js'
|
14507
|
+
},
|
14508
|
+
plugins: ['anchor', 'autolink', 'charmap', 'codesample', 'emoticons', 'image', 'link', 'lists', 'media', 'searchreplace', 'table', 'textcolor', 'wordcount'],
|
14509
|
+
toolbar: 'undo redo | blocks fontfamily fontsize forecolor backcolor | bold italic underline strikethrough | link image media table mergetags | addcomment showcomments | spellcheckdialog a11ycheck typography | align lineheight | checklist numlist bullist indent outdent | emoticons charmap | removeformat | tiny_mce_wiris_formulaEditor | tiny_mce_wiris_formulaEditorChemistry',
|
14510
|
+
branding: false,
|
14511
|
+
extended_valid_elements: '*[.*]',
|
14512
|
+
placeholder: t("the_problem_is_difficult")
|
14513
|
+
};
|
14514
|
+
var handleChange = function handleChange(value, _) {
|
14515
|
+
if (isFirstChange.current) {
|
14516
|
+
isFirstChange.current = false;
|
14517
|
+
return;
|
14518
|
+
}
|
14519
|
+
onChange(value);
|
14520
|
+
};
|
14521
|
+
return React__default.createElement(tinymceReact.Editor, {
|
14522
|
+
disabled: disabled,
|
14523
|
+
init: config || options,
|
14524
|
+
value: initValue,
|
14525
|
+
onEditorChange: handleChange
|
14526
|
+
});
|
14527
|
+
};
|
14528
|
+
|
14354
14529
|
var schema$1 = yup.object().shape({
|
14355
14530
|
content: yup.string().required()
|
14356
14531
|
});
|
@@ -14367,37 +14542,12 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
|
|
14367
14542
|
var handleSaveNote = function handleSaveNote(content) {
|
14368
14543
|
onSaveNote(content);
|
14369
14544
|
};
|
14370
|
-
var _useState = React.useState(false),
|
14371
|
-
keyboardOpen = _useState[0],
|
14372
|
-
setKeyboardOpen = _useState[1];
|
14373
|
-
React.useEffect(function () {
|
14374
|
-
var handleResize = function handleResize() {
|
14375
|
-
if (window.innerHeight < window.outerHeight) {
|
14376
|
-
setKeyboardOpen(true);
|
14377
|
-
} else {
|
14378
|
-
setKeyboardOpen(false);
|
14379
|
-
}
|
14380
|
-
};
|
14381
|
-
window.addEventListener("resize", handleResize);
|
14382
|
-
handleResize();
|
14383
|
-
return function () {
|
14384
|
-
return window.removeEventListener("resize", handleResize);
|
14385
|
-
};
|
14386
|
-
}, []);
|
14387
14545
|
return React__default.createElement(material.Dialog, {
|
14388
14546
|
onClose: onClose,
|
14389
14547
|
open: open,
|
14548
|
+
maxWidth: "md",
|
14390
14549
|
scroll: "body",
|
14391
|
-
|
14392
|
-
sx: {
|
14393
|
-
maxHeight: "unset",
|
14394
|
-
minWidth: "363px",
|
14395
|
-
overflowY: "auto",
|
14396
|
-
position: "relative",
|
14397
|
-
bottom: keyboardOpen ? "0" : undefined,
|
14398
|
-
transition: "top 0.3s ease"
|
14399
|
-
}
|
14400
|
-
}
|
14550
|
+
fullWidth: true
|
14401
14551
|
}, React__default.createElement(DialogTitle, {
|
14402
14552
|
id: "customized-dialog-title"
|
14403
14553
|
}, React__default.createElement(Typography, {
|
@@ -14426,7 +14576,8 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
|
|
14426
14576
|
handleSaveNote(values.content);
|
14427
14577
|
}
|
14428
14578
|
}, function (_ref2) {
|
14429
|
-
var values = _ref2.values
|
14579
|
+
var values = _ref2.values,
|
14580
|
+
setFieldValue = _ref2.setFieldValue;
|
14430
14581
|
return React__default.createElement(formik.Form, null, React__default.createElement(DialogContent, {
|
14431
14582
|
sx: {
|
14432
14583
|
padding: 0,
|
@@ -14455,16 +14606,22 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
|
|
14455
14606
|
flexDirection: "row",
|
14456
14607
|
alignItems: "center"
|
14457
14608
|
}, React__default.createElement(formik.Field, {
|
14458
|
-
as: "textarea",
|
14459
|
-
rows: 3,
|
14460
14609
|
id: "content-question",
|
14461
14610
|
style: {
|
14462
|
-
|
14463
|
-
minHeight: "64px"
|
14611
|
+
width: "100%"
|
14464
14612
|
},
|
14465
14613
|
name: "content",
|
14466
14614
|
placeholder: t("the_problem_is_difficult"),
|
14467
|
-
className: styles["form-control"]
|
14615
|
+
className: styles["form-control"],
|
14616
|
+
render: function render(_ref3) {
|
14617
|
+
var field = _ref3.field;
|
14618
|
+
return React__default.createElement(NoteTinyEditor, {
|
14619
|
+
initValue: field.value,
|
14620
|
+
onChange: function onChange(text) {
|
14621
|
+
return setFieldValue("content", text);
|
14622
|
+
}
|
14623
|
+
});
|
14624
|
+
}
|
14468
14625
|
})), React__default.createElement(material.Box, {
|
14469
14626
|
marginBottom: "4px"
|
14470
14627
|
})))), React__default.createElement(DialogActions, {
|
@@ -14954,7 +15111,18 @@ var NoteItem = function NoteItem(_ref) {
|
|
14954
15111
|
number: (data.questionOrder || 0) + 1
|
14955
15112
|
}) : "" + utcToLocalTime(data.createdAt, t("date_format") + " HH:mm")), data.examSessionId && React__default.createElement(material.Typography, Object.assign({}, NoteItemStyles.text.right), data.categoryName)), React__default.createElement(material.Typography, Object.assign({
|
14956
15113
|
className: "truncate"
|
14957
|
-
}, NoteItemStyles.contentText
|
15114
|
+
}, NoteItemStyles.contentText, {
|
15115
|
+
sx: {
|
15116
|
+
display: "-webkit-box",
|
15117
|
+
lineClamp: 1,
|
15118
|
+
WebkitLineClamp: 1,
|
15119
|
+
WebkitBoxOrient: "vertical",
|
15120
|
+
overflow: "hidden"
|
15121
|
+
},
|
15122
|
+
dangerouslySetInnerHTML: {
|
15123
|
+
__html: data.content || ""
|
15124
|
+
}
|
15125
|
+
}))), React__default.createElement(material.Box, null, (isAdmin || data.isOwned) && React__default.createElement(material.ClickAwayListener, {
|
14958
15126
|
onClickAway: onClose
|
14959
15127
|
}, React__default.createElement(material.Box, null, React__default.createElement(CustomTooltip, {
|
14960
15128
|
onClose: onClose,
|
@@ -15154,8 +15322,11 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15154
15322
|
fontSize: "14px",
|
15155
15323
|
fontWeight: "300",
|
15156
15324
|
color: "#414E62"
|
15325
|
+
},
|
15326
|
+
dangerouslySetInnerHTML: {
|
15327
|
+
__html: (data === null || data === void 0 ? void 0 : data.content) || ""
|
15157
15328
|
}
|
15158
|
-
}
|
15329
|
+
})));
|
15159
15330
|
};
|
15160
15331
|
|
15161
15332
|
var useVirtualList = function useVirtualList(studentId, defaultFilter, getItemsApi) {
|
@@ -23471,6 +23642,7 @@ var Textbook = function Textbook(_ref) {
|
|
23471
23642
|
getTextbookList = _ref.getTextbookList,
|
23472
23643
|
onViewQA = _ref.onViewQA;
|
23473
23644
|
var isTabletUp = material.useMediaQuery(theme.breakpoints.up("lg"));
|
23645
|
+
var isStudentSite = role === exports.Role.Student;
|
23474
23646
|
var _useDrawer = useDrawer(),
|
23475
23647
|
isOpenDialog = _useDrawer.isOpenDialog,
|
23476
23648
|
handleCloseDialog = _useDrawer.handleCloseDialog,
|
@@ -23485,6 +23657,9 @@ var Textbook = function Textbook(_ref) {
|
|
23485
23657
|
handleOpenConfirmDialog = _useTextbook.handleOpenConfirmDialog,
|
23486
23658
|
handleCloseConfirmDialog = _useTextbook.handleCloseConfirmDialog,
|
23487
23659
|
handleDeleteTextbook = _useTextbook.handleDeleteTextbook;
|
23660
|
+
var isEditable = isSuperAdmin || textbook.isShared && ((textbook === null || textbook === void 0 ? void 0 : (_textbook$createdBy = textbook.createdBy) === null || _textbook$createdBy === void 0 ? void 0 : _textbook$createdBy.id) === (user === null || user === void 0 ? void 0 : user.id) || textbook.textbookOwners.some(function (i) {
|
23661
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
23662
|
+
}));
|
23488
23663
|
return React__default.createElement(material.Stack, {
|
23489
23664
|
sx: {
|
23490
23665
|
border: 1,
|
@@ -23497,16 +23672,19 @@ var Textbook = function Textbook(_ref) {
|
|
23497
23672
|
sx: {
|
23498
23673
|
gap: "24px",
|
23499
23674
|
flexDirection: "row",
|
23500
|
-
alignItems: "center"
|
23501
|
-
cursor: "pointer"
|
23675
|
+
alignItems: "center"
|
23502
23676
|
}
|
23503
23677
|
}, React__default.createElement("img", {
|
23504
23678
|
style: {
|
23505
23679
|
objectFit: "contain",
|
23506
|
-
height: "100%"
|
23680
|
+
height: "100%",
|
23681
|
+
cursor: !isStudentSite ? "pointer" : undefined
|
23507
23682
|
},
|
23508
23683
|
width: 68,
|
23509
|
-
src: textbook.coverImage
|
23684
|
+
src: textbook.coverImage,
|
23685
|
+
onClick: function onClick() {
|
23686
|
+
return !isStudentSite && handleOpenDetailDialog();
|
23687
|
+
}
|
23510
23688
|
}), React__default.createElement(material.Stack, null, React__default.createElement(material.Stack, {
|
23511
23689
|
flexDirection: "row"
|
23512
23690
|
}, React__default.createElement(material.Typography, {
|
@@ -23516,7 +23694,16 @@ var Textbook = function Textbook(_ref) {
|
|
23516
23694
|
}, t("test_name")), React__default.createElement(material.Typography, {
|
23517
23695
|
fontSize: "14px",
|
23518
23696
|
color: styles.gray_900,
|
23519
|
-
fontWeight: 700
|
23697
|
+
fontWeight: 700,
|
23698
|
+
sx: _extends({}, !isStudentSite && {
|
23699
|
+
"&:hover": {
|
23700
|
+
color: styles.less_dark
|
23701
|
+
},
|
23702
|
+
cursor: "pointer"
|
23703
|
+
}),
|
23704
|
+
onClick: function onClick() {
|
23705
|
+
return !isStudentSite && handleOpenDetailDialog();
|
23706
|
+
}
|
23520
23707
|
}, textbook.name)), React__default.createElement(material.Stack, {
|
23521
23708
|
flexDirection: "row"
|
23522
23709
|
}, React__default.createElement(material.Typography, {
|
@@ -23558,9 +23745,7 @@ var Textbook = function Textbook(_ref) {
|
|
23558
23745
|
onClick: handleOpenDialog
|
23559
23746
|
}, React__default.createElement(fa.FaBookOpen, {
|
23560
23747
|
size: "20px"
|
23561
|
-
}), t("test_start")),
|
23562
|
-
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
23563
|
-
}))) && React__default.createElement(material.Button, {
|
23748
|
+
}), t("test_start")), isEditable && React__default.createElement(material.Button, {
|
23564
23749
|
variant: "outlined",
|
23565
23750
|
sx: {
|
23566
23751
|
width: "fit-content",
|
@@ -25438,6 +25623,12 @@ var updateClassApi = function updateClassApi(id, model) {
|
|
25438
25623
|
var deleteClassApi = function deleteClassApi(id) {
|
25439
25624
|
return api["delete"](CLASS_URL + "/" + id);
|
25440
25625
|
};
|
25626
|
+
var hiddenClassesApi = function hiddenClassesApi(hidden, classId) {
|
25627
|
+
return api.post(CLASS_URL + "/hidden", {
|
25628
|
+
hidden: hidden,
|
25629
|
+
courseIds: [classId]
|
25630
|
+
});
|
25631
|
+
};
|
25441
25632
|
var addStudentToClass = function addStudentToClass(id, studentIds) {
|
25442
25633
|
return api.post(CLASS_URL + "/" + id + "/students", studentIds);
|
25443
25634
|
};
|
@@ -26971,6 +27162,27 @@ var useClassList = function useClassList(history, classCreateUrl, classUpdateUrl
|
|
26971
27162
|
var handleUpdateClass = function handleUpdateClass(value) {
|
26972
27163
|
value.id && classUpdateUrl && pushTo(history, "" + classUpdateUrl.replace(":id", "" + value.id));
|
26973
27164
|
};
|
27165
|
+
var handleToggleHidden = function handleToggleHidden(e, classId) {
|
27166
|
+
try {
|
27167
|
+
var _temp5 = function _temp5() {
|
27168
|
+
dispatch(setLoading(false));
|
27169
|
+
};
|
27170
|
+
var checked = e.target.checked;
|
27171
|
+
dispatch(setLoading(true));
|
27172
|
+
var _temp4 = _catch(function () {
|
27173
|
+
return Promise.resolve(hiddenClassesApi(checked, classId)).then(function () {
|
27174
|
+
return Promise.resolve(getClassList()).then(function () {
|
27175
|
+
reactToastify.toast.success(t("update_data_successfully"));
|
27176
|
+
});
|
27177
|
+
});
|
27178
|
+
}, function (error) {
|
27179
|
+
reactToastify.toast.error(getErrorMessage(t, error));
|
27180
|
+
});
|
27181
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
|
27182
|
+
} catch (e) {
|
27183
|
+
return Promise.reject(e);
|
27184
|
+
}
|
27185
|
+
};
|
26974
27186
|
var handleChangePage = function handleChangePage(_, page) {
|
26975
27187
|
setClassFilter(_extends({}, classFilter, {
|
26976
27188
|
currentPage: page
|
@@ -26996,7 +27208,8 @@ var useClassList = function useClassList(history, classCreateUrl, classUpdateUrl
|
|
26996
27208
|
handleCreateClass: handleCreateClass,
|
26997
27209
|
handleUpdateClass: handleUpdateClass,
|
26998
27210
|
handleChangePage: handleChangePage,
|
26999
|
-
handleDeleteClass: handleDeleteClass
|
27211
|
+
handleDeleteClass: handleDeleteClass,
|
27212
|
+
handleToggleHidden: handleToggleHidden
|
27000
27213
|
};
|
27001
27214
|
};
|
27002
27215
|
|
@@ -27009,7 +27222,15 @@ var ClassList = function ClassList(_ref) {
|
|
27009
27222
|
var _state$common, _state$common$user;
|
27010
27223
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.isSuperAdmin;
|
27011
27224
|
});
|
27012
|
-
var isAdmin =
|
27225
|
+
var isAdmin = reactRedux.useSelector(function (state) {
|
27226
|
+
var _state$common2, _state$common2$user, _state$common2$user$r;
|
27227
|
+
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : (_state$common2$user = _state$common2.user) === null || _state$common2$user === void 0 ? void 0 : (_state$common2$user$r = _state$common2$user.roles) === null || _state$common2$user$r === void 0 ? void 0 : _state$common2$user$r.includes(exports.Role.Admin);
|
27228
|
+
});
|
27229
|
+
var isTeacher = reactRedux.useSelector(function (state) {
|
27230
|
+
var _state$common3, _state$common3$user, _state$common3$user$r;
|
27231
|
+
return state === null || state === void 0 ? void 0 : (_state$common3 = state.common) === null || _state$common3 === void 0 ? void 0 : (_state$common3$user = _state$common3.user) === null || _state$common3$user === void 0 ? void 0 : (_state$common3$user$r = _state$common3$user.roles) === null || _state$common3$user$r === void 0 ? void 0 : _state$common3$user$r.includes(exports.Role.Teacher);
|
27232
|
+
}) && !isAdmin;
|
27233
|
+
var isAdminSite = role === exports.Role.Admin;
|
27013
27234
|
var _useClassList = useClassList(history, classCreateUrl, classUpdateUrl),
|
27014
27235
|
t = _useClassList.t,
|
27015
27236
|
paging = _useClassList.paging,
|
@@ -27024,7 +27245,11 @@ var ClassList = function ClassList(_ref) {
|
|
27024
27245
|
handleCreateClass = _useClassList.handleCreateClass,
|
27025
27246
|
handleUpdateClass = _useClassList.handleUpdateClass,
|
27026
27247
|
handleChangePage = _useClassList.handleChangePage,
|
27027
|
-
handleDeleteClass = _useClassList.handleDeleteClass
|
27248
|
+
handleDeleteClass = _useClassList.handleDeleteClass,
|
27249
|
+
handleToggleHidden = _useClassList.handleToggleHidden;
|
27250
|
+
var headers = !isTeacher ? CLASS_HEADERS : [].concat(CLASS_HEADERS.slice(0, -1), [{
|
27251
|
+
title: "hidden"
|
27252
|
+
}], CLASS_HEADERS.slice(-1));
|
27028
27253
|
return React__default.createElement(material.Box, null, React__default.createElement(material.Stack, {
|
27029
27254
|
direction: "row",
|
27030
27255
|
alignItems: "center",
|
@@ -27032,7 +27257,7 @@ var ClassList = function ClassList(_ref) {
|
|
27032
27257
|
mb: 2
|
27033
27258
|
}, React__default.createElement(material.Typography, {
|
27034
27259
|
variant: "h4"
|
27035
|
-
}, t("classes")), (
|
27260
|
+
}, t("classes")), (isAdminSite || isSuperAdmin) && React__default.createElement(MButton, {
|
27036
27261
|
variant: "contained",
|
27037
27262
|
color: "inherit",
|
27038
27263
|
startIcon: React__default.createElement(fa.FaPlus, {
|
@@ -27055,7 +27280,7 @@ var ClassList = function ClassList(_ref) {
|
|
27055
27280
|
}), React__default.createElement(material.Grid, {
|
27056
27281
|
item: true,
|
27057
27282
|
xs: 12
|
27058
|
-
}, React__default.createElement(material.TableContainer, null, React__default.createElement(Table, null, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null,
|
27283
|
+
}, React__default.createElement(material.TableContainer, null, React__default.createElement(Table, null, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, headers.map(function (i, index) {
|
27059
27284
|
return React__default.createElement(TableCell, {
|
27060
27285
|
key: index,
|
27061
27286
|
onClick: !!i.sortKey ? function () {
|
@@ -27072,7 +27297,13 @@ var ClassList = function ClassList(_ref) {
|
|
27072
27297
|
key: i.id
|
27073
27298
|
}, React__default.createElement(TableCell, null, (paging.page - 1) * paging.limit + index + 1), React__default.createElement(TableCell, {
|
27074
27299
|
className: "text-nowrap"
|
27075
|
-
}, i.name), React__default.createElement(TableCell, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell, null, i.totalStudents), React__default.createElement(TableCell, null, i.totalTeachers), React__default.createElement(TableCell, null, i.totalLessons), React__default.createElement(TableCell, null,
|
27300
|
+
}, i.name), React__default.createElement(TableCell, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell, null, i.totalStudents), React__default.createElement(TableCell, null, i.totalTeachers), React__default.createElement(TableCell, null, i.totalLessons), isTeacher && React__default.createElement(TableCell, null, React__default.createElement(material.Switch, {
|
27301
|
+
checked: i.hidden,
|
27302
|
+
onChange: function onChange(e) {
|
27303
|
+
var _i$id;
|
27304
|
+
return handleToggleHidden(e, (_i$id = i.id) != null ? _i$id : 0);
|
27305
|
+
}
|
27306
|
+
})), React__default.createElement(TableCell, null, (isAdminSite || isSuperAdmin) && React__default.createElement("div", {
|
27076
27307
|
className: "d-flex"
|
27077
27308
|
}, React__default.createElement(material.IconButton, {
|
27078
27309
|
color: "default",
|
@@ -27090,7 +27321,7 @@ var ClassList = function ClassList(_ref) {
|
|
27090
27321
|
}
|
27091
27322
|
}, React__default.createElement(fa6.FaTrashCan, {
|
27092
27323
|
size: 12
|
27093
|
-
}))), !(
|
27324
|
+
}))), !(isAdminSite || isSuperAdmin) && React__default.createElement(material.IconButton, {
|
27094
27325
|
color: "default",
|
27095
27326
|
className: "bg-primary text-white me-1",
|
27096
27327
|
onClick: function onClick() {
|
@@ -28469,10 +28700,10 @@ var RecentUserActionDialog = function RecentUserActionDialog(_ref) {
|
|
28469
28700
|
}
|
28470
28701
|
}, t(i.title)));
|
28471
28702
|
}))), React__default.createElement(material.TableBody, null, recentUserActions === null || recentUserActions === void 0 ? void 0 : recentUserActions.map(function (i, index) {
|
28472
|
-
var _i$targetUser, _i$targetUser2;
|
28703
|
+
var _i$targetUser, _i$targetUser2, _RecentUserActionName, _RecentUserActionName2;
|
28473
28704
|
return React__default.createElement(material.TableRow, {
|
28474
28705
|
key: i.id
|
28475
|
-
}, React__default.createElement(material.TableCell, null, index + 1), React__default.createElement(material.TableCell, null, ((_i$targetUser = i.targetUser) === null || _i$targetUser === void 0 ? void 0 : _i$targetUser.fullName) || ''), React__default.createElement(material.TableCell, null, formatRole((_i$targetUser2 = i.targetUser) === null || _i$targetUser2 === void 0 ? void 0 : _i$targetUser2.roles, t)), React__default.createElement(material.TableCell, null, t(RecentUserActionNames[i.action] || '')), React__default.createElement(material.TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))));
|
28706
|
+
}, React__default.createElement(material.TableCell, null, index + 1), React__default.createElement(material.TableCell, null, ((_i$targetUser = i.targetUser) === null || _i$targetUser === void 0 ? void 0 : _i$targetUser.fullName) || ''), React__default.createElement(material.TableCell, null, formatRole((_i$targetUser2 = i.targetUser) === null || _i$targetUser2 === void 0 ? void 0 : _i$targetUser2.roles, t)), React__default.createElement(material.TableCell, null, t(((_RecentUserActionName = RecentUserActionNames[i.action]) === null || _RecentUserActionName === void 0 ? void 0 : (_RecentUserActionName2 = _RecentUserActionName.toLowerCase) === null || _RecentUserActionName2 === void 0 ? void 0 : _RecentUserActionName2.call(_RecentUserActionName)) || '')), React__default.createElement(material.TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))));
|
28476
28707
|
}), !(recentUserActions !== null && recentUserActions !== void 0 && recentUserActions.length) && React__default.createElement(material.TableRow, null, React__default.createElement(material.TableCell, {
|
28477
28708
|
sx: {
|
28478
28709
|
textAlign: 'center'
|
@@ -32451,16 +32682,18 @@ var TypeNotificationEnum;
|
|
32451
32682
|
TypeNotificationEnum[TypeNotificationEnum["Class"] = 2] = "Class";
|
32452
32683
|
TypeNotificationEnum[TypeNotificationEnum["Student"] = 3] = "Student";
|
32453
32684
|
})(TypeNotificationEnum || (TypeNotificationEnum = {}));
|
32454
|
-
var optionTypeNotification =
|
32455
|
-
|
32456
|
-
|
32457
|
-
|
32458
|
-
|
32459
|
-
|
32460
|
-
|
32461
|
-
|
32462
|
-
|
32463
|
-
|
32685
|
+
var optionTypeNotification = function optionTypeNotification(t) {
|
32686
|
+
return [{
|
32687
|
+
value: TypeNotificationEnum.Academy,
|
32688
|
+
label: t("academy")
|
32689
|
+
}, {
|
32690
|
+
value: TypeNotificationEnum.Class,
|
32691
|
+
label: t("class")
|
32692
|
+
}, {
|
32693
|
+
value: TypeNotificationEnum.Student,
|
32694
|
+
label: t("student")
|
32695
|
+
}];
|
32696
|
+
};
|
32464
32697
|
var NotificationSortBy;
|
32465
32698
|
(function (NotificationSortBy) {
|
32466
32699
|
NotificationSortBy["CreatedAt"] = "CreatedAt";
|
@@ -32476,7 +32709,7 @@ var OrderBy$2;
|
|
32476
32709
|
var NOTIFICATION_HEADERS = [{
|
32477
32710
|
title: "#"
|
32478
32711
|
}, {
|
32479
|
-
title: "
|
32712
|
+
title: "notification_title",
|
32480
32713
|
sortKey: NotificationSortBy.Name
|
32481
32714
|
}, {
|
32482
32715
|
title: "type",
|
@@ -32690,6 +32923,10 @@ var NotificationForm = function NotificationForm(_ref) {
|
|
32690
32923
|
formikProp.setValues(_extends({}, DEFAULT_NOTIFICATION_REQUEST));
|
32691
32924
|
}
|
32692
32925
|
}, [JSON.stringify(data)]);
|
32926
|
+
var optionTypes = optionTypeNotification(t);
|
32927
|
+
var notificationTypes = isAdmin ? optionTypes : optionTypes.filter(function (i) {
|
32928
|
+
return i.value !== TypeNotificationEnum.Academy;
|
32929
|
+
});
|
32693
32930
|
return React__default.createElement("div", {
|
32694
32931
|
className: "d-flex flex-column"
|
32695
32932
|
}, React__default.createElement(material.Grid, {
|
@@ -32704,14 +32941,14 @@ var NotificationForm = function NotificationForm(_ref) {
|
|
32704
32941
|
}, React__default.createElement(material.FormGroup, null, React__default.createElement(material.FormLabel, {
|
32705
32942
|
className: "mb-2 fw-bold",
|
32706
32943
|
htmlFor: "class_name"
|
32707
|
-
}, t("
|
32944
|
+
}, t("notification_title"), " ", React__default.createElement("span", {
|
32708
32945
|
className: "text-danger"
|
32709
32946
|
}, "*")), React__default.createElement(InputText, {
|
32710
32947
|
id: "name",
|
32711
32948
|
disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
|
32712
32949
|
value: formikProp.values.name,
|
32713
32950
|
onChange: handleChangeClassTitle,
|
32714
|
-
placeholder: t("
|
32951
|
+
placeholder: t("notification_title")
|
32715
32952
|
}), formikProp.touched.name && formikProp.errors.name ? React__default.createElement("div", {
|
32716
32953
|
className: "mt-1"
|
32717
32954
|
}, React__default.createElement(ErrorHandler, {
|
@@ -32746,9 +32983,7 @@ var NotificationForm = function NotificationForm(_ref) {
|
|
32746
32983
|
className: "" + styles$9["teacher-selector-wrapper"]
|
32747
32984
|
}, React__default.createElement(TypeSelector, {
|
32748
32985
|
disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
|
32749
|
-
optionTypeNotification:
|
32750
|
-
return i.value !== TypeNotificationEnum.Academy;
|
32751
|
-
}),
|
32986
|
+
optionTypeNotification: notificationTypes,
|
32752
32987
|
value: formikProp.values.type,
|
32753
32988
|
onChange: handleChangeType
|
32754
32989
|
}), formikProp.touched.type && formikProp.errors.type ? React__default.createElement("div", {
|
@@ -33043,6 +33278,10 @@ var NotificationList = function NotificationList(_ref) {
|
|
33043
33278
|
handleDeleteNotification = _useNotificationList.handleDeleteNotification,
|
33044
33279
|
onChangeFilterType = _useNotificationList.onChangeFilterType;
|
33045
33280
|
var Wrapper = as || Container;
|
33281
|
+
var optionTypes = optionTypeNotification(t);
|
33282
|
+
var notificationTypes = isAdmin ? optionTypes : optionTypes.filter(function (i) {
|
33283
|
+
return i.value !== TypeNotificationEnum.Academy;
|
33284
|
+
});
|
33046
33285
|
return React__default.createElement(Wrapper, {
|
33047
33286
|
maxWidth: "xl",
|
33048
33287
|
className: "bg-white pt-5 p-4 rounded-4 " + className
|
@@ -33083,9 +33322,7 @@ var NotificationList = function NotificationList(_ref) {
|
|
33083
33322
|
item: true,
|
33084
33323
|
xs: 6
|
33085
33324
|
}, React__default.createElement(SelectFilterType, {
|
33086
|
-
optionTypeNotification:
|
33087
|
-
return i.value !== TypeNotificationEnum.Academy;
|
33088
|
-
}),
|
33325
|
+
optionTypeNotification: notificationTypes,
|
33089
33326
|
value: notificationFilter.type,
|
33090
33327
|
onChange: onChangeFilterType
|
33091
33328
|
})))), React__default.createElement(material.Grid, {
|
@@ -38186,6 +38423,7 @@ var Header = function Header(_ref) {
|
|
38186
38423
|
}, [isTeacherSide, language]);
|
38187
38424
|
return React__default.createElement(material.Stack, {
|
38188
38425
|
width: "100%",
|
38426
|
+
height: "78px",
|
38189
38427
|
display: "flex",
|
38190
38428
|
flexDirection: "row",
|
38191
38429
|
gap: {
|