touchstudy-core 0.1.113 → 0.1.115
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/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 +330 -411
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +331 -412
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -1189,6 +1189,7 @@ var notify_share_exam = {
|
|
1189
1189
|
update_fail: "업데이트 실패!"
|
1190
1190
|
};
|
1191
1191
|
var academy_admin_teacher = "아카데미 관리자/선생님";
|
1192
|
+
var academyadmin_teacher = "아카데미 관리자/선생님";
|
1192
1193
|
var total_student = "총 학생 수";
|
1193
1194
|
var total_teacher = "총 교사 수";
|
1194
1195
|
var total_exam = "총 시험 수";
|
@@ -1352,6 +1353,7 @@ var delete_textbook_successfully = "교과서 삭제 성공";
|
|
1352
1353
|
var information = "정보";
|
1353
1354
|
var running_time = "진행 시간";
|
1354
1355
|
var hours_mins_seconds = "{{hours}}시간 {{mins}}분 {{seconds}}초";
|
1356
|
+
var create_schedule_successfully = "일정을 성공적으로 생성했습니다";
|
1355
1357
|
var prepared_textbook = "준비된 교과서";
|
1356
1358
|
var enable_phone_pass_code = "전화 비밀번호 활성화";
|
1357
1359
|
var custom = "관습";
|
@@ -1360,6 +1362,13 @@ var pass_code_is_invalid = "비밀번호가 유효하지 않습니다";
|
|
1360
1362
|
var pass_code_length_must_be_n = "비밀번호 길이는 {{n}}이어야 합니다";
|
1361
1363
|
var parent_phone_number_is_invalid = "부모 전화번호가 잘못되었습니다";
|
1362
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 = "달성한 스케줄";
|
1363
1372
|
var lang_ko = {
|
1364
1373
|
problem_solving: problem_solving,
|
1365
1374
|
my_story: my_story,
|
@@ -2191,6 +2200,7 @@ var lang_ko = {
|
|
2191
2200
|
notify_share_textbook: notify_share_textbook,
|
2192
2201
|
notify_share_exam: notify_share_exam,
|
2193
2202
|
academy_admin_teacher: academy_admin_teacher,
|
2203
|
+
academyadmin_teacher: academyadmin_teacher,
|
2194
2204
|
total_student: total_student,
|
2195
2205
|
total_teacher: total_teacher,
|
2196
2206
|
total_exam: total_exam,
|
@@ -2356,6 +2366,7 @@ var lang_ko = {
|
|
2356
2366
|
information: information,
|
2357
2367
|
running_time: running_time,
|
2358
2368
|
hours_mins_seconds: hours_mins_seconds,
|
2369
|
+
create_schedule_successfully: create_schedule_successfully,
|
2359
2370
|
prepared_textbook: prepared_textbook,
|
2360
2371
|
enable_phone_pass_code: enable_phone_pass_code,
|
2361
2372
|
custom: custom,
|
@@ -2363,7 +2374,14 @@ var lang_ko = {
|
|
2363
2374
|
pass_code_is_invalid: pass_code_is_invalid,
|
2364
2375
|
pass_code_length_must_be_n: pass_code_length_must_be_n,
|
2365
2376
|
parent_phone_number_is_invalid: parent_phone_number_is_invalid,
|
2366
|
-
parent_phone_number_is_required: parent_phone_number_is_required
|
2377
|
+
parent_phone_number_is_required: parent_phone_number_is_required,
|
2378
|
+
update_schedule_successfully: update_schedule_successfully,
|
2379
|
+
delete_schedule_successfully: delete_schedule_successfully,
|
2380
|
+
group: group,
|
2381
|
+
update_schedule: update_schedule,
|
2382
|
+
back_month: back_month,
|
2383
|
+
today_schedule: today_schedule,
|
2384
|
+
schedule_achieved: schedule_achieved
|
2367
2385
|
};
|
2368
2386
|
|
2369
2387
|
var problem_solving$1 = "Problem Solving";
|
@@ -2503,7 +2521,7 @@ var create_exam$1 = "Create exam";
|
|
2503
2521
|
var back$1 = "Back";
|
2504
2522
|
var date_format_exam$1 = "MMMM YYYY";
|
2505
2523
|
var date_format$1 = "MMM. D. YYYY";
|
2506
|
-
var day_month_format$1 = "
|
2524
|
+
var day_month_format$1 = "Do MMM";
|
2507
2525
|
var date_time_format$1 = "HH:mm MMM. D YYYY ";
|
2508
2526
|
var date_time_format_12h$1 = "MM-DD-YYYY HH:mm A";
|
2509
2527
|
var full_date_time_format$1 = "MMM Do YYYY HH:mm:ss";
|
@@ -3277,14 +3295,15 @@ var chapter$1 = "Chapter";
|
|
3277
3295
|
var chapter_number$1 = "Chapter {{number}}";
|
3278
3296
|
var category_required$1 = "Category is required";
|
3279
3297
|
var subject_required$1 = "Subject is required";
|
3280
|
-
var academy_admin_teacher$1 = "Academy Admin
|
3298
|
+
var academy_admin_teacher$1 = "Academy Admin/Teacher";
|
3299
|
+
var academyadmin_teacher$1 = "Academy Admin/Teacher";
|
3281
3300
|
var date_required$1 = "Date is required";
|
3282
3301
|
var start_time_required$1 = "Start time is required";
|
3283
3302
|
var end_time_required$1 = "End time is required";
|
3284
3303
|
var title_required$1 = "Title is required";
|
3285
3304
|
var delete_schedule$1 = "Delete Schedule";
|
3286
3305
|
var edit_schedule$1 = "Edit Schedule";
|
3287
|
-
var are_you_sure_you_want_to_delete_the_schedule$1 = "
|
3306
|
+
var are_you_sure_you_want_to_delete_the_schedule$1 = "Are you sure you want to delete the schedule: {{name}}";
|
3288
3307
|
var correct_answer_rate$1 = "Correct answer rate";
|
3289
3308
|
var progress$1 = "Progress";
|
3290
3309
|
var grammar$1 = "Grammar";
|
@@ -3377,6 +3396,7 @@ var delete_textbook_successfully$1 = "Delete the textbook successfully";
|
|
3377
3396
|
var information$1 = "Information";
|
3378
3397
|
var running_time$1 = "Running time";
|
3379
3398
|
var hours_mins_seconds$1 = "{{hours}}h {{mins}}m {{seconds}}s";
|
3399
|
+
var create_schedule_successfully$1 = "Create schedule successfully";
|
3380
3400
|
var prepared_textbook$1 = "Prepared Textbook";
|
3381
3401
|
var enable_phone_pass_code$1 = "Enable phone pass code";
|
3382
3402
|
var custom$1 = "Custom";
|
@@ -3386,6 +3406,13 @@ var pass_code_length_must_be_n$1 = "Pass code length must be {{n}}";
|
|
3386
3406
|
var email_is_invalid = "Email is invalid";
|
3387
3407
|
var parent_phone_number_is_invalid$1 = "Parent phone number is invalid";
|
3388
3408
|
var parent_phone_number_is_required$1 = "Parent phone number is required";
|
3409
|
+
var update_schedule_successfully$1 = "Update schedule successfully";
|
3410
|
+
var delete_schedule_successfully$1 = "Delete schedule successfully";
|
3411
|
+
var group$1 = "Group";
|
3412
|
+
var update_schedule$1 = "Update Schedule";
|
3413
|
+
var back_month$1 = "Back Month";
|
3414
|
+
var today_schedule$1 = "Today's schedule";
|
3415
|
+
var schedule_achieved$1 = "Schedule achieved";
|
3389
3416
|
var lang_en = {
|
3390
3417
|
problem_solving: problem_solving$1,
|
3391
3418
|
my_story: my_story$1,
|
@@ -4282,6 +4309,7 @@ var lang_en = {
|
|
4282
4309
|
category_required: category_required$1,
|
4283
4310
|
subject_required: subject_required$1,
|
4284
4311
|
academy_admin_teacher: academy_admin_teacher$1,
|
4312
|
+
academyadmin_teacher: academyadmin_teacher$1,
|
4285
4313
|
date_required: date_required$1,
|
4286
4314
|
start_time_required: start_time_required$1,
|
4287
4315
|
end_time_required: end_time_required$1,
|
@@ -4383,6 +4411,7 @@ var lang_en = {
|
|
4383
4411
|
information: information$1,
|
4384
4412
|
running_time: running_time$1,
|
4385
4413
|
hours_mins_seconds: hours_mins_seconds$1,
|
4414
|
+
create_schedule_successfully: create_schedule_successfully$1,
|
4386
4415
|
prepared_textbook: prepared_textbook$1,
|
4387
4416
|
enable_phone_pass_code: enable_phone_pass_code$1,
|
4388
4417
|
custom: custom$1,
|
@@ -4391,7 +4420,14 @@ var lang_en = {
|
|
4391
4420
|
pass_code_length_must_be_n: pass_code_length_must_be_n$1,
|
4392
4421
|
email_is_invalid: email_is_invalid,
|
4393
4422
|
parent_phone_number_is_invalid: parent_phone_number_is_invalid$1,
|
4394
|
-
parent_phone_number_is_required: parent_phone_number_is_required$1
|
4423
|
+
parent_phone_number_is_required: parent_phone_number_is_required$1,
|
4424
|
+
update_schedule_successfully: update_schedule_successfully$1,
|
4425
|
+
delete_schedule_successfully: delete_schedule_successfully$1,
|
4426
|
+
group: group$1,
|
4427
|
+
update_schedule: update_schedule$1,
|
4428
|
+
back_month: back_month$1,
|
4429
|
+
today_schedule: today_schedule$1,
|
4430
|
+
schedule_achieved: schedule_achieved$1
|
4395
4431
|
};
|
4396
4432
|
|
4397
4433
|
i18n__default.use(reactI18next.initReactI18next).init({
|
@@ -9189,74 +9225,7 @@ var ListView = function ListView(_ref) {
|
|
9189
9225
|
}));
|
9190
9226
|
};
|
9191
9227
|
|
9192
|
-
var
|
9193
|
-
var data = props.data,
|
9194
|
-
loading = props.loading,
|
9195
|
-
onLoadMore = props.onLoadMore;
|
9196
|
-
var handleLoadMore = function handleLoadMore() {
|
9197
|
-
if (loading) return;
|
9198
|
-
onLoadMore === null || onLoadMore === void 0 ? void 0 : onLoadMore();
|
9199
|
-
};
|
9200
|
-
var onScroll = function onScroll(_ref) {
|
9201
|
-
var scrollTop = _ref.scrollTop,
|
9202
|
-
clientHeight = _ref.clientHeight,
|
9203
|
-
scrollHeight = _ref.scrollHeight;
|
9204
|
-
if (scrollTop + clientHeight >= scrollHeight - 100) {
|
9205
|
-
handleLoadMore();
|
9206
|
-
}
|
9207
|
-
};
|
9208
|
-
var rowCount = data.length + (loading ? 1 : 0);
|
9209
|
-
return {
|
9210
|
-
rowCount: rowCount,
|
9211
|
-
onScroll: onScroll
|
9212
|
-
};
|
9213
|
-
};
|
9214
|
-
|
9215
|
-
var cellMeasurerCache = new reactVirtualized.CellMeasurerCache({
|
9216
|
-
fixedWidth: true,
|
9217
|
-
defaultHeight: 50
|
9218
|
-
});
|
9219
|
-
|
9220
|
-
var VirtualListItem = function VirtualListItem(_ref) {
|
9221
|
-
var isLoading = _ref.isLoading,
|
9222
|
-
rowData = _ref.rowData,
|
9223
|
-
style = _ref.style,
|
9224
|
-
parent = _ref.parent,
|
9225
|
-
index = _ref.index,
|
9226
|
-
renderItem = _ref.renderItem,
|
9227
|
-
loadingElement = _ref.loadingElement;
|
9228
|
-
return React__default.createElement(reactVirtualized.CellMeasurer, {
|
9229
|
-
cache: cellMeasurerCache,
|
9230
|
-
columnIndex: 0,
|
9231
|
-
rowIndex: index,
|
9232
|
-
key: rowData === null || rowData === void 0 ? void 0 : rowData.id,
|
9233
|
-
parent: parent
|
9234
|
-
}, function (_ref2) {
|
9235
|
-
var measure = _ref2.measure;
|
9236
|
-
if (isLoading) {
|
9237
|
-
if (loadingElement) return loadingElement;
|
9238
|
-
return React__default.createElement("div", {
|
9239
|
-
key: rowData === null || rowData === void 0 ? void 0 : rowData.id,
|
9240
|
-
style: style
|
9241
|
-
}, React__default.createElement(material.Box, {
|
9242
|
-
p: 1,
|
9243
|
-
className: "d-flex justify-content-center align-items-center w-100"
|
9244
|
-
}, React__default.createElement(material.CircularProgress, {
|
9245
|
-
size: 24,
|
9246
|
-
sx: {
|
9247
|
-
color: "#5d5d5b"
|
9248
|
-
}
|
9249
|
-
})));
|
9250
|
-
}
|
9251
|
-
return React__default.createElement("div", {
|
9252
|
-
key: rowData === null || rowData === void 0 ? void 0 : rowData.id,
|
9253
|
-
style: style,
|
9254
|
-
ref: measure
|
9255
|
-
}, renderItem(rowData, index));
|
9256
|
-
});
|
9257
|
-
};
|
9258
|
-
|
9259
|
-
var VirtualEmptyItem = function VirtualEmptyItem(_ref) {
|
9228
|
+
var VirtualTableEmpty = function VirtualTableEmpty(_ref) {
|
9260
9229
|
var emptyElement = _ref.emptyElement;
|
9261
9230
|
var _useTranslation = reactI18next.useTranslation(),
|
9262
9231
|
t = _useTranslation.t;
|
@@ -9269,186 +9238,70 @@ var VirtualEmptyItem = function VirtualEmptyItem(_ref) {
|
|
9269
9238
|
var VirtualListView = function VirtualListView(props) {
|
9270
9239
|
var data = props.data,
|
9271
9240
|
containerProps = props.containerProps,
|
9272
|
-
listHeight = props.listHeight,
|
9273
|
-
_props$overscanRowCou = props.overscanRowCount,
|
9274
|
-
overscanRowCount = _props$overscanRowCou === void 0 ? 5 : _props$overscanRowCou,
|
9275
9241
|
renderItem = props.renderItem,
|
9276
9242
|
emptyElement = props.emptyElement,
|
9277
|
-
|
9278
|
-
|
9279
|
-
|
9280
|
-
onScroll = _useVirtualListView.onScroll;
|
9281
|
-
var rowRenderer = React.useCallback(function (props) {
|
9282
|
-
var index = props.index;
|
9283
|
-
var isLoading = index === data.length;
|
9284
|
-
var rowData = isLoading ? undefined : data[index];
|
9285
|
-
return React__default.createElement(VirtualListItem, Object.assign({}, props, {
|
9286
|
-
rowData: rowData,
|
9287
|
-
isLoading: isLoading,
|
9288
|
-
renderItem: renderItem,
|
9289
|
-
loadingElement: loadingElement
|
9290
|
-
}));
|
9291
|
-
}, [JSON.stringify(data)]);
|
9292
|
-
var noRowsRenderer = React.useCallback(function () {
|
9293
|
-
return React__default.createElement(VirtualEmptyItem, {
|
9294
|
-
emptyElement: emptyElement
|
9295
|
-
});
|
9296
|
-
}, []);
|
9243
|
+
loading = props.loading,
|
9244
|
+
loadingElement = props.loadingElement,
|
9245
|
+
listHeight = props.listHeight;
|
9297
9246
|
return React__default.createElement(material.Box, Object.assign({}, containerProps), React__default.createElement(reactVirtualized.AutoSizer, {
|
9298
9247
|
disableHeight: !!listHeight
|
9299
9248
|
}, function (_ref) {
|
9300
9249
|
var width = _ref.width,
|
9301
9250
|
height = _ref.height;
|
9302
|
-
return React__default.createElement(
|
9251
|
+
return React__default.createElement(material.Box, {
|
9303
9252
|
width: width,
|
9304
|
-
height:
|
9305
|
-
|
9306
|
-
|
9307
|
-
|
9308
|
-
|
9309
|
-
|
9310
|
-
|
9311
|
-
|
9312
|
-
|
9253
|
+
height: height,
|
9254
|
+
overflow: "auto"
|
9255
|
+
}, loading && React__default.createElement(React.Fragment, null, loadingElement != null ? loadingElement : React__default.createElement(material.Box, {
|
9256
|
+
p: 1,
|
9257
|
+
className: "d-flex justify-content-center align-items-center w-100"
|
9258
|
+
}, React__default.createElement(material.CircularProgress, {
|
9259
|
+
size: 24,
|
9260
|
+
sx: {
|
9261
|
+
color: "#5d5d5b"
|
9262
|
+
}
|
9263
|
+
}))), !loading && !data.length && React__default.createElement(VirtualTableEmpty, {
|
9264
|
+
emptyElement: emptyElement
|
9265
|
+
}), !loading && !!data.length && React__default.createElement(ListView, {
|
9266
|
+
data: data,
|
9267
|
+
render: renderItem
|
9268
|
+
}));
|
9313
9269
|
}));
|
9314
9270
|
};
|
9315
9271
|
|
9316
|
-
var cellMeasurerCache$1 = new reactVirtualized.CellMeasurerCache({
|
9317
|
-
defaultWidth: 100,
|
9318
|
-
defaultHeight: 50
|
9319
|
-
});
|
9320
|
-
|
9321
|
-
var VirtualTableRowItem = function VirtualTableRowItem(_ref) {
|
9322
|
-
var isLoading = _ref.isLoading,
|
9323
|
-
style = _ref.style,
|
9324
|
-
parent = _ref.parent,
|
9325
|
-
rowIndex = _ref.rowIndex,
|
9326
|
-
columnIndex = _ref.columnIndex,
|
9327
|
-
renderItem = _ref.renderItem,
|
9328
|
-
loadingElement = _ref.loadingElement;
|
9329
|
-
return React__default.createElement(reactVirtualized.CellMeasurer, {
|
9330
|
-
cache: cellMeasurerCache$1,
|
9331
|
-
columnIndex: columnIndex,
|
9332
|
-
rowIndex: rowIndex,
|
9333
|
-
key: rowIndex + "-" + columnIndex,
|
9334
|
-
parent: parent
|
9335
|
-
}, function (_ref2) {
|
9336
|
-
var measure = _ref2.measure;
|
9337
|
-
if (isLoading) {
|
9338
|
-
if (loadingElement) return loadingElement;
|
9339
|
-
return React__default.createElement("div", {
|
9340
|
-
style: style
|
9341
|
-
}, React__default.createElement(material.Box, {
|
9342
|
-
p: 1,
|
9343
|
-
className: "d-flex justify-content-center align-items-center w-100"
|
9344
|
-
}, React__default.createElement(material.CircularProgress, {
|
9345
|
-
size: 24,
|
9346
|
-
sx: {
|
9347
|
-
color: "#5d5d5b"
|
9348
|
-
}
|
9349
|
-
})));
|
9350
|
-
}
|
9351
|
-
return React__default.createElement("div", {
|
9352
|
-
style: style,
|
9353
|
-
ref: measure
|
9354
|
-
}, renderItem(rowIndex, columnIndex));
|
9355
|
-
});
|
9356
|
-
};
|
9357
|
-
|
9358
|
-
var VirtualTableEmpty = function VirtualTableEmpty(_ref) {
|
9359
|
-
var emptyElement = _ref.emptyElement;
|
9360
|
-
var _useTranslation = reactI18next.useTranslation(),
|
9361
|
-
t = _useTranslation.t;
|
9362
|
-
if (emptyElement) return emptyElement;
|
9363
|
-
return React__default.createElement(material.Box, null, React__default.createElement(material.Typography, {
|
9364
|
-
className: "text-center text-muted"
|
9365
|
-
}, t("no_data")));
|
9366
|
-
};
|
9367
|
-
|
9368
|
-
var _excluded$6 = ["data", "containerProps", "listHeight", "overscanRowCount", "renderItem", "emptyElement", "loadingElement", "fixedColumnCount", "fixedRowCount", "listWidth"];
|
9369
9272
|
var VirtualTableView = function VirtualTableView(props) {
|
9370
9273
|
var data = props.data,
|
9371
9274
|
containerProps = props.containerProps,
|
9372
|
-
listHeight = props.listHeight,
|
9373
|
-
_props$overscanRowCou = props.overscanRowCount,
|
9374
|
-
overscanRowCount = _props$overscanRowCou === void 0 ? 5 : _props$overscanRowCou,
|
9375
9275
|
renderItem = props.renderItem,
|
9376
9276
|
emptyElement = props.emptyElement,
|
9377
|
-
|
9378
|
-
|
9379
|
-
|
9380
|
-
listWidth = props.listWidth,
|
9381
|
-
rest = _objectWithoutPropertiesLoose(props, _excluded$6);
|
9382
|
-
var columnCount = props.columnCount;
|
9383
|
-
var _useVirtualListView = useVirtualListView(props),
|
9384
|
-
rowCount = _useVirtualListView.rowCount,
|
9385
|
-
onScroll = _useVirtualListView.onScroll;
|
9386
|
-
var _useState = React.useState(false),
|
9387
|
-
renderedColumnWidth = _useState[0],
|
9388
|
-
setRenderedColumnWidth = _useState[1];
|
9277
|
+
columnCount = props.columnCount,
|
9278
|
+
loading = props.loading,
|
9279
|
+
loadingElement = props.loadingElement;
|
9389
9280
|
var containerRef = React.useRef(null);
|
9390
|
-
var
|
9391
|
-
|
9392
|
-
|
9393
|
-
|
9394
|
-
|
9395
|
-
|
9396
|
-
|
9397
|
-
loadingElement: loadingElement
|
9281
|
+
var renderTableRow = function renderTableRow(_, index) {
|
9282
|
+
return React__default.createElement(material.Stack, {
|
9283
|
+
direction: "row"
|
9284
|
+
}, Array.from({
|
9285
|
+
length: columnCount
|
9286
|
+
}, function (_, colIndex) {
|
9287
|
+
return renderItem(index, colIndex);
|
9398
9288
|
}));
|
9399
|
-
}
|
9400
|
-
var noRowsRenderer = React.useCallback(function () {
|
9401
|
-
return React__default.createElement(VirtualTableEmpty, {
|
9402
|
-
emptyElement: emptyElement
|
9403
|
-
});
|
9404
|
-
}, []);
|
9405
|
-
var onSectionRendered = function onSectionRendered(_) {
|
9406
|
-
setRenderedColumnWidth(true);
|
9407
|
-
};
|
9408
|
-
var columnWidth = React.useCallback(function (params) {
|
9409
|
-
var _containerRef$current, _containerRef$current2;
|
9410
|
-
var index = params.index;
|
9411
|
-
var cWidth = cellMeasurerCache$1.columnWidth(params);
|
9412
|
-
if (listWidth) return cWidth;
|
9413
|
-
var totalWidths = columnCount * cWidth;
|
9414
|
-
var w = cWidth;
|
9415
|
-
if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.offsetWidth && totalWidths < ((_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetWidth) && index === columnCount - 1) {
|
9416
|
-
var _containerRef$current3;
|
9417
|
-
w = Math.max(cWidth, ((_containerRef$current3 = containerRef.current) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.offsetWidth) - (columnCount - 1) * cWidth);
|
9418
|
-
}
|
9419
|
-
return w;
|
9420
|
-
}, [columnCount]);
|
9421
|
-
React.useEffect(function () {
|
9422
|
-
if (renderedColumnWidth && listRef.current) {
|
9423
|
-
listRef.current.forceUpdateGrids();
|
9424
|
-
}
|
9425
|
-
}, [renderedColumnWidth]);
|
9289
|
+
};
|
9426
9290
|
return React__default.createElement(material.Box, Object.assign({
|
9427
9291
|
ref: containerRef
|
9428
|
-
}, containerProps), React__default.createElement(
|
9429
|
-
|
9430
|
-
|
9431
|
-
},
|
9432
|
-
|
9433
|
-
|
9434
|
-
|
9435
|
-
|
9436
|
-
|
9437
|
-
|
9438
|
-
|
9439
|
-
|
9440
|
-
|
9441
|
-
columnWidth: columnWidth,
|
9442
|
-
height: listHeight || height,
|
9443
|
-
rowHeight: cellMeasurerCache$1.rowHeight,
|
9444
|
-
deferredMeasurementCache: cellMeasurerCache$1,
|
9445
|
-
rowCount: rowCount,
|
9446
|
-
width: listWidth || width,
|
9447
|
-
overscanRowCount: overscanRowCount,
|
9448
|
-
noRowsRenderer: noRowsRenderer,
|
9449
|
-
onScroll: onScroll,
|
9450
|
-
onSectionRendered: onSectionRendered
|
9451
|
-
}, rest));
|
9292
|
+
}, containerProps), loading && React__default.createElement(React.Fragment, null, loadingElement != null ? loadingElement : React__default.createElement(material.Box, {
|
9293
|
+
p: 1,
|
9294
|
+
className: "d-flex justify-content-center align-items-center w-100"
|
9295
|
+
}, React__default.createElement(material.CircularProgress, {
|
9296
|
+
size: 24,
|
9297
|
+
sx: {
|
9298
|
+
color: "#5d5d5b"
|
9299
|
+
}
|
9300
|
+
}))), !loading && !data.length && React__default.createElement(VirtualTableEmpty, {
|
9301
|
+
emptyElement: emptyElement
|
9302
|
+
}), !loading && !!data.length && React__default.createElement(ListView, {
|
9303
|
+
data: data,
|
9304
|
+
render: renderTableRow
|
9452
9305
|
}));
|
9453
9306
|
};
|
9454
9307
|
|
@@ -10683,6 +10536,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10683
10536
|
var _useState8 = React.useState(false),
|
10684
10537
|
error = _useState8[0],
|
10685
10538
|
setError = _useState8[1];
|
10539
|
+
var firstLoadRef = React.useRef(true);
|
10686
10540
|
var onVerify = React.useCallback(function (token) {
|
10687
10541
|
setTokenReCaptcha(token);
|
10688
10542
|
}, []);
|
@@ -10692,9 +10546,11 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10692
10546
|
setRefreshReCaptcha(function (b) {
|
10693
10547
|
return !b;
|
10694
10548
|
});
|
10549
|
+
firstLoadRef.current = false;
|
10695
10550
|
setLoadingQR(false);
|
10696
10551
|
};
|
10697
|
-
if (!tokenReCaptcha
|
10552
|
+
if (!tokenReCaptcha) return Promise.resolve();
|
10553
|
+
resetData();
|
10698
10554
|
setLoadingQR(true);
|
10699
10555
|
if (!academyDomain) localStorage.setItem(LEARNING_SPACE, "true");
|
10700
10556
|
var _temp = _catch(function () {
|
@@ -10729,8 +10585,8 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10729
10585
|
}
|
10730
10586
|
};
|
10731
10587
|
React.useEffect(function () {
|
10732
|
-
getQRCodeDataLogin();
|
10733
|
-
}, [academyDomain, tokenReCaptcha
|
10588
|
+
if (firstLoadRef.current) getQRCodeDataLogin();
|
10589
|
+
}, [academyDomain, tokenReCaptcha]);
|
10734
10590
|
React.useEffect(function () {
|
10735
10591
|
if (qrCodeData !== null && qrCodeData !== void 0 && qrCodeData.key) {
|
10736
10592
|
if (pusher.current) pusher.current.disconnect();
|
@@ -10768,9 +10624,8 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10768
10624
|
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
10769
10625
|
redirectLoginUser(user, token, redirectUrl);
|
10770
10626
|
});
|
10771
|
-
}, function (
|
10627
|
+
}, function () {
|
10772
10628
|
setInvalid(true);
|
10773
|
-
reactToastify.toast.error(getErrorMessage(t, error));
|
10774
10629
|
});
|
10775
10630
|
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
10776
10631
|
} catch (e) {
|
@@ -10799,7 +10654,7 @@ var useLogiQRCode = function useLogiQRCode(props) {
|
|
10799
10654
|
setError(false);
|
10800
10655
|
};
|
10801
10656
|
var handleGenerateNewAQRCode = function handleGenerateNewAQRCode() {
|
10802
|
-
|
10657
|
+
getQRCodeDataLogin();
|
10803
10658
|
};
|
10804
10659
|
return {
|
10805
10660
|
t: t,
|
@@ -10911,10 +10766,10 @@ var LoginQRCode = function LoginQRCode(props) {
|
|
10911
10766
|
}));
|
10912
10767
|
};
|
10913
10768
|
|
10914
|
-
var _excluded$
|
10769
|
+
var _excluded$6 = ["history"];
|
10915
10770
|
var Login = function Login(_ref) {
|
10916
10771
|
var history = _ref.history,
|
10917
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
10772
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
10918
10773
|
var _useLogin = useLogin$1({
|
10919
10774
|
homeAcademyUrl: rest.homeAcademyUrl,
|
10920
10775
|
homeUrl: rest.homeUrl,
|
@@ -11864,11 +11719,11 @@ var DEFAULT_USER_FILTERS = {
|
|
11864
11719
|
|
11865
11720
|
var styles$2 = {"avatar":"_2rJkZ","date-picker":"_1iqE2","time-picker":"_20xtc","teacher-selector-wrapper":"_3L1Oj"};
|
11866
11721
|
|
11867
|
-
var _excluded$
|
11722
|
+
var _excluded$7 = ["teachers", "value"];
|
11868
11723
|
var TeacherSelector = function TeacherSelector(_ref) {
|
11869
11724
|
var teachers = _ref.teachers,
|
11870
11725
|
value = _ref.value,
|
11871
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
11726
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
11872
11727
|
var teacherOptions = teachers.map(function (i) {
|
11873
11728
|
return {
|
11874
11729
|
label: i.teacherName + "/" + i.teacherEmail,
|
@@ -11896,7 +11751,7 @@ var ErrorHandler = function ErrorHandler(_ref) {
|
|
11896
11751
|
var ClassForm = function ClassForm(_ref) {
|
11897
11752
|
var history = _ref.history,
|
11898
11753
|
formikProp = _ref.formikProp,
|
11899
|
-
|
11754
|
+
classId = _ref.classId,
|
11900
11755
|
data = _ref.data,
|
11901
11756
|
teachers = _ref.teachers,
|
11902
11757
|
disabled = _ref.disabled,
|
@@ -12261,7 +12116,7 @@ var ClassForm = function ClassForm(_ref) {
|
|
12261
12116
|
formikProp.handleSubmit();
|
12262
12117
|
},
|
12263
12118
|
disabled: disabled
|
12264
|
-
}, !
|
12119
|
+
}, !classId ? t("create_and_continue") : t("save_and_exit")), React__default.createElement(material.Button, {
|
12265
12120
|
color: "secondary",
|
12266
12121
|
className: "bg-secondary",
|
12267
12122
|
variant: "contained",
|
@@ -13159,14 +13014,15 @@ var useTeacherList = function useTeacherList() {
|
|
13159
13014
|
};
|
13160
13015
|
};
|
13161
13016
|
|
13162
|
-
var _excluded$
|
13017
|
+
var _excluded$8 = ["getStudents"],
|
13163
13018
|
_excluded2 = ["getTeachers"],
|
13164
13019
|
_excluded3 = ["getLessons"];
|
13165
13020
|
var PAGE_TITLE$4 = "classes";
|
13166
13021
|
var useClassDetail = function useClassDetail(_ref) {
|
13167
13022
|
var history = _ref.history,
|
13168
|
-
|
13169
|
-
role = _ref.role
|
13023
|
+
classId = _ref.classId,
|
13024
|
+
role = _ref.role,
|
13025
|
+
classListUrl = _ref.classListUrl;
|
13170
13026
|
var _useTranslation = reactI18next.useTranslation(),
|
13171
13027
|
t = _useTranslation.t;
|
13172
13028
|
var dispatch = reactRedux.useDispatch();
|
@@ -13177,8 +13033,11 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13177
13033
|
});
|
13178
13034
|
var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
|
13179
13035
|
var isOneRoleExists = roles.length === 1;
|
13180
|
-
var isAdmin = roles.includes(exports.Role.Admin)
|
13181
|
-
var isTeacher = roles.includes(exports.Role.Teacher) && !
|
13036
|
+
var isAdmin = roles.includes(exports.Role.Admin);
|
13037
|
+
var isTeacher = roles.includes(exports.Role.Teacher) && !isAdmin;
|
13038
|
+
var isSuperAdmin = user === null || user === void 0 ? void 0 : user.isSuperAdmin;
|
13039
|
+
var isteacherSite = role === exports.Role.Teacher;
|
13040
|
+
var isDisabled = isAdmin && !isSuperAdmin && isteacherSite || isTeacher;
|
13182
13041
|
var _useState = React.useState(),
|
13183
13042
|
course = _useState[0],
|
13184
13043
|
setCourse = _useState[1];
|
@@ -13204,13 +13063,13 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13204
13063
|
var isSelected = function isSelected(id) {
|
13205
13064
|
return selected.indexOf(id) !== -1;
|
13206
13065
|
};
|
13207
|
-
var _useStudentClassList = useStudentClassList(
|
13066
|
+
var _useStudentClassList = useStudentClassList(classId),
|
13208
13067
|
getStudents = _useStudentClassList.getStudents,
|
13209
|
-
studentListProps = _objectWithoutPropertiesLoose(_useStudentClassList, _excluded$
|
13210
|
-
var _useTeacherClassList = useTeacherClassList(
|
13068
|
+
studentListProps = _objectWithoutPropertiesLoose(_useStudentClassList, _excluded$8);
|
13069
|
+
var _useTeacherClassList = useTeacherClassList(classId),
|
13211
13070
|
getTeachers = _useTeacherClassList.getTeachers,
|
13212
13071
|
teacherListProps = _objectWithoutPropertiesLoose(_useTeacherClassList, _excluded2);
|
13213
|
-
var _useLessonClassList = useLessonClassList(
|
13072
|
+
var _useLessonClassList = useLessonClassList(classId),
|
13214
13073
|
getLessons = _useLessonClassList.getLessons,
|
13215
13074
|
lessonListProps = _objectWithoutPropertiesLoose(_useLessonClassList, _excluded3);
|
13216
13075
|
var selectedLesson = lessonListProps.selectedLesson,
|
@@ -13234,12 +13093,10 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13234
13093
|
isLoading && dispatch(setLoading(false));
|
13235
13094
|
};
|
13236
13095
|
var _exit = false;
|
13237
|
-
if (!
|
13238
|
-
var idNumber = +id;
|
13239
|
-
if (isNaN(idNumber)) return Promise.resolve();
|
13096
|
+
if (!classId) return Promise.resolve();
|
13240
13097
|
isLoading && dispatch(setLoading(true));
|
13241
13098
|
var _temp = _catch(function () {
|
13242
|
-
return Promise.resolve(getClassByIdApi(
|
13099
|
+
return Promise.resolve(getClassByIdApi(classId)).then(function (res) {
|
13243
13100
|
var classData = res.data;
|
13244
13101
|
if (!classData) {
|
13245
13102
|
reactToastify.toast.error(t("get_class_detail_error"));
|
@@ -13356,22 +13213,22 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13356
13213
|
var _temp12 = function _temp12() {
|
13357
13214
|
dispatch(setLoading(false));
|
13358
13215
|
};
|
13359
|
-
if (!
|
13216
|
+
if (!classId || !openSelectDialog) return Promise.resolve();
|
13360
13217
|
dispatch(setLoading(true));
|
13361
13218
|
var _temp11 = _catch(function () {
|
13362
13219
|
function _temp10() {
|
13363
13220
|
return Promise.resolve(handleGetDetailData(false)).then(function () {
|
13364
|
-
reactToastify.toast.success(t(
|
13221
|
+
reactToastify.toast.success(t(classId ? "update_class_successfully" : "create_class_successfully"));
|
13365
13222
|
handleCloseSelectDialog();
|
13366
13223
|
});
|
13367
13224
|
}
|
13368
13225
|
var _temp9 = function () {
|
13369
13226
|
if (openSelectDialog === "Student") {
|
13370
|
-
return Promise.resolve(addStudentToClass(
|
13227
|
+
return Promise.resolve(addStudentToClass(classId, userIds)).then(function () {
|
13371
13228
|
return Promise.resolve(getStudents()).then(function () {});
|
13372
13229
|
});
|
13373
13230
|
} else {
|
13374
|
-
return Promise.resolve(addTeacherToClass(
|
13231
|
+
return Promise.resolve(addTeacherToClass(classId, userIds)).then(function () {
|
13375
13232
|
return Promise.resolve(getTeachers()).then(function () {});
|
13376
13233
|
});
|
13377
13234
|
}
|
@@ -13406,16 +13263,16 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13406
13263
|
dispatch(setLoading(true));
|
13407
13264
|
var _temp15 = _catch(function () {
|
13408
13265
|
function _temp14() {
|
13409
|
-
reactToastify.toast.success(t(
|
13266
|
+
reactToastify.toast.success(t(classId ? "update_class_successfully" : "create_class_successfully"));
|
13410
13267
|
}
|
13411
13268
|
var _temp13 = function () {
|
13412
|
-
if (!
|
13269
|
+
if (!classId) {
|
13413
13270
|
return Promise.resolve(createClassApi(body)).then(function (res) {
|
13414
|
-
pushTo(history, "/
|
13271
|
+
pushTo(history, classListUrl + "/" + res.data.id);
|
13415
13272
|
});
|
13416
13273
|
} else {
|
13417
|
-
return Promise.resolve(updateClassApi(
|
13418
|
-
pushTo(history,
|
13274
|
+
return Promise.resolve(updateClassApi(classId, body)).then(function () {
|
13275
|
+
pushTo(history, classListUrl);
|
13419
13276
|
});
|
13420
13277
|
}
|
13421
13278
|
}();
|
@@ -13430,10 +13287,10 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13430
13287
|
};
|
13431
13288
|
var getStudentNotInClassList = function getStudentNotInClassList() {
|
13432
13289
|
try {
|
13433
|
-
if (!
|
13290
|
+
if (!classId) return Promise.resolve();
|
13434
13291
|
var _temp17 = _catch(function () {
|
13435
13292
|
var _textSearchRef$curren;
|
13436
|
-
return Promise.resolve(getStudentClassApi(
|
13293
|
+
return Promise.resolve(getStudentClassApi(classId, _extends({}, filter, {
|
13437
13294
|
textSearch: (_textSearchRef$curren = textSearchRef.current) === null || _textSearchRef$curren === void 0 ? void 0 : _textSearchRef$curren.value,
|
13438
13295
|
isInCourse: false
|
13439
13296
|
}))).then(function (res) {
|
@@ -13469,10 +13326,10 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13469
13326
|
};
|
13470
13327
|
var getTeacherNotInClassList = function getTeacherNotInClassList() {
|
13471
13328
|
try {
|
13472
|
-
if (!
|
13329
|
+
if (!classId) return Promise.resolve();
|
13473
13330
|
var _temp18 = _catch(function () {
|
13474
13331
|
var _textSearchRef$curren2;
|
13475
|
-
return Promise.resolve(getTeacherClassApi(
|
13332
|
+
return Promise.resolve(getTeacherClassApi(classId, _extends({}, filter, {
|
13476
13333
|
textSearch: (_textSearchRef$curren2 = textSearchRef.current) === null || _textSearchRef$curren2 === void 0 ? void 0 : _textSearchRef$curren2.value,
|
13477
13334
|
isInCourse: false
|
13478
13335
|
}))).then(function (res) {
|
@@ -13588,7 +13445,7 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13588
13445
|
};
|
13589
13446
|
React.useEffect(function () {
|
13590
13447
|
handleGetDetailData();
|
13591
|
-
}, [
|
13448
|
+
}, [classId]);
|
13592
13449
|
React.useEffect(function () {
|
13593
13450
|
handleFetchUsers();
|
13594
13451
|
}, [JSON.stringify(filter)]);
|
@@ -13596,9 +13453,9 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
13596
13453
|
document.title = t("study_peak") + " | " + t(PAGE_TITLE$4);
|
13597
13454
|
}, [t]);
|
13598
13455
|
return {
|
13599
|
-
|
13456
|
+
classId: classId,
|
13600
13457
|
schema: schema,
|
13601
|
-
|
13458
|
+
isDisabled: isDisabled,
|
13602
13459
|
paging: paging,
|
13603
13460
|
filter: filter,
|
13604
13461
|
isTeacher: isTeacher,
|
@@ -13958,12 +13815,12 @@ var LessonList = function LessonList(_ref) {
|
|
13958
13815
|
}));
|
13959
13816
|
};
|
13960
13817
|
|
13961
|
-
var _excluded$
|
13818
|
+
var _excluded$9 = ["children", "value", "index"];
|
13962
13819
|
var CustomTabPanel = function CustomTabPanel(props) {
|
13963
13820
|
var children = props.children,
|
13964
13821
|
value = props.value,
|
13965
13822
|
index = props.index,
|
13966
|
-
other = _objectWithoutPropertiesLoose(props, _excluded$
|
13823
|
+
other = _objectWithoutPropertiesLoose(props, _excluded$9);
|
13967
13824
|
return React__default.createElement("div", Object.assign({
|
13968
13825
|
role: "tabpanel",
|
13969
13826
|
hidden: value !== index,
|
@@ -13990,15 +13847,17 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
13990
13847
|
history = _ref.history,
|
13991
13848
|
classListUrl = _ref.classListUrl,
|
13992
13849
|
role = _ref.role;
|
13850
|
+
var classId = !id || Number.isNaN(+id) ? 0 : +id;
|
13993
13851
|
var _useClassDetail = useClassDetail({
|
13994
13852
|
history: history,
|
13995
|
-
|
13996
|
-
role: role
|
13853
|
+
classId: classId,
|
13854
|
+
role: role,
|
13855
|
+
classListUrl: classListUrl
|
13997
13856
|
}),
|
13998
13857
|
schema = _useClassDetail.schema,
|
13999
13858
|
paging = _useClassDetail.paging,
|
14000
|
-
isAdmin = _useClassDetail.isAdmin,
|
14001
13859
|
isTeacher = _useClassDetail.isTeacher,
|
13860
|
+
isDisabled = _useClassDetail.isDisabled,
|
14002
13861
|
filter = _useClassDetail.filter,
|
14003
13862
|
listUserSelected = _useClassDetail.listUserSelected,
|
14004
13863
|
userList = _useClassDetail.userList,
|
@@ -14048,7 +13907,7 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
14048
13907
|
if (selected === TabList$1[1].value) studentListProps.resetData();
|
14049
13908
|
if (selected === TabList$1[2].value) studentListProps.resetData();
|
14050
13909
|
}, [selected]);
|
14051
|
-
return React__default.createElement(material.Box, null, !!
|
13910
|
+
return React__default.createElement(material.Box, null, !!classId && React__default.createElement(material.Box, null, React__default.createElement(material.Stack, {
|
14052
13911
|
display: "flex",
|
14053
13912
|
flexDirection: "row",
|
14054
13913
|
gap: "8px"
|
@@ -14078,12 +13937,12 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
14078
13937
|
direction: "row",
|
14079
13938
|
alignItems: "center",
|
14080
13939
|
justifyContent: "space-between",
|
14081
|
-
mt:
|
13940
|
+
mt: classId ? 2 : 0,
|
14082
13941
|
mb: 2,
|
14083
|
-
pt:
|
13942
|
+
pt: classId ? "12px" : "0px"
|
14084
13943
|
}, React__default.createElement(material.Typography, {
|
14085
13944
|
variant: "h4"
|
14086
|
-
}, t(!
|
13945
|
+
}, t(!classId ? "create_class" : !isDisabled ? "update_class" : "view_class"))), React__default.createElement(formik.Formik, {
|
14087
13946
|
initialValues: DEFAULT_CLASS_REQUEST,
|
14088
13947
|
validationSchema: schema,
|
14089
13948
|
onSubmit: handleSubmit
|
@@ -14091,30 +13950,30 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
14091
13950
|
return React__default.createElement(ClassForm, {
|
14092
13951
|
classListUrl: classListUrl,
|
14093
13952
|
history: history,
|
14094
|
-
|
13953
|
+
classId: classId,
|
14095
13954
|
formikProp: props,
|
14096
13955
|
data: classRequest,
|
14097
13956
|
teachers: teacherOptions,
|
14098
|
-
disabled:
|
13957
|
+
disabled: isDisabled,
|
14099
13958
|
onSearchTeachers: handleChangeTextSearchTeachers
|
14100
13959
|
});
|
14101
13960
|
})), React__default.createElement(CustomTabPanel, {
|
14102
13961
|
value: selected,
|
14103
13962
|
index: TabList$1[1].value
|
14104
|
-
}, !!
|
14105
|
-
disabled:
|
13963
|
+
}, !!classId && selected === TabList$1[1].value && React__default.createElement(StudentList, Object.assign({
|
13964
|
+
disabled: isDisabled && !isTeacher,
|
14106
13965
|
onAdd: handleOpenSelectDialog
|
14107
13966
|
}, studentListProps))), React__default.createElement(CustomTabPanel, {
|
14108
13967
|
value: selected,
|
14109
13968
|
index: TabList$1[2].value
|
14110
|
-
}, !!
|
14111
|
-
disabled:
|
13969
|
+
}, !!classId && selected === TabList$1[2].value && React__default.createElement(TeacherList, Object.assign({
|
13970
|
+
disabled: isDisabled,
|
14112
13971
|
onAdd: handleOpenSelectDialog
|
14113
13972
|
}, teacherListProps))), React__default.createElement(CustomTabPanel, {
|
14114
13973
|
value: selected,
|
14115
13974
|
index: TabList$1[3].value
|
14116
|
-
}, !!
|
14117
|
-
disabled:
|
13975
|
+
}, !!classId && selected === TabList$1[3].value && React__default.createElement(LessonList, Object.assign({
|
13976
|
+
disabled: isDisabled,
|
14118
13977
|
startDate: course === null || course === void 0 ? void 0 : course.startDate,
|
14119
13978
|
endDate: course === null || course === void 0 ? void 0 : course.endDate
|
14120
13979
|
}, lessonListProps, {
|
@@ -14122,7 +13981,7 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
14122
13981
|
handleDeleteLessonClass: handleDeleteLessonClass,
|
14123
13982
|
teachers: teacherOptions,
|
14124
13983
|
onSearchTeachers: handleChangeTextSearchTeachers
|
14125
|
-
}))), (
|
13984
|
+
}))), (!isDisabled && !isTeacher || openSelectDialog === "Student") && React__default.createElement(SelectDialog, {
|
14126
13985
|
open: !!openSelectDialog,
|
14127
13986
|
isStudent: openSelectDialog === "Student",
|
14128
13987
|
onClose: handleCloseSelectDialog,
|
@@ -14288,6 +14147,10 @@ var ClassList = function ClassList(_ref) {
|
|
14288
14147
|
role = _ref.role,
|
14289
14148
|
classCreateUrl = _ref.classCreateUrl,
|
14290
14149
|
classUpdateUrl = _ref.classUpdateUrl;
|
14150
|
+
var isSuperAdmin = reactRedux.useSelector(function (state) {
|
14151
|
+
var _state$common, _state$common$user;
|
14152
|
+
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;
|
14153
|
+
});
|
14291
14154
|
var isAdmin = role === exports.Role.Admin;
|
14292
14155
|
var _useClassList = useClassList(history, classCreateUrl, classUpdateUrl),
|
14293
14156
|
t = _useClassList.t,
|
@@ -14311,7 +14174,7 @@ var ClassList = function ClassList(_ref) {
|
|
14311
14174
|
mb: 2
|
14312
14175
|
}, React__default.createElement(material.Typography, {
|
14313
14176
|
variant: "h4"
|
14314
|
-
}, t("classes")), isAdmin && React__default.createElement(MButton, {
|
14177
|
+
}, t("classes")), (isAdmin || isSuperAdmin) && React__default.createElement(MButton, {
|
14315
14178
|
variant: "contained",
|
14316
14179
|
color: "inherit",
|
14317
14180
|
startIcon: React__default.createElement(fa.FaPlus, {
|
@@ -14351,7 +14214,7 @@ var ClassList = function ClassList(_ref) {
|
|
14351
14214
|
key: i.id
|
14352
14215
|
}, React__default.createElement(TableCell, null, (paging.page - 1) * paging.limit + index + 1), React__default.createElement(TableCell, {
|
14353
14216
|
className: "text-nowrap"
|
14354
|
-
}, 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", {
|
14217
|
+
}, 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", {
|
14355
14218
|
className: "d-flex"
|
14356
14219
|
}, React__default.createElement(material.IconButton, {
|
14357
14220
|
color: "default",
|
@@ -14369,7 +14232,7 @@ var ClassList = function ClassList(_ref) {
|
|
14369
14232
|
}
|
14370
14233
|
}, React__default.createElement(fa6.FaTrashCan, {
|
14371
14234
|
size: 12
|
14372
|
-
}))), !isAdmin && React__default.createElement(material.IconButton, {
|
14235
|
+
}))), !(isAdmin || isSuperAdmin) && React__default.createElement(material.IconButton, {
|
14373
14236
|
color: "default",
|
14374
14237
|
className: "bg-primary text-white me-1",
|
14375
14238
|
onClick: function onClick() {
|
@@ -19226,7 +19089,9 @@ var useNotes = function useNotes(setFilter, filter) {
|
|
19226
19089
|
}
|
19227
19090
|
setLoadingNotes(true);
|
19228
19091
|
var _temp = _catch(function () {
|
19229
|
-
return Promise.resolve(getNotesApi(_extends({}, filter
|
19092
|
+
return Promise.resolve(getNotesApi(_extends({}, filter, {
|
19093
|
+
currentPage: -1
|
19094
|
+
}))).then(function (res) {
|
19230
19095
|
var data = res.data;
|
19231
19096
|
setTotalPages((data === null || data === void 0 ? void 0 : data.totalPages) || 0);
|
19232
19097
|
var items = (data === null || data === void 0 ? void 0 : data.items) || [];
|
@@ -19328,6 +19193,7 @@ var NoteItem = function NoteItem(_ref) {
|
|
19328
19193
|
}),
|
19329
19194
|
placement: placement
|
19330
19195
|
}, React__default.createElement(material.IconButton, {
|
19196
|
+
disabled: !actions.length,
|
19331
19197
|
onClick: handleMoreClick
|
19332
19198
|
}, React__default.createElement(md.MdMoreHoriz, {
|
19333
19199
|
color: "#5d5d5b"
|
@@ -19635,11 +19501,10 @@ var useExamResultData = function useExamResultData(props) {
|
|
19635
19501
|
var getData = function getData() {
|
19636
19502
|
resetData();
|
19637
19503
|
if (!(user !== null && user !== void 0 && user.email)) return;
|
19638
|
-
|
19639
|
-
!isStudent && getStudentDataByTeacher(examSessionId, studentId);
|
19504
|
+
if (chapterId) getDataTextbookResult();else isStudent ? getStudentData(examCode) : getStudentDataByTeacher(examSessionId, studentId);
|
19640
19505
|
};
|
19641
19506
|
examCode === "example-code" ? setExampleData() : getData();
|
19642
|
-
}, [examCode, isStudent, code, examSessionId, studentId, user === null || user === void 0 ? void 0 : user.email]);
|
19507
|
+
}, [examCode, isStudent, code, examSessionId, studentId, chapterId, user === null || user === void 0 ? void 0 : user.email]);
|
19643
19508
|
var handlePrevChart = function handlePrevChart() {
|
19644
19509
|
if (dataChartIndex > 0) {
|
19645
19510
|
setDataChartIndex(dataChartIndex - 1);
|
@@ -21095,6 +20960,9 @@ var UserSchema = yup.object().shape({
|
|
21095
20960
|
},
|
21096
20961
|
then: function then(schema) {
|
21097
20962
|
return schema.trim().required("school_name_is_required");
|
20963
|
+
},
|
20964
|
+
otherwise: function otherwise(schema) {
|
20965
|
+
return schema.notRequired();
|
21098
20966
|
}
|
21099
20967
|
}),
|
21100
20968
|
grade: yup.number().transform(function (value) {
|
@@ -21105,6 +20973,9 @@ var UserSchema = yup.object().shape({
|
|
21105
20973
|
},
|
21106
20974
|
then: function then(schema) {
|
21107
20975
|
return schema.required("student_grade_is_required").typeError("student_grade_is_required").min(1, "student_grade_is_invalid").max(12, "student_grade_is_invalid");
|
20976
|
+
},
|
20977
|
+
otherwise: function otherwise(schema) {
|
20978
|
+
return schema.notRequired();
|
21108
20979
|
}
|
21109
20980
|
}),
|
21110
20981
|
major: yup.string().when("role", {
|
@@ -21113,6 +20984,9 @@ var UserSchema = yup.object().shape({
|
|
21113
20984
|
},
|
21114
20985
|
then: function then(schema) {
|
21115
20986
|
return schema.trim().required("major_is_required");
|
20987
|
+
},
|
20988
|
+
otherwise: function otherwise(schema) {
|
20989
|
+
return schema.notRequired();
|
21116
20990
|
}
|
21117
20991
|
}),
|
21118
20992
|
parentPhoneNumber: yup.string().when("role", {
|
@@ -21123,6 +20997,9 @@ var UserSchema = yup.object().shape({
|
|
21123
20997
|
return schema.trim().matches(phoneRegExp, {
|
21124
20998
|
message: "parent_phone_number_is_invalid"
|
21125
20999
|
}).min(10, "parent_phone_number_is_invalid").required("parent_phone_number_is_required");
|
21000
|
+
},
|
21001
|
+
otherwise: function otherwise(schema) {
|
21002
|
+
return schema.notRequired();
|
21126
21003
|
}
|
21127
21004
|
}),
|
21128
21005
|
parentName: yup.string().when("role", {
|
@@ -21131,6 +21008,9 @@ var UserSchema = yup.object().shape({
|
|
21131
21008
|
},
|
21132
21009
|
then: function then(schema) {
|
21133
21010
|
return schema.trim().required("parent_name_is_required");
|
21011
|
+
},
|
21012
|
+
otherwise: function otherwise(schema) {
|
21013
|
+
return schema.notRequired();
|
21134
21014
|
}
|
21135
21015
|
}),
|
21136
21016
|
subjectId: yup.number().when("role", {
|
@@ -21170,14 +21050,14 @@ var CSV_PREFIX = "data:text/csv;charset=utf-8,";
|
|
21170
21050
|
|
21171
21051
|
var styles$5 = {"action-btn":"_1jXbz","action-btn--pencil":"_at4xP","icon-rotate-180":"_12gv9","drop-area":"_R4bn5"};
|
21172
21052
|
|
21173
|
-
var _excluded$
|
21053
|
+
var _excluded$a = ["text", "isRequired", "className"];
|
21174
21054
|
var LabelRequired = function LabelRequired(_ref) {
|
21175
21055
|
var text = _ref.text,
|
21176
21056
|
_ref$isRequired = _ref.isRequired,
|
21177
21057
|
isRequired = _ref$isRequired === void 0 ? true : _ref$isRequired,
|
21178
21058
|
_ref$className = _ref.className,
|
21179
21059
|
className = _ref$className === void 0 ? "" : _ref$className,
|
21180
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
21060
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
|
21181
21061
|
return React__default.createElement(material.FormLabel, Object.assign({
|
21182
21062
|
className: "fw-medium mb-1 " + className
|
21183
21063
|
}, rest), text, isRequired && React__default.createElement("span", {
|
@@ -21231,7 +21111,7 @@ var deleteUserApi = function deleteUserApi(id) {
|
|
21231
21111
|
return api["delete"](USER_URL + "/delete/" + id);
|
21232
21112
|
};
|
21233
21113
|
|
21234
|
-
var _excluded$
|
21114
|
+
var _excluded$b = ["ref"],
|
21235
21115
|
_excluded2$1 = ["ref"],
|
21236
21116
|
_excluded3$1 = ["ref"],
|
21237
21117
|
_excluded4 = ["ref"],
|
@@ -21261,7 +21141,7 @@ var UserDialog = function UserDialog(_ref) {
|
|
21261
21141
|
t = _useTranslation.t;
|
21262
21142
|
var _register = register("fullName"),
|
21263
21143
|
fullNameRef = _register.ref,
|
21264
|
-
fullNameBio = _objectWithoutPropertiesLoose(_register, _excluded$
|
21144
|
+
fullNameBio = _objectWithoutPropertiesLoose(_register, _excluded$b);
|
21265
21145
|
var _register2 = register("email"),
|
21266
21146
|
emailRef = _register2.ref,
|
21267
21147
|
emailBio = _objectWithoutPropertiesLoose(_register2, _excluded2$1);
|
@@ -21670,7 +21550,8 @@ var UserDialog = function UserDialog(_ref) {
|
|
21670
21550
|
size: "1rem"
|
21671
21551
|
}) : React__default.createElement(material.IconButton, {
|
21672
21552
|
className: "bg-success",
|
21673
|
-
onClick: getDefaultPassCode
|
21553
|
+
onClick: getDefaultPassCode,
|
21554
|
+
disabled: disabled
|
21674
21555
|
}, React__default.createElement(fa6.FaRotateRight, {
|
21675
21556
|
color: "#FFF",
|
21676
21557
|
size: 10
|
@@ -21697,7 +21578,8 @@ var UserDialog = function UserDialog(_ref) {
|
|
21697
21578
|
disabled: disabled
|
21698
21579
|
}), React__default.createElement(material.Box, null, React__default.createElement(material.IconButton, {
|
21699
21580
|
className: "bg-success",
|
21700
|
-
onClick: getRandomPassCode
|
21581
|
+
onClick: getRandomPassCode,
|
21582
|
+
disabled: disabled
|
21701
21583
|
}, React__default.createElement(fa6.FaRotateRight, {
|
21702
21584
|
color: "#FFF",
|
21703
21585
|
size: 10
|
@@ -22358,6 +22240,10 @@ var RecentUserActionDialog = function RecentUserActionDialog(_ref) {
|
|
22358
22240
|
|
22359
22241
|
var UserList = function UserList(_ref) {
|
22360
22242
|
var role = _ref.role;
|
22243
|
+
var isSuperAdmin = reactRedux.useSelector(function (state) {
|
22244
|
+
var _state$common, _state$common$user;
|
22245
|
+
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;
|
22246
|
+
});
|
22361
22247
|
var isAdmin = role === exports.Role.Admin;
|
22362
22248
|
var _useUserList = useUserList(role),
|
22363
22249
|
userHeaders = _useUserList.userHeaders,
|
@@ -22411,7 +22297,7 @@ var UserList = function UserList(_ref) {
|
|
22411
22297
|
mb: 2
|
22412
22298
|
}, React__default.createElement(material.Typography, {
|
22413
22299
|
variant: "h4"
|
22414
|
-
}, t("users")), isAdmin && React__default.createElement("div", {
|
22300
|
+
}, t("users")), (isAdmin || isSuperAdmin) && React__default.createElement("div", {
|
22415
22301
|
className: "d-flex"
|
22416
22302
|
}, React__default.createElement("input", {
|
22417
22303
|
type: "file",
|
@@ -22519,7 +22405,7 @@ var UserList = function UserList(_ref) {
|
|
22519
22405
|
key: i.id
|
22520
22406
|
}, 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", {
|
22521
22407
|
className: "d-flex"
|
22522
|
-
}, isAdmin ? React__default.createElement(material.IconButton, {
|
22408
|
+
}, isAdmin || isSuperAdmin ? React__default.createElement(material.IconButton, {
|
22523
22409
|
color: "default",
|
22524
22410
|
className: styles$5["action-btn"] + " bg-warning text-white me-2",
|
22525
22411
|
onClick: function onClick() {
|
@@ -22536,7 +22422,7 @@ var UserList = function UserList(_ref) {
|
|
22536
22422
|
}
|
22537
22423
|
}, React__default.createElement(fa.FaEye, {
|
22538
22424
|
size: 12
|
22539
|
-
})), isAdmin && React__default.createElement(material.IconButton, {
|
22425
|
+
})), (isAdmin || isSuperAdmin) && React__default.createElement(material.IconButton, {
|
22540
22426
|
onClick: function onClick() {
|
22541
22427
|
return openDeleteDialog(i);
|
22542
22428
|
},
|
@@ -22566,14 +22452,14 @@ var UserList = function UserList(_ref) {
|
|
22566
22452
|
}), React__default.createElement(UserDialog, {
|
22567
22453
|
open: openUserDialog,
|
22568
22454
|
data: userDetail,
|
22569
|
-
disabled: !isAdmin,
|
22455
|
+
disabled: !(isAdmin || isSuperAdmin),
|
22570
22456
|
onClose: handleCloseUserDialog,
|
22571
22457
|
onSubmitForm: handleCreateOrUpdateUser
|
22572
22458
|
}), React__default.createElement(RecentUserActionDialog, {
|
22573
22459
|
open: isOpenRecentUserActionDialog,
|
22574
22460
|
onClose: handleCloseRecentUserActionDialog,
|
22575
22461
|
recentUserActions: recentUserActions
|
22576
|
-
}), isAdmin && React__default.createElement(DeleteUserCsvDialog, {
|
22462
|
+
}), (isAdmin || isSuperAdmin) && React__default.createElement(DeleteUserCsvDialog, {
|
22577
22463
|
open: isOpenDeleteUserCsv,
|
22578
22464
|
file: deleteFile,
|
22579
22465
|
onChangeFile: handleChangeDeleteFile,
|
@@ -23885,9 +23771,6 @@ var TextbookDefaultQuery = {
|
|
23885
23771
|
sortColumnDirection: exports.OrderType.ASC,
|
23886
23772
|
sortColumnName: TextbookSortBy.Title
|
23887
23773
|
};
|
23888
|
-
var TEXTBOOK_URL$1 = "/teacher/teacher-admin/textbooks";
|
23889
|
-
var ADMIN_TEXTBOOK_URL = "/textbooks";
|
23890
|
-
var SUPER_ADMIN_TEXTBOOK_URL = "/personal/textbooks";
|
23891
23774
|
var DEFAULT_TEXTBOOK = {
|
23892
23775
|
name: "",
|
23893
23776
|
chapters: []
|
@@ -24055,7 +23938,9 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
24055
23938
|
isReadonlyParam = props.isReadonlyParam,
|
24056
23939
|
navigate = props.navigate,
|
24057
23940
|
id = props.id,
|
24058
|
-
isSuperAdmin = props.isSuperAdmin
|
23941
|
+
isSuperAdmin = props.isSuperAdmin,
|
23942
|
+
onNavigateDetail = props.onNavigateDetail,
|
23943
|
+
onNavigateList = props.onNavigateList;
|
24059
23944
|
var _useTranslation = reactI18next.useTranslation(),
|
24060
23945
|
t = _useTranslation.t;
|
24061
23946
|
var dispatch = reactRedux.useDispatch();
|
@@ -24088,7 +23973,6 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
24088
23973
|
var _useState9 = React.useState([]),
|
24089
23974
|
categoryList = _useState9[0],
|
24090
23975
|
setCategoryList = _useState9[1];
|
24091
|
-
var textbookUrl = isSuperAdmin ? SUPER_ADMIN_TEXTBOOK_URL : role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
24092
23976
|
var isAdminSite = role === exports.Role.Admin;
|
24093
23977
|
var user = reactRedux.useSelector(function (state) {
|
24094
23978
|
var _state$common;
|
@@ -24648,10 +24532,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
24648
24532
|
subjectId: textbook.subject.id
|
24649
24533
|
};
|
24650
24534
|
return Promise.resolve(createTextbookApi(_body)).then(function (res) {
|
24651
|
-
|
24652
|
-
navigate(textbookUrl + "/" + textbookId, {
|
24653
|
-
replace: true
|
24654
|
-
});
|
24535
|
+
onNavigateDetail === null || onNavigateDetail === void 0 ? void 0 : onNavigateDetail(res.data, false, true);
|
24655
24536
|
});
|
24656
24537
|
}
|
24657
24538
|
}();
|
@@ -24694,9 +24575,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
24694
24575
|
}
|
24695
24576
|
};
|
24696
24577
|
var handleGoToTextbookList = function handleGoToTextbookList() {
|
24697
|
-
|
24698
|
-
replace: true
|
24699
|
-
});
|
24578
|
+
onNavigateList(true);
|
24700
24579
|
};
|
24701
24580
|
var textbookSubject = React.useMemo(function () {
|
24702
24581
|
return textbook !== null && textbook !== void 0 && textbook.subject ? {
|
@@ -25044,12 +24923,12 @@ var ArticleDialog = function ArticleDialog(_ref) {
|
|
25044
24923
|
|
25045
24924
|
var styles$7 = {"drawer":"_11aYm","open":"_3Ydwm","drawer-overlay":"_3SQDf","drawer-header":"_2BwOx","drawer-form":"_2Zo7R","dropdown-content-academy":"_1lzjD","dropdown-change":"_1y7K9","dropdown-academy-item":"_1Y-55","dropdown-content-language":"_1fBXY","dropdown-item-language":"_3Szun","dropdown-item-language-active":"_2HhLb","item-address":"_3WYHC","item-logout":"_2-9ix","title-address":"_1r4pn","image-academy":"_2ZozT"};
|
25046
24925
|
|
25047
|
-
var _excluded$
|
24926
|
+
var _excluded$c = ["isOpen", "onClose", "handleSaveExam"];
|
25048
24927
|
var CreateExamDrawer = function CreateExamDrawer(props) {
|
25049
24928
|
var isOpen = props.isOpen,
|
25050
24929
|
onClose = props.onClose,
|
25051
24930
|
handleSaveExam = props.handleSaveExam,
|
25052
|
-
examDetailViewProps = _objectWithoutPropertiesLoose(props, _excluded$
|
24931
|
+
examDetailViewProps = _objectWithoutPropertiesLoose(props, _excluded$c);
|
25053
24932
|
var _useTranslation = reactI18next.useTranslation(),
|
25054
24933
|
t = _useTranslation.t;
|
25055
24934
|
var theme = material.useTheme();
|
@@ -25092,7 +24971,8 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
25092
24971
|
var _textbook$chapters;
|
25093
24972
|
var navigate = props.navigate,
|
25094
24973
|
as = props.as,
|
25095
|
-
className = props.className
|
24974
|
+
className = props.className,
|
24975
|
+
onNavigateDetail = props.onNavigateDetail;
|
25096
24976
|
var _useTextbookDetail = useTextbookDetail(props),
|
25097
24977
|
id = _useTextbookDetail.id,
|
25098
24978
|
t = _useTextbookDetail.t,
|
@@ -25141,7 +25021,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
25141
25021
|
}),
|
25142
25022
|
categoryOptions = _useCategorySelect.categoryOptions;
|
25143
25023
|
var Wrapper = as || material.Container;
|
25144
|
-
if (isNotFound) return React__default.createElement(NotFound, {
|
25024
|
+
if (isNotFound || id && textbook.isPrepared) return React__default.createElement(NotFound, {
|
25145
25025
|
history: navigate
|
25146
25026
|
});
|
25147
25027
|
return React__default.createElement(Wrapper, {
|
@@ -25221,7 +25101,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
25221
25101
|
textbook: textbook,
|
25222
25102
|
onBack: handleGoToTextbookList,
|
25223
25103
|
onSave: handleCreateOrUpdateTextbook,
|
25224
|
-
hideSave: !!id && isReadonly
|
25104
|
+
hideSave: !!id && isReadonly || !onNavigateDetail
|
25225
25105
|
}))), React__default.createElement(material.Grid, {
|
25226
25106
|
item: true,
|
25227
25107
|
xs: 12,
|
@@ -25299,8 +25179,8 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
25299
25179
|
|
25300
25180
|
var PAGE_TITLE$7 = "textbooks";
|
25301
25181
|
var useTextbookList = function useTextbookList(props) {
|
25302
|
-
var
|
25303
|
-
|
25182
|
+
var onNavigateCreate = props.onNavigateCreate,
|
25183
|
+
onNavigateDetail = props.onNavigateDetail,
|
25304
25184
|
isSuperAdmin = props.isSuperAdmin;
|
25305
25185
|
var _useList = useList(function (search) {
|
25306
25186
|
return getTextbookListApi(search, isSuperAdmin);
|
@@ -25318,21 +25198,15 @@ var useTextbookList = function useTextbookList(props) {
|
|
25318
25198
|
getData = _useList.getData;
|
25319
25199
|
var _useTranslation = reactI18next.useTranslation(),
|
25320
25200
|
t = _useTranslation.t;
|
25321
|
-
var textbookUrl = isSuperAdmin ? SUPER_ADMIN_TEXTBOOK_URL : role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
25322
25201
|
var dispatch = reactRedux.useDispatch();
|
25323
|
-
var handleViewTextbook = function handleViewTextbook(
|
25324
|
-
|
25325
|
-
navigate(textbookUrl + "/" + id + "?readonly=true", {
|
25326
|
-
replace: true
|
25327
|
-
});
|
25202
|
+
var handleViewTextbook = function handleViewTextbook(data) {
|
25203
|
+
onNavigateDetail(data, true, true);
|
25328
25204
|
};
|
25329
|
-
var handleUpdateTextbook = function handleUpdateTextbook(
|
25330
|
-
|
25331
|
-
replace: true
|
25332
|
-
});
|
25205
|
+
var handleUpdateTextbook = function handleUpdateTextbook(data) {
|
25206
|
+
onNavigateDetail(data, false, true);
|
25333
25207
|
};
|
25334
25208
|
var handleCreateTextbook = function handleCreateTextbook() {
|
25335
|
-
|
25209
|
+
onNavigateCreate === null || onNavigateCreate === void 0 ? void 0 : onNavigateCreate();
|
25336
25210
|
};
|
25337
25211
|
var toggleConfirmDialog = function toggleConfirmDialog() {
|
25338
25212
|
handleChangeSelectedItem(undefined);
|
@@ -25561,7 +25435,7 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25561
25435
|
var getData = props.getData,
|
25562
25436
|
role = props.role,
|
25563
25437
|
isSuperAdmin = props.isSuperAdmin;
|
25564
|
-
var _useList = useList(
|
25438
|
+
var _useList = useList(!isSuperAdmin ? function (search) {
|
25565
25439
|
return getTeacherListApi$1(search);
|
25566
25440
|
} : null, DefaultTeacherQuery),
|
25567
25441
|
filterShare = _useList.filter,
|
@@ -25601,8 +25475,10 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25601
25475
|
var _state$common;
|
25602
25476
|
return (state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user) || {};
|
25603
25477
|
});
|
25604
|
-
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);
|
25478
|
+
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));
|
25605
25479
|
var isAdminSite = role === exports.Role.Admin;
|
25480
|
+
var onAcademy = !!infoUser.academyDomain;
|
25481
|
+
var isSuperAdminUser = infoUser && infoUser.isSuperAdmin;
|
25606
25482
|
React.useEffect(function () {
|
25607
25483
|
if (!isUpdate) {
|
25608
25484
|
filterTeacherNotShared(currentModel);
|
@@ -25611,6 +25487,8 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25611
25487
|
}
|
25612
25488
|
}, [teachers, isUpdate]);
|
25613
25489
|
var handleOpenShareDialog = function handleOpenShareDialog(textbook) {
|
25490
|
+
if (textSearchShareRef.current) textSearchShareRef.current.value = "";
|
25491
|
+
getData();
|
25614
25492
|
setIsUpdate(false);
|
25615
25493
|
setOpenShareDialog(true);
|
25616
25494
|
setCurrentModel(textbook);
|
@@ -25635,6 +25513,8 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25635
25513
|
setSelectedShare([]);
|
25636
25514
|
};
|
25637
25515
|
var handleOpenUpdateShareDialog = function handleOpenUpdateShareDialog(textbook) {
|
25516
|
+
if (textSearchShareRef.current) textSearchShareRef.current.value = "";
|
25517
|
+
getData();
|
25638
25518
|
setIsUpdate(true);
|
25639
25519
|
setOpenShareDialog(true);
|
25640
25520
|
setCurrentModel(textbook);
|
@@ -25689,8 +25569,11 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25689
25569
|
});
|
25690
25570
|
setShared(existsTeachers);
|
25691
25571
|
};
|
25692
|
-
var
|
25693
|
-
return
|
25572
|
+
var enabledSave = function enabledSave(textbook) {
|
25573
|
+
return isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && textbook.isShared && textbook.createdBy.id === infoUser.id;
|
25574
|
+
};
|
25575
|
+
var enabledShare = function enabledShare(textbook) {
|
25576
|
+
return textbook.isShared && onAcademy && (isAdminSite || isSuperAdminUser || !isAdmin && textbook.createdBy.id === infoUser.id);
|
25694
25577
|
};
|
25695
25578
|
var handleShareTextbook = function handleShareTextbook(teacherIds, textbookId) {
|
25696
25579
|
try {
|
@@ -25768,13 +25651,16 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
25768
25651
|
isUpdate: isUpdate,
|
25769
25652
|
handleUpdateSharedTextbook: handleUpdateSharedTextbook,
|
25770
25653
|
currentModel: currentModel,
|
25771
|
-
|
25654
|
+
enabledSave: enabledSave,
|
25655
|
+
enabledShare: enabledShare,
|
25772
25656
|
isAdmin: isAdmin,
|
25773
25657
|
isAdminSite: isAdminSite
|
25774
25658
|
};
|
25775
25659
|
};
|
25776
25660
|
|
25777
25661
|
var TextbookList = function TextbookList(props) {
|
25662
|
+
var _props$createable = props.createable,
|
25663
|
+
createable = _props$createable === void 0 ? true : _props$createable;
|
25778
25664
|
var _useTranslation = reactI18next.useTranslation(),
|
25779
25665
|
t = _useTranslation.t;
|
25780
25666
|
var _useTextbookList = useTextbookList(props),
|
@@ -25820,9 +25706,8 @@ var TextbookList = function TextbookList(props) {
|
|
25820
25706
|
isUpdate = _useTextbookShare.isUpdate,
|
25821
25707
|
handleUpdateSharedTextbook = _useTextbookShare.handleUpdateSharedTextbook,
|
25822
25708
|
currentModel = _useTextbookShare.currentModel,
|
25823
|
-
|
25824
|
-
|
25825
|
-
isAdminSite = _useTextbookShare.isAdminSite;
|
25709
|
+
enabledSave = _useTextbookShare.enabledSave,
|
25710
|
+
enabledShare = _useTextbookShare.enabledShare;
|
25826
25711
|
return React__default.createElement(LayoutList, {
|
25827
25712
|
title: t(TEXTBOOK_PAGE_TITLE)
|
25828
25713
|
}, React__default.createElement(material.Grid, {
|
@@ -25844,14 +25729,14 @@ var TextbookList = function TextbookList(props) {
|
|
25844
25729
|
justifyContent: "flex-end"
|
25845
25730
|
},
|
25846
25731
|
spacing: 2
|
25847
|
-
},
|
25732
|
+
}, createable && React__default.createElement(material.Button, {
|
25848
25733
|
startIcon: React__default.createElement(fa.FaPlus, {
|
25849
25734
|
size: 12
|
25850
25735
|
}),
|
25851
25736
|
variant: "contained",
|
25852
25737
|
color: "primary",
|
25853
25738
|
onClick: handleCreateTextbook,
|
25854
|
-
className:
|
25739
|
+
className: "bg-success text-white"
|
25855
25740
|
}, t("create_textbook")))), React__default.createElement(material.Grid, {
|
25856
25741
|
item: true,
|
25857
25742
|
xs: 12,
|
@@ -25873,32 +25758,32 @@ var TextbookList = function TextbookList(props) {
|
|
25873
25758
|
alignItems: "center"
|
25874
25759
|
}, React__default.createElement(material.IconButton, {
|
25875
25760
|
color: "default",
|
25876
|
-
className: (
|
25761
|
+
className: (!enabledSave(i) ? "bg-secondary" : "bg-warning") + " text-white",
|
25877
25762
|
onClick: function onClick() {
|
25878
|
-
return handleUpdateTextbook(i
|
25763
|
+
return handleUpdateTextbook(i);
|
25879
25764
|
},
|
25880
|
-
disabled:
|
25765
|
+
disabled: !enabledSave(i)
|
25881
25766
|
}, React__default.createElement(fa6.FaPencil, {
|
25882
25767
|
size: 12
|
25883
25768
|
})), React__default.createElement(material.IconButton, {
|
25884
25769
|
color: "default",
|
25885
25770
|
className: "bg-primary text-white",
|
25886
25771
|
onClick: function onClick() {
|
25887
|
-
return handleViewTextbook(i
|
25772
|
+
return handleViewTextbook(i);
|
25888
25773
|
}
|
25889
25774
|
}, React__default.createElement(fa.FaEye, {
|
25890
25775
|
size: 12
|
25891
25776
|
})), React__default.createElement(material.IconButton, {
|
25892
|
-
disabled:
|
25893
|
-
className: (
|
25777
|
+
disabled: !enabledShare(i),
|
25778
|
+
className: (!enabledShare(i) ? "bg-secondary" : "bg-info") + " text-white me-1",
|
25894
25779
|
onClick: function onClick() {
|
25895
25780
|
return handleOpenShareDialog(i);
|
25896
25781
|
}
|
25897
25782
|
}, React__default.createElement(fa.FaShare, {
|
25898
25783
|
size: 12
|
25899
25784
|
})), React__default.createElement(material.IconButton, {
|
25900
|
-
disabled:
|
25901
|
-
className: (
|
25785
|
+
disabled: !enabledShare(i),
|
25786
|
+
className: (!enabledShare(i) ? "bg-secondary" : "bg-success") + " text-white me-1",
|
25902
25787
|
onClick: function onClick() {
|
25903
25788
|
return handleOpenUpdateShareDialog(i);
|
25904
25789
|
}
|
@@ -25906,11 +25791,11 @@ var TextbookList = function TextbookList(props) {
|
|
25906
25791
|
size: 12
|
25907
25792
|
})), React__default.createElement(material.IconButton, {
|
25908
25793
|
color: "default",
|
25909
|
-
className: (
|
25794
|
+
className: (!enabledSave(i) ? "bg-secondary" : "bg-danger") + " text-white mr-1",
|
25910
25795
|
onClick: function onClick() {
|
25911
25796
|
return handleSelectDeleteTextbook(i);
|
25912
25797
|
},
|
25913
|
-
disabled:
|
25798
|
+
disabled: !enabledSave(i)
|
25914
25799
|
}, React__default.createElement(fa.FaTrash, {
|
25915
25800
|
size: 12
|
25916
25801
|
})))));
|
@@ -26111,12 +25996,12 @@ var useNotificationDetail = function useNotificationDetail(_ref) {
|
|
26111
25996
|
|
26112
25997
|
var styles$8 = {"avatar":"_8niRT"};
|
26113
25998
|
|
26114
|
-
var _excluded$
|
25999
|
+
var _excluded$d = ["value", "disabled", "optionTypeNotification"];
|
26115
26000
|
var TypeSelector = function TypeSelector(_ref) {
|
26116
26001
|
var value = _ref.value,
|
26117
26002
|
disabled = _ref.disabled,
|
26118
26003
|
optionTypeNotification = _ref.optionTypeNotification,
|
26119
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
26004
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);
|
26120
26005
|
return React__default.createElement(CustomAsyncSelect, Object.assign({
|
26121
26006
|
options: optionTypeNotification,
|
26122
26007
|
value: value
|
@@ -26508,11 +26393,11 @@ var useNotificationList = function useNotificationList(_ref) {
|
|
26508
26393
|
};
|
26509
26394
|
};
|
26510
26395
|
|
26511
|
-
var _excluded$
|
26396
|
+
var _excluded$e = ["value", "optionTypeNotification"];
|
26512
26397
|
var SelectFilterType = function SelectFilterType(_ref) {
|
26513
26398
|
var value = _ref.value,
|
26514
26399
|
optionTypeNotification = _ref.optionTypeNotification,
|
26515
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
26400
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$e);
|
26516
26401
|
return React__default.createElement(CustomAsyncSelect, Object.assign({
|
26517
26402
|
options: optionTypeNotification,
|
26518
26403
|
value: value
|
@@ -27675,8 +27560,8 @@ var CourseSelector = function CourseSelector(_ref) {
|
|
27675
27560
|
}));
|
27676
27561
|
};
|
27677
27562
|
|
27678
|
-
var TEXTBOOK_URL$
|
27679
|
-
var SUPER_ADMIN_TEXTBOOK_URL
|
27563
|
+
var TEXTBOOK_URL$1 = BASE_URL + "/api/textbooks";
|
27564
|
+
var SUPER_ADMIN_TEXTBOOK_URL = SUPER_ADMIN_BASE_URL + "/api/textbook";
|
27680
27565
|
var PREPARED_TEXTBOOK_URL = BASE_URL + "/api/textbooks/prepared-textbooks";
|
27681
27566
|
var SUPER_ADMIN_PREPARED_TEXTBOOK_URL = SUPER_ADMIN_BASE_URL + "/api/textbook/prepared-textbooks";
|
27682
27567
|
var FILE_URL = BASE_URL + "/api/file/images";
|
@@ -27685,7 +27570,7 @@ var uploadImageFileApi = function uploadImageFileApi(formData, isAdmin) {
|
|
27685
27570
|
return apiUpload.post("" + (isAdmin ? SUPER_FILE_URL : FILE_URL), formData);
|
27686
27571
|
};
|
27687
27572
|
var getTextbookDetailApi = function getTextbookDetailApi(id, isAdmin) {
|
27688
|
-
return api.get((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$
|
27573
|
+
return api.get((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$1) + "/" + id);
|
27689
27574
|
};
|
27690
27575
|
var getTextbookListApi$1 = function getTextbookListApi(query, isAdmin) {
|
27691
27576
|
return api.get("" + (isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : PREPARED_TEXTBOOK_URL), {
|
@@ -27699,14 +27584,14 @@ var updateTextbookApi$1 = function updateTextbookApi(values, id, isAdmin) {
|
|
27699
27584
|
return api.put((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : PREPARED_TEXTBOOK_URL) + "/" + id, values);
|
27700
27585
|
};
|
27701
27586
|
var getAcademyByTeacher = function getAcademyByTeacher(email, isAdmin) {
|
27702
|
-
return api.get((isAdmin ? SUPER_ADMIN_TEXTBOOK_URL
|
27587
|
+
return api.get((isAdmin ? SUPER_ADMIN_TEXTBOOK_URL : TEXTBOOK_URL$1) + "/academy-teacher-owner", {
|
27703
27588
|
params: {
|
27704
27589
|
email: email
|
27705
27590
|
}
|
27706
27591
|
});
|
27707
27592
|
};
|
27708
27593
|
var deleteTextbookApi$1 = function deleteTextbookApi(textbookId, isAdmin) {
|
27709
|
-
return api["delete"]((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$
|
27594
|
+
return api["delete"]((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$1) + "/" + textbookId);
|
27710
27595
|
};
|
27711
27596
|
|
27712
27597
|
var useSelect = function useSelect(_ref) {
|
@@ -27955,8 +27840,8 @@ var TextbookOwners = function TextbookOwners(_ref) {
|
|
27955
27840
|
};
|
27956
27841
|
|
27957
27842
|
var useTextbookManagement = function useTextbookManagement(_ref) {
|
27958
|
-
var
|
27959
|
-
|
27843
|
+
var textbookId = _ref.textbookId,
|
27844
|
+
onNavigateList = _ref.onNavigateList;
|
27960
27845
|
var _useTranslation = reactI18next.useTranslation(),
|
27961
27846
|
t = _useTranslation.t;
|
27962
27847
|
var theme = material.useTheme();
|
@@ -27975,7 +27860,6 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
27975
27860
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
27976
27861
|
});
|
27977
27862
|
var isSuperAdmin = !!user && !user.academyDomain;
|
27978
|
-
var isTeacher = ((user === null || user === void 0 ? void 0 : user.roles) || []).includes(exports.Role.Teacher);
|
27979
27863
|
var handleOpenDialog = function handleOpenDialog(item) {
|
27980
27864
|
if (item) {
|
27981
27865
|
setSelectedTextbook(item);
|
@@ -28038,7 +27922,7 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
28038
27922
|
}), isSuperAdmin)).then(function (res) {
|
28039
27923
|
if (res !== null && res !== void 0 && res.data) {
|
28040
27924
|
reactToastify.toast.success(t(!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id) ? "create_the_textbook_successfully" : "update_the_textbook_successfully"));
|
28041
|
-
|
27925
|
+
onNavigateList();
|
28042
27926
|
}
|
28043
27927
|
});
|
28044
27928
|
}, function (error) {
|
@@ -28088,7 +27972,7 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
|
|
28088
27972
|
};
|
28089
27973
|
};
|
28090
27974
|
|
28091
|
-
var _excluded$
|
27975
|
+
var _excluded$f = ["value"],
|
28092
27976
|
_excluded2$2 = ["onChange"],
|
28093
27977
|
_excluded3$2 = ["onChange"];
|
28094
27978
|
var VisuallyHiddenInput = material.styled("input")({
|
@@ -28141,7 +28025,8 @@ var schema$4 = function schema(t) {
|
|
28141
28025
|
};
|
28142
28026
|
var PreparedTextbook = function PreparedTextbook(_ref) {
|
28143
28027
|
var _selectedTextbook$sub, _selectedTextbook$cha;
|
28144
|
-
var
|
28028
|
+
var onNavigateList = _ref.onNavigateList,
|
28029
|
+
navigate = _ref.navigate,
|
28145
28030
|
textbookId = _ref.textbookId;
|
28146
28031
|
var _useTextbookState = useTextbookState(),
|
28147
28032
|
isAdmin = _useTextbookState.isAdmin,
|
@@ -28151,7 +28036,7 @@ var PreparedTextbook = function PreparedTextbook(_ref) {
|
|
28151
28036
|
handleSetChapterSection = _useTextbookState.handleSetChapterSection,
|
28152
28037
|
handleSetSubChapterSection = _useTextbookState.handleSetSubChapterSection;
|
28153
28038
|
var _useTextbookManagemen = useTextbookManagement({
|
28154
|
-
|
28039
|
+
onNavigateList: onNavigateList,
|
28155
28040
|
textbookId: textbookId
|
28156
28041
|
}),
|
28157
28042
|
t = _useTextbookManagemen.t,
|
@@ -28160,6 +28045,9 @@ var PreparedTextbook = function PreparedTextbook(_ref) {
|
|
28160
28045
|
selectedTextbook = _useTextbookManagemen.selectedTextbook,
|
28161
28046
|
handleSubmit = _useTextbookManagemen.handleSubmit,
|
28162
28047
|
handleUploadImage = _useTextbookManagemen.handleUploadImage;
|
28048
|
+
if (textbookId && selectedTextbook && !selectedTextbook.isPrepared) return React__default.createElement(NotFound, {
|
28049
|
+
history: navigate
|
28050
|
+
});
|
28163
28051
|
return React__default.createElement(formik.Formik, {
|
28164
28052
|
initialValues: {
|
28165
28053
|
name: (selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.name) || "",
|
@@ -28349,7 +28237,7 @@ var PreparedTextbook = function PreparedTextbook(_ref) {
|
|
28349
28237
|
render: function render(_ref4) {
|
28350
28238
|
var _ref4$field = _ref4.field,
|
28351
28239
|
value = _ref4$field.value,
|
28352
|
-
action = _objectWithoutPropertiesLoose(_ref4$field, _excluded$
|
28240
|
+
action = _objectWithoutPropertiesLoose(_ref4$field, _excluded$f);
|
28353
28241
|
return React__default.createElement(xDatePickers.LocalizationProvider, {
|
28354
28242
|
dateAdapter: AdapterMoment.AdapterMoment
|
28355
28243
|
}, React__default.createElement(xDatePickers.DatePicker, Object.assign({}, action, {
|
@@ -28827,15 +28715,14 @@ var DeleteTextbookDialog = function DeleteTextbookDialog(_ref) {
|
|
28827
28715
|
};
|
28828
28716
|
|
28829
28717
|
var PreparedTextbookList = function PreparedTextbookList(_ref) {
|
28830
|
-
var
|
28718
|
+
var onNavigateDetail = _ref.onNavigateDetail,
|
28719
|
+
onNavigteCreate = _ref.onNavigteCreate;
|
28831
28720
|
var _useTextbookList = useTextbookList$1(),
|
28832
28721
|
t = _useTextbookList.t,
|
28833
28722
|
theme = _useTextbookList.theme,
|
28834
28723
|
filter = _useTextbookList.filter,
|
28835
28724
|
paging = _useTextbookList.paging,
|
28836
|
-
isTeacher = _useTextbookList.isTeacher,
|
28837
28725
|
textbooks = _useTextbookList.textbooks,
|
28838
|
-
isSuperAdmin = _useTextbookList.isSuperAdmin,
|
28839
28726
|
handleChangePage = _useTextbookList.handleChangePage,
|
28840
28727
|
handleSort = _useTextbookList.handleSort,
|
28841
28728
|
openConfirmDialog = _useTextbookList.openConfirmDialog,
|
@@ -28856,9 +28743,7 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
|
|
28856
28743
|
sx: {
|
28857
28744
|
width: "fit-content"
|
28858
28745
|
},
|
28859
|
-
onClick:
|
28860
|
-
return pushTo(navigate, !isTeacher ? isSuperAdmin ? "/super-textbook-management/create" : "/textbook-management/create" : "/teacher/textbook-management/create");
|
28861
|
-
}
|
28746
|
+
onClick: onNavigteCreate
|
28862
28747
|
}, t("create"))), React__default.createElement(material.Stack, null, React__default.createElement(material.Grid, {
|
28863
28748
|
item: true,
|
28864
28749
|
xs: 12
|
@@ -28905,7 +28790,7 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
|
|
28905
28790
|
color: "default",
|
28906
28791
|
className: styles$9["action-btn"] + " bg-warning text-white me-2",
|
28907
28792
|
onClick: function onClick() {
|
28908
|
-
return
|
28793
|
+
return onNavigateDetail(i);
|
28909
28794
|
}
|
28910
28795
|
}, React__default.createElement(hi.HiOutlinePencilAlt, {
|
28911
28796
|
className: styles$9["action-btn--pencil"],
|
@@ -29069,7 +28954,7 @@ var DefaultFilter = {
|
|
29069
28954
|
};
|
29070
28955
|
|
29071
28956
|
var PREPARED_TEXTBOOK_URL$1 = BASE_URL + "/api/textbooks/prepared-textbooks";
|
29072
|
-
var TEXTBOOK_URL$
|
28957
|
+
var TEXTBOOK_URL$2 = BASE_URL + "/api/textbooks";
|
29073
28958
|
var TEXTBOOK_SESSION_URL$1 = BASE_URL + "/api/textbooksession";
|
29074
28959
|
var getTextbookListApi$2 = function getTextbookListApi(query) {
|
29075
28960
|
return api.get("" + PREPARED_TEXTBOOK_URL$1, {
|
@@ -29083,7 +28968,7 @@ var startPageApi = function startPageApi(value) {
|
|
29083
28968
|
return api.post(TEXTBOOK_SESSION_URL$1 + "/study-textbook", _extends({}, value));
|
29084
28969
|
};
|
29085
28970
|
var deleteTextbookApi$2 = function deleteTextbookApi(textbookId) {
|
29086
|
-
return api["delete"](TEXTBOOK_URL$
|
28971
|
+
return api["delete"](TEXTBOOK_URL$2 + "/" + textbookId);
|
29087
28972
|
};
|
29088
28973
|
|
29089
28974
|
var ADMIN_SUBJECT_URL$2 = SUPER_ADMIN_BASE_URL + "/api/subject";
|
@@ -29153,17 +29038,29 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
29153
29038
|
var _state$common3, _state$common3$user;
|
29154
29039
|
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;
|
29155
29040
|
});
|
29156
|
-
var
|
29041
|
+
var isStudent = reactRedux.useSelector(function (state) {
|
29157
29042
|
var _state$common4, _state$common4$user;
|
29158
29043
|
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) || [];
|
29044
|
+
}).includes(exports.Role.Student);
|
29045
|
+
var isTeacher = reactRedux.useSelector(function (state) {
|
29046
|
+
var _state$common5, _state$common5$user;
|
29047
|
+
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) || [];
|
29159
29048
|
}).includes(exports.Role.Teacher);
|
29160
29049
|
var _useState5 = React.useState(false),
|
29161
29050
|
openConfirmDialog = _useState5[0],
|
29162
29051
|
setOpenConfirmDialog = _useState5[1];
|
29163
|
-
var
|
29164
|
-
var _state$
|
29165
|
-
return (state === null || state === void 0 ? void 0 : (_state$
|
29052
|
+
var isSuperAdminDomain = reactRedux.useSelector(function (state) {
|
29053
|
+
var _state$common6, _state$common6$user;
|
29054
|
+
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) || [];
|
29166
29055
|
}).includes(exports.Role.Admin) && !isDomain;
|
29056
|
+
var isAdmin = reactRedux.useSelector(function (state) {
|
29057
|
+
var _state$common7, _state$common7$user;
|
29058
|
+
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) || [];
|
29059
|
+
}).includes(exports.Role.Admin);
|
29060
|
+
var isSuperAdmin = reactRedux.useSelector(function (state) {
|
29061
|
+
var _state$common8, _state$common8$user;
|
29062
|
+
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;
|
29063
|
+
});
|
29167
29064
|
var handleCloseConfirmDialog = function handleCloseConfirmDialog() {
|
29168
29065
|
setOpenConfirmDialog(false);
|
29169
29066
|
};
|
@@ -29177,7 +29074,7 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
29177
29074
|
};
|
29178
29075
|
setLoading(true);
|
29179
29076
|
var _temp = _catch(function () {
|
29180
|
-
return Promise.resolve(
|
29077
|
+
return Promise.resolve(isSuperAdminDomain ? getSubjectListAdminApi$2("") : getSubjectListApi$2("")).then(function (res) {
|
29181
29078
|
var _res$data$items = res.data.items,
|
29182
29079
|
items = _res$data$items === void 0 ? [] : _res$data$items;
|
29183
29080
|
setSubjects(items);
|
@@ -29189,7 +29086,7 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
29189
29086
|
} catch (e) {
|
29190
29087
|
return Promise.reject(e);
|
29191
29088
|
}
|
29192
|
-
}, [
|
29089
|
+
}, [isSuperAdminDomain]);
|
29193
29090
|
var subjectOptions = subjects.map(function (subject) {
|
29194
29091
|
return {
|
29195
29092
|
label: "" + subject.name,
|
@@ -29330,7 +29227,10 @@ var usePreparedExam = function usePreparedExam(_ref) {
|
|
29330
29227
|
isKor: isKor,
|
29331
29228
|
paging: paging,
|
29332
29229
|
user: user,
|
29230
|
+
isAdmin: isAdmin,
|
29333
29231
|
isTeacher: isTeacher,
|
29232
|
+
isStudent: isStudent,
|
29233
|
+
isSuperAdmin: isSuperAdmin,
|
29334
29234
|
monthOptions: monthOptions,
|
29335
29235
|
openConfirmDialog: openConfirmDialog,
|
29336
29236
|
handleOpenConfirmDialog: handleOpenConfirmDialog,
|
@@ -29506,7 +29406,7 @@ var useTextbookDrawer = function useTextbookDrawer(_ref) {
|
|
29506
29406
|
};
|
29507
29407
|
var handleRedirectEdit = function handleRedirectEdit() {
|
29508
29408
|
if (!textbookId) return;
|
29509
|
-
pushTo(navigate, "/teacher/
|
29409
|
+
pushTo(navigate, "/teacher/prepared-exam/" + textbookId + "/detail");
|
29510
29410
|
};
|
29511
29411
|
var handleStartFromPage = function handleStartFromPage(values) {
|
29512
29412
|
try {
|
@@ -29822,7 +29722,7 @@ var ChapterProblemSolvingResultsDialog = function ChapterProblemSolvingResultsDi
|
|
29822
29722
|
}, t("cancel"))))));
|
29823
29723
|
};
|
29824
29724
|
|
29825
|
-
var _excluded$
|
29725
|
+
var _excluded$g = ["onChange"];
|
29826
29726
|
var StartPageDialog = function StartPageDialog(_ref) {
|
29827
29727
|
var t = _ref.t,
|
29828
29728
|
onClose = _ref.onClose,
|
@@ -29883,7 +29783,7 @@ var StartPageDialog = function StartPageDialog(_ref) {
|
|
29883
29783
|
}, t("page_to_start_with")), React__default.createElement(formik.Field, {
|
29884
29784
|
name: "startPage",
|
29885
29785
|
render: function render(_ref3) {
|
29886
|
-
var field = _objectWithoutPropertiesLoose(_ref3, _excluded$
|
29786
|
+
var field = _objectWithoutPropertiesLoose(_ref3, _excluded$g);
|
29887
29787
|
return React__default.createElement(CustomSelectOption, Object.assign({
|
29888
29788
|
menuPosition: "fixed",
|
29889
29789
|
onChange: function onChange(option) {
|
@@ -30056,7 +29956,7 @@ var Statistic = function Statistic(_ref) {
|
|
30056
29956
|
fontSize: "12px",
|
30057
29957
|
fontWeight: 500,
|
30058
29958
|
color: styles.darker
|
30059
|
-
}, (chapter.completedChapterQuestions || 0) / (chapter.totalChapterQuestions || 0) * 100 + "%")), React__default.createElement(material.Stack, {
|
29959
|
+
}, ((chapter.completedChapterQuestions || 0) / (chapter.totalChapterQuestions || 0) * 100).toFixed(2) + "%")), React__default.createElement(material.Stack, {
|
30060
29960
|
sx: {
|
30061
29961
|
width: "1px",
|
30062
29962
|
position: "absolute",
|
@@ -30259,7 +30159,7 @@ var TextbookDrawer = function TextbookDrawer(_ref) {
|
|
30259
30159
|
fontSize: "12px",
|
30260
30160
|
fontWeight: 500,
|
30261
30161
|
color: (textbook === null || textbook === void 0 ? void 0 : textbook.progress) === 0 ? theme.palette.common.black : theme.palette.common.white
|
30262
|
-
}, ((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, {
|
30162
|
+
}, ((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, {
|
30263
30163
|
mt: "24px",
|
30264
30164
|
mx: "24px",
|
30265
30165
|
bgcolor: theme.palette.common.white,
|
@@ -30568,8 +30468,10 @@ var TextbookDetail = function TextbookDetail(_ref) {
|
|
30568
30468
|
};
|
30569
30469
|
|
30570
30470
|
var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
|
30571
|
-
var _TeacherTabList$find;
|
30572
|
-
var
|
30471
|
+
var _textbook$createdBy, _TeacherTabList$find;
|
30472
|
+
var user = _ref.user,
|
30473
|
+
isSuperAdmin = _ref.isSuperAdmin,
|
30474
|
+
isOpen = _ref.isOpen,
|
30573
30475
|
onClose = _ref.onClose,
|
30574
30476
|
textbookId = _ref.textbookId,
|
30575
30477
|
navigate = _ref.navigate,
|
@@ -30610,7 +30512,9 @@ var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
|
|
30610
30512
|
}, React__default.createElement(io5.IoClose, {
|
30611
30513
|
color: styles.gray_700,
|
30612
30514
|
size: 32
|
30613
|
-
})),
|
30515
|
+
})), (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) {
|
30516
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
30517
|
+
}))) && React__default.createElement(material.Stack, {
|
30614
30518
|
flexDirection: "row",
|
30615
30519
|
gap: "16px",
|
30616
30520
|
alignItems: "center"
|
@@ -30679,10 +30583,13 @@ var TextbookInfoDrawer = function TextbookInfoDrawer(_ref) {
|
|
30679
30583
|
};
|
30680
30584
|
|
30681
30585
|
var Textbook = function Textbook(_ref) {
|
30586
|
+
var _textbook$createdBy, _textbook$createdBy2;
|
30682
30587
|
var t = _ref.t,
|
30588
|
+
user = _ref.user,
|
30683
30589
|
theme = _ref.theme,
|
30684
30590
|
textbook = _ref.textbook,
|
30685
|
-
|
30591
|
+
isStudent = _ref.isStudent,
|
30592
|
+
isSuperAdmin = _ref.isSuperAdmin,
|
30686
30593
|
navigate = _ref.navigate,
|
30687
30594
|
preparedType = _ref.preparedType,
|
30688
30595
|
preparedFilterType = _ref.preparedFilterType,
|
@@ -30761,7 +30668,7 @@ var Textbook = function Textbook(_ref) {
|
|
30761
30668
|
}, React__default.createElement(material.Stack, {
|
30762
30669
|
flexDirection: "row",
|
30763
30670
|
gap: "10px"
|
30764
|
-
},
|
30671
|
+
}, isStudent && React__default.createElement(material.Button, {
|
30765
30672
|
variant: "contained",
|
30766
30673
|
sx: {
|
30767
30674
|
width: "fit-content",
|
@@ -30774,7 +30681,9 @@ var Textbook = function Textbook(_ref) {
|
|
30774
30681
|
onClick: handleOpenDialog
|
30775
30682
|
}, React__default.createElement(fa.FaBookOpen, {
|
30776
30683
|
size: "20px"
|
30777
|
-
}), t("test_start")),
|
30684
|
+
}), 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) {
|
30685
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
30686
|
+
}))) && React__default.createElement(material.Button, {
|
30778
30687
|
variant: "outlined",
|
30779
30688
|
sx: {
|
30780
30689
|
width: "fit-content",
|
@@ -30785,11 +30694,11 @@ var Textbook = function Textbook(_ref) {
|
|
30785
30694
|
maxHeight: "41px"
|
30786
30695
|
},
|
30787
30696
|
onClick: function onClick() {
|
30788
|
-
return pushTo(navigate, "/teacher/
|
30697
|
+
return pushTo(navigate, "/teacher/prepared-exam/" + (textbook === null || textbook === void 0 ? void 0 : textbook.id) + "/detail");
|
30789
30698
|
}
|
30790
30699
|
}, React__default.createElement(fa.FaBookOpen, {
|
30791
30700
|
size: "20px"
|
30792
|
-
}), t("test_editing")),
|
30701
|
+
}), t("test_editing")), !isStudent && React__default.createElement(material.Button, {
|
30793
30702
|
variant: "contained",
|
30794
30703
|
sx: {
|
30795
30704
|
width: "fit-content",
|
@@ -30804,7 +30713,9 @@ var Textbook = function Textbook(_ref) {
|
|
30804
30713
|
}
|
30805
30714
|
}, React__default.createElement(io5.IoInformationCircle, {
|
30806
30715
|
size: "20px"
|
30807
|
-
}), t("exam_information"))),
|
30716
|
+
}), 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) {
|
30717
|
+
return i.id === (user === null || user === void 0 ? void 0 : user.id);
|
30718
|
+
}))) && React__default.createElement(material.Button, {
|
30808
30719
|
variant: "contained",
|
30809
30720
|
sx: {
|
30810
30721
|
width: "fit-content",
|
@@ -30826,6 +30737,8 @@ var Textbook = function Textbook(_ref) {
|
|
30826
30737
|
textbookId: textbook.id,
|
30827
30738
|
navigate: navigate
|
30828
30739
|
}), openDetailDialog && React__default.createElement(TextbookInfoDrawer, {
|
30740
|
+
user: user,
|
30741
|
+
isSuperAdmin: isSuperAdmin,
|
30829
30742
|
isOpen: openDetailDialog,
|
30830
30743
|
onClose: handleCloseDetailDialog,
|
30831
30744
|
textbookId: textbook.id,
|
@@ -30856,9 +30769,12 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
30856
30769
|
history: history
|
30857
30770
|
}),
|
30858
30771
|
t = _usePreparedExam.t,
|
30772
|
+
user = _usePreparedExam.user,
|
30859
30773
|
theme = _usePreparedExam.theme,
|
30860
30774
|
paging = _usePreparedExam.paging,
|
30861
|
-
|
30775
|
+
isAdmin = _usePreparedExam.isAdmin,
|
30776
|
+
isStudent = _usePreparedExam.isStudent,
|
30777
|
+
isSuperAdmin = _usePreparedExam.isSuperAdmin,
|
30862
30778
|
handleChangePage = _usePreparedExam.handleChangePage,
|
30863
30779
|
textbookList = _usePreparedExam.textbookList,
|
30864
30780
|
getTextbookList = _usePreparedExam.getTextbookList,
|
@@ -31015,7 +30931,7 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
31015
30931
|
},
|
31016
30932
|
onClick: handleToggleExpand,
|
31017
30933
|
startIcon: React__default.createElement(io.IoIosArrowDown, null)
|
31018
|
-
}, t("fold"))),
|
30934
|
+
}, t("fold"))), !isStudent && !isAdmin && React__default.createElement(material.Stack, null, React__default.createElement(material.Button, {
|
31019
30935
|
variant: "contained",
|
31020
30936
|
sx: {
|
31021
30937
|
width: "fit-content",
|
@@ -31026,7 +30942,7 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
31026
30942
|
marginRight: "27px"
|
31027
30943
|
},
|
31028
30944
|
onClick: function onClick() {
|
31029
|
-
return pushTo(navigate, "/teacher/
|
30945
|
+
return pushTo(navigate, "/teacher/prepared-exam/create");
|
31030
30946
|
}
|
31031
30947
|
}, React__default.createElement(io5.IoAddCircle, null), t("create_a_new_workbook"))))), React__default.createElement(material.AccordionDetails, {
|
31032
30948
|
sx: {
|
@@ -31369,9 +31285,11 @@ var PreparedItem = function PreparedItem(_ref) {
|
|
31369
31285
|
}, textbookList === null || textbookList === void 0 ? void 0 : textbookList.map(function (textbook) {
|
31370
31286
|
return React__default.createElement(Textbook, {
|
31371
31287
|
t: t,
|
31288
|
+
user: user,
|
31372
31289
|
theme: theme,
|
31373
31290
|
textbook: textbook,
|
31374
|
-
|
31291
|
+
isSuperAdmin: isSuperAdmin,
|
31292
|
+
isStudent: isStudent,
|
31375
31293
|
navigate: navigate,
|
31376
31294
|
getTextbookList: getTextbookList,
|
31377
31295
|
preparedType: preparedType,
|
@@ -31420,6 +31338,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
31420
31338
|
var isAdmin = role === exports.Role.Admin;
|
31421
31339
|
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);
|
31422
31340
|
var isStudentSite = role === exports.Role.Student;
|
31341
|
+
var isTeacherSite = role === exports.Role.Teacher;
|
31423
31342
|
var isLearningSpace = user === null || user === void 0 ? void 0 : user.isLearningSpace;
|
31424
31343
|
var _useTranslation = reactI18next.useTranslation(),
|
31425
31344
|
t = _useTranslation.t;
|
@@ -31513,7 +31432,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
31513
31432
|
}, React__default.createElement(go.GoArrowSwitch, {
|
31514
31433
|
size: 14,
|
31515
31434
|
color: styles.gray_900
|
31516
|
-
})))))), (isSuperAdmin || !isAdmin) && React__default.createElement(Popover, {
|
31435
|
+
})))))), (isSuperAdmin || !isAdmin || isTeacherSite) && React__default.createElement(Popover, {
|
31517
31436
|
open: !!open,
|
31518
31437
|
anchorEl: open,
|
31519
31438
|
onClose: handleClose,
|