touchstudy-core 0.1.114 → 0.1.116
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/containers/Classes/configs/interfaces.d.ts +1 -1
- package/dist/containers/Classes/hooks/useClassDetail.d.ts +5 -4
- package/dist/containers/Login/apiClient/index.d.ts +1 -5
- package/dist/containers/Login/hooks/useLoginWithPassword.d.ts +1 -1
- package/dist/containers/PreparedExam/components/Textbook.d.ts +4 -2
- package/dist/containers/PreparedExam/components/dialogs/TextbookInfoDrawer.d.ts +3 -1
- package/dist/containers/PreparedExam/configs/types.d.ts +1 -0
- package/dist/containers/PreparedExam/hooks/usePreparedExam.d.ts +3 -0
- package/dist/containers/PreparedTextbook/configs/types.d.ts +1 -0
- package/dist/containers/PreparedTextbook/hooks/useTextbookManagement.d.ts +2 -2
- package/dist/containers/PreparedTextbook/views/PreparedTextbook.d.ts +2 -1
- package/dist/containers/PreparedTextbook/views/PreparedTextbookList.d.ts +4 -2
- package/dist/containers/Textbooks/configs/constants.d.ts +0 -3
- package/dist/containers/Textbooks/configs/types.d.ts +1 -0
- package/dist/containers/Textbooks/hooks/useTextbookList.d.ts +2 -2
- package/dist/containers/Textbooks/hooks/useTextbookShare.d.ts +2 -1
- package/dist/containers/Textbooks/views/TextbookDetail.d.ts +2 -0
- package/dist/containers/Textbooks/views/TextbookList.d.ts +4 -1
- package/dist/index.js +320 -184
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +320 -184
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -27,6 +27,7 @@ var Select__default = _interopDefault(Select);
|
|
27
27
|
var CreatableSelect = _interopDefault(require('react-select/creatable'));
|
28
28
|
var formik = require('formik');
|
29
29
|
var ckeditor4React = require('ckeditor4-react');
|
30
|
+
var reactVirtualized = require('react-virtualized');
|
30
31
|
var Grid = _interopDefault(require('@mui/material/Grid'));
|
31
32
|
var Typography = _interopDefault(require('@mui/material/Typography'));
|
32
33
|
var Card = _interopDefault(require('@mui/material/Card'));
|
@@ -1188,6 +1189,7 @@ var notify_share_exam = {
|
|
1188
1189
|
update_fail: "업데이트 실패!"
|
1189
1190
|
};
|
1190
1191
|
var academy_admin_teacher = "아카데미 관리자/선생님";
|
1192
|
+
var academyadmin_teacher = "아카데미 관리자/선생님";
|
1191
1193
|
var total_student = "총 학생 수";
|
1192
1194
|
var total_teacher = "총 교사 수";
|
1193
1195
|
var total_exam = "총 시험 수";
|
@@ -1351,6 +1353,7 @@ var delete_textbook_successfully = "교과서 삭제 성공";
|
|
1351
1353
|
var information = "정보";
|
1352
1354
|
var running_time = "진행 시간";
|
1353
1355
|
var hours_mins_seconds = "{{hours}}시간 {{mins}}분 {{seconds}}초";
|
1356
|
+
var create_schedule_successfully = "일정을 성공적으로 생성했습니다";
|
1354
1357
|
var prepared_textbook = "준비된 교과서";
|
1355
1358
|
var enable_phone_pass_code = "전화 비밀번호 활성화";
|
1356
1359
|
var custom = "관습";
|
@@ -1359,6 +1362,14 @@ var pass_code_is_invalid = "비밀번호가 유효하지 않습니다";
|
|
1359
1362
|
var pass_code_length_must_be_n = "비밀번호 길이는 {{n}}이어야 합니다";
|
1360
1363
|
var parent_phone_number_is_invalid = "부모 전화번호가 잘못되었습니다";
|
1361
1364
|
var parent_phone_number_is_required = "부모 전화번호가 필요합니다";
|
1365
|
+
var update_schedule_successfully = "일정을 성공적으로 업데이트했습니다";
|
1366
|
+
var delete_schedule_successfully = "일정을 성공적으로 삭제했습니다";
|
1367
|
+
var group = "그룹";
|
1368
|
+
var update_schedule = "업데이트 일정";
|
1369
|
+
var back_month = "이전 달";
|
1370
|
+
var today_schedule = "오늘 스케줄";
|
1371
|
+
var schedule_achieved = "달성한 스케줄";
|
1372
|
+
var i_dont_have_my_phone_number_yet = "휴대폰 번호가 없어요";
|
1362
1373
|
var lang_ko = {
|
1363
1374
|
problem_solving: problem_solving,
|
1364
1375
|
my_story: my_story,
|
@@ -2190,6 +2201,7 @@ var lang_ko = {
|
|
2190
2201
|
notify_share_textbook: notify_share_textbook,
|
2191
2202
|
notify_share_exam: notify_share_exam,
|
2192
2203
|
academy_admin_teacher: academy_admin_teacher,
|
2204
|
+
academyadmin_teacher: academyadmin_teacher,
|
2193
2205
|
total_student: total_student,
|
2194
2206
|
total_teacher: total_teacher,
|
2195
2207
|
total_exam: total_exam,
|
@@ -2355,6 +2367,7 @@ var lang_ko = {
|
|
2355
2367
|
information: information,
|
2356
2368
|
running_time: running_time,
|
2357
2369
|
hours_mins_seconds: hours_mins_seconds,
|
2370
|
+
create_schedule_successfully: create_schedule_successfully,
|
2358
2371
|
prepared_textbook: prepared_textbook,
|
2359
2372
|
enable_phone_pass_code: enable_phone_pass_code,
|
2360
2373
|
custom: custom,
|
@@ -2362,7 +2375,15 @@ var lang_ko = {
|
|
2362
2375
|
pass_code_is_invalid: pass_code_is_invalid,
|
2363
2376
|
pass_code_length_must_be_n: pass_code_length_must_be_n,
|
2364
2377
|
parent_phone_number_is_invalid: parent_phone_number_is_invalid,
|
2365
|
-
parent_phone_number_is_required: parent_phone_number_is_required
|
2378
|
+
parent_phone_number_is_required: parent_phone_number_is_required,
|
2379
|
+
update_schedule_successfully: update_schedule_successfully,
|
2380
|
+
delete_schedule_successfully: delete_schedule_successfully,
|
2381
|
+
group: group,
|
2382
|
+
update_schedule: update_schedule,
|
2383
|
+
back_month: back_month,
|
2384
|
+
today_schedule: today_schedule,
|
2385
|
+
schedule_achieved: schedule_achieved,
|
2386
|
+
i_dont_have_my_phone_number_yet: i_dont_have_my_phone_number_yet
|
2366
2387
|
};
|
2367
2388
|
|
2368
2389
|
var problem_solving$1 = "Problem Solving";
|
@@ -2502,7 +2523,7 @@ var create_exam$1 = "Create exam";
|
|
2502
2523
|
var back$1 = "Back";
|
2503
2524
|
var date_format_exam$1 = "MMMM YYYY";
|
2504
2525
|
var date_format$1 = "MMM. D. YYYY";
|
2505
|
-
var day_month_format$1 = "
|
2526
|
+
var day_month_format$1 = "Do MMM";
|
2506
2527
|
var date_time_format$1 = "HH:mm MMM. D YYYY ";
|
2507
2528
|
var date_time_format_12h$1 = "MM-DD-YYYY HH:mm A";
|
2508
2529
|
var full_date_time_format$1 = "MMM Do YYYY HH:mm:ss";
|
@@ -3276,14 +3297,15 @@ var chapter$1 = "Chapter";
|
|
3276
3297
|
var chapter_number$1 = "Chapter {{number}}";
|
3277
3298
|
var category_required$1 = "Category is required";
|
3278
3299
|
var subject_required$1 = "Subject is required";
|
3279
|
-
var academy_admin_teacher$1 = "Academy Admin
|
3300
|
+
var academy_admin_teacher$1 = "Academy Admin/Teacher";
|
3301
|
+
var academyadmin_teacher$1 = "Academy Admin/Teacher";
|
3280
3302
|
var date_required$1 = "Date is required";
|
3281
3303
|
var start_time_required$1 = "Start time is required";
|
3282
3304
|
var end_time_required$1 = "End time is required";
|
3283
3305
|
var title_required$1 = "Title is required";
|
3284
3306
|
var delete_schedule$1 = "Delete Schedule";
|
3285
3307
|
var edit_schedule$1 = "Edit Schedule";
|
3286
|
-
var are_you_sure_you_want_to_delete_the_schedule$1 = "
|
3308
|
+
var are_you_sure_you_want_to_delete_the_schedule$1 = "Are you sure you want to delete the schedule: {{name}}";
|
3287
3309
|
var correct_answer_rate$1 = "Correct answer rate";
|
3288
3310
|
var progress$1 = "Progress";
|
3289
3311
|
var grammar$1 = "Grammar";
|
@@ -3376,6 +3398,7 @@ var delete_textbook_successfully$1 = "Delete the textbook successfully";
|
|
3376
3398
|
var information$1 = "Information";
|
3377
3399
|
var running_time$1 = "Running time";
|
3378
3400
|
var hours_mins_seconds$1 = "{{hours}}h {{mins}}m {{seconds}}s";
|
3401
|
+
var create_schedule_successfully$1 = "Create schedule successfully";
|
3379
3402
|
var prepared_textbook$1 = "Prepared Textbook";
|
3380
3403
|
var enable_phone_pass_code$1 = "Enable phone pass code";
|
3381
3404
|
var custom$1 = "Custom";
|
@@ -3385,6 +3408,14 @@ var pass_code_length_must_be_n$1 = "Pass code length must be {{n}}";
|
|
3385
3408
|
var email_is_invalid = "Email is invalid";
|
3386
3409
|
var parent_phone_number_is_invalid$1 = "Parent phone number is invalid";
|
3387
3410
|
var parent_phone_number_is_required$1 = "Parent phone number is required";
|
3411
|
+
var update_schedule_successfully$1 = "Update schedule successfully";
|
3412
|
+
var delete_schedule_successfully$1 = "Delete schedule successfully";
|
3413
|
+
var group$1 = "Group";
|
3414
|
+
var update_schedule$1 = "Update Schedule";
|
3415
|
+
var back_month$1 = "Back Month";
|
3416
|
+
var today_schedule$1 = "Today's schedule";
|
3417
|
+
var schedule_achieved$1 = "Schedule achieved";
|
3418
|
+
var i_dont_have_my_phone_number_yet$1 = "I don't have my phone number yet";
|
3388
3419
|
var lang_en = {
|
3389
3420
|
problem_solving: problem_solving$1,
|
3390
3421
|
my_story: my_story$1,
|
@@ -4281,6 +4312,7 @@ var lang_en = {
|
|
4281
4312
|
category_required: category_required$1,
|
4282
4313
|
subject_required: subject_required$1,
|
4283
4314
|
academy_admin_teacher: academy_admin_teacher$1,
|
4315
|
+
academyadmin_teacher: academyadmin_teacher$1,
|
4284
4316
|
date_required: date_required$1,
|
4285
4317
|
start_time_required: start_time_required$1,
|
4286
4318
|
end_time_required: end_time_required$1,
|
@@ -4382,6 +4414,7 @@ var lang_en = {
|
|
4382
4414
|
information: information$1,
|
4383
4415
|
running_time: running_time$1,
|
4384
4416
|
hours_mins_seconds: hours_mins_seconds$1,
|
4417
|
+
create_schedule_successfully: create_schedule_successfully$1,
|
4385
4418
|
prepared_textbook: prepared_textbook$1,
|
4386
4419
|
enable_phone_pass_code: enable_phone_pass_code$1,
|
4387
4420
|
custom: custom$1,
|
@@ -4390,7 +4423,15 @@ var lang_en = {
|
|
4390
4423
|
pass_code_length_must_be_n: pass_code_length_must_be_n$1,
|
4391
4424
|
email_is_invalid: email_is_invalid,
|
4392
4425
|
parent_phone_number_is_invalid: parent_phone_number_is_invalid$1,
|
4393
|
-
parent_phone_number_is_required: parent_phone_number_is_required$1
|
4426
|
+
parent_phone_number_is_required: parent_phone_number_is_required$1,
|
4427
|
+
update_schedule_successfully: update_schedule_successfully$1,
|
4428
|
+
delete_schedule_successfully: delete_schedule_successfully$1,
|
4429
|
+
group: group$1,
|
4430
|
+
update_schedule: update_schedule$1,
|
4431
|
+
back_month: back_month$1,
|
4432
|
+
today_schedule: today_schedule$1,
|
4433
|
+
schedule_achieved: schedule_achieved$1,
|
4434
|
+
i_dont_have_my_phone_number_yet: i_dont_have_my_phone_number_yet$1
|
4394
4435
|
};
|
4395
4436
|
|
4396
4437
|
i18n__default.use(reactI18next.initReactI18next).init({
|
@@ -9204,20 +9245,31 @@ var VirtualListView = function VirtualListView(props) {
|
|
9204
9245
|
renderItem = props.renderItem,
|
9205
9246
|
emptyElement = props.emptyElement,
|
9206
9247
|
loading = props.loading,
|
9207
|
-
loadingElement = props.loadingElement
|
9208
|
-
|
9209
|
-
|
9210
|
-
|
9211
|
-
},
|
9212
|
-
|
9213
|
-
|
9214
|
-
|
9215
|
-
|
9216
|
-
|
9217
|
-
|
9218
|
-
|
9219
|
-
|
9220
|
-
|
9248
|
+
loadingElement = props.loadingElement,
|
9249
|
+
listHeight = props.listHeight;
|
9250
|
+
return React__default.createElement(material.Box, Object.assign({}, containerProps), React__default.createElement(reactVirtualized.AutoSizer, {
|
9251
|
+
disableHeight: !!listHeight
|
9252
|
+
}, function (_ref) {
|
9253
|
+
var width = _ref.width,
|
9254
|
+
height = _ref.height;
|
9255
|
+
return React__default.createElement(material.Box, {
|
9256
|
+
width: width,
|
9257
|
+
height: height,
|
9258
|
+
overflow: "auto"
|
9259
|
+
}, loading && React__default.createElement(React.Fragment, null, loadingElement != null ? loadingElement : React__default.createElement(material.Box, {
|
9260
|
+
p: 1,
|
9261
|
+
className: "d-flex justify-content-center align-items-center w-100"
|
9262
|
+
}, React__default.createElement(material.CircularProgress, {
|
9263
|
+
size: 24,
|
9264
|
+
sx: {
|
9265
|
+
color: "#5d5d5b"
|
9266
|
+
}
|
9267
|
+
}))), !loading && !data.length && React__default.createElement(VirtualTableEmpty, {
|
9268
|
+
emptyElement: emptyElement
|
9269
|
+
}), !loading && !!data.length && React__default.createElement(ListView, {
|
9270
|
+
data: data,
|
9271
|
+
render: renderItem
|
9272
|
+
}));
|
9221
9273
|
}));
|
9222
9274
|
};
|
9223
9275
|
|
@@ -9889,7 +9941,9 @@ var useLoginPhoneNumber = function useLoginPhoneNumber(props) {
|
|
9889
9941
|
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain) || !!(user !== null && user !== void 0 && user.isLearningSpace);
|
9890
9942
|
var needToRegister = isFirstLogin && isAcademy;
|
9891
9943
|
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
9892
|
-
redirectLoginUser(
|
9944
|
+
redirectLoginUser(_extends({}, user, {
|
9945
|
+
isNotEnoughStatements: isFirstLogin
|
9946
|
+
}), token, redirectUrl);
|
9893
9947
|
setPhoneNumber("");
|
9894
9948
|
});
|
9895
9949
|
}, function (error) {
|
@@ -10232,10 +10286,12 @@ var signInApi = function signInApi(_ref) {
|
|
10232
10286
|
var signInWithEmailApi = function signInWithEmailApi(_ref2) {
|
10233
10287
|
var isAcademy = _ref2.isAcademy,
|
10234
10288
|
email = _ref2.email,
|
10235
|
-
reCaptcha = _ref2.reCaptcha
|
10289
|
+
reCaptcha = _ref2.reCaptcha,
|
10290
|
+
role = _ref2.role;
|
10236
10291
|
return api.post((isAcademy ? SIGN_IN_URL : SIGN_IN_SUPER_ADMIN_URL) + "/email", {
|
10237
10292
|
email: email,
|
10238
|
-
reCaptcha: reCaptcha
|
10293
|
+
reCaptcha: reCaptcha,
|
10294
|
+
role: role
|
10239
10295
|
}, {
|
10240
10296
|
headers: {
|
10241
10297
|
Domain: window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '')
|
@@ -10371,8 +10427,17 @@ var useLogin$1 = function useLogin(_ref) {
|
|
10371
10427
|
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain) || !!(user !== null && user !== void 0 && user.isLearningSpace);
|
10372
10428
|
var needToRegister = isFirstLogin && isAcademy;
|
10373
10429
|
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
10430
|
+
console.log({
|
10431
|
+
isFirstLogin: isFirstLogin,
|
10432
|
+
isAcademy: isAcademy,
|
10433
|
+
token: token,
|
10434
|
+
user: user,
|
10435
|
+
redirectUrl: redirectUrl
|
10436
|
+
});
|
10374
10437
|
handleSwitchOTP(false);
|
10375
|
-
redirectLoginUser(
|
10438
|
+
redirectLoginUser(_extends({}, user, {
|
10439
|
+
isNotEnoughStatements: isFirstLogin
|
10440
|
+
}), token, redirectUrl);
|
10376
10441
|
});
|
10377
10442
|
}
|
10378
10443
|
}();
|
@@ -10383,7 +10448,8 @@ var useLogin$1 = function useLogin(_ref) {
|
|
10383
10448
|
return Promise.resolve(signInWithEmailApi({
|
10384
10449
|
isAcademy: isAcademyReq,
|
10385
10450
|
email: email,
|
10386
|
-
reCaptcha: tokenReCaptcha
|
10451
|
+
reCaptcha: tokenReCaptcha,
|
10452
|
+
role: role
|
10387
10453
|
})).then(function () {
|
10388
10454
|
reactToastify.toast.success(t("please_check_your_mailbox"));
|
10389
10455
|
handleSwitchOTP(true);
|
@@ -10488,6 +10554,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10488
10554
|
var _useState8 = React.useState(false),
|
10489
10555
|
error = _useState8[0],
|
10490
10556
|
setError = _useState8[1];
|
10557
|
+
var firstLoadRef = React.useRef(true);
|
10491
10558
|
var onVerify = React.useCallback(function (token) {
|
10492
10559
|
setTokenReCaptcha(token);
|
10493
10560
|
}, []);
|
@@ -10497,9 +10564,11 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10497
10564
|
setRefreshReCaptcha(function (b) {
|
10498
10565
|
return !b;
|
10499
10566
|
});
|
10567
|
+
firstLoadRef.current = false;
|
10500
10568
|
setLoadingQR(false);
|
10501
10569
|
};
|
10502
|
-
if (!tokenReCaptcha
|
10570
|
+
if (!tokenReCaptcha) return Promise.resolve();
|
10571
|
+
resetData();
|
10503
10572
|
setLoadingQR(true);
|
10504
10573
|
if (!academyDomain) localStorage.setItem(LEARNING_SPACE, "true");
|
10505
10574
|
var _temp = _catch(function () {
|
@@ -10534,8 +10603,8 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10534
10603
|
}
|
10535
10604
|
};
|
10536
10605
|
React.useEffect(function () {
|
10537
|
-
getQRCodeDataLogin();
|
10538
|
-
}, [academyDomain, tokenReCaptcha
|
10606
|
+
if (firstLoadRef.current) getQRCodeDataLogin();
|
10607
|
+
}, [academyDomain, tokenReCaptcha]);
|
10539
10608
|
React.useEffect(function () {
|
10540
10609
|
if (qrCodeData !== null && qrCodeData !== void 0 && qrCodeData.key) {
|
10541
10610
|
if (pusher.current) pusher.current.disconnect();
|
@@ -10571,11 +10640,12 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10571
10640
|
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain) || !!(user !== null && user !== void 0 && user.isLearningSpace);
|
10572
10641
|
var needToRegister = isFirstLogin && isAcademy;
|
10573
10642
|
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
10574
|
-
redirectLoginUser(
|
10643
|
+
redirectLoginUser(_extends({}, user, {
|
10644
|
+
isNotEnoughStatements: isFirstLogin
|
10645
|
+
}), token, redirectUrl);
|
10575
10646
|
});
|
10576
|
-
}, function (
|
10647
|
+
}, function () {
|
10577
10648
|
setInvalid(true);
|
10578
|
-
reactToastify.toast.error(getErrorMessage(t, error));
|
10579
10649
|
});
|
10580
10650
|
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
10581
10651
|
} catch (e) {
|
@@ -10604,7 +10674,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10604
10674
|
setError(false);
|
10605
10675
|
};
|
10606
10676
|
var handleGenerateNewAQRCode = function handleGenerateNewAQRCode() {
|
10607
|
-
|
10677
|
+
getQRCodeDataLogin();
|
10608
10678
|
};
|
10609
10679
|
return {
|
10610
10680
|
t: t,
|
@@ -10822,7 +10892,9 @@ var useLoginWithEmail = function useLoginWithEmail(_ref) {
|
|
10822
10892
|
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain) || !!(user !== null && user !== void 0 && user.isLearningSpace);
|
10823
10893
|
var needToRegister = isFirstLogin && isAcademy;
|
10824
10894
|
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
10825
|
-
redirectLoginUser(
|
10895
|
+
redirectLoginUser(_extends({}, user, {
|
10896
|
+
isNotEnoughStatements: isFirstLogin
|
10897
|
+
}), token, redirectUrl);
|
10826
10898
|
});
|
10827
10899
|
}, function (error) {
|
10828
10900
|
console.log(error);
|
@@ -10882,7 +10954,7 @@ var useLogin$2 = function useLogin(_ref) {
|
|
10882
10954
|
passwordError = _useState2[0],
|
10883
10955
|
setPasswordError = _useState2[1];
|
10884
10956
|
var searchParams = new URLSearchParams(window.location.search);
|
10885
|
-
var paramDomain = searchParams.get(
|
10957
|
+
var paramDomain = searchParams.get("domain");
|
10886
10958
|
var academyDomain = paramDomain || getAcademyDomain();
|
10887
10959
|
var isStudent = role === exports.Role.Student;
|
10888
10960
|
var isAcademyReq = isStudent || !!academyDomain;
|
@@ -10940,11 +11012,13 @@ var useLogin$2 = function useLogin(_ref) {
|
|
10940
11012
|
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain) || !!(user !== null && user !== void 0 && user.isLearningSpace);
|
10941
11013
|
var needToRegister = isFirstLogin && isAcademy;
|
10942
11014
|
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
10943
|
-
redirectLoginUser(
|
11015
|
+
redirectLoginUser(_extends({}, user, {
|
11016
|
+
isNotEnoughStatements: isFirstLogin
|
11017
|
+
}), token, redirectUrl);
|
10944
11018
|
});
|
10945
11019
|
}, function (error) {
|
10946
11020
|
console.log(error);
|
10947
|
-
reactToastify.toast.error(getErrorMessage(t, error, t(
|
11021
|
+
reactToastify.toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
10948
11022
|
}));
|
10949
11023
|
} catch (e) {
|
10950
11024
|
return Promise.reject(e);
|
@@ -11701,7 +11775,7 @@ var ErrorHandler = function ErrorHandler(_ref) {
|
|
11701
11775
|
var ClassForm = function ClassForm(_ref) {
|
11702
11776
|
var history = _ref.history,
|
11703
11777
|
formikProp = _ref.formikProp,
|
11704
|
-
|
11778
|
+
classId = _ref.classId,
|
11705
11779
|
data = _ref.data,
|
11706
11780
|
teachers = _ref.teachers,
|
11707
11781
|
disabled = _ref.disabled,
|
@@ -12066,7 +12140,7 @@ var ClassForm = function ClassForm(_ref) {
|
|
12066
12140
|
formikProp.handleSubmit();
|
12067
12141
|
},
|
12068
12142
|
disabled: disabled
|
12069
|
-
}, !
|
12143
|
+
}, !classId ? t("create_and_continue") : t("save_and_exit")), React__default.createElement(material.Button, {
|
12070
12144
|
color: "secondary",
|
12071
12145
|
className: "bg-secondary",
|
12072
12146
|
variant: "contained",
|
@@ -12970,8 +13044,9 @@ var _excluded$8 = ["getStudents"],
|
|
12970
13044
|
var PAGE_TITLE$4 = "classes";
|
12971
13045
|
var useClassDetail = function useClassDetail(_ref) {
|
12972
13046
|
var history = _ref.history,
|
12973
|
-
|
12974
|
-
role = _ref.role
|
13047
|
+
classId = _ref.classId,
|
13048
|
+
role = _ref.role,
|
13049
|
+
classListUrl = _ref.classListUrl;
|
12975
13050
|
var _useTranslation = reactI18next.useTranslation(),
|
12976
13051
|
t = _useTranslation.t;
|
12977
13052
|
var dispatch = reactRedux.useDispatch();
|
@@ -12982,8 +13057,11 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
12982
13057
|
});
|
12983
13058
|
var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
|
12984
13059
|
var isOneRoleExists = roles.length === 1;
|
12985
|
-
var isAdmin = roles.includes(exports.Role.Admin)
|
12986
|
-
var isTeacher = roles.includes(exports.Role.Teacher) && !
|
13060
|
+
var isAdmin = roles.includes(exports.Role.Admin);
|
13061
|
+
var isTeacher = roles.includes(exports.Role.Teacher) && !isAdmin;
|
13062
|
+
var isSuperAdmin = user === null || user === void 0 ? void 0 : user.isSuperAdmin;
|
13063
|
+
var isteacherSite = role === exports.Role.Teacher;
|
13064
|
+
var isDisabled = isAdmin && !isSuperAdmin && isteacherSite || isTeacher;
|
12987
13065
|
var _useState = React.useState(),
|
12988
13066
|
course = _useState[0],
|
12989
13067
|
setCourse = _useState[1];
|
@@ -13009,13 +13087,13 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13009
13087
|
var isSelected = function isSelected(id) {
|
13010
13088
|
return selected.indexOf(id) !== -1;
|
13011
13089
|
};
|
13012
|
-
var _useStudentClassList = useStudentClassList(
|
13090
|
+
var _useStudentClassList = useStudentClassList(classId),
|
13013
13091
|
getStudents = _useStudentClassList.getStudents,
|
13014
13092
|
studentListProps = _objectWithoutPropertiesLoose(_useStudentClassList, _excluded$8);
|
13015
|
-
var _useTeacherClassList = useTeacherClassList(
|
13093
|
+
var _useTeacherClassList = useTeacherClassList(classId),
|
13016
13094
|
getTeachers = _useTeacherClassList.getTeachers,
|
13017
13095
|
teacherListProps = _objectWithoutPropertiesLoose(_useTeacherClassList, _excluded2);
|
13018
|
-
var _useLessonClassList = useLessonClassList(
|
13096
|
+
var _useLessonClassList = useLessonClassList(classId),
|
13019
13097
|
getLessons = _useLessonClassList.getLessons,
|
13020
13098
|
lessonListProps = _objectWithoutPropertiesLoose(_useLessonClassList, _excluded3);
|
13021
13099
|
var selectedLesson = lessonListProps.selectedLesson,
|
@@ -13039,12 +13117,10 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13039
13117
|
isLoading && dispatch(setLoading(false));
|
13040
13118
|
};
|
13041
13119
|
var _exit = false;
|
13042
|
-
if (!
|
13043
|
-
var idNumber = +id;
|
13044
|
-
if (isNaN(idNumber)) return Promise.resolve();
|
13120
|
+
if (!classId) return Promise.resolve();
|
13045
13121
|
isLoading && dispatch(setLoading(true));
|
13046
13122
|
var _temp = _catch(function () {
|
13047
|
-
return Promise.resolve(getClassByIdApi(
|
13123
|
+
return Promise.resolve(getClassByIdApi(classId)).then(function (res) {
|
13048
13124
|
var classData = res.data;
|
13049
13125
|
if (!classData) {
|
13050
13126
|
reactToastify.toast.error(t("get_class_detail_error"));
|
@@ -13161,22 +13237,22 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13161
13237
|
var _temp12 = function _temp12() {
|
13162
13238
|
dispatch(setLoading(false));
|
13163
13239
|
};
|
13164
|
-
if (!
|
13240
|
+
if (!classId || !openSelectDialog) return Promise.resolve();
|
13165
13241
|
dispatch(setLoading(true));
|
13166
13242
|
var _temp11 = _catch(function () {
|
13167
13243
|
function _temp10() {
|
13168
13244
|
return Promise.resolve(handleGetDetailData(false)).then(function () {
|
13169
|
-
reactToastify.toast.success(t(
|
13245
|
+
reactToastify.toast.success(t(classId ? "update_class_successfully" : "create_class_successfully"));
|
13170
13246
|
handleCloseSelectDialog();
|
13171
13247
|
});
|
13172
13248
|
}
|
13173
13249
|
var _temp9 = function () {
|
13174
13250
|
if (openSelectDialog === "Student") {
|
13175
|
-
return Promise.resolve(addStudentToClass(
|
13251
|
+
return Promise.resolve(addStudentToClass(classId, userIds)).then(function () {
|
13176
13252
|
return Promise.resolve(getStudents()).then(function () {});
|
13177
13253
|
});
|
13178
13254
|
} else {
|
13179
|
-
return Promise.resolve(addTeacherToClass(
|
13255
|
+
return Promise.resolve(addTeacherToClass(classId, userIds)).then(function () {
|
13180
13256
|
return Promise.resolve(getTeachers()).then(function () {});
|
13181
13257
|
});
|
13182
13258
|
}
|
@@ -13211,16 +13287,16 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13211
13287
|
dispatch(setLoading(true));
|
13212
13288
|
var _temp15 = _catch(function () {
|
13213
13289
|
function _temp14() {
|
13214
|
-
reactToastify.toast.success(t(
|
13290
|
+
reactToastify.toast.success(t(classId ? "update_class_successfully" : "create_class_successfully"));
|
13215
13291
|
}
|
13216
13292
|
var _temp13 = function () {
|
13217
|
-
if (!
|
13293
|
+
if (!classId) {
|
13218
13294
|
return Promise.resolve(createClassApi(body)).then(function (res) {
|
13219
|
-
pushTo(history, "/
|
13295
|
+
pushTo(history, classListUrl + "/" + res.data.id);
|
13220
13296
|
});
|
13221
13297
|
} else {
|
13222
|
-
return Promise.resolve(updateClassApi(
|
13223
|
-
pushTo(history,
|
13298
|
+
return Promise.resolve(updateClassApi(classId, body)).then(function () {
|
13299
|
+
pushTo(history, classListUrl);
|
13224
13300
|
});
|
13225
13301
|
}
|
13226
13302
|
}();
|
@@ -13235,10 +13311,10 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13235
13311
|
};
|
13236
13312
|
var getStudentNotInClassList = function getStudentNotInClassList() {
|
13237
13313
|
try {
|
13238
|
-
if (!
|
13314
|
+
if (!classId) return Promise.resolve();
|
13239
13315
|
var _temp17 = _catch(function () {
|
13240
13316
|
var _textSearchRef$curren;
|
13241
|
-
return Promise.resolve(getStudentClassApi(
|
13317
|
+
return Promise.resolve(getStudentClassApi(classId, _extends({}, filter, {
|
13242
13318
|
textSearch: (_textSearchRef$curren = textSearchRef.current) === null || _textSearchRef$curren === void 0 ? void 0 : _textSearchRef$curren.value,
|
13243
13319
|
isInCourse: false
|
13244
13320
|
}))).then(function (res) {
|
@@ -13274,10 +13350,10 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13274
13350
|
};
|
13275
13351
|
var getTeacherNotInClassList = function getTeacherNotInClassList() {
|
13276
13352
|
try {
|
13277
|
-
if (!
|
13353
|
+
if (!classId) return Promise.resolve();
|
13278
13354
|
var _temp18 = _catch(function () {
|
13279
13355
|
var _textSearchRef$curren2;
|
13280
|
-
return Promise.resolve(getTeacherClassApi(
|
13356
|
+
return Promise.resolve(getTeacherClassApi(classId, _extends({}, filter, {
|
13281
13357
|
textSearch: (_textSearchRef$curren2 = textSearchRef.current) === null || _textSearchRef$curren2 === void 0 ? void 0 : _textSearchRef$curren2.value,
|
13282
13358
|
isInCourse: false
|
13283
13359
|
}))).then(function (res) {
|
@@ -13393,7 +13469,7 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13393
13469
|
};
|
13394
13470
|
React.useEffect(function () {
|
13395
13471
|
handleGetDetailData();
|
13396
|
-
}, [
|
13472
|
+
}, [classId]);
|
13397
13473
|
React.useEffect(function () {
|
13398
13474
|
handleFetchUsers();
|
13399
13475
|
}, [JSON.stringify(filter)]);
|
@@ -13401,9 +13477,9 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13401
13477
|
document.title = t("study_peak") + " | " + t(PAGE_TITLE$4);
|
13402
13478
|
}, [t]);
|
13403
13479
|
return {
|
13404
|
-
|
13480
|
+
classId: classId,
|
13405
13481
|
schema: schema,
|
13406
|
-
|
13482
|
+
isDisabled: isDisabled,
|
13407
13483
|
paging: paging,
|
13408
13484
|
filter: filter,
|
13409
13485
|
isTeacher: isTeacher,
|
@@ -13795,15 +13871,17 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
13795
13871
|
history = _ref.history,
|
13796
13872
|
classListUrl = _ref.classListUrl,
|
13797
13873
|
role = _ref.role;
|
13874
|
+
var classId = !id || Number.isNaN(+id) ? 0 : +id;
|
13798
13875
|
var _useClassDetail = useClassDetail({
|
13799
13876
|
history: history,
|
13800
|
-
|
13801
|
-
role: role
|
13877
|
+
classId: classId,
|
13878
|
+
role: role,
|
13879
|
+
classListUrl: classListUrl
|
13802
13880
|
}),
|
13803
13881
|
schema = _useClassDetail.schema,
|
13804
13882
|
paging = _useClassDetail.paging,
|
13805
|
-
isAdmin = _useClassDetail.isAdmin,
|
13806
13883
|
isTeacher = _useClassDetail.isTeacher,
|
13884
|
+
isDisabled = _useClassDetail.isDisabled,
|
13807
13885
|
filter = _useClassDetail.filter,
|
13808
13886
|
listUserSelected = _useClassDetail.listUserSelected,
|
13809
13887
|
userList = _useClassDetail.userList,
|
@@ -13853,7 +13931,7 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
13853
13931
|
if (selected === TabList$1[1].value) studentListProps.resetData();
|
13854
13932
|
if (selected === TabList$1[2].value) studentListProps.resetData();
|
13855
13933
|
}, [selected]);
|
13856
|
-
return React__default.createElement(material.Box, null, !!
|
13934
|
+
return React__default.createElement(material.Box, null, !!classId && React__default.createElement(material.Box, null, React__default.createElement(material.Stack, {
|
13857
13935
|
display: "flex",
|
13858
13936
|
flexDirection: "row",
|
13859
13937
|
gap: "8px"
|
@@ -13883,12 +13961,12 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
13883
13961
|
direction: "row",
|
13884
13962
|
alignItems: "center",
|
13885
13963
|
justifyContent: "space-between",
|
13886
|
-
mt:
|
13964
|
+
mt: classId ? 2 : 0,
|
13887
13965
|
mb: 2,
|
13888
|
-
pt:
|
13966
|
+
pt: classId ? "12px" : "0px"
|
13889
13967
|
}, React__default.createElement(material.Typography, {
|
13890
13968
|
variant: "h4"
|
13891
|
-
}, t(!
|
13969
|
+
}, t(!classId ? "create_class" : !isDisabled ? "update_class" : "view_class"))), React__default.createElement(formik.Formik, {
|
13892
13970
|
initialValues: DEFAULT_CLASS_REQUEST,
|
13893
13971
|
validationSchema: schema,
|
13894
13972
|
onSubmit: handleSubmit
|
@@ -13896,30 +13974,30 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
13896
13974
|
return React__default.createElement(ClassForm, {
|
13897
13975
|
classListUrl: classListUrl,
|
13898
13976
|
history: history,
|
13899
|
-
|
13977
|
+
classId: classId,
|
13900
13978
|
formikProp: props,
|
13901
13979
|
data: classRequest,
|
13902
13980
|
teachers: teacherOptions,
|
13903
|
-
disabled:
|
13981
|
+
disabled: isDisabled,
|
13904
13982
|
onSearchTeachers: handleChangeTextSearchTeachers
|
13905
13983
|
});
|
13906
13984
|
})), React__default.createElement(CustomTabPanel, {
|
13907
13985
|
value: selected,
|
13908
13986
|
index: TabList$1[1].value
|
13909
|
-
}, !!
|
13910
|
-
disabled:
|
13987
|
+
}, !!classId && selected === TabList$1[1].value && React__default.createElement(StudentList, Object.assign({
|
13988
|
+
disabled: isDisabled && !isTeacher,
|
13911
13989
|
onAdd: handleOpenSelectDialog
|
13912
13990
|
}, studentListProps))), React__default.createElement(CustomTabPanel, {
|
13913
13991
|
value: selected,
|
13914
13992
|
index: TabList$1[2].value
|
13915
|
-
}, !!
|
13916
|
-
disabled:
|
13993
|
+
}, !!classId && selected === TabList$1[2].value && React__default.createElement(TeacherList, Object.assign({
|
13994
|
+
disabled: isDisabled,
|
13917
13995
|
onAdd: handleOpenSelectDialog
|
13918
13996
|
}, teacherListProps))), React__default.createElement(CustomTabPanel, {
|
13919
13997
|
value: selected,
|
13920
13998
|
index: TabList$1[3].value
|
13921
|
-
}, !!
|
13922
|
-
disabled:
|
13999
|
+
}, !!classId && selected === TabList$1[3].value && React__default.createElement(LessonList, Object.assign({
|
14000
|
+
disabled: isDisabled,
|
13923
14001
|
startDate: course === null || course === void 0 ? void 0 : course.startDate,
|
13924
14002
|
endDate: course === null || course === void 0 ? void 0 : course.endDate
|
13925
14003
|
}, lessonListProps, {
|
@@ -13927,7 +14005,7 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
13927
14005
|
handleDeleteLessonClass: handleDeleteLessonClass,
|
13928
14006
|
teachers: teacherOptions,
|
13929
14007
|
onSearchTeachers: handleChangeTextSearchTeachers
|
13930
|
-
}))), (
|
14008
|
+
}))), (!isDisabled && !isTeacher || openSelectDialog === "Student") && React__default.createElement(SelectDialog, {
|
13931
14009
|
open: !!openSelectDialog,
|
13932
14010
|
isStudent: openSelectDialog === "Student",
|
13933
14011
|
onClose: handleCloseSelectDialog,
|
@@ -14093,6 +14171,10 @@ var ClassList = function ClassList(_ref) {
|
|
14093
14171
|
role = _ref.role,
|
14094
14172
|
classCreateUrl = _ref.classCreateUrl,
|
14095
14173
|
classUpdateUrl = _ref.classUpdateUrl;
|
14174
|
+
var isSuperAdmin = reactRedux.useSelector(function (state) {
|
14175
|
+
var _state$common, _state$common$user;
|
14176
|
+
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;
|
14177
|
+
});
|
14096
14178
|
var isAdmin = role === exports.Role.Admin;
|
14097
14179
|
var _useClassList = useClassList(history, classCreateUrl, classUpdateUrl),
|
14098
14180
|
t = _useClassList.t,
|
@@ -14116,7 +14198,7 @@ var ClassList = function ClassList(_ref) {
|
|
14116
14198
|
mb: 2
|
14117
14199
|
}, React__default.createElement(material.Typography, {
|
14118
14200
|
variant: "h4"
|
14119
|
-
}, t("classes")), isAdmin && React__default.createElement(MButton, {
|
14201
|
+
}, t("classes")), (isAdmin || isSuperAdmin) && React__default.createElement(MButton, {
|
14120
14202
|
variant: "contained",
|
14121
14203
|
color: "inherit",
|
14122
14204
|
startIcon: React__default.createElement(fa.FaPlus, {
|
@@ -14156,7 +14238,7 @@ var ClassList = function ClassList(_ref) {
|
|
14156
14238
|
key: i.id
|
14157
14239
|
}, React__default.createElement(TableCell, null, (paging.page - 1) * paging.limit + index + 1), React__default.createElement(TableCell, {
|
14158
14240
|
className: "text-nowrap"
|
14159
|
-
}, i.name), React__default.createElement(TableCell, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell, null, i.totalStudents), React__default.createElement(TableCell, null, i.totalTeachers), React__default.createElement(TableCell, null, i.totalLessons), React__default.createElement(TableCell, null, isAdmin && React__default.createElement("div", {
|
14241
|
+
}, i.name), React__default.createElement(TableCell, null, toLocalTime(i.startDate, t("date_format"))), React__default.createElement(TableCell, null, toLocalTime(i.endDate, t("date_format"))), React__default.createElement(TableCell, null, i.totalStudents), React__default.createElement(TableCell, null, i.totalTeachers), React__default.createElement(TableCell, null, i.totalLessons), React__default.createElement(TableCell, null, (isAdmin || isSuperAdmin) && React__default.createElement("div", {
|
14160
14242
|
className: "d-flex"
|
14161
14243
|
}, React__default.createElement(material.IconButton, {
|
14162
14244
|
color: "default",
|
@@ -14174,7 +14256,7 @@ var ClassList = function ClassList(_ref) {
|
|
14174
14256
|
}
|
14175
14257
|
}, React__default.createElement(fa6.FaTrashCan, {
|
14176
14258
|
size: 12
|
14177
|
-
}))), !isAdmin && React__default.createElement(material.IconButton, {
|
14259
|
+
}))), !(isAdmin || isSuperAdmin) && React__default.createElement(material.IconButton, {
|
14178
14260
|
color: "default",
|
14179
14261
|
className: "bg-primary text-white me-1",
|
14180
14262
|
onClick: function onClick() {
|
@@ -19135,6 +19217,7 @@ var NoteItem = function NoteItem(_ref) {
|
|
19135
19217
|
}),
|
19136
19218
|
placement: placement
|
19137
19219
|
}, React__default.createElement(material.IconButton, {
|
19220
|
+
disabled: !actions.length,
|
19138
19221
|
onClick: handleMoreClick
|
19139
19222
|
}, React__default.createElement(md.MdMoreHoriz, {
|
19140
19223
|
color: "#5d5d5b"
|
@@ -19442,11 +19525,10 @@ var useExamResultData = function useExamResultData(props) {
|
|
19442
19525
|
var getData = function getData() {
|
19443
19526
|
resetData();
|
19444
19527
|
if (!(user !== null && user !== void 0 && user.email)) return;
|
19445
|
-
|
19446
|
-
!isStudent && getStudentDataByTeacher(examSessionId, studentId);
|
19528
|
+
if (chapterId) getDataTextbookResult();else isStudent ? getStudentData(examCode) : getStudentDataByTeacher(examSessionId, studentId);
|
19447
19529
|
};
|
19448
19530
|
examCode === "example-code" ? setExampleData() : getData();
|
19449
|
-
}, [examCode, isStudent, code, examSessionId, studentId, user === null || user === void 0 ? void 0 : user.email]);
|
19531
|
+
}, [examCode, isStudent, code, examSessionId, studentId, chapterId, user === null || user === void 0 ? void 0 : user.email]);
|
19450
19532
|
var handlePrevChart = function handlePrevChart() {
|
19451
19533
|
if (dataChartIndex > 0) {
|
19452
19534
|
setDataChartIndex(dataChartIndex - 1);
|
@@ -20902,6 +20984,9 @@ var UserSchema = yup.object().shape({
|
|
20902
20984
|
},
|
20903
20985
|
then: function then(schema) {
|
20904
20986
|
return schema.trim().required("school_name_is_required");
|
20987
|
+
},
|
20988
|
+
otherwise: function otherwise(schema) {
|
20989
|
+
return schema.notRequired();
|
20905
20990
|
}
|
20906
20991
|
}),
|
20907
20992
|
grade: yup.number().transform(function (value) {
|
@@ -20912,6 +20997,9 @@ var UserSchema = yup.object().shape({
|
|
20912
20997
|
},
|
20913
20998
|
then: function then(schema) {
|
20914
20999
|
return schema.required("student_grade_is_required").typeError("student_grade_is_required").min(1, "student_grade_is_invalid").max(12, "student_grade_is_invalid");
|
21000
|
+
},
|
21001
|
+
otherwise: function otherwise(schema) {
|
21002
|
+
return schema.notRequired();
|
20915
21003
|
}
|
20916
21004
|
}),
|
20917
21005
|
major: yup.string().when("role", {
|
@@ -20920,6 +21008,9 @@ var UserSchema = yup.object().shape({
|
|
20920
21008
|
},
|
20921
21009
|
then: function then(schema) {
|
20922
21010
|
return schema.trim().required("major_is_required");
|
21011
|
+
},
|
21012
|
+
otherwise: function otherwise(schema) {
|
21013
|
+
return schema.notRequired();
|
20923
21014
|
}
|
20924
21015
|
}),
|
20925
21016
|
parentPhoneNumber: yup.string().when("role", {
|
@@ -20930,6 +21021,9 @@ var UserSchema = yup.object().shape({
|
|
20930
21021
|
return schema.trim().matches(phoneRegExp, {
|
20931
21022
|
message: "parent_phone_number_is_invalid"
|
20932
21023
|
}).min(10, "parent_phone_number_is_invalid").required("parent_phone_number_is_required");
|
21024
|
+
},
|
21025
|
+
otherwise: function otherwise(schema) {
|
21026
|
+
return schema.notRequired();
|
20933
21027
|
}
|
20934
21028
|
}),
|
20935
21029
|
parentName: yup.string().when("role", {
|
@@ -20938,6 +21032,9 @@ var UserSchema = yup.object().shape({
|
|
20938
21032
|
},
|
20939
21033
|
then: function then(schema) {
|
20940
21034
|
return schema.trim().required("parent_name_is_required");
|
21035
|
+
},
|
21036
|
+
otherwise: function otherwise(schema) {
|
21037
|
+
return schema.notRequired();
|
20941
21038
|
}
|
20942
21039
|
}),
|
20943
21040
|
subjectId: yup.number().when("role", {
|
@@ -21477,7 +21574,8 @@ var UserDialog = function UserDialog(_ref) {
|
|
21477
21574
|
size: "1rem"
|
21478
21575
|
}) : React__default.createElement(material.IconButton, {
|
21479
21576
|
className: "bg-success",
|
21480
|
-
onClick: getDefaultPassCode
|
21577
|
+
onClick: getDefaultPassCode,
|
21578
|
+
disabled: disabled
|
21481
21579
|
}, React__default.createElement(fa6.FaRotateRight, {
|
21482
21580
|
color: "#FFF",
|
21483
21581
|
size: 10
|
@@ -21504,7 +21602,8 @@ var UserDialog = function UserDialog(_ref) {
|
|
21504
21602
|
disabled: disabled
|
21505
21603
|
}), React__default.createElement(material.Box, null, React__default.createElement(material.IconButton, {
|
21506
21604
|
className: "bg-success",
|
21507
|
-
onClick: getRandomPassCode
|
21605
|
+
onClick: getRandomPassCode,
|
21606
|
+
disabled: disabled
|
21508
21607
|
}, React__default.createElement(fa6.FaRotateRight, {
|
21509
21608
|
color: "#FFF",
|
21510
21609
|
size: 10
|
@@ -22165,6 +22264,10 @@ var RecentUserActionDialog = function RecentUserActionDialog(_ref) {
|
|
22165
22264
|
|
22166
22265
|
var UserList = function UserList(_ref) {
|
22167
22266
|
var role = _ref.role;
|
22267
|
+
var isSuperAdmin = reactRedux.useSelector(function (state) {
|
22268
|
+
var _state$common, _state$common$user;
|
22269
|
+
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;
|
22270
|
+
});
|
22168
22271
|
var isAdmin = role === exports.Role.Admin;
|
22169
22272
|
var _useUserList = useUserList(role),
|
22170
22273
|
userHeaders = _useUserList.userHeaders,
|
@@ -22218,7 +22321,7 @@ var UserList = function UserList(_ref) {
|
|
22218
22321
|
mb: 2
|
22219
22322
|
}, React__default.createElement(material.Typography, {
|
22220
22323
|
variant: "h4"
|
22221
|
-
}, t("users")), isAdmin && React__default.createElement("div", {
|
22324
|
+
}, t("users")), (isAdmin || isSuperAdmin) && React__default.createElement("div", {
|
22222
22325
|
className: "d-flex"
|
22223
22326
|
}, React__default.createElement("input", {
|
22224
22327
|
type: "file",
|
@@ -22326,7 +22429,7 @@ var UserList = function UserList(_ref) {
|
|
22326
22429
|
key: i.id
|
22327
22430
|
}, React__default.createElement(TableCell, null, (paging.page - 1) * paging.limit + index + 1), React__default.createElement(TableCell, null, i.email), React__default.createElement(TableCell, null, i.fullName), React__default.createElement(TableCell, null, i.phoneNumber), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))), React__default.createElement(TableCell, null, (_i$classes = i.classes) === null || _i$classes === void 0 ? void 0 : _i$classes.join(", ")), React__default.createElement(TableCell, null, (_i$subject = i.subject) === null || _i$subject === void 0 ? void 0 : _i$subject.name), React__default.createElement(TableCell, null, !!i.roles && formatRole(i.roles, t)), React__default.createElement(TableCell, null, React__default.createElement("div", {
|
22328
22431
|
className: "d-flex"
|
22329
|
-
}, isAdmin ? React__default.createElement(material.IconButton, {
|
22432
|
+
}, isAdmin || isSuperAdmin ? React__default.createElement(material.IconButton, {
|
22330
22433
|
color: "default",
|
22331
22434
|
className: styles$5["action-btn"] + " bg-warning text-white me-2",
|
22332
22435
|
onClick: function onClick() {
|
@@ -22343,7 +22446,7 @@ var UserList = function UserList(_ref) {
|
|
22343
22446
|
}
|
22344
22447
|
}, React__default.createElement(fa.FaEye, {
|
22345
22448
|
size: 12
|
22346
|
-
})), isAdmin && React__default.createElement(material.IconButton, {
|
22449
|
+
})), (isAdmin || isSuperAdmin) && React__default.createElement(material.IconButton, {
|
22347
22450
|
onClick: function onClick() {
|
22348
22451
|
return openDeleteDialog(i);
|
22349
22452
|
},
|
@@ -22373,14 +22476,14 @@ var UserList = function UserList(_ref) {
|
|
22373
22476
|
}), React__default.createElement(UserDialog, {
|
22374
22477
|
open: openUserDialog,
|
22375
22478
|
data: userDetail,
|
22376
|
-
disabled: !isAdmin,
|
22479
|
+
disabled: !(isAdmin || isSuperAdmin),
|
22377
22480
|
onClose: handleCloseUserDialog,
|
22378
22481
|
onSubmitForm: handleCreateOrUpdateUser
|
22379
22482
|
}), React__default.createElement(RecentUserActionDialog, {
|
22380
22483
|
open: isOpenRecentUserActionDialog,
|
22381
22484
|
onClose: handleCloseRecentUserActionDialog,
|
22382
22485
|
recentUserActions: recentUserActions
|
22383
|
-
}), isAdmin && React__default.createElement(DeleteUserCsvDialog, {
|
22486
|
+
}), (isAdmin || isSuperAdmin) && React__default.createElement(DeleteUserCsvDialog, {
|
22384
22487
|
open: isOpenDeleteUserCsv,
|
22385
22488
|
file: deleteFile,
|
22386
22489
|
onChangeFile: handleChangeDeleteFile,
|
@@ -23692,9 +23795,6 @@ var TextbookDefaultQuery = {
|
|
23692
23795
|
sortColumnDirection: exports.OrderType.ASC,
|
23693
23796
|
sortColumnName: TextbookSortBy.Title
|
23694
23797
|
};
|
23695
|
-
var TEXTBOOK_URL$1 = "/teacher/teacher-admin/textbooks";
|
23696
|
-
var ADMIN_TEXTBOOK_URL = "/textbooks";
|
23697
|
-
var SUPER_ADMIN_TEXTBOOK_URL = "/personal/textbooks";
|
23698
23798
|
var DEFAULT_TEXTBOOK = {
|
23699
23799
|
name: "",
|
23700
23800
|
chapters: []
|
@@ -23862,7 +23962,9 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
23862
23962
|
isReadonlyParam = props.isReadonlyParam,
|
23863
23963
|
navigate = props.navigate,
|
23864
23964
|
id = props.id,
|
23865
|
-
isSuperAdmin = props.isSuperAdmin
|
23965
|
+
isSuperAdmin = props.isSuperAdmin,
|
23966
|
+
onNavigateDetail = props.onNavigateDetail,
|
23967
|
+
onNavigateList = props.onNavigateList;
|
23866
23968
|
var _useTranslation = reactI18next.useTranslation(),
|
23867
23969
|
t = _useTranslation.t;
|
23868
23970
|
var dispatch = reactRedux.useDispatch();
|
@@ -23895,7 +23997,6 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
23895
23997
|
var _useState9 = React.useState([]),
|
23896
23998
|
categoryList = _useState9[0],
|
23897
23999
|
setCategoryList = _useState9[1];
|
23898
|
-
var textbookUrl = isSuperAdmin ? SUPER_ADMIN_TEXTBOOK_URL : role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
23899
24000
|
var isAdminSite = role === exports.Role.Admin;
|
23900
24001
|
var user = reactRedux.useSelector(function (state) {
|
23901
24002
|
var _state$common;
|
@@ -24455,10 +24556,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
24455
24556
|
subjectId: textbook.subject.id
|
24456
24557
|
};
|
24457
24558
|
return Promise.resolve(createTextbookApi(_body)).then(function (res) {
|
24458
|
-
|
24459
|
-
navigate(textbookUrl + "/" + textbookId, {
|
24460
|
-
replace: true
|
24461
|
-
});
|
24559
|
+
onNavigateDetail === null || onNavigateDetail === void 0 ? void 0 : onNavigateDetail(res.data, false, true);
|
24462
24560
|
});
|
24463
24561
|
}
|
24464
24562
|
}();
|
@@ -24501,9 +24599,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
24501
24599
|
}
|
24502
24600
|
};
|
24503
24601
|
var handleGoToTextbookList = function handleGoToTextbookList() {
|
24504
|
-
|
24505
|
-
replace: true
|
24506
|
-
});
|
24602
|
+
onNavigateList(true);
|
24507
24603
|
};
|
24508
24604
|
var textbookSubject = React.useMemo(function () {
|
24509
24605
|
return textbook !== null && textbook !== void 0 && textbook.subject ? {
|
@@ -24899,7 +24995,8 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
24899
24995
|
var _textbook$chapters;
|
24900
24996
|
var navigate = props.navigate,
|
24901
24997
|
as = props.as,
|
24902
|
-
className = props.className
|
24998
|
+
className = props.className,
|
24999
|
+
onNavigateDetail = props.onNavigateDetail;
|
24903
25000
|
var _useTextbookDetail = useTextbookDetail(props),
|
24904
25001
|
id = _useTextbookDetail.id,
|
24905
25002
|
t = _useTextbookDetail.t,
|
@@ -24948,7 +25045,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
24948
25045
|
}),
|
24949
25046
|
categoryOptions = _useCategorySelect.categoryOptions;
|
24950
25047
|
var Wrapper = as || material.Container;
|
24951
|
-
if (isNotFound) return React__default.createElement(NotFound, {
|
25048
|
+
if (isNotFound || id && textbook.isPrepared) return React__default.createElement(NotFound, {
|
24952
25049
|
history: navigate
|
24953
25050
|
});
|
24954
25051
|
return React__default.createElement(Wrapper, {
|
@@ -25028,7 +25125,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
25028
25125
|
textbook: textbook,
|
25029
25126
|
onBack: handleGoToTextbookList,
|
25030
25127
|
onSave: handleCreateOrUpdateTextbook,
|
25031
|
-
hideSave: !!id && isReadonly
|
25128
|
+
hideSave: !!id && isReadonly || !onNavigateDetail
|
25032
25129
|
}))), React__default.createElement(material.Grid, {
|
25033
25130
|
item: true,
|
25034
25131
|
xs: 12,
|
@@ -25106,8 +25203,8 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
25106
25203
|
|
25107
25204
|
var PAGE_TITLE$7 = "textbooks";
|
25108
25205
|
var useTextbookList = function useTextbookList(props) {
|
25109
|
-
var
|
25110
|
-
|
25206
|
+
var onNavigateCreate = props.onNavigateCreate,
|
25207
|
+
onNavigateDetail = props.onNavigateDetail,
|
25111
25208
|
isSuperAdmin = props.isSuperAdmin;
|
25112
25209
|
var _useList = useList(function (search) {
|
25113
25210
|
return getTextbookListApi(search, isSuperAdmin);
|
@@ -25125,21 +25222,15 @@ var useTextbookList = function useTextbookList(props) {
|
|
25125
25222
|
getData = _useList.getData;
|
25126
25223
|
var _useTranslation = reactI18next.useTranslation(),
|
25127
25224
|
t = _useTranslation.t;
|
25128
|
-
var textbookUrl = isSuperAdmin ? SUPER_ADMIN_TEXTBOOK_URL : role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
25129
25225
|
var dispatch = reactRedux.useDispatch();
|
25130
|
-
var handleViewTextbook = function handleViewTextbook(
|
25131
|
-
|
25132
|
-
navigate(textbookUrl + "/" + id + "?readonly=true", {
|
25133
|
-
replace: true
|
25134
|
-
});
|
25226
|
+
var handleViewTextbook = function handleViewTextbook(data) {
|
25227
|
+
onNavigateDetail(data, true, true);
|
25135
25228
|
};
|
25136
|
-
var handleUpdateTextbook = function handleUpdateTextbook(
|
25137
|
-
|
25138
|
-
replace: true
|
25139
|
-
});
|
25229
|
+
var handleUpdateTextbook = function handleUpdateTextbook(data) {
|
25230
|
+
onNavigateDetail(data, false, true);
|
25140
25231
|
};
|
25141
25232
|
var handleCreateTextbook = function handleCreateTextbook() {
|
25142
|
-
|
25233
|
+
onNavigateCreate === null || onNavigateCreate === void 0 ? void 0 : onNavigateCreate();
|
25143
25234
|
};
|
25144
25235
|
var toggleConfirmDialog = function toggleConfirmDialog() {
|
25145
25236
|
handleChangeSelectedItem(undefined);
|
@@ -25368,7 +25459,7 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25368
25459
|
var getData = props.getData,
|
25369
25460
|
role = props.role,
|
25370
25461
|
isSuperAdmin = props.isSuperAdmin;
|
25371
|
-
var _useList = useList(
|
25462
|
+
var _useList = useList(!isSuperAdmin ? function (search) {
|
25372
25463
|
return getTeacherListApi$1(search);
|
25373
25464
|
} : null, DefaultTeacherQuery),
|
25374
25465
|
filterShare = _useList.filter,
|
@@ -25408,8 +25499,10 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25408
25499
|
var _state$common;
|
25409
25500
|
return (state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user) || {};
|
25410
25501
|
});
|
25411
|
-
var isAdmin = infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$roles = infoUser.roles) === null || _infoUser$roles === void 0 ? void 0 : _infoUser$roles.includes(exports.Role.Admin);
|
25502
|
+
var isAdmin = infoUser && (infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$roles = infoUser.roles) === null || _infoUser$roles === void 0 ? void 0 : _infoUser$roles.includes(exports.Role.Admin));
|
25412
25503
|
var isAdminSite = role === exports.Role.Admin;
|
25504
|
+
var onAcademy = !!infoUser.academyDomain;
|
25505
|
+
var isSuperAdminUser = infoUser && infoUser.isSuperAdmin;
|
25413
25506
|
React.useEffect(function () {
|
25414
25507
|
if (!isUpdate) {
|
25415
25508
|
filterTeacherNotShared(currentModel);
|
@@ -25418,6 +25511,8 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25418
25511
|
}
|
25419
25512
|
}, [teachers, isUpdate]);
|
25420
25513
|
var handleOpenShareDialog = function handleOpenShareDialog(textbook) {
|
25514
|
+
if (textSearchShareRef.current) textSearchShareRef.current.value = "";
|
25515
|
+
getData();
|
25421
25516
|
setIsUpdate(false);
|
25422
25517
|
setOpenShareDialog(true);
|
25423
25518
|
setCurrentModel(textbook);
|
@@ -25442,6 +25537,8 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25442
25537
|
setSelectedShare([]);
|
25443
25538
|
};
|
25444
25539
|
var handleOpenUpdateShareDialog = function handleOpenUpdateShareDialog(textbook) {
|
25540
|
+
if (textSearchShareRef.current) textSearchShareRef.current.value = "";
|
25541
|
+
getData();
|
25445
25542
|
setIsUpdate(true);
|
25446
25543
|
setOpenShareDialog(true);
|
25447
25544
|
setCurrentModel(textbook);
|
@@ -25496,8 +25593,11 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25496
25593
|
});
|
25497
25594
|
setShared(existsTeachers);
|
25498
25595
|
};
|
25499
|
-
var
|
25500
|
-
return
|
25596
|
+
var enabledSave = function enabledSave(textbook) {
|
25597
|
+
return isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && textbook.isShared && textbook.createdBy.id === infoUser.id;
|
25598
|
+
};
|
25599
|
+
var enabledShare = function enabledShare(textbook) {
|
25600
|
+
return textbook.isShared && onAcademy && (isAdminSite || isSuperAdminUser || !isAdmin && textbook.createdBy.id === infoUser.id);
|
25501
25601
|
};
|
25502
25602
|
var handleShareTextbook = function handleShareTextbook(teacherIds, textbookId) {
|
25503
25603
|
try {
|
@@ -25575,13 +25675,16 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25575
25675
|
isUpdate: isUpdate,
|
25576
25676
|
handleUpdateSharedTextbook: handleUpdateSharedTextbook,
|
25577
25677
|
currentModel: currentModel,
|
25578
|
-
|
25678
|
+
enabledSave: enabledSave,
|
25679
|
+
enabledShare: enabledShare,
|
25579
25680
|
isAdmin: isAdmin,
|
25580
25681
|
isAdminSite: isAdminSite
|
25581
25682
|
};
|
25582
25683
|
};
|
25583
25684
|
|
25584
25685
|
var TextbookList = function TextbookList(props) {
|
25686
|
+
var _props$createable = props.createable,
|
25687
|
+
createable = _props$createable === void 0 ? true : _props$createable;
|
25585
25688
|
var _useTranslation = reactI18next.useTranslation(),
|
25586
25689
|
t = _useTranslation.t;
|
25587
25690
|
var _useTextbookList = useTextbookList(props),
|
@@ -25627,9 +25730,8 @@ var TextbookList = function TextbookList(props) {
|
|
25627
25730
|
isUpdate = _useTextbookShare.isUpdate,
|
25628
25731
|
handleUpdateSharedTextbook = _useTextbookShare.handleUpdateSharedTextbook,
|
25629
25732
|
currentModel = _useTextbookShare.currentModel,
|
25630
|
-
|
25631
|
-
|
25632
|
-
isAdminSite = _useTextbookShare.isAdminSite;
|
25733
|
+
enabledSave = _useTextbookShare.enabledSave,
|
25734
|
+
enabledShare = _useTextbookShare.enabledShare;
|
25633
25735
|
return React__default.createElement(LayoutList, {
|
25634
25736
|
title: t(TEXTBOOK_PAGE_TITLE)
|
25635
25737
|
}, React__default.createElement(material.Grid, {
|
@@ -25651,14 +25753,14 @@ var TextbookList = function TextbookList(props) {
|
|
25651
25753
|
justifyContent: "flex-end"
|
25652
25754
|
},
|
25653
25755
|
spacing: 2
|
25654
|
-
},
|
25756
|
+
}, createable && React__default.createElement(material.Button, {
|
25655
25757
|
startIcon: React__default.createElement(fa.FaPlus, {
|
25656
25758
|
size: 12
|
25657
25759
|
}),
|
25658
25760
|
variant: "contained",
|
25659
25761
|
color: "primary",
|
25660
25762
|
onClick: handleCreateTextbook,
|
25661
|
-
className:
|
25763
|
+
className: "bg-success text-white"
|
25662
25764
|
}, t("create_textbook")))), React__default.createElement(material.Grid, {
|
25663
25765
|
item: true,
|
25664
25766
|
xs: 12,
|
@@ -25680,32 +25782,32 @@ var TextbookList = function TextbookList(props) {
|
|
25680
25782
|
alignItems: "center"
|
25681
25783
|
}, React__default.createElement(material.IconButton, {
|
25682
25784
|
color: "default",
|
25683
|
-
className: (
|
25785
|
+
className: (!enabledSave(i) ? "bg-secondary" : "bg-warning") + " text-white",
|
25684
25786
|
onClick: function onClick() {
|
25685
|
-
return handleUpdateTextbook(i
|
25787
|
+
return handleUpdateTextbook(i);
|
25686
25788
|
},
|
25687
|
-
disabled:
|
25789
|
+
disabled: !enabledSave(i)
|
25688
25790
|
}, React__default.createElement(fa6.FaPencil, {
|
25689
25791
|
size: 12
|
25690
25792
|
})), React__default.createElement(material.IconButton, {
|
25691
25793
|
color: "default",
|
25692
25794
|
className: "bg-primary text-white",
|
25693
25795
|
onClick: function onClick() {
|
25694
|
-
return handleViewTextbook(i
|
25796
|
+
return handleViewTextbook(i);
|
25695
25797
|
}
|
25696
25798
|
}, React__default.createElement(fa.FaEye, {
|
25697
25799
|
size: 12
|
25698
25800
|
})), React__default.createElement(material.IconButton, {
|
25699
|
-
disabled:
|
25700
|
-
className: (
|
25801
|
+
disabled: !enabledShare(i),
|
25802
|
+
className: (!enabledShare(i) ? "bg-secondary" : "bg-info") + " text-white me-1",
|
25701
25803
|
onClick: function onClick() {
|
25702
25804
|
return handleOpenShareDialog(i);
|
25703
25805
|
}
|
25704
25806
|
}, React__default.createElement(fa.FaShare, {
|
25705
25807
|
size: 12
|
25706
25808
|
})), React__default.createElement(material.IconButton, {
|
25707
|
-
disabled:
|
25708
|
-
className: (
|
25809
|
+
disabled: !enabledShare(i),
|
25810
|
+
className: (!enabledShare(i) ? "bg-secondary" : "bg-success") + " text-white me-1",
|
25709
25811
|
onClick: function onClick() {
|
25710
25812
|
return handleOpenUpdateShareDialog(i);
|
25711
25813
|
}
|
@@ -25713,11 +25815,11 @@ var TextbookList = function TextbookList(props) {
|
|
25713
25815
|
size: 12
|
25714
25816
|
})), React__default.createElement(material.IconButton, {
|
25715
25817
|
color: "default",
|
25716
|
-
className: (
|
25818
|
+
className: (!enabledSave(i) ? "bg-secondary" : "bg-danger") + " text-white mr-1",
|
25717
25819
|
onClick: function onClick() {
|
25718
25820
|
return handleSelectDeleteTextbook(i);
|
25719
25821
|
},
|
25720
|
-
disabled:
|
25822
|
+
disabled: !enabledSave(i)
|
25721
25823
|
}, React__default.createElement(fa.FaTrash, {
|
25722
25824
|
size: 12
|
25723
25825
|
})))));
|
@@ -27482,8 +27584,8 @@ var CourseSelector = function CourseSelector(_ref) {
|
|
27482
27584
|
}));
|
27483
27585
|
};
|
27484
27586
|
|
27485
|
-
var TEXTBOOK_URL$
|
27486
|
-
var SUPER_ADMIN_TEXTBOOK_URL
|
27587
|
+
var TEXTBOOK_URL$1 = BASE_URL + "/api/textbooks";
|
27588
|
+
var SUPER_ADMIN_TEXTBOOK_URL = SUPER_ADMIN_BASE_URL + "/api/textbook";
|
27487
27589
|
var PREPARED_TEXTBOOK_URL = BASE_URL + "/api/textbooks/prepared-textbooks";
|
27488
27590
|
var SUPER_ADMIN_PREPARED_TEXTBOOK_URL = SUPER_ADMIN_BASE_URL + "/api/textbook/prepared-textbooks";
|
27489
27591
|
var FILE_URL = BASE_URL + "/api/file/images";
|
@@ -27492,7 +27594,7 @@ var uploadImageFileApi = function uploadImageFileApi(formData, isAdmin) {
|
|
27492
27594
|
return apiUpload.post("" + (isAdmin ? SUPER_FILE_URL : FILE_URL), formData);
|
27493
27595
|
};
|
27494
27596
|
var getTextbookDetailApi = function getTextbookDetailApi(id, isAdmin) {
|
27495
|
-
return api.get((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$
|
27597
|
+
return api.get((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$1) + "/" + id);
|
27496
27598
|
};
|
27497
27599
|
var getTextbookListApi$1 = function getTextbookListApi(query, isAdmin) {
|
27498
27600
|
return api.get("" + (isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : PREPARED_TEXTBOOK_URL), {
|
@@ -27506,14 +27608,14 @@ var updateTextbookApi$1 = function updateTextbookApi(values, id, isAdmin) {
|
|
27506
27608
|
return api.put((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : PREPARED_TEXTBOOK_URL) + "/" + id, values);
|
27507
27609
|
};
|
27508
27610
|
var getAcademyByTeacher = function getAcademyByTeacher(email, isAdmin) {
|
27509
|
-
return api.get((isAdmin ? SUPER_ADMIN_TEXTBOOK_URL
|
27611
|
+
return api.get((isAdmin ? SUPER_ADMIN_TEXTBOOK_URL : TEXTBOOK_URL$1) + "/academy-teacher-owner", {
|
27510
27612
|
params: {
|
27511
27613
|
email: email
|
27512
27614
|
}
|
27513
27615
|
});
|
27514
27616
|
};
|
27515
27617
|
var deleteTextbookApi$1 = function deleteTextbookApi(textbookId, isAdmin) {
|
27516
|
-
return api["delete"]((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$
|
27618
|
+
return api["delete"]((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$1) + "/" + textbookId);
|
27517
27619
|
};
|
27518
27620
|
|
27519
27621
|
var useSelect = function useSelect(_ref) {
|
@@ -27762,8 +27864,8 @@ var TextbookOwners = function TextbookOwners(_ref) {
|
|
27762
27864
|
};
|
27763
27865
|
|
27764
27866
|
var useTextbookManagement = function useTextbookManagement(_ref) {
|
27765
|
-
var
|
27766
|
-
|
27867
|
+
var textbookId = _ref.textbookId,
|
27868
|
+
onNavigateList = _ref.onNavigateList;
|
27767
27869
|
var _useTranslation = reactI18next.useTranslation(),
|
27768
27870
|
t = _useTranslation.t;
|
27769
27871
|
var theme = material.useTheme();
|
@@ -27782,7 +27884,6 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
27782
27884
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
27783
27885
|
});
|
27784
27886
|
var isSuperAdmin = !!user && !user.academyDomain;
|
27785
|
-
var isTeacher = ((user === null || user === void 0 ? void 0 : user.roles) || []).includes(exports.Role.Teacher);
|
27786
27887
|
var handleOpenDialog = function handleOpenDialog(item) {
|
27787
27888
|
if (item) {
|
27788
27889
|
setSelectedTextbook(item);
|
@@ -27845,7 +27946,7 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
27845
27946
|
}), isSuperAdmin)).then(function (res) {
|
27846
27947
|
if (res !== null && res !== void 0 && res.data) {
|
27847
27948
|
reactToastify.toast.success(t(!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id) ? "create_the_textbook_successfully" : "update_the_textbook_successfully"));
|
27848
|
-
|
27949
|
+
onNavigateList();
|
27849
27950
|
}
|
27850
27951
|
});
|
27851
27952
|
}, function (error) {
|
@@ -27948,7 +28049,8 @@ var schema$4 = function schema(t) {
|
|
27948
28049
|
};
|
27949
28050
|
var PreparedTextbook = function PreparedTextbook(_ref) {
|
27950
28051
|
var _selectedTextbook$sub, _selectedTextbook$cha;
|
27951
|
-
var
|
28052
|
+
var onNavigateList = _ref.onNavigateList,
|
28053
|
+
navigate = _ref.navigate,
|
27952
28054
|
textbookId = _ref.textbookId;
|
27953
28055
|
var _useTextbookState = useTextbookState(),
|
27954
28056
|
isAdmin = _useTextbookState.isAdmin,
|
@@ -27958,7 +28060,7 @@ var PreparedTextbook = function PreparedTextbook(_ref) {
|
|
27958
28060
|
handleSetChapterSection = _useTextbookState.handleSetChapterSection,
|
27959
28061
|
handleSetSubChapterSection = _useTextbookState.handleSetSubChapterSection;
|
27960
28062
|
var _useTextbookManagemen = useTextbookManagement({
|
27961
|
-
|
28063
|
+
onNavigateList: onNavigateList,
|
27962
28064
|
textbookId: textbookId
|
27963
28065
|
}),
|
27964
28066
|
t = _useTextbookManagemen.t,
|
@@ -27967,6 +28069,9 @@ var PreparedTextbook = function PreparedTextbook(_ref) {
|
|
27967
28069
|
selectedTextbook = _useTextbookManagemen.selectedTextbook,
|
27968
28070
|
handleSubmit = _useTextbookManagemen.handleSubmit,
|
27969
28071
|
handleUploadImage = _useTextbookManagemen.handleUploadImage;
|
28072
|
+
if (textbookId && selectedTextbook && !selectedTextbook.isPrepared) return React__default.createElement(NotFound, {
|
28073
|
+
history: navigate
|
28074
|
+
});
|
27970
28075
|
return React__default.createElement(formik.Formik, {
|
27971
28076
|
initialValues: {
|
27972
28077
|
name: (selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.name) || "",
|
@@ -28634,15 +28739,14 @@ var DeleteTextbookDialog = function DeleteTextbookDialog(_ref) {
|
|
28634
28739
|
};
|
28635
28740
|
|
28636
28741
|
var PreparedTextbookList = function PreparedTextbookList(_ref) {
|
28637
|
-
var
|
28742
|
+
var onNavigateDetail = _ref.onNavigateDetail,
|
28743
|
+
onNavigteCreate = _ref.onNavigteCreate;
|
28638
28744
|
var _useTextbookList = useTextbookList$1(),
|
28639
28745
|
t = _useTextbookList.t,
|
28640
28746
|
theme = _useTextbookList.theme,
|
28641
28747
|
filter = _useTextbookList.filter,
|
28642
28748
|
paging = _useTextbookList.paging,
|
28643
|
-
isTeacher = _useTextbookList.isTeacher,
|
28644
28749
|
textbooks = _useTextbookList.textbooks,
|
28645
|
-
isSuperAdmin = _useTextbookList.isSuperAdmin,
|
28646
28750
|
handleChangePage = _useTextbookList.handleChangePage,
|
28647
28751
|
handleSort = _useTextbookList.handleSort,
|
28648
28752
|
openConfirmDialog = _useTextbookList.openConfirmDialog,
|
@@ -28663,9 +28767,7 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
|
|
28663
28767
|
sx: {
|
28664
28768
|
width: "fit-content"
|
28665
28769
|
},
|
28666
|
-
onClick:
|
28667
|
-
return pushTo(navigate, !isTeacher ? isSuperAdmin ? "/super-textbook-management/create" : "/textbook-management/create" : "/teacher/textbook-management/create");
|
28668
|
-
}
|
28770
|
+
onClick: onNavigteCreate
|
28669
28771
|
}, t("create"))), React__default.createElement(material.Stack, null, React__default.createElement(material.Grid, {
|
28670
28772
|
item: true,
|
28671
28773
|
xs: 12
|
@@ -28712,7 +28814,7 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
|
|
28712
28814
|
color: "default",
|
28713
28815
|
className: styles$9["action-btn"] + " bg-warning text-white me-2",
|
28714
28816
|
onClick: function onClick() {
|
28715
|
-
return
|
28817
|
+
return onNavigateDetail(i);
|
28716
28818
|
}
|
28717
28819
|
}, React__default.createElement(hi.HiOutlinePencilAlt, {
|
28718
28820
|
className: styles$9["action-btn--pencil"],
|
@@ -28876,7 +28978,7 @@ var DefaultFilter = {
|
|
28876
28978
|
};
|
28877
28979
|
|
28878
28980
|
var PREPARED_TEXTBOOK_URL$1 = BASE_URL + "/api/textbooks/prepared-textbooks";
|
28879
|
-
var TEXTBOOK_URL$
|
28981
|
+
var TEXTBOOK_URL$2 = BASE_URL + "/api/textbooks";
|
28880
28982
|
var TEXTBOOK_SESSION_URL$1 = BASE_URL + "/api/textbooksession";
|
28881
28983
|
var getTextbookListApi$2 = function getTextbookListApi(query) {
|
28882
28984
|
return api.get("" + PREPARED_TEXTBOOK_URL$1, {
|
@@ -28890,7 +28992,7 @@ var startPageApi = function startPageApi(value) {
|
|
28890
28992
|
return api.post(TEXTBOOK_SESSION_URL$1 + "/study-textbook", _extends({}, value));
|
28891
28993
|
};
|
28892
28994
|
var deleteTextbookApi$2 = function deleteTextbookApi(textbookId) {
|
28893
|
-
return api["delete"](TEXTBOOK_URL$
|
28995
|
+
return api["delete"](TEXTBOOK_URL$2 + "/" + textbookId);
|
28894
28996
|
};
|
28895
28997
|
|
28896
28998
|
var ADMIN_SUBJECT_URL$2 = SUPER_ADMIN_BASE_URL + "/api/subject";
|
@@ -28960,17 +29062,29 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
28960
29062
|
var _state$common3, _state$common3$user;
|
28961
29063
|
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.academyDomain;
|
28962
29064
|
});
|
28963
|
-
var
|
29065
|
+
var isStudent = reactRedux.useSelector(function (state) {
|
28964
29066
|
var _state$common4, _state$common4$user;
|
28965
29067
|
return (state === null || state === void 0 ? void 0 : (_state$common4 = state.common) === null || _state$common4 === void 0 ? void 0 : (_state$common4$user = _state$common4.user) === null || _state$common4$user === void 0 ? void 0 : _state$common4$user.roles) || [];
|
29068
|
+
}).includes(exports.Role.Student);
|
29069
|
+
var isTeacher = reactRedux.useSelector(function (state) {
|
29070
|
+
var _state$common5, _state$common5$user;
|
29071
|
+
return (state === null || state === void 0 ? void 0 : (_state$common5 = state.common) === null || _state$common5 === void 0 ? void 0 : (_state$common5$user = _state$common5.user) === null || _state$common5$user === void 0 ? void 0 : _state$common5$user.roles) || [];
|
28966
29072
|
}).includes(exports.Role.Teacher);
|
28967
29073
|
var _useState5 = React.useState(false),
|
28968
29074
|
openConfirmDialog = _useState5[0],
|
28969
29075
|
setOpenConfirmDialog = _useState5[1];
|
28970
|
-
var
|
28971
|
-
var _state$
|
28972
|
-
return (state === null || state === void 0 ? void 0 : (_state$
|
29076
|
+
var isSuperAdminDomain = reactRedux.useSelector(function (state) {
|
29077
|
+
var _state$common6, _state$common6$user;
|
29078
|
+
return (state === null || state === void 0 ? void 0 : (_state$common6 = state.common) === null || _state$common6 === void 0 ? void 0 : (_state$common6$user = _state$common6.user) === null || _state$common6$user === void 0 ? void 0 : _state$common6$user.roles) || [];
|
28973
29079
|
}).includes(exports.Role.Admin) && !isDomain;
|
29080
|
+
var isAdmin = reactRedux.useSelector(function (state) {
|
29081
|
+
var _state$common7, _state$common7$user;
|
29082
|
+
return (state === null || state === void 0 ? void 0 : (_state$common7 = state.common) === null || _state$common7 === void 0 ? void 0 : (_state$common7$user = _state$common7.user) === null || _state$common7$user === void 0 ? void 0 : _state$common7$user.roles) || [];
|
29083
|
+
}).includes(exports.Role.Admin);
|
29084
|
+
var isSuperAdmin = reactRedux.useSelector(function (state) {
|
29085
|
+
var _state$common8, _state$common8$user;
|
29086
|
+
return state === null || state === void 0 ? void 0 : (_state$common8 = state.common) === null || _state$common8 === void 0 ? void 0 : (_state$common8$user = _state$common8.user) === null || _state$common8$user === void 0 ? void 0 : _state$common8$user.isSuperAdmin;
|
29087
|
+
});
|
28974
29088
|
var handleCloseConfirmDialog = function handleCloseConfirmDialog() {
|
28975
29089
|
setOpenConfirmDialog(false);
|
28976
29090
|
};
|
@@ -28984,7 +29098,7 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
28984
29098
|
};
|
28985
29099
|
setLoading(true);
|
28986
29100
|
var _temp = _catch(function () {
|
28987
|
-
return Promise.resolve(
|
29101
|
+
return Promise.resolve(isSuperAdminDomain ? getSubjectListAdminApi$2("") : getSubjectListApi$2("")).then(function (res) {
|
28988
29102
|
var _res$data$items = res.data.items,
|
28989
29103
|
items = _res$data$items === void 0 ? [] : _res$data$items;
|
28990
29104
|
setSubjects(items);
|
@@ -28996,7 +29110,7 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
28996
29110
|
} catch (e) {
|
28997
29111
|
return Promise.reject(e);
|
28998
29112
|
}
|
28999
|
-
}, [
|
29113
|
+
}, [isSuperAdminDomain]);
|
29000
29114
|
var subjectOptions = subjects.map(function (subject) {
|
29001
29115
|
return {
|
29002
29116
|
label: "" + subject.name,
|
@@ -29137,7 +29251,10 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
29137
29251
|
isKor: isKor,
|
29138
29252
|
paging: paging,
|
29139
29253
|
user: user,
|
29254
|
+
isAdmin: isAdmin,
|
29140
29255
|
isTeacher: isTeacher,
|
29256
|
+
isStudent: isStudent,
|
29257
|
+
isSuperAdmin: isSuperAdmin,
|
29141
29258
|
monthOptions: monthOptions,
|
29142
29259
|
openConfirmDialog: openConfirmDialog,
|
29143
29260
|
handleOpenConfirmDialog: handleOpenConfirmDialog,
|
@@ -29313,7 +29430,7 @@ var useTextbookDrawer = function useTextbookDrawer(_ref) {
|
|
29313
29430
|
};
|
29314
29431
|
var handleRedirectEdit = function handleRedirectEdit() {
|
29315
29432
|
if (!textbookId) return;
|
29316
|
-
pushTo(navigate, "/teacher/
|
29433
|
+
pushTo(navigate, "/teacher/prepared-exam/" + textbookId + "/detail");
|
29317
29434
|
};
|
29318
29435
|
var handleStartFromPage = function handleStartFromPage(values) {
|
29319
29436
|
try {
|
@@ -29863,7 +29980,7 @@ var Statistic = function Statistic(_ref) {
|
|
29863
29980
|
fontSize: "12px",
|
29864
29981
|
fontWeight: 500,
|
29865
29982
|
color: styles.darker
|
29866
|
-
}, (chapter.completedChapterQuestions || 0) / (chapter.totalChapterQuestions || 0) * 100 + "%")), React__default.createElement(material.Stack, {
|
29983
|
+
}, ((chapter.completedChapterQuestions || 0) / (chapter.totalChapterQuestions || 0) * 100).toFixed(2) + "%")), React__default.createElement(material.Stack, {
|
29867
29984
|
sx: {
|
29868
29985
|
width: "1px",
|
29869
29986
|
position: "absolute",
|
@@ -30066,7 +30183,7 @@ var TextbookDrawer = function TextbookDrawer(_ref) {
|
|
30066
30183
|
fontSize: "12px",
|
30067
30184
|
fontWeight: 500,
|
30068
30185
|
color: (textbook === null || textbook === void 0 ? void 0 : textbook.progress) === 0 ? theme.palette.common.black : theme.palette.common.white
|
30069
|
-
}, ((textbook === null || textbook === void 0 ? void 0 : textbook.progress) || 0) + "%")))), !!(textbook !== null && textbook !== void 0 && textbook.chapters.length) && React__default.createElement(material.Stack, null, React__default.createElement(material.Box, {
|
30186
|
+
}, ((textbook === null || textbook === void 0 ? void 0 : textbook.progress) || 0).toFixed(2) + "%")))), !!(textbook !== null && textbook !== void 0 && textbook.chapters.length) && React__default.createElement(material.Stack, null, React__default.createElement(material.Box, {
|
30070
30187
|
mt: "24px",
|
30071
30188
|
mx: "24px",
|
30072
30189
|
bgcolor: theme.palette.common.white,
|
@@ -30375,8 +30492,10 @@ var TextbookDetail = function TextbookDetail(_ref) {
|
|
30375
30492
|
};
|
30376
30493
|
|
30377
30494
|
var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
|
30378
|
-
var _TeacherTabList$find;
|
30379
|
-
var
|
30495
|
+
var _textbook$createdBy, _TeacherTabList$find;
|
30496
|
+
var user = _ref.user,
|
30497
|
+
isSuperAdmin = _ref.isSuperAdmin,
|
30498
|
+
isOpen = _ref.isOpen,
|
30380
30499
|
onClose = _ref.onClose,
|
30381
30500
|
textbookId = _ref.textbookId,
|
30382
30501
|
navigate = _ref.navigate,
|
@@ -30417,7 +30536,9 @@ var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
|
|
30417
30536
|
}, React__default.createElement(io5.IoClose, {
|
30418
30537
|
color: styles.gray_700,
|
30419
30538
|
size: 32
|
30420
|
-
})),
|
30539
|
+
})), (isSuperAdmin || (textbook === null || textbook === void 0 ? void 0 : 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) {
|
30540
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
30541
|
+
}))) && React__default.createElement(material.Stack, {
|
30421
30542
|
flexDirection: "row",
|
30422
30543
|
gap: "16px",
|
30423
30544
|
alignItems: "center"
|
@@ -30486,10 +30607,13 @@ var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
|
|
30486
30607
|
};
|
30487
30608
|
|
30488
30609
|
var Textbook = function Textbook(_ref) {
|
30610
|
+
var _textbook$createdBy, _textbook$createdBy2;
|
30489
30611
|
var t = _ref.t,
|
30612
|
+
user = _ref.user,
|
30490
30613
|
theme = _ref.theme,
|
30491
30614
|
textbook = _ref.textbook,
|
30492
|
-
|
30615
|
+
isStudent = _ref.isStudent,
|
30616
|
+
isSuperAdmin = _ref.isSuperAdmin,
|
30493
30617
|
navigate = _ref.navigate,
|
30494
30618
|
preparedType = _ref.preparedType,
|
30495
30619
|
preparedFilterType = _ref.preparedFilterType,
|
@@ -30568,7 +30692,7 @@ var Textbook = function Textbook(_ref) {
|
|
30568
30692
|
}, React__default.createElement(material.Stack, {
|
30569
30693
|
flexDirection: "row",
|
30570
30694
|
gap: "10px"
|
30571
|
-
},
|
30695
|
+
}, isStudent && React__default.createElement(material.Button, {
|
30572
30696
|
variant: "contained",
|
30573
30697
|
sx: {
|
30574
30698
|
width: "fit-content",
|
@@ -30581,7 +30705,9 @@ var Textbook = function Textbook(_ref) {
|
|
30581
30705
|
onClick: handleOpenDialog
|
30582
30706
|
}, React__default.createElement(fa.FaBookOpen, {
|
30583
30707
|
size: "20px"
|
30584
|
-
}), t("test_start")),
|
30708
|
+
}), t("test_start")), (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) {
|
30709
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
30710
|
+
}))) && React__default.createElement(material.Button, {
|
30585
30711
|
variant: "outlined",
|
30586
30712
|
sx: {
|
30587
30713
|
width: "fit-content",
|
@@ -30592,11 +30718,11 @@ var Textbook = function Textbook(_ref) {
|
|
30592
30718
|
maxHeight: "41px"
|
30593
30719
|
},
|
30594
30720
|
onClick: function onClick() {
|
30595
|
-
return pushTo(navigate, "/teacher/
|
30721
|
+
return pushTo(navigate, "/teacher/prepared-exam/" + (textbook === null || textbook === void 0 ? void 0 : textbook.id) + "/detail");
|
30596
30722
|
}
|
30597
30723
|
}, React__default.createElement(fa.FaBookOpen, {
|
30598
30724
|
size: "20px"
|
30599
|
-
}), t("test_editing")),
|
30725
|
+
}), t("test_editing")), !isStudent && React__default.createElement(material.Button, {
|
30600
30726
|
variant: "contained",
|
30601
30727
|
sx: {
|
30602
30728
|
width: "fit-content",
|
@@ -30611,7 +30737,9 @@ var Textbook = function Textbook(_ref) {
|
|
30611
30737
|
}
|
30612
30738
|
}, React__default.createElement(io5.IoInformationCircle, {
|
30613
30739
|
size: "20px"
|
30614
|
-
}), t("exam_information"))),
|
30740
|
+
}), t("exam_information"))), (isSuperAdmin || (textbook === null || textbook === void 0 ? void 0 : textbook.isShared) && ((textbook === null || textbook === void 0 ? void 0 : (_textbook$createdBy2 = textbook.createdBy) === null || _textbook$createdBy2 === void 0 ? void 0 : _textbook$createdBy2.id) === (user === null || user === void 0 ? void 0 : user.id) || textbook.textbookOwners.some(function (i) {
|
30741
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
30742
|
+
}))) && React__default.createElement(material.Button, {
|
30615
30743
|
variant: "contained",
|
30616
30744
|
sx: {
|
30617
30745
|
width: "fit-content",
|
@@ -30633,6 +30761,8 @@ var Textbook = function Textbook(_ref) {
|
|
30633
30761
|
textbookId: textbook.id,
|
30634
30762
|
navigate: navigate
|
30635
30763
|
}), openDetailDialog && React__default.createElement(TextbookInfoDrawer, {
|
30764
|
+
user: user,
|
30765
|
+
isSuperAdmin: isSuperAdmin,
|
30636
30766
|
isOpen: openDetailDialog,
|
30637
30767
|
onClose: handleCloseDetailDialog,
|
30638
30768
|
textbookId: textbook.id,
|
@@ -30663,9 +30793,12 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
30663
30793
|
history: history
|
30664
30794
|
}),
|
30665
30795
|
t = _usePreparedExam.t,
|
30796
|
+
user = _usePreparedExam.user,
|
30666
30797
|
theme = _usePreparedExam.theme,
|
30667
30798
|
paging = _usePreparedExam.paging,
|
30668
|
-
|
30799
|
+
isAdmin = _usePreparedExam.isAdmin,
|
30800
|
+
isStudent = _usePreparedExam.isStudent,
|
30801
|
+
isSuperAdmin = _usePreparedExam.isSuperAdmin,
|
30669
30802
|
handleChangePage = _usePreparedExam.handleChangePage,
|
30670
30803
|
textbookList = _usePreparedExam.textbookList,
|
30671
30804
|
getTextbookList = _usePreparedExam.getTextbookList,
|
@@ -30822,7 +30955,7 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
30822
30955
|
},
|
30823
30956
|
onClick: handleToggleExpand,
|
30824
30957
|
startIcon: React__default.createElement(io.IoIosArrowDown, null)
|
30825
|
-
}, t("fold"))),
|
30958
|
+
}, t("fold"))), !isStudent && !isAdmin && React__default.createElement(material.Stack, null, React__default.createElement(material.Button, {
|
30826
30959
|
variant: "contained",
|
30827
30960
|
sx: {
|
30828
30961
|
width: "fit-content",
|
@@ -30833,7 +30966,7 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
30833
30966
|
marginRight: "27px"
|
30834
30967
|
},
|
30835
30968
|
onClick: function onClick() {
|
30836
|
-
return pushTo(navigate, "/teacher/
|
30969
|
+
return pushTo(navigate, "/teacher/prepared-exam/create");
|
30837
30970
|
}
|
30838
30971
|
}, React__default.createElement(io5.IoAddCircle, null), t("create_a_new_workbook"))))), React__default.createElement(material.AccordionDetails, {
|
30839
30972
|
sx: {
|
@@ -31176,9 +31309,11 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
31176
31309
|
}, textbookList === null || textbookList === void 0 ? void 0 : textbookList.map(function (textbook) {
|
31177
31310
|
return React__default.createElement(Textbook, {
|
31178
31311
|
t: t,
|
31312
|
+
user: user,
|
31179
31313
|
theme: theme,
|
31180
31314
|
textbook: textbook,
|
31181
|
-
|
31315
|
+
isSuperAdmin: isSuperAdmin,
|
31316
|
+
isStudent: isStudent,
|
31182
31317
|
navigate: navigate,
|
31183
31318
|
getTextbookList: getTextbookList,
|
31184
31319
|
preparedType: preparedType,
|
@@ -31227,6 +31362,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
31227
31362
|
var isAdmin = role === exports.Role.Admin;
|
31228
31363
|
var isSuperAdmin = user && (!user.academyDomain && !user.isLearningSpace && ((_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.includes(exports.Role.Admin)) || user.isSuperAdmin);
|
31229
31364
|
var isStudentSite = role === exports.Role.Student;
|
31365
|
+
var isTeacherSite = role === exports.Role.Teacher;
|
31230
31366
|
var isLearningSpace = user === null || user === void 0 ? void 0 : user.isLearningSpace;
|
31231
31367
|
var _useTranslation = reactI18next.useTranslation(),
|
31232
31368
|
t = _useTranslation.t;
|
@@ -31320,7 +31456,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
31320
31456
|
}, React__default.createElement(go.GoArrowSwitch, {
|
31321
31457
|
size: 14,
|
31322
31458
|
color: styles.gray_900
|
31323
|
-
})))))), (isSuperAdmin || !isAdmin) && React__default.createElement(Popover, {
|
31459
|
+
})))))), (isSuperAdmin || !isAdmin || isTeacherSite) && React__default.createElement(Popover, {
|
31324
31460
|
open: !!open,
|
31325
31461
|
anchorEl: open,
|
31326
31462
|
onClose: handleClose,
|