touchstudy-core 0.1.97 → 0.1.99
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/Buttons/ActionButtons.d.ts +1 -0
- package/dist/containers/Classes/hooks/useClassDetail.d.ts +1 -1
- package/dist/containers/Classes/hooks/useLessonClassList.d.ts +1 -1
- package/dist/containers/Textbooks/apiClient/textbookService.d.ts +3 -1
- package/dist/containers/Textbooks/components/TextbookShareDialog.d.ts +26 -0
- package/dist/containers/Textbooks/configs/constants.d.ts +12 -1
- package/dist/containers/Textbooks/configs/types.d.ts +26 -0
- package/dist/containers/Textbooks/hooks/useTextbookList.d.ts +1 -0
- package/dist/containers/Textbooks/hooks/useTextbookShare.d.ts +5 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +542 -33
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +542 -36
- package/dist/index.modern.js.map +1 -1
- package/dist/utils/constants.d.ts +2 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
@@ -9,7 +9,7 @@ import { useDispatch, useSelector } from 'react-redux';
|
|
9
9
|
import axios from 'axios';
|
10
10
|
import { useTranslation, initReactI18next } from 'react-i18next';
|
11
11
|
export { I18nextProvider, useTranslation } from 'react-i18next';
|
12
|
-
import { Paper, Card, Stack, Box, Typography, TextField, Button, Grid, Dialog, DialogTitle, IconButton, DialogContent, DialogActions, Pagination, styled, useTheme, useMediaQuery, MenuList, Tooltip, tooltipClasses, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase, List, ListItem,
|
12
|
+
import { Paper, Card, Stack, Box, Typography, TextField, Button, Grid, Dialog, DialogTitle, IconButton, DialogContent, DialogActions, Pagination, styled, useTheme, useMediaQuery, MenuList, Tooltip, tooltipClasses, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase, TableContainer, List, ListItem, Chip } from '@mui/material';
|
13
13
|
import { blue } from '@mui/material/colors';
|
14
14
|
import { GoogleReCaptcha, GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';
|
15
15
|
import { gapi } from 'gapi-script';
|
@@ -26,7 +26,7 @@ import MenuItem from '@mui/material/MenuItem';
|
|
26
26
|
import IconButton$1 from '@mui/material/IconButton';
|
27
27
|
import { GoArrowSwitch } from 'react-icons/go';
|
28
28
|
import Select, { components } from 'react-select';
|
29
|
-
import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaPlusCircle, FaTimes, FaSortUp, FaSortDown, FaEye, FaUpload } from 'react-icons/fa';
|
29
|
+
import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaPlusCircle, FaTimes, FaSortUp, FaSortDown, FaEye, FaShare, FaExchangeAlt, FaUpload } from 'react-icons/fa';
|
30
30
|
import { PiDotsNineLight } from 'react-icons/pi';
|
31
31
|
import { IoMdArrowBack } from 'react-icons/io';
|
32
32
|
import _ from 'lodash';
|
@@ -114,6 +114,7 @@ var Role;
|
|
114
114
|
Role["Teacher"] = "Teacher";
|
115
115
|
Role["Admin"] = "Admin";
|
116
116
|
Role["AcademyAdmin"] = "AcademyAdmin";
|
117
|
+
Role["AcademyAdminTeacher"] = "AcademyAdminTeacher";
|
117
118
|
})(Role || (Role = {}));
|
118
119
|
var Language;
|
119
120
|
(function (Language) {
|
@@ -250,6 +251,14 @@ var getAccessToken = (function () {
|
|
250
251
|
}
|
251
252
|
});
|
252
253
|
|
254
|
+
var getLanguage = (function () {
|
255
|
+
try {
|
256
|
+
return localStorage.getItem(LANGUAGE);
|
257
|
+
} catch (err) {
|
258
|
+
return null;
|
259
|
+
}
|
260
|
+
});
|
261
|
+
|
253
262
|
var api = axios.create({
|
254
263
|
baseURL: BASE_URL,
|
255
264
|
timeout: 0,
|
@@ -274,13 +283,15 @@ var apiUpload = axios.create({
|
|
274
283
|
var paramDomain = searchParams.get('domain');
|
275
284
|
var paramLang = searchParams.get('lang');
|
276
285
|
var academyDomainStorage = getAcademyDomain();
|
286
|
+
var langStorage = getLanguage();
|
277
287
|
var academyDomain = paramDomain || academyDomainStorage;
|
288
|
+
var language = paramLang || langStorage;
|
278
289
|
if (token) {
|
279
290
|
config.headers.Authorization = "Bearer " + token;
|
280
291
|
localStorage.setItem("LAST_TIME_REQUEST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
|
281
292
|
}
|
282
293
|
if (academyDomain && !config.headers[AcademyHeaders]) config.headers[AcademyHeaders] = "" + academyDomain;
|
283
|
-
if (
|
294
|
+
if (language) config.headers[LanguageHeaders] = "" + language;
|
284
295
|
return config;
|
285
296
|
}, function (error) {
|
286
297
|
return Promise.reject(error);
|
@@ -1187,14 +1198,6 @@ var LANGUAGES = [{
|
|
1187
1198
|
var DEFAULT_LANGUAGE = LANGUAGES[0];
|
1188
1199
|
var LOGIN_URL = "/login";
|
1189
1200
|
|
1190
|
-
var getLanguage = (function () {
|
1191
|
-
try {
|
1192
|
-
return localStorage.getItem(LANGUAGE);
|
1193
|
-
} catch (err) {
|
1194
|
-
return null;
|
1195
|
-
}
|
1196
|
-
});
|
1197
|
-
|
1198
1201
|
var useLanguage = function useLanguage(history) {
|
1199
1202
|
var dispatch = useDispatch();
|
1200
1203
|
var _useTranslation = useTranslation(),
|
@@ -2189,6 +2192,7 @@ var are_you_sure_you_want_to_delete_the_article = "정말로 기사를 삭제하
|
|
2189
2192
|
var yes = "예";
|
2190
2193
|
var no = "아니요";
|
2191
2194
|
var cancel = "취소";
|
2195
|
+
var remove = "제거하다";
|
2192
2196
|
var confirmation = "확인";
|
2193
2197
|
var student_name = "학생 이름";
|
2194
2198
|
var full_pool_time = "전체풀이시간";
|
@@ -2798,6 +2802,7 @@ var my_classes = "내 수업";
|
|
2798
2802
|
var choose = "선택하다";
|
2799
2803
|
var additional_duration = "진행중인 시험 시간 추가하기";
|
2800
2804
|
var enter_textbook_name_to_search = "검색할 교재명을 입력하세요";
|
2805
|
+
var enter_teacher_name_to_search = "선생님 이름을 입력하여 검색하세요";
|
2801
2806
|
var select_class_placeholder = "수업을 선택하세요...";
|
2802
2807
|
var user_name = "유저 이름";
|
2803
2808
|
var vulnerable_detail = "다른 학생들의 정답률은 높은데, 나는 정답을 맞추지 못한 문제들입니다.";
|
@@ -2914,6 +2919,8 @@ var view_records = "기록열람";
|
|
2914
2919
|
var delete_action = "삭제";
|
2915
2920
|
var edit_action = "수정";
|
2916
2921
|
var view_action = "열람";
|
2922
|
+
var update_shared_action = "업데이트 권한";
|
2923
|
+
var share_action = "공유하다";
|
2917
2924
|
var de_select = "선택 해제";
|
2918
2925
|
var select_output = "선택 출력";
|
2919
2926
|
var print_pdf = "PDF 인쇄";
|
@@ -2947,6 +2954,15 @@ var manage_users = "사용자 관리";
|
|
2947
2954
|
var manage_classes = "수업 관리";
|
2948
2955
|
var manage_notifications = "알림 관리";
|
2949
2956
|
var late = "늦은";
|
2957
|
+
var authority = "권한";
|
2958
|
+
var share_textbook = "교과서 공유하기";
|
2959
|
+
var notify_share_textbook = {
|
2960
|
+
share_success: "교과서를 성공적으로 공유했습니다!",
|
2961
|
+
share_fail: "교과서도 없고 선생님도 없어요!",
|
2962
|
+
update_success: "공유 교과서가 성공적으로 업데이트되었습니다!",
|
2963
|
+
update_fail: "업데이트 실패!"
|
2964
|
+
};
|
2965
|
+
var academyadminteacher = "아카데미 관리자/선생님";
|
2950
2966
|
var total_student = "총 학생 수";
|
2951
2967
|
var total_teacher = "총 교사 수";
|
2952
2968
|
var total_exam = "총 시험 수";
|
@@ -3004,6 +3020,7 @@ var lang_ko = {
|
|
3004
3020
|
yes: yes,
|
3005
3021
|
no: no,
|
3006
3022
|
cancel: cancel,
|
3023
|
+
remove: remove,
|
3007
3024
|
confirmation: confirmation,
|
3008
3025
|
student_name: student_name,
|
3009
3026
|
full_pool_time: full_pool_time,
|
@@ -3605,6 +3622,7 @@ var lang_ko = {
|
|
3605
3622
|
choose: choose,
|
3606
3623
|
additional_duration: additional_duration,
|
3607
3624
|
enter_textbook_name_to_search: enter_textbook_name_to_search,
|
3625
|
+
enter_teacher_name_to_search: enter_teacher_name_to_search,
|
3608
3626
|
"type_at_least_{number}_characters_to_search": "검색하려면 최소 {{ number }}자를 입력하세요",
|
3609
3627
|
select_class_placeholder: select_class_placeholder,
|
3610
3628
|
user_name: user_name,
|
@@ -3720,6 +3738,8 @@ var lang_ko = {
|
|
3720
3738
|
delete_action: delete_action,
|
3721
3739
|
edit_action: edit_action,
|
3722
3740
|
view_action: view_action,
|
3741
|
+
update_shared_action: update_shared_action,
|
3742
|
+
share_action: share_action,
|
3723
3743
|
de_select: de_select,
|
3724
3744
|
select_output: select_output,
|
3725
3745
|
print_pdf: print_pdf,
|
@@ -3753,6 +3773,10 @@ var lang_ko = {
|
|
3753
3773
|
manage_classes: manage_classes,
|
3754
3774
|
manage_notifications: manage_notifications,
|
3755
3775
|
late: late,
|
3776
|
+
authority: authority,
|
3777
|
+
share_textbook: share_textbook,
|
3778
|
+
notify_share_textbook: notify_share_textbook,
|
3779
|
+
academyadminteacher: academyadminteacher,
|
3756
3780
|
total_student: total_student,
|
3757
3781
|
total_teacher: total_teacher,
|
3758
3782
|
total_exam: total_exam,
|
@@ -3809,6 +3833,7 @@ var are_you_sure_you_want_to_delete_the_article$1 = "Are you sure you want to de
|
|
3809
3833
|
var yes$1 = "Yes";
|
3810
3834
|
var no$1 = "No";
|
3811
3835
|
var cancel$1 = "Cancel";
|
3836
|
+
var remove$1 = "Remove";
|
3812
3837
|
var confirmation$1 = "Confirmation";
|
3813
3838
|
var student_name$1 = "Student name";
|
3814
3839
|
var full_pool_time$1 = "Full pool time";
|
@@ -4071,6 +4096,7 @@ var parent_name$1 = "Parent name";
|
|
4071
4096
|
var users$1 = "Users";
|
4072
4097
|
var new_user$1 = "New user";
|
4073
4098
|
var academy_admin$1 = "Academy Admin";
|
4099
|
+
var academy_admin_teacher = "Academy Admin / Teacher";
|
4074
4100
|
var super_admin$1 = "Super Admin";
|
4075
4101
|
var switch_academy_admin$1 = "Switch Academy Admin";
|
4076
4102
|
var switch_academy$1 = "Switch Academy";
|
@@ -4419,6 +4445,7 @@ var my_classes$1 = "My Classes";
|
|
4419
4445
|
var choose$1 = "Choose";
|
4420
4446
|
var additional_duration$1 = "Additional duration";
|
4421
4447
|
var enter_textbook_name_to_search$1 = "Enter textbook name to search";
|
4448
|
+
var enter_teacher_name_to_search$1 = "Enter teacher name to search";
|
4422
4449
|
var select_class_placeholder$1 = "Select class...";
|
4423
4450
|
var user_name$1 = "User Name";
|
4424
4451
|
var vulnerable_detail$1 = "Other students had a high percentage of correct answers, but I could not answer these questions correctly.";
|
@@ -4535,6 +4562,8 @@ var view_records$1 = "View records";
|
|
4535
4562
|
var delete_action$1 = "Delete";
|
4536
4563
|
var edit_action$1 = "Edit";
|
4537
4564
|
var view_action$1 = "View";
|
4565
|
+
var share_action$1 = "Share";
|
4566
|
+
var update_shared_action$1 = "Update Authority";
|
4538
4567
|
var de_select$1 = "Deselect";
|
4539
4568
|
var select_output$1 = "Select";
|
4540
4569
|
var print_pdf$1 = "Print PDF";
|
@@ -4568,6 +4597,15 @@ var manage_users$1 = "Manage users";
|
|
4568
4597
|
var manage_classes$1 = "Manage classes";
|
4569
4598
|
var manage_notifications$1 = "Manage notifications";
|
4570
4599
|
var late$1 = "Late";
|
4600
|
+
var authority$1 = "Authority";
|
4601
|
+
var share_textbook$1 = "Share textbook";
|
4602
|
+
var notify_share_textbook$1 = {
|
4603
|
+
share_success: "Share textbook successfully!",
|
4604
|
+
share_fail: "Textbook or teacher not exists!",
|
4605
|
+
update_success: "Update shared textbook successfully!",
|
4606
|
+
update_fail: "Update fail!"
|
4607
|
+
};
|
4608
|
+
var academyadminteacher$1 = "AcademyAdmin / Teacher";
|
4571
4609
|
var total_student$1 = "Total Student";
|
4572
4610
|
var total_teacher$1 = "Total Teacher";
|
4573
4611
|
var total_exam$1 = "Total Exam";
|
@@ -4625,6 +4663,7 @@ var lang_en = {
|
|
4625
4663
|
yes: yes$1,
|
4626
4664
|
no: no$1,
|
4627
4665
|
cancel: cancel$1,
|
4666
|
+
remove: remove$1,
|
4628
4667
|
confirmation: confirmation$1,
|
4629
4668
|
student_name: student_name$1,
|
4630
4669
|
full_pool_time: full_pool_time$1,
|
@@ -4884,6 +4923,7 @@ var lang_en = {
|
|
4884
4923
|
users: users$1,
|
4885
4924
|
new_user: new_user$1,
|
4886
4925
|
academy_admin: academy_admin$1,
|
4926
|
+
academy_admin_teacher: academy_admin_teacher,
|
4887
4927
|
super_admin: super_admin$1,
|
4888
4928
|
switch_academy_admin: switch_academy_admin$1,
|
4889
4929
|
switch_academy: switch_academy$1,
|
@@ -5227,6 +5267,7 @@ var lang_en = {
|
|
5227
5267
|
choose: choose$1,
|
5228
5268
|
additional_duration: additional_duration$1,
|
5229
5269
|
enter_textbook_name_to_search: enter_textbook_name_to_search$1,
|
5270
|
+
enter_teacher_name_to_search: enter_teacher_name_to_search$1,
|
5230
5271
|
"type_at_least_{number}_characters_to_search": "Type at least {{ number }} characters to search",
|
5231
5272
|
select_class_placeholder: select_class_placeholder$1,
|
5232
5273
|
user_name: user_name$1,
|
@@ -5342,6 +5383,8 @@ var lang_en = {
|
|
5342
5383
|
delete_action: delete_action$1,
|
5343
5384
|
edit_action: edit_action$1,
|
5344
5385
|
view_action: view_action$1,
|
5386
|
+
share_action: share_action$1,
|
5387
|
+
update_shared_action: update_shared_action$1,
|
5345
5388
|
de_select: de_select$1,
|
5346
5389
|
select_output: select_output$1,
|
5347
5390
|
print_pdf: print_pdf$1,
|
@@ -5375,6 +5418,10 @@ var lang_en = {
|
|
5375
5418
|
manage_classes: manage_classes$1,
|
5376
5419
|
manage_notifications: manage_notifications$1,
|
5377
5420
|
late: late$1,
|
5421
|
+
authority: authority$1,
|
5422
|
+
share_textbook: share_textbook$1,
|
5423
|
+
notify_share_textbook: notify_share_textbook$1,
|
5424
|
+
academyadminteacher: academyadminteacher$1,
|
5378
5425
|
total_student: total_student$1,
|
5379
5426
|
total_teacher: total_teacher$1,
|
5380
5427
|
total_exam: total_exam$1,
|
@@ -6955,11 +7002,13 @@ var formatRole = function formatRole(roles, t) {
|
|
6955
7002
|
if (roles.includes(Role.AcademyAdmin)) return t("academy_admin");
|
6956
7003
|
if (roles.includes(Role.Teacher)) return t("teacher");
|
6957
7004
|
if (roles.includes(Role.Student)) return t("student");
|
7005
|
+
if (roles.includes(Role.AcademyAdminTeacher)) return t("academy_admin_teacher");
|
6958
7006
|
return "";
|
6959
7007
|
};
|
6960
7008
|
var getRole = function getRole(roles) {
|
6961
7009
|
if (roles.includes(Role.Admin)) return Role.Admin;
|
6962
7010
|
if (roles.includes(Role.AcademyAdmin)) return Role.AcademyAdmin;
|
7011
|
+
if (roles.includes(Role.AcademyAdminTeacher)) return Role.AcademyAdminTeacher;
|
6963
7012
|
if (roles.includes(Role.Teacher)) return Role.Teacher;
|
6964
7013
|
if (roles.includes(Role.Student)) return Role.Student;
|
6965
7014
|
return null;
|
@@ -8568,6 +8617,12 @@ var updateTextbookApi = function updateTextbookApi(textbookId, data) {
|
|
8568
8617
|
var deleteTextbookApi = function deleteTextbookApi(textbookId) {
|
8569
8618
|
return api["delete"](TEXTBOOK_URL + "/" + textbookId);
|
8570
8619
|
};
|
8620
|
+
var shareTextbookApi = function shareTextbookApi(textbookId, data) {
|
8621
|
+
return api.post(TEXTBOOK_URL + "/" + textbookId + "/shared-textbook", data);
|
8622
|
+
};
|
8623
|
+
var updateSharedTextbookApi = function updateSharedTextbookApi(textbookId, data) {
|
8624
|
+
return api.put(TEXTBOOK_URL + "/" + textbookId + "/shared-textbook", data);
|
8625
|
+
};
|
8571
8626
|
|
8572
8627
|
var ExamStatus$1;
|
8573
8628
|
(function (ExamStatus) {
|
@@ -8621,6 +8676,13 @@ var TextbookSortBy;
|
|
8621
8676
|
TextbookSortBy["Title"] = "Name";
|
8622
8677
|
TextbookSortBy["SubjectName"] = "Subject.Name";
|
8623
8678
|
})(TextbookSortBy || (TextbookSortBy = {}));
|
8679
|
+
var TeacherSortBy;
|
8680
|
+
(function (TeacherSortBy) {
|
8681
|
+
TeacherSortBy["CreatedAt"] = "CreatedAt";
|
8682
|
+
TeacherSortBy["Name"] = "UserProfile.FullName";
|
8683
|
+
TeacherSortBy["Email"] = "Email";
|
8684
|
+
TeacherSortBy["PhoneNumber"] = "UserProfile.PhoneNumber";
|
8685
|
+
})(TeacherSortBy || (TeacherSortBy = {}));
|
8624
8686
|
var ExamType;
|
8625
8687
|
(function (ExamType) {
|
8626
8688
|
ExamType["Normal"] = "Normal";
|
@@ -8634,6 +8696,12 @@ var ExamStatus$2;
|
|
8634
8696
|
ExamStatus["Completed"] = "Completed";
|
8635
8697
|
})(ExamStatus$2 || (ExamStatus$2 = {}));
|
8636
8698
|
|
8699
|
+
var DefaultTeacherQuery = {
|
8700
|
+
currentPage: 1,
|
8701
|
+
pageSize: 50,
|
8702
|
+
sortColumnDirection: OrderType.DESC,
|
8703
|
+
sortColumnName: TeacherSortBy.Name
|
8704
|
+
};
|
8637
8705
|
var TEXTBOOK_HEADERS = [{
|
8638
8706
|
title: "#"
|
8639
8707
|
}, {
|
@@ -8648,7 +8716,26 @@ var TEXTBOOK_HEADERS = [{
|
|
8648
8716
|
}, {
|
8649
8717
|
title: "total_chapters"
|
8650
8718
|
}, {
|
8651
|
-
title:
|
8719
|
+
title: "authority"
|
8720
|
+
}, {
|
8721
|
+
title: ["edit_action", "view_action", "share_action", "update_shared_action", "delete_action"]
|
8722
|
+
}];
|
8723
|
+
var TEACHER_ACADEMY_HEADERS = [{
|
8724
|
+
title: ""
|
8725
|
+
}, {
|
8726
|
+
title: "#"
|
8727
|
+
}, {
|
8728
|
+
title: "full_name",
|
8729
|
+
sortKey: TeacherSortBy.Name
|
8730
|
+
}, {
|
8731
|
+
title: "email",
|
8732
|
+
sortKey: TeacherSortBy.Email
|
8733
|
+
}, {
|
8734
|
+
title: "phone_number",
|
8735
|
+
sortKey: TeacherSortBy.PhoneNumber
|
8736
|
+
}, {
|
8737
|
+
title: "created_at",
|
8738
|
+
sortKey: TeacherSortBy.CreatedAt
|
8652
8739
|
}];
|
8653
8740
|
var DEFAULT_ANSWER_COUNT = 5;
|
8654
8741
|
var DEFAULT_EXAM_REQUEST = {
|
@@ -8665,6 +8752,7 @@ var DEFAULT_EXAM_REQUEST = {
|
|
8665
8752
|
};
|
8666
8753
|
var TEXTBOOK_PAGE_TITLE = "textbooks";
|
8667
8754
|
var TEXT_BOOK_SEARCH_PLACEHOLDER = "enter_textbook_name_to_search";
|
8755
|
+
var TEACHER_SEARCH_PLACEHOLDER = "enter_teacher_name_to_search";
|
8668
8756
|
var TextbookDefaultQuery = {
|
8669
8757
|
pageSize: 12,
|
8670
8758
|
currentPage: 1,
|
@@ -9660,7 +9748,8 @@ var ActionButtons = function ActionButtons(_ref) {
|
|
9660
9748
|
hideSave = _ref$hideSave === void 0 ? false : _ref$hideSave,
|
9661
9749
|
onBack = _ref.onBack,
|
9662
9750
|
onSave = _ref.onSave,
|
9663
|
-
onAltSave = _ref.onAltSave
|
9751
|
+
onAltSave = _ref.onAltSave,
|
9752
|
+
isReadonly = _ref.isReadonly;
|
9664
9753
|
return React__default.createElement(Stack, {
|
9665
9754
|
direction: "row",
|
9666
9755
|
spacing: 1,
|
@@ -9679,7 +9768,7 @@ var ActionButtons = function ActionButtons(_ref) {
|
|
9679
9768
|
size: 16
|
9680
9769
|
}),
|
9681
9770
|
onClick: onSave,
|
9682
|
-
disabled: saveDisabled
|
9771
|
+
disabled: saveDisabled || isReadonly
|
9683
9772
|
}, saveText), !!altSaveText && onAltSave && React__default.createElement(Button, {
|
9684
9773
|
variant: "contained",
|
9685
9774
|
color: "primary",
|
@@ -9707,6 +9796,7 @@ var TextbookActionButtons = function TextbookActionButtons(_ref) {
|
|
9707
9796
|
size: 14
|
9708
9797
|
}) : undefined,
|
9709
9798
|
saveText: t(!(textbook !== null && textbook !== void 0 && textbook.id) ? "create_and_continue" : isReadonly ? "update" : "update_textbook_title"),
|
9799
|
+
isReadonly: isReadonly,
|
9710
9800
|
hideSave: hideSave,
|
9711
9801
|
onSave: onSave
|
9712
9802
|
});
|
@@ -10622,7 +10712,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
10622
10712
|
textbook: textbook,
|
10623
10713
|
onBack: handleGoToTextbookList,
|
10624
10714
|
onSave: handleCreateOrUpdateTextbook,
|
10625
|
-
hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin
|
10715
|
+
hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin || !!id && isReadonly
|
10626
10716
|
}))), React__default.createElement(Grid, {
|
10627
10717
|
item: true,
|
10628
10718
|
xs: 12,
|
@@ -10633,7 +10723,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
10633
10723
|
onClick: function onClick() {
|
10634
10724
|
return handleOpenCreateExamDialog();
|
10635
10725
|
},
|
10636
|
-
disabled:
|
10726
|
+
disabled: !articlesSelected.length,
|
10637
10727
|
startIcon: React__default.createElement(FaPlus, {
|
10638
10728
|
size: 12
|
10639
10729
|
})
|
@@ -10931,9 +11021,7 @@ var useTextbookList = function useTextbookList(props) {
|
|
10931
11021
|
});
|
10932
11022
|
};
|
10933
11023
|
var handleCreateTextbook = function handleCreateTextbook() {
|
10934
|
-
navigate
|
10935
|
-
replace: true
|
10936
|
-
});
|
11024
|
+
pushTo(navigate, textbookUrl + "/create");
|
10937
11025
|
};
|
10938
11026
|
var toggleConfirmDialog = function toggleConfirmDialog() {
|
10939
11027
|
handleChangeSelectedItem(undefined);
|
@@ -10968,6 +11056,7 @@ var useTextbookList = function useTextbookList(props) {
|
|
10968
11056
|
return {
|
10969
11057
|
filter: filter,
|
10970
11058
|
textSearchRef: textSearchRef,
|
11059
|
+
getData: getData,
|
10971
11060
|
paging: paging,
|
10972
11061
|
textbooks: textbooks,
|
10973
11062
|
selectedTextbook: selectedTextbook,
|
@@ -11089,6 +11178,347 @@ var SearchInput = function SearchInput(_ref) {
|
|
11089
11178
|
}));
|
11090
11179
|
};
|
11091
11180
|
|
11181
|
+
var ShareToTeacherDialog = function ShareToTeacherDialog(_ref) {
|
11182
|
+
var open = _ref.open,
|
11183
|
+
selectedShare = _ref.selectedShare,
|
11184
|
+
textSearchShareRef = _ref.textSearchShareRef,
|
11185
|
+
handleChangeSearchTextShare = _ref.handleChangeSearchTextShare,
|
11186
|
+
numSelectedShare = _ref.numSelectedShare,
|
11187
|
+
isCheckAllShare = _ref.isCheckAllShare,
|
11188
|
+
handleSelectAllClickShare = _ref.handleSelectAllClickShare,
|
11189
|
+
teachers = _ref.teachers,
|
11190
|
+
handleSortShare = _ref.handleSortShare,
|
11191
|
+
filterShare = _ref.filterShare,
|
11192
|
+
pagingShare = _ref.pagingShare,
|
11193
|
+
handleChangePageShare = _ref.handleChangePageShare,
|
11194
|
+
handleShareModel = _ref.handleShareModel,
|
11195
|
+
isSelectedShare = _ref.isSelectedShare,
|
11196
|
+
handleCloseShareDialog = _ref.handleCloseShareDialog,
|
11197
|
+
handleClickCheckboxShare = _ref.handleClickCheckboxShare,
|
11198
|
+
selectedTeacher = _ref.selectedTeacher,
|
11199
|
+
dataId = _ref.dataId,
|
11200
|
+
isUpdate = _ref.isUpdate;
|
11201
|
+
var _useTranslation = useTranslation(),
|
11202
|
+
t = _useTranslation.t;
|
11203
|
+
var theme = useTheme();
|
11204
|
+
return React__default.createElement(Dialog, {
|
11205
|
+
open: open,
|
11206
|
+
maxWidth: "md"
|
11207
|
+
}, React__default.createElement(DialogContent, {
|
11208
|
+
sx: {
|
11209
|
+
overflowY: "unset"
|
11210
|
+
}
|
11211
|
+
}, React__default.createElement(Grid, {
|
11212
|
+
container: true,
|
11213
|
+
spacing: 3,
|
11214
|
+
sx: {
|
11215
|
+
position: "relative",
|
11216
|
+
zIndex: 999999
|
11217
|
+
}
|
11218
|
+
}, selectedShare && React__default.createElement(Grid, {
|
11219
|
+
item: true,
|
11220
|
+
xs: 6,
|
11221
|
+
className: "d-flex mb-3"
|
11222
|
+
}, React__default.createElement(SearchInput, {
|
11223
|
+
placeholder: t(TEACHER_SEARCH_PLACEHOLDER),
|
11224
|
+
textSearchRef: textSearchShareRef,
|
11225
|
+
onChange: handleChangeSearchTextShare
|
11226
|
+
})), React__default.createElement(Grid, {
|
11227
|
+
item: true,
|
11228
|
+
xs: 12
|
11229
|
+
}, React__default.createElement(TableContainer, {
|
11230
|
+
sx: {
|
11231
|
+
maxHeight: "50vh"
|
11232
|
+
}
|
11233
|
+
}, React__default.createElement(Table, {
|
11234
|
+
stickyHeader: true
|
11235
|
+
}, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, selectedShare && React__default.createElement(TableCell, {
|
11236
|
+
padding: "checkbox"
|
11237
|
+
}, React__default.createElement(Checkbox, {
|
11238
|
+
color: "primary",
|
11239
|
+
checked: numSelectedShare > 0 && isCheckAllShare(teachers.length),
|
11240
|
+
onChange: handleSelectAllClickShare
|
11241
|
+
})), TEACHER_ACADEMY_HEADERS.map(function (i, index) {
|
11242
|
+
return selectedShare && index === 0 ? null : React__default.createElement(TableCell, {
|
11243
|
+
key: index,
|
11244
|
+
onClick: !!i.sortKey ? function () {
|
11245
|
+
return handleSortShare(i.sortKey);
|
11246
|
+
} : undefined,
|
11247
|
+
className: "" + (!!i.sortKey && "pointer")
|
11248
|
+
}, React__default.createElement("div", {
|
11249
|
+
className: "d-flex justify-content-between align-items-center text-nowrap"
|
11250
|
+
}, t(i.title), !!i.sortKey && selectedShare && React__default.createElement(SortIcon, {
|
11251
|
+
isAscending: filterShare.sortColumnName !== i.sortKey ? undefined : filterShare.sortColumnDirection === OrderType.ASC
|
11252
|
+
})));
|
11253
|
+
}))), React__default.createElement(TableBody, null, selectedTeacher ? React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.teacherName), React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.teacherEmail), React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.phoneNumber), React__default.createElement(TableCell, null, utcToLocalTime(selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.createdAt, t("date_time_format")))) : teachers.map(function (i, index) {
|
11254
|
+
var isItemSelected = isSelectedShare(i.id);
|
11255
|
+
return React__default.createElement(TableRow, {
|
11256
|
+
key: i.id
|
11257
|
+
}, React__default.createElement(TableCell, {
|
11258
|
+
padding: "checkbox"
|
11259
|
+
}, React__default.createElement(Checkbox, {
|
11260
|
+
onClick: function onClick() {
|
11261
|
+
return handleClickCheckboxShare(i.id);
|
11262
|
+
},
|
11263
|
+
color: "primary",
|
11264
|
+
checked: isItemSelected
|
11265
|
+
})), React__default.createElement(TableCell, null, (pagingShare.page - 1) * pagingShare.limit + index + 1), React__default.createElement(TableCell, null, i.teacherName), React__default.createElement(TableCell, null, i.teacherEmail), React__default.createElement(TableCell, null, i.phoneNumber), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))));
|
11266
|
+
}), !selectedShare && !teachers.length && React__default.createElement(TableRow, null, React__default.createElement(TableCell, {
|
11267
|
+
colSpan: 12,
|
11268
|
+
className: "text-center text-muted"
|
11269
|
+
}, t("no_data")))))), React__default.createElement("div", {
|
11270
|
+
className: "d-flex justify-content-end mt-4"
|
11271
|
+
}, !!pagingShare.totalPages && !selectedShare && React__default.createElement(Pagination, {
|
11272
|
+
count: pagingShare.totalPages,
|
11273
|
+
page: pagingShare.page,
|
11274
|
+
onChange: handleChangePageShare
|
11275
|
+
}))))), React__default.createElement(DialogActions, null, React__default.createElement(Stack, {
|
11276
|
+
direction: "row",
|
11277
|
+
spacing: 2,
|
11278
|
+
p: 2,
|
11279
|
+
pt: 0,
|
11280
|
+
justifyContent: "end"
|
11281
|
+
}, React__default.createElement(Button, {
|
11282
|
+
color: "primary",
|
11283
|
+
variant: "contained",
|
11284
|
+
type: "submit",
|
11285
|
+
disabled: selectedShare.length === 0 && numSelectedShare === 0,
|
11286
|
+
onClick: function onClick() {
|
11287
|
+
return handleShareModel(selectedShare, dataId);
|
11288
|
+
}
|
11289
|
+
}, !isUpdate ? t("submit") : t("remove")), React__default.createElement(Button, {
|
11290
|
+
sx: {
|
11291
|
+
bgcolor: theme.palette.grey[700]
|
11292
|
+
},
|
11293
|
+
color: "secondary",
|
11294
|
+
variant: "contained",
|
11295
|
+
onClick: handleCloseShareDialog
|
11296
|
+
}, t("cancel")))));
|
11297
|
+
};
|
11298
|
+
|
11299
|
+
var TEACHER_URL = BASE_URL + "/api/teacher";
|
11300
|
+
var getTeacherListApi = function getTeacherListApi(query) {
|
11301
|
+
return api.get("" + TEACHER_URL, {
|
11302
|
+
params: query
|
11303
|
+
});
|
11304
|
+
};
|
11305
|
+
|
11306
|
+
var useTextbookShare = function useTextbookShare(props) {
|
11307
|
+
var _infoUser$roles;
|
11308
|
+
var getData = props.getData,
|
11309
|
+
role = props.role;
|
11310
|
+
var _useList = useList(function (search) {
|
11311
|
+
return getTeacherListApi(search);
|
11312
|
+
}, DefaultTeacherQuery),
|
11313
|
+
filterShare = _useList.filter,
|
11314
|
+
textSearchShareRef = _useList.textSearchRef,
|
11315
|
+
pagingShare = _useList.paging,
|
11316
|
+
selectedTeacher = _useList.selectedItem,
|
11317
|
+
teachers = _useList.data,
|
11318
|
+
handleSortShare = _useList.handleSort,
|
11319
|
+
handleChangeSearchTextShare = _useList.handleChangeSearchText,
|
11320
|
+
handleChangePageShare = _useList.handleChangePage;
|
11321
|
+
var _useState = useState([]),
|
11322
|
+
selectedShare = _useState[0],
|
11323
|
+
setSelectedShare = _useState[1];
|
11324
|
+
var _useState2 = useState([]),
|
11325
|
+
notShared = _useState2[0],
|
11326
|
+
setNotShared = _useState2[1];
|
11327
|
+
var _useState3 = useState([]),
|
11328
|
+
shared = _useState3[0],
|
11329
|
+
setShared = _useState3[1];
|
11330
|
+
var _useState4 = useState(false),
|
11331
|
+
isUpdate = _useState4[0],
|
11332
|
+
setIsUpdate = _useState4[1];
|
11333
|
+
var _useState5 = useState(),
|
11334
|
+
currentModel = _useState5[0],
|
11335
|
+
setCurrentModel = _useState5[1];
|
11336
|
+
var isSelectedShare = function isSelectedShare(id) {
|
11337
|
+
return selectedShare.indexOf(id) !== -1;
|
11338
|
+
};
|
11339
|
+
var _useState6 = useState(false),
|
11340
|
+
openShareDialog = _useState6[0],
|
11341
|
+
setOpenShareDialog = _useState6[1];
|
11342
|
+
var _useTranslation = useTranslation(),
|
11343
|
+
t = _useTranslation.t;
|
11344
|
+
var dispatch = useDispatch();
|
11345
|
+
var infoUser = useSelector(function (state) {
|
11346
|
+
var _state$common;
|
11347
|
+
return (state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user) || {};
|
11348
|
+
});
|
11349
|
+
var isAdmin = infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$roles = infoUser.roles) === null || _infoUser$roles === void 0 ? void 0 : _infoUser$roles.includes(Role.Admin);
|
11350
|
+
var isAdminSite = role === Role.Admin;
|
11351
|
+
useEffect(function () {
|
11352
|
+
if (!isUpdate) {
|
11353
|
+
filterTeacherNotShared(currentModel);
|
11354
|
+
} else {
|
11355
|
+
filterTeacherShared(currentModel);
|
11356
|
+
}
|
11357
|
+
}, [teachers, isUpdate]);
|
11358
|
+
var handleOpenShareDialog = function handleOpenShareDialog(textbook) {
|
11359
|
+
setIsUpdate(false);
|
11360
|
+
setOpenShareDialog(true);
|
11361
|
+
setCurrentModel(textbook);
|
11362
|
+
filterTeacherNotShared(textbook);
|
11363
|
+
};
|
11364
|
+
var filterTeacherNotShared = function filterTeacherNotShared(textbook) {
|
11365
|
+
var sharedTeacherTextbook = textbook === null || textbook === void 0 ? void 0 : textbook.sharedUsers;
|
11366
|
+
var teacherNotShared = teachers.filter(function (teacher) {
|
11367
|
+
return !(sharedTeacherTextbook !== null && sharedTeacherTextbook !== void 0 && sharedTeacherTextbook.includes(teacher.teacherEmail.trim().toUpperCase())) && teacher.teacherEmail.trim().toUpperCase() != (textbook === null || textbook === void 0 ? void 0 : textbook.createdBy.email.trim().toUpperCase());
|
11368
|
+
});
|
11369
|
+
setNotShared(teacherNotShared);
|
11370
|
+
};
|
11371
|
+
var filterTeacherShared = function filterTeacherShared(textbook) {
|
11372
|
+
var sharedTeacherTextbook = textbook === null || textbook === void 0 ? void 0 : textbook.sharedUsers;
|
11373
|
+
var teacherShared = teachers.filter(function (teacher) {
|
11374
|
+
return (sharedTeacherTextbook === null || sharedTeacherTextbook === void 0 ? void 0 : sharedTeacherTextbook.includes(teacher.teacherEmail.trim().toUpperCase())) && teacher.teacherEmail.trim().toUpperCase() != (textbook === null || textbook === void 0 ? void 0 : textbook.createdBy.email.trim().toUpperCase());
|
11375
|
+
});
|
11376
|
+
setShared(teacherShared);
|
11377
|
+
};
|
11378
|
+
var handleCloseShareDialog = function handleCloseShareDialog() {
|
11379
|
+
setOpenShareDialog(false);
|
11380
|
+
setSelectedShare([]);
|
11381
|
+
};
|
11382
|
+
var handleOpenUpdateShareDialog = function handleOpenUpdateShareDialog(textbook) {
|
11383
|
+
setIsUpdate(true);
|
11384
|
+
setOpenShareDialog(true);
|
11385
|
+
setCurrentModel(textbook);
|
11386
|
+
filterTeacherShared(textbook);
|
11387
|
+
};
|
11388
|
+
var handleSelectAllClickShare = function handleSelectAllClickShare(event) {
|
11389
|
+
var newSelected = isUpdate ? shared.map(function (n) {
|
11390
|
+
return n.id;
|
11391
|
+
}) : notShared.map(function (n) {
|
11392
|
+
return n.id;
|
11393
|
+
});
|
11394
|
+
if (event.target.checked) {
|
11395
|
+
setSelectedShare(function (prev) {
|
11396
|
+
return _.uniq([].concat(prev, newSelected));
|
11397
|
+
});
|
11398
|
+
return;
|
11399
|
+
}
|
11400
|
+
setSelectedShare(_.difference(selectedShare, newSelected));
|
11401
|
+
};
|
11402
|
+
var isCheckAllShare = function isCheckAllShare(userLength) {
|
11403
|
+
var newSelected = isUpdate ? shared.map(function (n) {
|
11404
|
+
return n.id;
|
11405
|
+
}) : notShared.map(function (n) {
|
11406
|
+
return n.id;
|
11407
|
+
});
|
11408
|
+
var checkLength = _.intersection(selectedShare, newSelected).length;
|
11409
|
+
return checkLength === userLength;
|
11410
|
+
};
|
11411
|
+
var handleClickCheckboxShare = function handleClickCheckboxShare(id) {
|
11412
|
+
var selectedIndex = selectedShare.indexOf(id);
|
11413
|
+
var newSelected = [];
|
11414
|
+
if (selectedIndex === -1) {
|
11415
|
+
newSelected = newSelected.concat(selectedShare, id);
|
11416
|
+
} else if (selectedIndex === 0) {
|
11417
|
+
newSelected = newSelected.concat(selectedShare.slice(1));
|
11418
|
+
} else if (selectedIndex === selectedShare.length - 1) {
|
11419
|
+
newSelected = newSelected.concat(selectedShare.slice(0, -1));
|
11420
|
+
} else if (selectedIndex > 0) {
|
11421
|
+
newSelected = newSelected.concat(selectedShare.slice(0, selectedIndex), selectedShare.slice(selectedIndex + 1));
|
11422
|
+
}
|
11423
|
+
setSelectedShare(newSelected);
|
11424
|
+
};
|
11425
|
+
var updateTeacherNotShared = function updateTeacherNotShared(teacherIds) {
|
11426
|
+
var removeTeachers = notShared.filter(function (teacher) {
|
11427
|
+
return !teacherIds.includes(teacher.id);
|
11428
|
+
});
|
11429
|
+
setNotShared(removeTeachers);
|
11430
|
+
};
|
11431
|
+
var updateTeacherShared = function updateTeacherShared(teacherIds) {
|
11432
|
+
var existsTeachers = shared.filter(function (teacher) {
|
11433
|
+
return !teacherIds.includes(teacher.id);
|
11434
|
+
});
|
11435
|
+
setShared(existsTeachers);
|
11436
|
+
};
|
11437
|
+
var handleDisable = function handleDisable(textbook) {
|
11438
|
+
return isAdmin && !isAdminSite || !isAdmin && (!textbook.isShared || textbook.createdBy.id != infoUser.id);
|
11439
|
+
};
|
11440
|
+
var handleShareTextbook = function handleShareTextbook(teacherIds, textbookId) {
|
11441
|
+
try {
|
11442
|
+
var _temp2 = function _temp2() {
|
11443
|
+
dispatch(setLoading(false));
|
11444
|
+
setSelectedShare([]);
|
11445
|
+
setOpenShareDialog(false);
|
11446
|
+
};
|
11447
|
+
dispatch(setLoading(true));
|
11448
|
+
var _temp = _catch(function () {
|
11449
|
+
return Promise.resolve(shareTextbookApi(textbookId, {
|
11450
|
+
teacherIds: teacherIds
|
11451
|
+
})).then(function () {
|
11452
|
+
updateTeacherNotShared(teacherIds);
|
11453
|
+
setSelectedShare([]);
|
11454
|
+
return Promise.resolve(getData(false)).then(function () {
|
11455
|
+
toast.success(t("notify_share_textbook.share_success"));
|
11456
|
+
});
|
11457
|
+
});
|
11458
|
+
}, function (error) {
|
11459
|
+
toast.error(getErrorMessage(t, error, t("notify_share_textbook.share_fail")));
|
11460
|
+
});
|
11461
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
11462
|
+
} catch (e) {
|
11463
|
+
return Promise.reject(e);
|
11464
|
+
}
|
11465
|
+
};
|
11466
|
+
var handleUpdateSharedTextbook = function handleUpdateSharedTextbook(teacherIds, textbookId) {
|
11467
|
+
try {
|
11468
|
+
var _temp4 = function _temp4() {
|
11469
|
+
dispatch(setLoading(false));
|
11470
|
+
setSelectedShare([]);
|
11471
|
+
setOpenShareDialog(false);
|
11472
|
+
};
|
11473
|
+
dispatch(setLoading(true));
|
11474
|
+
var _temp3 = _catch(function () {
|
11475
|
+
return Promise.resolve(updateSharedTextbookApi(textbookId, {
|
11476
|
+
teacherIds: teacherIds
|
11477
|
+
})).then(function () {
|
11478
|
+
updateTeacherShared(teacherIds);
|
11479
|
+
setSelectedShare([]);
|
11480
|
+
return Promise.resolve(getData(false)).then(function () {
|
11481
|
+
toast.success(t("notify_share_textbook.update_success"));
|
11482
|
+
});
|
11483
|
+
});
|
11484
|
+
}, function (error) {
|
11485
|
+
toast.error(getErrorMessage(t, error, t("notify_share_textbook.update_fail")));
|
11486
|
+
});
|
11487
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
11488
|
+
} catch (e) {
|
11489
|
+
return Promise.reject(e);
|
11490
|
+
}
|
11491
|
+
};
|
11492
|
+
return {
|
11493
|
+
filterShare: filterShare,
|
11494
|
+
textSearchShareRef: textSearchShareRef,
|
11495
|
+
pagingShare: pagingShare,
|
11496
|
+
selectedShare: selectedShare,
|
11497
|
+
handleSortShare: handleSortShare,
|
11498
|
+
handleChangeSearchTextShare: handleChangeSearchTextShare,
|
11499
|
+
handleChangePageShare: handleChangePageShare,
|
11500
|
+
numSelectedShare: selectedShare.length,
|
11501
|
+
handleShareTextbook: handleShareTextbook,
|
11502
|
+
isSelectedShare: isSelectedShare,
|
11503
|
+
handleOpenShareDialog: handleOpenShareDialog,
|
11504
|
+
handleCloseShareDialog: handleCloseShareDialog,
|
11505
|
+
openShareDialog: openShareDialog,
|
11506
|
+
isCheckAllShare: isCheckAllShare,
|
11507
|
+
handleClickCheckboxShare: handleClickCheckboxShare,
|
11508
|
+
handleSelectAllClickShare: handleSelectAllClickShare,
|
11509
|
+
notShared: notShared,
|
11510
|
+
shared: shared,
|
11511
|
+
selectedTeacher: selectedTeacher,
|
11512
|
+
handleOpenUpdateShareDialog: handleOpenUpdateShareDialog,
|
11513
|
+
isUpdate: isUpdate,
|
11514
|
+
handleUpdateSharedTextbook: handleUpdateSharedTextbook,
|
11515
|
+
currentModel: currentModel,
|
11516
|
+
handleDisable: handleDisable,
|
11517
|
+
isAdmin: isAdmin,
|
11518
|
+
isAdminSite: isAdminSite
|
11519
|
+
};
|
11520
|
+
};
|
11521
|
+
|
11092
11522
|
var TextbookList = function TextbookList(props) {
|
11093
11523
|
var _useTranslation = useTranslation(),
|
11094
11524
|
t = _useTranslation.t;
|
@@ -11096,10 +11526,11 @@ var TextbookList = function TextbookList(props) {
|
|
11096
11526
|
filter = _useTextbookList.filter,
|
11097
11527
|
textbooks = _useTextbookList.textbooks,
|
11098
11528
|
paging = _useTextbookList.paging,
|
11529
|
+
getData = _useTextbookList.getData,
|
11099
11530
|
textSearchRef = _useTextbookList.textSearchRef,
|
11100
|
-
selectedTextbook = _useTextbookList.selectedTextbook,
|
11101
11531
|
handleChangeSearchText = _useTextbookList.handleChangeSearchText,
|
11102
11532
|
handleSort = _useTextbookList.handleSort,
|
11533
|
+
selectedTextbook = _useTextbookList.selectedTextbook,
|
11103
11534
|
handleChangePage = _useTextbookList.handleChangePage,
|
11104
11535
|
calcOrderNumber = _useTextbookList.calcOrderNumber,
|
11105
11536
|
handleViewTextbook = _useTextbookList.handleViewTextbook,
|
@@ -11108,6 +11539,35 @@ var TextbookList = function TextbookList(props) {
|
|
11108
11539
|
toggleConfirmDialog = _useTextbookList.toggleConfirmDialog,
|
11109
11540
|
handleDeleteTextbook = _useTextbookList.handleDeleteTextbook,
|
11110
11541
|
handleSelectDeleteTextbook = _useTextbookList.handleSelectDeleteTextbook;
|
11542
|
+
var _useTextbookShare = useTextbookShare(_extends({}, props, {
|
11543
|
+
getData: getData
|
11544
|
+
})),
|
11545
|
+
filterShare = _useTextbookShare.filterShare,
|
11546
|
+
textSearchShareRef = _useTextbookShare.textSearchShareRef,
|
11547
|
+
pagingShare = _useTextbookShare.pagingShare,
|
11548
|
+
selectedShare = _useTextbookShare.selectedShare,
|
11549
|
+
handleSortShare = _useTextbookShare.handleSortShare,
|
11550
|
+
handleChangeSearchTextShare = _useTextbookShare.handleChangeSearchTextShare,
|
11551
|
+
handleChangePageShare = _useTextbookShare.handleChangePageShare,
|
11552
|
+
numSelectedShare = _useTextbookShare.numSelectedShare,
|
11553
|
+
handleShareTextbook = _useTextbookShare.handleShareTextbook,
|
11554
|
+
isSelectedShare = _useTextbookShare.isSelectedShare,
|
11555
|
+
handleOpenShareDialog = _useTextbookShare.handleOpenShareDialog,
|
11556
|
+
handleCloseShareDialog = _useTextbookShare.handleCloseShareDialog,
|
11557
|
+
openShareDialog = _useTextbookShare.openShareDialog,
|
11558
|
+
isCheckAllShare = _useTextbookShare.isCheckAllShare,
|
11559
|
+
handleClickCheckboxShare = _useTextbookShare.handleClickCheckboxShare,
|
11560
|
+
handleSelectAllClickShare = _useTextbookShare.handleSelectAllClickShare,
|
11561
|
+
notShared = _useTextbookShare.notShared,
|
11562
|
+
shared = _useTextbookShare.shared,
|
11563
|
+
selectedTeacher = _useTextbookShare.selectedTeacher,
|
11564
|
+
handleOpenUpdateShareDialog = _useTextbookShare.handleOpenUpdateShareDialog,
|
11565
|
+
isUpdate = _useTextbookShare.isUpdate,
|
11566
|
+
handleUpdateSharedTextbook = _useTextbookShare.handleUpdateSharedTextbook,
|
11567
|
+
currentModel = _useTextbookShare.currentModel,
|
11568
|
+
handleDisable = _useTextbookShare.handleDisable,
|
11569
|
+
isAdmin = _useTextbookShare.isAdmin,
|
11570
|
+
isAdminSite = _useTextbookShare.isAdminSite;
|
11111
11571
|
return React__default.createElement(LayoutList, {
|
11112
11572
|
title: t(TEXTBOOK_PAGE_TITLE)
|
11113
11573
|
}, React__default.createElement(Grid, {
|
@@ -11123,14 +11583,20 @@ var TextbookList = function TextbookList(props) {
|
|
11123
11583
|
item: true,
|
11124
11584
|
xs: 6
|
11125
11585
|
}, React__default.createElement(Stack, {
|
11126
|
-
alignItems: "end"
|
11127
|
-
|
11586
|
+
alignItems: "end",
|
11587
|
+
direction: "row",
|
11588
|
+
sx: {
|
11589
|
+
justifyContent: "flex-end"
|
11590
|
+
},
|
11591
|
+
spacing: 2
|
11592
|
+
}, (!isAdmin || isAdminSite) && React__default.createElement(Button, {
|
11128
11593
|
startIcon: React__default.createElement(FaPlus, {
|
11129
11594
|
size: 12
|
11130
11595
|
}),
|
11131
11596
|
variant: "contained",
|
11132
11597
|
color: "primary",
|
11133
|
-
onClick: handleCreateTextbook
|
11598
|
+
onClick: handleCreateTextbook,
|
11599
|
+
className: (isAdmin && !isAdminSite ? "bg-secondary" : "bg-success") + " text-white"
|
11134
11600
|
}, t("create_textbook")))), React__default.createElement(Grid, {
|
11135
11601
|
item: true,
|
11136
11602
|
xs: 12,
|
@@ -11142,17 +11608,21 @@ var TextbookList = function TextbookList(props) {
|
|
11142
11608
|
}), React__default.createElement(TableBody, null, textbooks.map(function (i, index) {
|
11143
11609
|
return React__default.createElement(TableRow, {
|
11144
11610
|
key: i.id
|
11145
|
-
}, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, i.name), React__default.createElement(TableCell, null, i.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(TableCell, null, i.totalChapters), React__default.createElement(TableCell, null,
|
11611
|
+
}, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, i.name), React__default.createElement(TableCell, null, i.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(TableCell, null, i.totalChapters), React__default.createElement(TableCell, null, i.sharedUsers.map(function (email, index) {
|
11612
|
+
return index > 2 ? null : index === 2 ? React__default.createElement("div", null, "(+", i.sharedUsers.length - 2, ")") : React__default.createElement("div", {
|
11613
|
+
key: index
|
11614
|
+
}, email.toLowerCase());
|
11615
|
+
})), React__default.createElement(TableCell, null, React__default.createElement(Stack, {
|
11146
11616
|
direction: "row",
|
11147
11617
|
spacing: 1,
|
11148
11618
|
alignItems: "center"
|
11149
11619
|
}, React__default.createElement(IconButton, {
|
11150
11620
|
color: "default",
|
11151
|
-
className: (i
|
11621
|
+
className: (handleDisable(i) ? "bg-secondary" : "bg-warning") + " text-white",
|
11152
11622
|
onClick: function onClick() {
|
11153
11623
|
return handleUpdateTextbook(i.id);
|
11154
11624
|
},
|
11155
|
-
disabled:
|
11625
|
+
disabled: handleDisable(i)
|
11156
11626
|
}, React__default.createElement(FaPencil, {
|
11157
11627
|
size: 12
|
11158
11628
|
})), React__default.createElement(IconButton, {
|
@@ -11163,13 +11633,29 @@ var TextbookList = function TextbookList(props) {
|
|
11163
11633
|
}
|
11164
11634
|
}, React__default.createElement(FaEye, {
|
11165
11635
|
size: 12
|
11636
|
+
})), React__default.createElement(IconButton, {
|
11637
|
+
disabled: handleDisable(i) || isAdmin,
|
11638
|
+
className: (handleDisable(i) || isAdmin ? "bg-secondary" : "bg-info") + " text-white me-1",
|
11639
|
+
onClick: function onClick() {
|
11640
|
+
return handleOpenShareDialog(i);
|
11641
|
+
}
|
11642
|
+
}, React__default.createElement(FaShare, {
|
11643
|
+
size: 12
|
11644
|
+
})), React__default.createElement(IconButton, {
|
11645
|
+
disabled: handleDisable(i) || isAdmin,
|
11646
|
+
className: (handleDisable(i) || isAdmin ? "bg-secondary" : "bg-success") + " text-white me-1",
|
11647
|
+
onClick: function onClick() {
|
11648
|
+
return handleOpenUpdateShareDialog(i);
|
11649
|
+
}
|
11650
|
+
}, React__default.createElement(FaExchangeAlt, {
|
11651
|
+
size: 12
|
11166
11652
|
})), React__default.createElement(IconButton, {
|
11167
11653
|
color: "default",
|
11168
|
-
className: (i
|
11654
|
+
className: (handleDisable(i) ? "bg-secondary" : "bg-danger") + " text-white mr-1",
|
11169
11655
|
onClick: function onClick() {
|
11170
11656
|
return handleSelectDeleteTextbook(i);
|
11171
11657
|
},
|
11172
|
-
disabled:
|
11658
|
+
disabled: handleDisable(i)
|
11173
11659
|
}, React__default.createElement(FaTrash, {
|
11174
11660
|
size: 12
|
11175
11661
|
})))));
|
@@ -11186,6 +11672,26 @@ var TextbookList = function TextbookList(props) {
|
|
11186
11672
|
onConfirm: handleDeleteTextbook,
|
11187
11673
|
confirmText: selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.name,
|
11188
11674
|
isDelete: true
|
11675
|
+
}), !!currentModel && React__default.createElement(ShareToTeacherDialog, {
|
11676
|
+
open: openShareDialog,
|
11677
|
+
selectedShare: selectedShare,
|
11678
|
+
textSearchShareRef: textSearchShareRef,
|
11679
|
+
handleChangeSearchTextShare: handleChangeSearchTextShare,
|
11680
|
+
numSelectedShare: numSelectedShare,
|
11681
|
+
isCheckAllShare: isCheckAllShare,
|
11682
|
+
handleSelectAllClickShare: handleSelectAllClickShare,
|
11683
|
+
teachers: !isUpdate ? notShared : shared,
|
11684
|
+
filterShare: filterShare,
|
11685
|
+
pagingShare: pagingShare,
|
11686
|
+
handleSortShare: handleSortShare,
|
11687
|
+
handleChangePageShare: handleChangePageShare,
|
11688
|
+
handleShareModel: !isUpdate ? handleShareTextbook : handleUpdateSharedTextbook,
|
11689
|
+
isSelectedShare: isSelectedShare,
|
11690
|
+
handleCloseShareDialog: handleCloseShareDialog,
|
11691
|
+
handleClickCheckboxShare: handleClickCheckboxShare,
|
11692
|
+
selectedTeacher: selectedTeacher,
|
11693
|
+
dataId: currentModel.id,
|
11694
|
+
isUpdate: isUpdate
|
11189
11695
|
}));
|
11190
11696
|
};
|
11191
11697
|
|
@@ -17666,11 +18172,11 @@ var DayOfWeek;
|
|
17666
18172
|
DayOfWeek[DayOfWeek["Friday"] = 5] = "Friday";
|
17667
18173
|
DayOfWeek[DayOfWeek["Saturday"] = 6] = "Saturday";
|
17668
18174
|
})(DayOfWeek || (DayOfWeek = {}));
|
17669
|
-
var TeacherSortBy;
|
18175
|
+
var TeacherSortBy$1;
|
17670
18176
|
(function (TeacherSortBy) {
|
17671
18177
|
TeacherSortBy["Name"] = "UserProfile.FullName";
|
17672
18178
|
TeacherSortBy["Email"] = "UserProfile.Email";
|
17673
|
-
})(TeacherSortBy || (TeacherSortBy = {}));
|
18179
|
+
})(TeacherSortBy$1 || (TeacherSortBy$1 = {}));
|
17674
18180
|
var ClassStatus;
|
17675
18181
|
(function (ClassStatus) {
|
17676
18182
|
ClassStatus["Default"] = "Default";
|
@@ -17774,7 +18280,7 @@ var DefaultTeacherFilter = {
|
|
17774
18280
|
currentPage: 1,
|
17775
18281
|
pageSize: 50,
|
17776
18282
|
sortColumnDirection: OrderBy$2.DESC,
|
17777
|
-
sortColumnName: TeacherSortBy.Name,
|
18283
|
+
sortColumnName: TeacherSortBy$1.Name,
|
17778
18284
|
textSearch: ""
|
17779
18285
|
};
|
17780
18286
|
var DEFAULT_CLASS_REQUEST = {
|
@@ -19422,9 +19928,9 @@ var useLessonClassList = function useLessonClassList(courseId) {
|
|
19422
19928
|
};
|
19423
19929
|
};
|
19424
19930
|
|
19425
|
-
var TEACHER_URL = BASE_URL + "/api/teacher";
|
19426
|
-
var getTeacherListApi = function getTeacherListApi(query) {
|
19427
|
-
return api.get("" + TEACHER_URL, {
|
19931
|
+
var TEACHER_URL$1 = BASE_URL + "/api/teacher";
|
19932
|
+
var getTeacherListApi$1 = function getTeacherListApi(query) {
|
19933
|
+
return api.get("" + TEACHER_URL$1, {
|
19428
19934
|
params: query
|
19429
19935
|
});
|
19430
19936
|
};
|
@@ -19445,7 +19951,7 @@ var useTeacherList = function useTeacherList() {
|
|
19445
19951
|
var getListTeacher = function getListTeacher() {
|
19446
19952
|
try {
|
19447
19953
|
var _temp = _catch(function () {
|
19448
|
-
return Promise.resolve(getTeacherListApi(teacherFilter)).then(function (res) {
|
19954
|
+
return Promise.resolve(getTeacherListApi$1(teacherFilter)).then(function (res) {
|
19449
19955
|
var _res$data;
|
19450
19956
|
setTeachers(((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.items) || []);
|
19451
19957
|
});
|
@@ -22654,5 +23160,5 @@ var ReleaseAlert = function ReleaseAlert() {
|
|
22654
23160
|
}
|
22655
23161
|
};
|
22656
23162
|
|
22657
|
-
export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, ClassDetail, ClassList, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, LoadingComponent, Login, LoginWithEmail, SignIn as LoginWithPassword, NotFound, NotificationDetail, NotificationList, PUSHER_CONFIG, PassCodeCheck, PrintExamResultView, PrintExamView2, QuestionCountSelector, RecentUserAction, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, UserList, api, apiUpload, canAccess as canAccessRoute, checkSuperUrl, createRecentUserActionListApi, diffFromNow, formatRole, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, getRecentUserActionListApi, getRole, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
|
23163
|
+
export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, ClassDetail, ClassList, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, LoadingComponent, Login, LoginWithEmail, SignIn as LoginWithPassword, NotFound, NotificationDetail, NotificationList, PUSHER_CONFIG, PassCodeCheck, PrintExamResultView, PrintExamView2, QuestionCountSelector, RecentUserAction, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, ShareToTeacherDialog, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, UserList, api, apiUpload, canAccess as canAccessRoute, checkSuperUrl, createRecentUserActionListApi, diffFromNow, formatRole, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, getRecentUserActionListApi, getRole, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useList, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useTextbookShare, useVirtualizeList, utcToLocalTime };
|
22658
23164
|
//# sourceMappingURL=index.modern.js.map
|