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.modern.js
CHANGED
@@ -13,7 +13,7 @@ export { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
|
|
13
13
|
import { DemoContainer } from '@mui/x-date-pickers/internals/demo';
|
14
14
|
export { DemoContainer } from '@mui/x-date-pickers/internals/demo';
|
15
15
|
import React__default, { useState, useEffect, Fragment as Fragment$1, useRef, useCallback, useMemo, memo, createElement } from 'react';
|
16
|
-
import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, useMediaQuery, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Skeleton, Tabs, Tab, Divider, Drawer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails, TableContainer, RadioGroup, Radio, FormControl, InputLabel, Chip,
|
16
|
+
import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, useMediaQuery, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Skeleton, Tabs, Tab, Divider, Drawer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails, TableContainer, Switch, RadioGroup, Radio, FormControl, InputLabel, Chip, CardMedia as CardMedia$1, MenuList } from '@mui/material';
|
17
17
|
import moment from 'moment';
|
18
18
|
export { default as moment } from 'moment';
|
19
19
|
import { FaSave, FaCaretDown, FaTimes, FaTrash, FaSortUp, FaSortDown, FaPlusCircle, FaCalendar, FaUser, FaBookOpen, FaPlus, FaUpload, FaEye as FaEye$1, FaPencilAlt, FaCheckCircle, FaShare, FaExchangeAlt } from 'react-icons/fa';
|
@@ -30,10 +30,10 @@ import 'moment/locale/en-au.js';
|
|
30
30
|
import { CellMeasurerCache, CellMeasurer, AutoSizer, List as List$1, MultiGrid } from 'react-virtualized';
|
31
31
|
export { CellMeasurerCache, MultiGrid } from 'react-virtualized';
|
32
32
|
import { Formik, Form, Field, FieldArray } from 'formik';
|
33
|
-
import { alpha } from '@mui/material/styles';
|
34
33
|
import tinymce from 'tinymce';
|
35
34
|
import '@wiris/mathtype-tinymce6';
|
36
35
|
import { Editor } from '@tinymce/tinymce-react';
|
36
|
+
import { alpha } from '@mui/material/styles';
|
37
37
|
import Grid$1 from '@mui/material/Grid';
|
38
38
|
import Typography$1 from '@mui/material/Typography';
|
39
39
|
import Card from '@mui/material/Card';
|
@@ -1488,6 +1488,25 @@ var textbook_name = "교재 이름";
|
|
1488
1488
|
var korean_language = "국어";
|
1489
1489
|
var answer_cannot_be_empty = "답변은 비워둘 수 없습니다";
|
1490
1490
|
var are_you_sure_to_create_student_parent_note = "학생/학부모에게 노트를 생성하시겠습니까?";
|
1491
|
+
var notification_title = "알림 제목";
|
1492
|
+
var vieweduser = "사용자 조회";
|
1493
|
+
var updateduser = "사용자 업데이트";
|
1494
|
+
var creatednewuser = "새 사용자 생성";
|
1495
|
+
var importeduser = "사용자 가져오기";
|
1496
|
+
var viewedqna = "Q&A 조회";
|
1497
|
+
var completedqna = "Q&A 완료";
|
1498
|
+
var answeredqna = "Q&A 답변";
|
1499
|
+
var removemessageqna = "Q&A 메시지 삭제";
|
1500
|
+
var updatemessageqna = "Q&A 메시지 업데이트";
|
1501
|
+
var viewedexamresult = "시험 결과 조회";
|
1502
|
+
var printedexamresult = "시험 결과 출력";
|
1503
|
+
var viewedattendance = "출석 조회";
|
1504
|
+
var updatedattendance = "출석 업데이트";
|
1505
|
+
var addedteachertoclass = "교사 수업 추가";
|
1506
|
+
var removedteacherfromclass = "교사 수업 제거";
|
1507
|
+
var addedstudenttoclass = "학생 수업 추가";
|
1508
|
+
var removedstudentfromclass = "학생 수업 제거";
|
1509
|
+
var hidden = "숨겨진";
|
1491
1510
|
var lang_ko = {
|
1492
1511
|
problem_solving: problem_solving,
|
1493
1512
|
my_story: my_story,
|
@@ -2609,7 +2628,26 @@ var lang_ko = {
|
|
2609
2628
|
textbook_name: textbook_name,
|
2610
2629
|
korean_language: korean_language,
|
2611
2630
|
answer_cannot_be_empty: answer_cannot_be_empty,
|
2612
|
-
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note
|
2631
|
+
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note,
|
2632
|
+
notification_title: notification_title,
|
2633
|
+
vieweduser: vieweduser,
|
2634
|
+
updateduser: updateduser,
|
2635
|
+
creatednewuser: creatednewuser,
|
2636
|
+
importeduser: importeduser,
|
2637
|
+
viewedqna: viewedqna,
|
2638
|
+
completedqna: completedqna,
|
2639
|
+
answeredqna: answeredqna,
|
2640
|
+
removemessageqna: removemessageqna,
|
2641
|
+
updatemessageqna: updatemessageqna,
|
2642
|
+
viewedexamresult: viewedexamresult,
|
2643
|
+
printedexamresult: printedexamresult,
|
2644
|
+
viewedattendance: viewedattendance,
|
2645
|
+
updatedattendance: updatedattendance,
|
2646
|
+
addedteachertoclass: addedteachertoclass,
|
2647
|
+
removedteacherfromclass: removedteacherfromclass,
|
2648
|
+
addedstudenttoclass: addedstudenttoclass,
|
2649
|
+
removedstudentfromclass: removedstudentfromclass,
|
2650
|
+
hidden: hidden
|
2613
2651
|
};
|
2614
2652
|
|
2615
2653
|
var problem_solving$1 = "Problem Solving";
|
@@ -3754,6 +3792,25 @@ var textbook_name$1 = "Textbook name";
|
|
3754
3792
|
var korean_language$1 = "Korean";
|
3755
3793
|
var answer_cannot_be_empty$1 = "Answer cannot be empty";
|
3756
3794
|
var are_you_sure_to_create_student_parent_note$1 = "Are you sure you want to create a note for the student/parent?";
|
3795
|
+
var notification_title$1 = "Notification title";
|
3796
|
+
var vieweduser$1 = "Viewed user";
|
3797
|
+
var updateduser$1 = "Updated user";
|
3798
|
+
var creatednewuser$1 = "Created new user";
|
3799
|
+
var importeduser$1 = "Imported user";
|
3800
|
+
var viewedqna$1 = "Viewed Q&A";
|
3801
|
+
var completedqna$1 = "Completed Q&A";
|
3802
|
+
var answeredqna$1 = "Answered Q&A";
|
3803
|
+
var removemessageqna$1 = "Remove message Q&A";
|
3804
|
+
var updatemessageqna$1 = "Update message Q&A";
|
3805
|
+
var viewedexamresult$1 = "Viewed exam result";
|
3806
|
+
var printedexamresult$1 = "Printed exam result";
|
3807
|
+
var viewedattendance$1 = "Viewed attendance";
|
3808
|
+
var updatedattendance$1 = "Updated attendance";
|
3809
|
+
var addedteachertoclass$1 = "Added teacher to class";
|
3810
|
+
var removedteacherfromclass$1 = "Removed teacher from class";
|
3811
|
+
var addedstudenttoclass$1 = "Added student to class";
|
3812
|
+
var removedstudentfromclass$1 = "Removed student from class";
|
3813
|
+
var hidden$1 = "Hidden";
|
3757
3814
|
var lang_en = {
|
3758
3815
|
problem_solving: problem_solving$1,
|
3759
3816
|
my_story: my_story$1,
|
@@ -4877,7 +4934,26 @@ var lang_en = {
|
|
4877
4934
|
textbook_name: textbook_name$1,
|
4878
4935
|
korean_language: korean_language$1,
|
4879
4936
|
answer_cannot_be_empty: answer_cannot_be_empty$1,
|
4880
|
-
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note$1
|
4937
|
+
are_you_sure_to_create_student_parent_note: are_you_sure_to_create_student_parent_note$1,
|
4938
|
+
notification_title: notification_title$1,
|
4939
|
+
vieweduser: vieweduser$1,
|
4940
|
+
updateduser: updateduser$1,
|
4941
|
+
creatednewuser: creatednewuser$1,
|
4942
|
+
importeduser: importeduser$1,
|
4943
|
+
viewedqna: viewedqna$1,
|
4944
|
+
completedqna: completedqna$1,
|
4945
|
+
answeredqna: answeredqna$1,
|
4946
|
+
removemessageqna: removemessageqna$1,
|
4947
|
+
updatemessageqna: updatemessageqna$1,
|
4948
|
+
viewedexamresult: viewedexamresult$1,
|
4949
|
+
printedexamresult: printedexamresult$1,
|
4950
|
+
viewedattendance: viewedattendance$1,
|
4951
|
+
updatedattendance: updatedattendance$1,
|
4952
|
+
addedteachertoclass: addedteachertoclass$1,
|
4953
|
+
removedteacherfromclass: removedteacherfromclass$1,
|
4954
|
+
addedstudenttoclass: addedstudenttoclass$1,
|
4955
|
+
removedstudentfromclass: removedstudentfromclass$1,
|
4956
|
+
hidden: hidden$1
|
4881
4957
|
};
|
4882
4958
|
|
4883
4959
|
i18n.use(initReactI18next).init({
|
@@ -6240,10 +6316,22 @@ var OrderType;
|
|
6240
6316
|
var RecentUserAction;
|
6241
6317
|
(function (RecentUserAction) {
|
6242
6318
|
RecentUserAction["ViewedUser"] = "ViewedUser";
|
6319
|
+
RecentUserAction["UpdatedUser"] = "UpdatedUser";
|
6320
|
+
RecentUserAction["CreatedNewUser"] = "CreatedNewUser";
|
6321
|
+
RecentUserAction["ImportedUser"] = "ImportedUser";
|
6243
6322
|
RecentUserAction["ViewedQNA"] = "ViewedQNA";
|
6323
|
+
RecentUserAction["CompletedQNA"] = "CompletedQNA";
|
6324
|
+
RecentUserAction["AnsweredQNA"] = "AnsweredQNA";
|
6325
|
+
RecentUserAction["RemoveMessageQNA"] = "RemoveMessageQNA";
|
6326
|
+
RecentUserAction["UpdateMessageQNA"] = "UpdateMessageQNA";
|
6244
6327
|
RecentUserAction["ViewedExamResult"] = "ViewedExamResult";
|
6245
6328
|
RecentUserAction["PrintedExamResult"] = "PrintedExamResult";
|
6246
6329
|
RecentUserAction["ViewedAttendance"] = "ViewedAttendance";
|
6330
|
+
RecentUserAction["UpdatedAttendance"] = "UpdatedAttendance";
|
6331
|
+
RecentUserAction["AddedTeacherToClass"] = "AddedTeacherToClass";
|
6332
|
+
RecentUserAction["RemovedTeacherFromClass"] = "RemovedTeacherFromClass";
|
6333
|
+
RecentUserAction["AddedStudentToClass"] = "AddedStudentToClass";
|
6334
|
+
RecentUserAction["RemovedStudentFromClass"] = "RemovedStudentFromClass";
|
6247
6335
|
})(RecentUserAction || (RecentUserAction = {}));
|
6248
6336
|
|
6249
6337
|
var UserSortColumn;
|
@@ -7556,6 +7644,8 @@ var getClassesApi = function getClassesApi(textSearch) {
|
|
7556
7644
|
return api.get("" + COURSE_URL, {
|
7557
7645
|
params: {
|
7558
7646
|
textSearch: textSearch,
|
7647
|
+
pageSize: 100,
|
7648
|
+
currentPage: 1,
|
7559
7649
|
roles: [Role.Admin]
|
7560
7650
|
}
|
7561
7651
|
});
|
@@ -7607,11 +7697,7 @@ var ClassSelector = function ClassSelector(_ref) {
|
|
7607
7697
|
}, [searchString]);
|
7608
7698
|
useEffect(function () {
|
7609
7699
|
timeout && timeout.current && clearTimeout(timeout.current);
|
7610
|
-
|
7611
|
-
setClasses([]);
|
7612
|
-
} else {
|
7613
|
-
timeout.current = setTimeout(loadData, 300);
|
7614
|
-
}
|
7700
|
+
timeout.current = setTimeout(loadData, 300);
|
7615
7701
|
}, [searchString]);
|
7616
7702
|
var options = classes.filter(function (classOption) {
|
7617
7703
|
return !externalClassIds || externalClassIds && !externalClassIds.includes(classOption.id);
|
@@ -7632,7 +7718,7 @@ var ClassSelector = function ClassSelector(_ref) {
|
|
7632
7718
|
return setSearchString(inputValue);
|
7633
7719
|
},
|
7634
7720
|
isLoading: isLoading,
|
7635
|
-
placeholder: t('
|
7721
|
+
placeholder: t('select_placeholder'),
|
7636
7722
|
isMulti: true,
|
7637
7723
|
value: value,
|
7638
7724
|
onChange: onChange,
|
@@ -8115,6 +8201,12 @@ var ChatRightItem = function ChatRightItem(_ref) {
|
|
8115
8201
|
isOpenTooltip = _useTooltip.isOpenTooltip,
|
8116
8202
|
handleCloseTooltip = _useTooltip.handleCloseTooltip,
|
8117
8203
|
handleOpenTooltip = _useTooltip.handleOpenTooltip;
|
8204
|
+
useEffect(function () {
|
8205
|
+
if (window.MathJax) {
|
8206
|
+
var _window$MathJax;
|
8207
|
+
(_window$MathJax = window.MathJax) === null || _window$MathJax === void 0 ? void 0 : _window$MathJax.typeset();
|
8208
|
+
}
|
8209
|
+
}, [content]);
|
8118
8210
|
return React__default.createElement("div", null, showTimestamp && React__default.createElement(Typography, {
|
8119
8211
|
fontWeight: 500,
|
8120
8212
|
fontSize: "12px",
|
@@ -8187,17 +8279,15 @@ var ChatRightItem = function ChatRightItem(_ref) {
|
|
8187
8279
|
style: {
|
8188
8280
|
"float": "inline-end",
|
8189
8281
|
maxWidth: 400,
|
8190
|
-
background: styles.less_dark
|
8191
|
-
|
8192
|
-
|
8193
|
-
|
8194
|
-
|
8195
|
-
|
8196
|
-
|
8197
|
-
sx: {
|
8198
|
-
wordBreak: "break-word"
|
8282
|
+
background: styles.less_dark,
|
8283
|
+
color: "#FFF",
|
8284
|
+
fontSize: "14px",
|
8285
|
+
fontWeight: 500
|
8286
|
+
},
|
8287
|
+
dangerouslySetInnerHTML: {
|
8288
|
+
__html: content || ""
|
8199
8289
|
}
|
8200
|
-
}
|
8290
|
+
})))));
|
8201
8291
|
};
|
8202
8292
|
|
8203
8293
|
var ChatLeftItem = function ChatLeftItem(_ref) {
|
@@ -8211,6 +8301,12 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
|
|
8211
8301
|
toggleImageDialog = _ref.toggleImageDialog;
|
8212
8302
|
var _useTranslation = useTranslation(),
|
8213
8303
|
t = _useTranslation.t;
|
8304
|
+
useEffect(function () {
|
8305
|
+
if (window.MathJax) {
|
8306
|
+
var _window$MathJax;
|
8307
|
+
(_window$MathJax = window.MathJax) === null || _window$MathJax === void 0 ? void 0 : _window$MathJax.typeset();
|
8308
|
+
}
|
8309
|
+
}, [content]);
|
8214
8310
|
return React__default.createElement("div", null, showTimestamp && React__default.createElement(Typography, {
|
8215
8311
|
fontWeight: 500,
|
8216
8312
|
fontSize: "12px",
|
@@ -8264,17 +8360,15 @@ var ChatLeftItem = function ChatLeftItem(_ref) {
|
|
8264
8360
|
}) : React__default.createElement("div", {
|
8265
8361
|
className: styles$1["wrap-content"] + " " + styles$1["content-chat-sender"],
|
8266
8362
|
style: {
|
8267
|
-
maxWidth: 400
|
8268
|
-
|
8269
|
-
|
8270
|
-
|
8271
|
-
|
8272
|
-
|
8273
|
-
|
8274
|
-
sx: {
|
8275
|
-
wordBreak: "break-word"
|
8363
|
+
maxWidth: 400,
|
8364
|
+
color: styles.gray_700,
|
8365
|
+
fontSize: "14px",
|
8366
|
+
fontWeight: 500
|
8367
|
+
},
|
8368
|
+
dangerouslySetInnerHTML: {
|
8369
|
+
__html: content || ""
|
8276
8370
|
}
|
8277
|
-
}
|
8371
|
+
}))));
|
8278
8372
|
};
|
8279
8373
|
|
8280
8374
|
var ImageDetailDialog = function ImageDetailDialog(_ref) {
|
@@ -8445,6 +8539,47 @@ var iconPlusCircle = function iconPlusCircle(_ref) {
|
|
8445
8539
|
}));
|
8446
8540
|
};
|
8447
8541
|
|
8542
|
+
var TinyChatEditor = function TinyChatEditor(_ref) {
|
8543
|
+
var _ref$disabled = _ref.disabled,
|
8544
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
8545
|
+
onChange = _ref.onChange,
|
8546
|
+
initValue = _ref.initValue,
|
8547
|
+
config = _ref.config;
|
8548
|
+
var isFirstChange = useRef(true);
|
8549
|
+
var _useTranslation = useTranslation(),
|
8550
|
+
t = _useTranslation.t;
|
8551
|
+
useEffect(function () {
|
8552
|
+
if (window.tinymce) {
|
8553
|
+
window.tinymce = tinymce;
|
8554
|
+
}
|
8555
|
+
}, []);
|
8556
|
+
var options = {
|
8557
|
+
height: 126,
|
8558
|
+
menubar: false,
|
8559
|
+
readonly: false,
|
8560
|
+
external_plugins: {
|
8561
|
+
tiny_mce_wiris: '/editor/wiris-for-tinymce.js'
|
8562
|
+
},
|
8563
|
+
toolbar: 'tiny_mce_wiris_formulaEditor',
|
8564
|
+
branding: false,
|
8565
|
+
extended_valid_elements: '*[.*]',
|
8566
|
+
placeholder: t("send_message")
|
8567
|
+
};
|
8568
|
+
var handleChange = function handleChange(value, _) {
|
8569
|
+
if (isFirstChange.current) {
|
8570
|
+
isFirstChange.current = false;
|
8571
|
+
return;
|
8572
|
+
}
|
8573
|
+
onChange(value);
|
8574
|
+
};
|
8575
|
+
return React__default.createElement(Editor, {
|
8576
|
+
disabled: disabled,
|
8577
|
+
init: config || options,
|
8578
|
+
value: initValue,
|
8579
|
+
onEditorChange: handleChange
|
8580
|
+
});
|
8581
|
+
};
|
8582
|
+
|
8448
8583
|
var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
8449
8584
|
var open = _ref.open,
|
8450
8585
|
onClose = _ref.onClose,
|
@@ -8477,7 +8612,7 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
8477
8612
|
handleUpdateMessage(content || "");
|
8478
8613
|
}
|
8479
8614
|
}, function (_ref2) {
|
8480
|
-
|
8615
|
+
var setFieldValue = _ref2.setFieldValue;
|
8481
8616
|
return React__default.createElement(Form, null, React__default.createElement("label", {
|
8482
8617
|
htmlFor: "content",
|
8483
8618
|
className: styles$1['form-label'] + " " + styles$1['form-label-dialog']
|
@@ -8489,7 +8624,16 @@ var UpdateMessageDialog = function UpdateMessageDialog(_ref) {
|
|
8489
8624
|
name: "content",
|
8490
8625
|
validate: validate,
|
8491
8626
|
placeholder: t('the_problem_is_difficult'),
|
8492
|
-
className: styles$1['form-control']
|
8627
|
+
className: styles$1['form-control'],
|
8628
|
+
render: function render(_ref3) {
|
8629
|
+
var field = _ref3.field;
|
8630
|
+
return React__default.createElement(TinyChatEditor, {
|
8631
|
+
initValue: field.value,
|
8632
|
+
onChange: function onChange(text) {
|
8633
|
+
return setFieldValue("content", text);
|
8634
|
+
}
|
8635
|
+
});
|
8636
|
+
}
|
8493
8637
|
}), React__default.createElement(DialogActions, {
|
8494
8638
|
sx: {
|
8495
8639
|
display: 'flex',
|
@@ -8712,7 +8856,6 @@ var iconSendMessage = function iconSendMessage(_ref) {
|
|
8712
8856
|
|
8713
8857
|
var InputChat = function InputChat(_ref) {
|
8714
8858
|
var text = _ref.text,
|
8715
|
-
inputRef = _ref.inputRef,
|
8716
8859
|
onChangeInput = _ref.onChangeInput,
|
8717
8860
|
onSubmit = _ref.onSubmit,
|
8718
8861
|
isCompleted = _ref.isCompleted,
|
@@ -8725,15 +8868,6 @@ var InputChat = function InputChat(_ref) {
|
|
8725
8868
|
var handleSubmit = function handleSubmit() {
|
8726
8869
|
onSubmit();
|
8727
8870
|
};
|
8728
|
-
var handleInputChange = function handleInputChange(event) {
|
8729
|
-
onChangeInput(event.target.value);
|
8730
|
-
};
|
8731
|
-
var handleKeyPressEnter = function handleKeyPressEnter(e) {
|
8732
|
-
if (e.key === "Enter") {
|
8733
|
-
handleSubmit();
|
8734
|
-
return;
|
8735
|
-
}
|
8736
|
-
};
|
8737
8871
|
var handleSelectedFile = function handleSelectedFile(e) {
|
8738
8872
|
var files = e.target.files;
|
8739
8873
|
handleUploadImage(files[0]);
|
@@ -8756,8 +8890,8 @@ var InputChat = function InputChat(_ref) {
|
|
8756
8890
|
width: "100%"
|
8757
8891
|
}, React__default.createElement(Box, {
|
8758
8892
|
display: "flex",
|
8759
|
-
border: "1px solid #97A1AF",
|
8760
|
-
borderRadius: "6px",
|
8893
|
+
border: selectedFile ? "1px solid #97A1AF" : undefined,
|
8894
|
+
borderRadius: selectedFile ? "6px" : undefined,
|
8761
8895
|
flexDirection: "column"
|
8762
8896
|
}, selectedFile && React__default.createElement("div", {
|
8763
8897
|
style: {
|
@@ -8783,17 +8917,9 @@ var InputChat = function InputChat(_ref) {
|
|
8783
8917
|
}, React__default.createElement(IoCloseOutline, {
|
8784
8918
|
color: "#fff",
|
8785
8919
|
size: 30
|
8786
|
-
}))), React__default.createElement(
|
8787
|
-
|
8788
|
-
|
8789
|
-
border: "none"
|
8790
|
-
},
|
8791
|
-
placeholder: t("send_message"),
|
8792
|
-
ref: inputRef,
|
8793
|
-
value: text,
|
8794
|
-
width: "100%",
|
8795
|
-
onKeyPress: handleKeyPressEnter,
|
8796
|
-
onChange: handleInputChange,
|
8920
|
+
}))), React__default.createElement(TinyChatEditor, {
|
8921
|
+
initValue: text,
|
8922
|
+
onChange: onChangeInput,
|
8797
8923
|
disabled: isCompleted
|
8798
8924
|
})), React__default.createElement(Typography, {
|
8799
8925
|
fontWeight: 500,
|
@@ -8803,8 +8929,8 @@ var InputChat = function InputChat(_ref) {
|
|
8803
8929
|
}, t('this_is_the_guidance_text'))), React__default.createElement(Box, {
|
8804
8930
|
display: "flex",
|
8805
8931
|
flexDirection: "column",
|
8806
|
-
justifyContent: "flex-
|
8807
|
-
alignItems: "flex-
|
8932
|
+
justifyContent: "flex-start",
|
8933
|
+
alignItems: "flex-end",
|
8808
8934
|
gap: "16px"
|
8809
8935
|
}, React__default.createElement(Button, {
|
8810
8936
|
variant: "contained",
|
@@ -9123,7 +9249,6 @@ var ChatContainer = function ChatContainer(_ref) {
|
|
9123
9249
|
onReachTop = _ref.onReachTop,
|
9124
9250
|
onReachBottom = _ref.onReachBottom,
|
9125
9251
|
onEndScrollToEnd = _ref.onEndScrollToEnd;
|
9126
|
-
var inputRef = useRef(null);
|
9127
9252
|
var listRef = useRef(null);
|
9128
9253
|
var listItemRef = useRef(null);
|
9129
9254
|
var scrollRef = useRef();
|
@@ -9206,9 +9331,7 @@ var ChatContainer = function ChatContainer(_ref) {
|
|
9206
9331
|
className: "d-flex justify-content-center align-items-center"
|
9207
9332
|
}, React__default.createElement(CircularProgress, null)), React__default.createElement(ChatList, Object.assign({}, chatListProps, {
|
9208
9333
|
listItemRef: listItemRef
|
9209
|
-
}))), React__default.createElement(InputChat, Object.assign({}, inputProps
|
9210
|
-
inputRef: inputRef
|
9211
|
-
})));
|
9334
|
+
}))), React__default.createElement(InputChat, Object.assign({}, inputProps)));
|
9212
9335
|
};
|
9213
9336
|
|
9214
9337
|
var MessageSortBy;
|
@@ -10940,7 +11063,11 @@ var useLoginPhoneNumber = function useLoginPhoneNumber(props) {
|
|
10940
11063
|
});
|
10941
11064
|
}, function (error) {
|
10942
11065
|
var _error$response, _error$response2, _error$response2$data;
|
10943
|
-
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") toast.error(t("duplicate_passcode_for_siblings_please_contact_admin_for_assistance"));else
|
11066
|
+
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") toast.error(t("duplicate_passcode_for_siblings_please_contact_admin_for_assistance"));else {
|
11067
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
11068
|
+
localStorage.removeItem(LEARNING_SPACE);
|
11069
|
+
toast.error(getErrorMessage(t, error));
|
11070
|
+
}
|
10944
11071
|
});
|
10945
11072
|
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
10946
11073
|
} catch (e) {
|
@@ -11469,7 +11596,8 @@ var useLogin$1 = function useLogin(_ref) {
|
|
11469
11596
|
}();
|
11470
11597
|
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
11471
11598
|
}, function (error) {
|
11472
|
-
|
11599
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
11600
|
+
localStorage.removeItem(LEARNING_SPACE);
|
11473
11601
|
toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
11474
11602
|
});
|
11475
11603
|
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
|
@@ -11565,6 +11693,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
11565
11693
|
error = _useState8[0],
|
11566
11694
|
setError = _useState8[1];
|
11567
11695
|
var firstLoadRef = useRef(true);
|
11696
|
+
var hasErrorRef = useRef(false);
|
11568
11697
|
var onVerify = useCallback(function (token) {
|
11569
11698
|
setTokenReCaptcha(token);
|
11570
11699
|
}, []);
|
@@ -11580,7 +11709,8 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
11580
11709
|
if (!tokenReCaptcha) return Promise.resolve();
|
11581
11710
|
resetData();
|
11582
11711
|
setLoadingQR(true);
|
11583
|
-
if (!academyDomain) localStorage.setItem(LEARNING_SPACE, "true");
|
11712
|
+
if (!academyDomain || hasErrorRef.current) localStorage.setItem(LEARNING_SPACE, "true");
|
11713
|
+
if (hasErrorRef.current) localStorage.removeItem(ACADEMY_DOMAIN);
|
11584
11714
|
var _temp = _catch(function () {
|
11585
11715
|
return Promise.resolve(generateQRCode(academyDomain, tokenReCaptcha)).then(function (response) {
|
11586
11716
|
setQrCodeData(response.data);
|
@@ -11601,6 +11731,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
11601
11731
|
setInfo(recievedData === null || recievedData === void 0 ? void 0 : recievedData.data);
|
11602
11732
|
setStatus(QRCodeStatus.Scanned);
|
11603
11733
|
} catch (error) {
|
11734
|
+
hasErrorRef.current = true;
|
11604
11735
|
setInvalid(true);
|
11605
11736
|
}
|
11606
11737
|
};
|
@@ -11906,7 +12037,8 @@ var useLoginWithEmail = function useLoginWithEmail(_ref) {
|
|
11906
12037
|
}), token, redirectUrl);
|
11907
12038
|
});
|
11908
12039
|
}, function (error) {
|
11909
|
-
|
12040
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
12041
|
+
localStorage.removeItem(LEARNING_SPACE);
|
11910
12042
|
toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
11911
12043
|
});
|
11912
12044
|
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
@@ -12026,7 +12158,8 @@ var useLogin$2 = function useLogin(_ref) {
|
|
12026
12158
|
}), token, redirectUrl);
|
12027
12159
|
});
|
12028
12160
|
}, function (error) {
|
12029
|
-
|
12161
|
+
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
12162
|
+
localStorage.removeItem(LEARNING_SPACE);
|
12030
12163
|
toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
12031
12164
|
}));
|
12032
12165
|
} catch (e) {
|
@@ -14369,6 +14502,48 @@ var iconCloseDialog = function iconCloseDialog(_ref) {
|
|
14369
14502
|
}));
|
14370
14503
|
};
|
14371
14504
|
|
14505
|
+
var NoteTinyEditor = function NoteTinyEditor(_ref) {
|
14506
|
+
var _ref$disabled = _ref.disabled,
|
14507
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
14508
|
+
onChange = _ref.onChange,
|
14509
|
+
initValue = _ref.initValue,
|
14510
|
+
config = _ref.config;
|
14511
|
+
var isFirstChange = useRef(true);
|
14512
|
+
var _useTranslation = useTranslation(),
|
14513
|
+
t = _useTranslation.t;
|
14514
|
+
useEffect(function () {
|
14515
|
+
if (window.tinymce) {
|
14516
|
+
window.tinymce = tinymce;
|
14517
|
+
}
|
14518
|
+
}, []);
|
14519
|
+
var options = {
|
14520
|
+
height: 280,
|
14521
|
+
menubar: false,
|
14522
|
+
readonly: false,
|
14523
|
+
external_plugins: {
|
14524
|
+
tiny_mce_wiris: '/editor/wiris-for-tinymce.js'
|
14525
|
+
},
|
14526
|
+
plugins: ['anchor', 'autolink', 'charmap', 'codesample', 'emoticons', 'image', 'link', 'lists', 'media', 'searchreplace', 'table', 'textcolor', 'wordcount'],
|
14527
|
+
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',
|
14528
|
+
branding: false,
|
14529
|
+
extended_valid_elements: '*[.*]',
|
14530
|
+
placeholder: t("the_problem_is_difficult")
|
14531
|
+
};
|
14532
|
+
var handleChange = function handleChange(value, _) {
|
14533
|
+
if (isFirstChange.current) {
|
14534
|
+
isFirstChange.current = false;
|
14535
|
+
return;
|
14536
|
+
}
|
14537
|
+
onChange(value);
|
14538
|
+
};
|
14539
|
+
return React__default.createElement(Editor, {
|
14540
|
+
disabled: disabled,
|
14541
|
+
init: config || options,
|
14542
|
+
value: initValue,
|
14543
|
+
onEditorChange: handleChange
|
14544
|
+
});
|
14545
|
+
};
|
14546
|
+
|
14372
14547
|
var schema$1 = object().shape({
|
14373
14548
|
content: string().required()
|
14374
14549
|
});
|
@@ -14385,37 +14560,12 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
|
|
14385
14560
|
var handleSaveNote = function handleSaveNote(content) {
|
14386
14561
|
onSaveNote(content);
|
14387
14562
|
};
|
14388
|
-
var _useState = useState(false),
|
14389
|
-
keyboardOpen = _useState[0],
|
14390
|
-
setKeyboardOpen = _useState[1];
|
14391
|
-
useEffect(function () {
|
14392
|
-
var handleResize = function handleResize() {
|
14393
|
-
if (window.innerHeight < window.outerHeight) {
|
14394
|
-
setKeyboardOpen(true);
|
14395
|
-
} else {
|
14396
|
-
setKeyboardOpen(false);
|
14397
|
-
}
|
14398
|
-
};
|
14399
|
-
window.addEventListener("resize", handleResize);
|
14400
|
-
handleResize();
|
14401
|
-
return function () {
|
14402
|
-
return window.removeEventListener("resize", handleResize);
|
14403
|
-
};
|
14404
|
-
}, []);
|
14405
14563
|
return React__default.createElement(Dialog, {
|
14406
14564
|
onClose: onClose,
|
14407
14565
|
open: open,
|
14566
|
+
maxWidth: "md",
|
14408
14567
|
scroll: "body",
|
14409
|
-
|
14410
|
-
sx: {
|
14411
|
-
maxHeight: "unset",
|
14412
|
-
minWidth: "363px",
|
14413
|
-
overflowY: "auto",
|
14414
|
-
position: "relative",
|
14415
|
-
bottom: keyboardOpen ? "0" : undefined,
|
14416
|
-
transition: "top 0.3s ease"
|
14417
|
-
}
|
14418
|
-
}
|
14568
|
+
fullWidth: true
|
14419
14569
|
}, React__default.createElement(DialogTitle$1, {
|
14420
14570
|
id: "customized-dialog-title"
|
14421
14571
|
}, React__default.createElement(Typography$1, {
|
@@ -14444,7 +14594,8 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
|
|
14444
14594
|
handleSaveNote(values.content);
|
14445
14595
|
}
|
14446
14596
|
}, function (_ref2) {
|
14447
|
-
var values = _ref2.values
|
14597
|
+
var values = _ref2.values,
|
14598
|
+
setFieldValue = _ref2.setFieldValue;
|
14448
14599
|
return React__default.createElement(Form, null, React__default.createElement(DialogContent$1, {
|
14449
14600
|
sx: {
|
14450
14601
|
padding: 0,
|
@@ -14473,16 +14624,22 @@ var ClassNoteDialog = function ClassNoteDialog(_ref) {
|
|
14473
14624
|
flexDirection: "row",
|
14474
14625
|
alignItems: "center"
|
14475
14626
|
}, React__default.createElement(Field, {
|
14476
|
-
as: "textarea",
|
14477
|
-
rows: 3,
|
14478
14627
|
id: "content-question",
|
14479
14628
|
style: {
|
14480
|
-
|
14481
|
-
minHeight: "64px"
|
14629
|
+
width: "100%"
|
14482
14630
|
},
|
14483
14631
|
name: "content",
|
14484
14632
|
placeholder: t("the_problem_is_difficult"),
|
14485
|
-
className: styles["form-control"]
|
14633
|
+
className: styles["form-control"],
|
14634
|
+
render: function render(_ref3) {
|
14635
|
+
var field = _ref3.field;
|
14636
|
+
return React__default.createElement(NoteTinyEditor, {
|
14637
|
+
initValue: field.value,
|
14638
|
+
onChange: function onChange(text) {
|
14639
|
+
return setFieldValue("content", text);
|
14640
|
+
}
|
14641
|
+
});
|
14642
|
+
}
|
14486
14643
|
})), React__default.createElement(Box, {
|
14487
14644
|
marginBottom: "4px"
|
14488
14645
|
})))), React__default.createElement(DialogActions$1, {
|
@@ -14972,7 +15129,18 @@ var NoteItem = function NoteItem(_ref) {
|
|
14972
15129
|
number: (data.questionOrder || 0) + 1
|
14973
15130
|
}) : "" + utcToLocalTime(data.createdAt, t("date_format") + " HH:mm")), data.examSessionId && React__default.createElement(Typography, Object.assign({}, NoteItemStyles.text.right), data.categoryName)), React__default.createElement(Typography, Object.assign({
|
14974
15131
|
className: "truncate"
|
14975
|
-
}, NoteItemStyles.contentText
|
15132
|
+
}, NoteItemStyles.contentText, {
|
15133
|
+
sx: {
|
15134
|
+
display: "-webkit-box",
|
15135
|
+
lineClamp: 1,
|
15136
|
+
WebkitLineClamp: 1,
|
15137
|
+
WebkitBoxOrient: "vertical",
|
15138
|
+
overflow: "hidden"
|
15139
|
+
},
|
15140
|
+
dangerouslySetInnerHTML: {
|
15141
|
+
__html: data.content || ""
|
15142
|
+
}
|
15143
|
+
}))), React__default.createElement(Box, null, (isAdmin || data.isOwned) && React__default.createElement(ClickAwayListener, {
|
14976
15144
|
onClickAway: onClose
|
14977
15145
|
}, React__default.createElement(Box, null, React__default.createElement(CustomTooltip, {
|
14978
15146
|
onClose: onClose,
|
@@ -15172,8 +15340,11 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15172
15340
|
fontSize: "14px",
|
15173
15341
|
fontWeight: "300",
|
15174
15342
|
color: "#414E62"
|
15343
|
+
},
|
15344
|
+
dangerouslySetInnerHTML: {
|
15345
|
+
__html: (data === null || data === void 0 ? void 0 : data.content) || ""
|
15175
15346
|
}
|
15176
|
-
}
|
15347
|
+
})));
|
15177
15348
|
};
|
15178
15349
|
|
15179
15350
|
var useVirtualList = function useVirtualList(studentId, defaultFilter, getItemsApi) {
|
@@ -23489,6 +23660,7 @@ var Textbook = function Textbook(_ref) {
|
|
23489
23660
|
getTextbookList = _ref.getTextbookList,
|
23490
23661
|
onViewQA = _ref.onViewQA;
|
23491
23662
|
var isTabletUp = useMediaQuery(theme.breakpoints.up("lg"));
|
23663
|
+
var isStudentSite = role === Role.Student;
|
23492
23664
|
var _useDrawer = useDrawer(),
|
23493
23665
|
isOpenDialog = _useDrawer.isOpenDialog,
|
23494
23666
|
handleCloseDialog = _useDrawer.handleCloseDialog,
|
@@ -23503,6 +23675,9 @@ var Textbook = function Textbook(_ref) {
|
|
23503
23675
|
handleOpenConfirmDialog = _useTextbook.handleOpenConfirmDialog,
|
23504
23676
|
handleCloseConfirmDialog = _useTextbook.handleCloseConfirmDialog,
|
23505
23677
|
handleDeleteTextbook = _useTextbook.handleDeleteTextbook;
|
23678
|
+
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) {
|
23679
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
23680
|
+
}));
|
23506
23681
|
return React__default.createElement(Stack, {
|
23507
23682
|
sx: {
|
23508
23683
|
border: 1,
|
@@ -23515,16 +23690,19 @@ var Textbook = function Textbook(_ref) {
|
|
23515
23690
|
sx: {
|
23516
23691
|
gap: "24px",
|
23517
23692
|
flexDirection: "row",
|
23518
|
-
alignItems: "center"
|
23519
|
-
cursor: "pointer"
|
23693
|
+
alignItems: "center"
|
23520
23694
|
}
|
23521
23695
|
}, React__default.createElement("img", {
|
23522
23696
|
style: {
|
23523
23697
|
objectFit: "contain",
|
23524
|
-
height: "100%"
|
23698
|
+
height: "100%",
|
23699
|
+
cursor: !isStudentSite ? "pointer" : undefined
|
23525
23700
|
},
|
23526
23701
|
width: 68,
|
23527
|
-
src: textbook.coverImage
|
23702
|
+
src: textbook.coverImage,
|
23703
|
+
onClick: function onClick() {
|
23704
|
+
return !isStudentSite && handleOpenDetailDialog();
|
23705
|
+
}
|
23528
23706
|
}), React__default.createElement(Stack, null, React__default.createElement(Stack, {
|
23529
23707
|
flexDirection: "row"
|
23530
23708
|
}, React__default.createElement(Typography, {
|
@@ -23534,7 +23712,16 @@ var Textbook = function Textbook(_ref) {
|
|
23534
23712
|
}, t("test_name")), React__default.createElement(Typography, {
|
23535
23713
|
fontSize: "14px",
|
23536
23714
|
color: styles.gray_900,
|
23537
|
-
fontWeight: 700
|
23715
|
+
fontWeight: 700,
|
23716
|
+
sx: _extends({}, !isStudentSite && {
|
23717
|
+
"&:hover": {
|
23718
|
+
color: styles.less_dark
|
23719
|
+
},
|
23720
|
+
cursor: "pointer"
|
23721
|
+
}),
|
23722
|
+
onClick: function onClick() {
|
23723
|
+
return !isStudentSite && handleOpenDetailDialog();
|
23724
|
+
}
|
23538
23725
|
}, textbook.name)), React__default.createElement(Stack, {
|
23539
23726
|
flexDirection: "row"
|
23540
23727
|
}, React__default.createElement(Typography, {
|
@@ -23576,9 +23763,7 @@ var Textbook = function Textbook(_ref) {
|
|
23576
23763
|
onClick: handleOpenDialog
|
23577
23764
|
}, React__default.createElement(FaBookOpen, {
|
23578
23765
|
size: "20px"
|
23579
|
-
}), t("test_start")),
|
23580
|
-
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
23581
|
-
}))) && React__default.createElement(Button, {
|
23766
|
+
}), t("test_start")), isEditable && React__default.createElement(Button, {
|
23582
23767
|
variant: "outlined",
|
23583
23768
|
sx: {
|
23584
23769
|
width: "fit-content",
|
@@ -25456,6 +25641,12 @@ var updateClassApi = function updateClassApi(id, model) {
|
|
25456
25641
|
var deleteClassApi = function deleteClassApi(id) {
|
25457
25642
|
return api["delete"](CLASS_URL + "/" + id);
|
25458
25643
|
};
|
25644
|
+
var hiddenClassesApi = function hiddenClassesApi(hidden, classId) {
|
25645
|
+
return api.post(CLASS_URL + "/hidden", {
|
25646
|
+
hidden: hidden,
|
25647
|
+
courseIds: [classId]
|
25648
|
+
});
|
25649
|
+
};
|
25459
25650
|
var addStudentToClass = function addStudentToClass(id, studentIds) {
|
25460
25651
|
return api.post(CLASS_URL + "/" + id + "/students", studentIds);
|
25461
25652
|
};
|
@@ -26989,6 +27180,27 @@ var useClassList = function useClassList(history, classCreateUrl, classUpdateUrl
|
|
26989
27180
|
var handleUpdateClass = function handleUpdateClass(value) {
|
26990
27181
|
value.id && classUpdateUrl && pushTo(history, "" + classUpdateUrl.replace(":id", "" + value.id));
|
26991
27182
|
};
|
27183
|
+
var handleToggleHidden = function handleToggleHidden(e, classId) {
|
27184
|
+
try {
|
27185
|
+
var _temp5 = function _temp5() {
|
27186
|
+
dispatch(setLoading(false));
|
27187
|
+
};
|
27188
|
+
var checked = e.target.checked;
|
27189
|
+
dispatch(setLoading(true));
|
27190
|
+
var _temp4 = _catch(function () {
|
27191
|
+
return Promise.resolve(hiddenClassesApi(checked, classId)).then(function () {
|
27192
|
+
return Promise.resolve(getClassList()).then(function () {
|
27193
|
+
toast.success(t("update_data_successfully"));
|
27194
|
+
});
|
27195
|
+
});
|
27196
|
+
}, function (error) {
|
27197
|
+
toast.error(getErrorMessage(t, error));
|
27198
|
+
});
|
27199
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
|
27200
|
+
} catch (e) {
|
27201
|
+
return Promise.reject(e);
|
27202
|
+
}
|
27203
|
+
};
|
26992
27204
|
var handleChangePage = function handleChangePage(_, page) {
|
26993
27205
|
setClassFilter(_extends({}, classFilter, {
|
26994
27206
|
currentPage: page
|
@@ -27014,7 +27226,8 @@ var useClassList = function useClassList(history, classCreateUrl, classUpdateUrl
|
|
27014
27226
|
handleCreateClass: handleCreateClass,
|
27015
27227
|
handleUpdateClass: handleUpdateClass,
|
27016
27228
|
handleChangePage: handleChangePage,
|
27017
|
-
handleDeleteClass: handleDeleteClass
|
27229
|
+
handleDeleteClass: handleDeleteClass,
|
27230
|
+
handleToggleHidden: handleToggleHidden
|
27018
27231
|
};
|
27019
27232
|
};
|
27020
27233
|
|
@@ -27027,7 +27240,15 @@ var ClassList = function ClassList(_ref) {
|
|
27027
27240
|
var _state$common, _state$common$user;
|
27028
27241
|
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;
|
27029
27242
|
});
|
27030
|
-
var isAdmin =
|
27243
|
+
var isAdmin = useSelector(function (state) {
|
27244
|
+
var _state$common2, _state$common2$user, _state$common2$user$r;
|
27245
|
+
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(Role.Admin);
|
27246
|
+
});
|
27247
|
+
var isTeacher = useSelector(function (state) {
|
27248
|
+
var _state$common3, _state$common3$user, _state$common3$user$r;
|
27249
|
+
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(Role.Teacher);
|
27250
|
+
}) && !isAdmin;
|
27251
|
+
var isAdminSite = role === Role.Admin;
|
27031
27252
|
var _useClassList = useClassList(history, classCreateUrl, classUpdateUrl),
|
27032
27253
|
t = _useClassList.t,
|
27033
27254
|
paging = _useClassList.paging,
|
@@ -27042,7 +27263,11 @@ var ClassList = function ClassList(_ref) {
|
|
27042
27263
|
handleCreateClass = _useClassList.handleCreateClass,
|
27043
27264
|
handleUpdateClass = _useClassList.handleUpdateClass,
|
27044
27265
|
handleChangePage = _useClassList.handleChangePage,
|
27045
|
-
handleDeleteClass = _useClassList.handleDeleteClass
|
27266
|
+
handleDeleteClass = _useClassList.handleDeleteClass,
|
27267
|
+
handleToggleHidden = _useClassList.handleToggleHidden;
|
27268
|
+
var headers = !isTeacher ? CLASS_HEADERS : [].concat(CLASS_HEADERS.slice(0, -1), [{
|
27269
|
+
title: "hidden"
|
27270
|
+
}], CLASS_HEADERS.slice(-1));
|
27046
27271
|
return React__default.createElement(Box, null, React__default.createElement(Stack, {
|
27047
27272
|
direction: "row",
|
27048
27273
|
alignItems: "center",
|
@@ -27050,7 +27275,7 @@ var ClassList = function ClassList(_ref) {
|
|
27050
27275
|
mb: 2
|
27051
27276
|
}, React__default.createElement(Typography, {
|
27052
27277
|
variant: "h4"
|
27053
|
-
}, t("classes")), (
|
27278
|
+
}, t("classes")), (isAdminSite || isSuperAdmin) && React__default.createElement(MButton, {
|
27054
27279
|
variant: "contained",
|
27055
27280
|
color: "inherit",
|
27056
27281
|
startIcon: React__default.createElement(FaPlus, {
|
@@ -27073,7 +27298,7 @@ var ClassList = function ClassList(_ref) {
|
|
27073
27298
|
}), React__default.createElement(Grid, {
|
27074
27299
|
item: true,
|
27075
27300
|
xs: 12
|
27076
|
-
}, React__default.createElement(TableContainer, null, React__default.createElement(Table$1, null, React__default.createElement(TableHead$1, null, React__default.createElement(TableRow$1, null,
|
27301
|
+
}, React__default.createElement(TableContainer, null, React__default.createElement(Table$1, null, React__default.createElement(TableHead$1, null, React__default.createElement(TableRow$1, null, headers.map(function (i, index) {
|
27077
27302
|
return React__default.createElement(TableCell$1, {
|
27078
27303
|
key: index,
|
27079
27304
|
onClick: !!i.sortKey ? function () {
|
@@ -27090,7 +27315,13 @@ var ClassList = function ClassList(_ref) {
|
|
27090
27315
|
key: i.id
|
27091
27316
|
}, React__default.createElement(TableCell$1, null, (paging.page - 1) * paging.limit + index + 1), React__default.createElement(TableCell$1, {
|
27092
27317
|
className: "text-nowrap"
|
27093
|
-
}, i.name), React__default.createElement(TableCell$1, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell$1, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell$1, null, i.totalStudents), React__default.createElement(TableCell$1, null, i.totalTeachers), React__default.createElement(TableCell$1, null, i.totalLessons), React__default.createElement(TableCell$1, null,
|
27318
|
+
}, i.name), React__default.createElement(TableCell$1, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell$1, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell$1, null, i.totalStudents), React__default.createElement(TableCell$1, null, i.totalTeachers), React__default.createElement(TableCell$1, null, i.totalLessons), isTeacher && React__default.createElement(TableCell$1, null, React__default.createElement(Switch, {
|
27319
|
+
checked: i.hidden,
|
27320
|
+
onChange: function onChange(e) {
|
27321
|
+
var _i$id;
|
27322
|
+
return handleToggleHidden(e, (_i$id = i.id) != null ? _i$id : 0);
|
27323
|
+
}
|
27324
|
+
})), React__default.createElement(TableCell$1, null, (isAdminSite || isSuperAdmin) && React__default.createElement("div", {
|
27094
27325
|
className: "d-flex"
|
27095
27326
|
}, React__default.createElement(IconButton, {
|
27096
27327
|
color: "default",
|
@@ -27108,7 +27339,7 @@ var ClassList = function ClassList(_ref) {
|
|
27108
27339
|
}
|
27109
27340
|
}, React__default.createElement(FaTrashCan, {
|
27110
27341
|
size: 12
|
27111
|
-
}))), !(
|
27342
|
+
}))), !(isAdminSite || isSuperAdmin) && React__default.createElement(IconButton, {
|
27112
27343
|
color: "default",
|
27113
27344
|
className: "bg-primary text-white me-1",
|
27114
27345
|
onClick: function onClick() {
|
@@ -28487,10 +28718,10 @@ var RecentUserActionDialog = function RecentUserActionDialog(_ref) {
|
|
28487
28718
|
}
|
28488
28719
|
}, t(i.title)));
|
28489
28720
|
}))), React__default.createElement(TableBody, null, recentUserActions === null || recentUserActions === void 0 ? void 0 : recentUserActions.map(function (i, index) {
|
28490
|
-
var _i$targetUser, _i$targetUser2;
|
28721
|
+
var _i$targetUser, _i$targetUser2, _RecentUserActionName, _RecentUserActionName2;
|
28491
28722
|
return React__default.createElement(TableRow, {
|
28492
28723
|
key: i.id
|
28493
|
-
}, React__default.createElement(TableCell, null, index + 1), React__default.createElement(TableCell, null, ((_i$targetUser = i.targetUser) === null || _i$targetUser === void 0 ? void 0 : _i$targetUser.fullName) || ''), React__default.createElement(TableCell, null, formatRole((_i$targetUser2 = i.targetUser) === null || _i$targetUser2 === void 0 ? void 0 : _i$targetUser2.roles, t)), React__default.createElement(TableCell, null, t(RecentUserActionNames[i.action] || '')), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))));
|
28724
|
+
}, React__default.createElement(TableCell, null, index + 1), React__default.createElement(TableCell, null, ((_i$targetUser = i.targetUser) === null || _i$targetUser === void 0 ? void 0 : _i$targetUser.fullName) || ''), React__default.createElement(TableCell, null, formatRole((_i$targetUser2 = i.targetUser) === null || _i$targetUser2 === void 0 ? void 0 : _i$targetUser2.roles, t)), React__default.createElement(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(TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))));
|
28494
28725
|
}), !(recentUserActions !== null && recentUserActions !== void 0 && recentUserActions.length) && React__default.createElement(TableRow, null, React__default.createElement(TableCell, {
|
28495
28726
|
sx: {
|
28496
28727
|
textAlign: 'center'
|
@@ -32469,16 +32700,18 @@ var TypeNotificationEnum;
|
|
32469
32700
|
TypeNotificationEnum[TypeNotificationEnum["Class"] = 2] = "Class";
|
32470
32701
|
TypeNotificationEnum[TypeNotificationEnum["Student"] = 3] = "Student";
|
32471
32702
|
})(TypeNotificationEnum || (TypeNotificationEnum = {}));
|
32472
|
-
var optionTypeNotification =
|
32473
|
-
|
32474
|
-
|
32475
|
-
|
32476
|
-
|
32477
|
-
|
32478
|
-
|
32479
|
-
|
32480
|
-
|
32481
|
-
|
32703
|
+
var optionTypeNotification = function optionTypeNotification(t) {
|
32704
|
+
return [{
|
32705
|
+
value: TypeNotificationEnum.Academy,
|
32706
|
+
label: t("academy")
|
32707
|
+
}, {
|
32708
|
+
value: TypeNotificationEnum.Class,
|
32709
|
+
label: t("class")
|
32710
|
+
}, {
|
32711
|
+
value: TypeNotificationEnum.Student,
|
32712
|
+
label: t("student")
|
32713
|
+
}];
|
32714
|
+
};
|
32482
32715
|
var NotificationSortBy;
|
32483
32716
|
(function (NotificationSortBy) {
|
32484
32717
|
NotificationSortBy["CreatedAt"] = "CreatedAt";
|
@@ -32494,7 +32727,7 @@ var OrderBy$3;
|
|
32494
32727
|
var NOTIFICATION_HEADERS = [{
|
32495
32728
|
title: "#"
|
32496
32729
|
}, {
|
32497
|
-
title: "
|
32730
|
+
title: "notification_title",
|
32498
32731
|
sortKey: NotificationSortBy.Name
|
32499
32732
|
}, {
|
32500
32733
|
title: "type",
|
@@ -32708,6 +32941,10 @@ var NotificationForm = function NotificationForm(_ref) {
|
|
32708
32941
|
formikProp.setValues(_extends({}, DEFAULT_NOTIFICATION_REQUEST));
|
32709
32942
|
}
|
32710
32943
|
}, [JSON.stringify(data)]);
|
32944
|
+
var optionTypes = optionTypeNotification(t);
|
32945
|
+
var notificationTypes = isAdmin ? optionTypes : optionTypes.filter(function (i) {
|
32946
|
+
return i.value !== TypeNotificationEnum.Academy;
|
32947
|
+
});
|
32711
32948
|
return React__default.createElement("div", {
|
32712
32949
|
className: "d-flex flex-column"
|
32713
32950
|
}, React__default.createElement(Grid, {
|
@@ -32722,14 +32959,14 @@ var NotificationForm = function NotificationForm(_ref) {
|
|
32722
32959
|
}, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
|
32723
32960
|
className: "mb-2 fw-bold",
|
32724
32961
|
htmlFor: "class_name"
|
32725
|
-
}, t("
|
32962
|
+
}, t("notification_title"), " ", React__default.createElement("span", {
|
32726
32963
|
className: "text-danger"
|
32727
32964
|
}, "*")), React__default.createElement(InputText, {
|
32728
32965
|
id: "name",
|
32729
32966
|
disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
|
32730
32967
|
value: formikProp.values.name,
|
32731
32968
|
onChange: handleChangeClassTitle,
|
32732
|
-
placeholder: t("
|
32969
|
+
placeholder: t("notification_title")
|
32733
32970
|
}), formikProp.touched.name && formikProp.errors.name ? React__default.createElement("div", {
|
32734
32971
|
className: "mt-1"
|
32735
32972
|
}, React__default.createElement(ErrorHandler, {
|
@@ -32764,9 +33001,7 @@ var NotificationForm = function NotificationForm(_ref) {
|
|
32764
33001
|
className: "" + styles$9["teacher-selector-wrapper"]
|
32765
33002
|
}, React__default.createElement(TypeSelector, {
|
32766
33003
|
disabled: !isAdmin && (!!id && !(data !== null && data !== void 0 && data.isOwned) || isTeacherAdmin),
|
32767
|
-
optionTypeNotification:
|
32768
|
-
return i.value !== TypeNotificationEnum.Academy;
|
32769
|
-
}),
|
33004
|
+
optionTypeNotification: notificationTypes,
|
32770
33005
|
value: formikProp.values.type,
|
32771
33006
|
onChange: handleChangeType
|
32772
33007
|
}), formikProp.touched.type && formikProp.errors.type ? React__default.createElement("div", {
|
@@ -33061,6 +33296,10 @@ var NotificationList = function NotificationList(_ref) {
|
|
33061
33296
|
handleDeleteNotification = _useNotificationList.handleDeleteNotification,
|
33062
33297
|
onChangeFilterType = _useNotificationList.onChangeFilterType;
|
33063
33298
|
var Wrapper = as || Container$1;
|
33299
|
+
var optionTypes = optionTypeNotification(t);
|
33300
|
+
var notificationTypes = isAdmin ? optionTypes : optionTypes.filter(function (i) {
|
33301
|
+
return i.value !== TypeNotificationEnum.Academy;
|
33302
|
+
});
|
33064
33303
|
return React__default.createElement(Wrapper, {
|
33065
33304
|
maxWidth: "xl",
|
33066
33305
|
className: "bg-white pt-5 p-4 rounded-4 " + className
|
@@ -33101,9 +33340,7 @@ var NotificationList = function NotificationList(_ref) {
|
|
33101
33340
|
item: true,
|
33102
33341
|
xs: 6
|
33103
33342
|
}, React__default.createElement(SelectFilterType, {
|
33104
|
-
optionTypeNotification:
|
33105
|
-
return i.value !== TypeNotificationEnum.Academy;
|
33106
|
-
}),
|
33343
|
+
optionTypeNotification: notificationTypes,
|
33107
33344
|
value: notificationFilter.type,
|
33108
33345
|
onChange: onChangeFilterType
|
33109
33346
|
})))), React__default.createElement(Grid, {
|
@@ -38204,6 +38441,7 @@ var Header = function Header(_ref) {
|
|
38204
38441
|
}, [isTeacherSide, language]);
|
38205
38442
|
return React__default.createElement(Stack, {
|
38206
38443
|
width: "100%",
|
38444
|
+
height: "78px",
|
38207
38445
|
display: "flex",
|
38208
38446
|
flexDirection: "row",
|
38209
38447
|
gap: {
|