mario-education 2.3.4 → 2.4.2

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.
@@ -2745,8 +2745,9 @@ var StrategyDetailModal = function StrategyDetailModal(props, ref) {
2745
2745
  }), touched.name && errors.name && React.createElement(ErrorHandler, {
2746
2746
  text: errors.name
2747
2747
  })), React.createElement(Col, {
2748
- md: 12
2749
- }, React.createElement(Label, null, "Description"), React.createElement(Input, {
2748
+ md: 12,
2749
+ className: "mb-2"
2750
+ }, React.createElement(Label, null, "Detail"), React.createElement(Input, {
2750
2751
  type: "textarea",
2751
2752
  rows: 5,
2752
2753
  name: "description",
@@ -2757,6 +2758,19 @@ var StrategyDetailModal = function StrategyDetailModal(props, ref) {
2757
2758
  setEditedTrue();
2758
2759
  },
2759
2760
  onBlur: handleBlur("description")
2761
+ })), React.createElement(Col, {
2762
+ md: 12
2763
+ }, React.createElement(Label, null, "Best fit"), React.createElement(Input, {
2764
+ type: "textarea",
2765
+ rows: 5,
2766
+ name: "bestfit",
2767
+ placeholder: "Best fit",
2768
+ value: values.bestfit,
2769
+ onChange: function onChange(e) {
2770
+ handleChange(e);
2771
+ setEditedTrue();
2772
+ },
2773
+ onBlur: handleBlur("bestfit")
2760
2774
  }))));
2761
2775
  });
2762
2776
  };
@@ -2882,7 +2896,8 @@ var useStrategyList = function useStrategyList() {
2882
2896
 
2883
2897
  var initValue$3 = {
2884
2898
  name: "",
2885
- description: ""
2899
+ description: "",
2900
+ bestfit: ""
2886
2901
  };
2887
2902
 
2888
2903
  var useStrategyDetail = function useStrategyDetail() {
@@ -3088,7 +3103,7 @@ var LearningStrategyList = function LearningStrategyList() {
3088
3103
  className: "align-top"
3089
3104
  }, "Strategy name"), React.createElement("th", {
3090
3105
  className: "align-top"
3091
- }, "Description"), React.createElement("th", {
3106
+ }, "Detail"), React.createElement("th", {
3092
3107
  className: "text-center"
3093
3108
  }, "Action"))), React.createElement("tbody", null, strategyList.map(function (record) {
3094
3109
  return React.createElement("tr", {
@@ -5177,7 +5192,8 @@ var style = {
5177
5192
  color: "#fff",
5178
5193
  fontWeight: 500,
5179
5194
  fontSize: "0.9em",
5180
- height: "30px"
5195
+ height: "35px",
5196
+ justifyContent: "center"
5181
5197
  };
5182
5198
 
5183
5199
  var UploadCSVButton = function UploadCSVButton(_ref) {
@@ -5191,7 +5207,7 @@ var UploadCSVButton = function UploadCSVButton(_ref) {
5191
5207
  htmlFor: htmlFor,
5192
5208
  role: "button",
5193
5209
  tabIndex: 0,
5194
- className: "d-flex align-items-center justfy-content-center \n " + (isClassReflection ? "w-25" : "") + "\n " + (!isDisabled ? "cursor-pointer hover-opacity" : ""),
5210
+ className: "d-flex align-items-center justfy-content-center\n " + (isClassReflection ? "w-25" : "") + "\n " + (!isDisabled ? "cursor-pointer hover-opacity" : ""),
5195
5211
  style: _extends({}, style, {
5196
5212
  backgroundColor: backgroundColor,
5197
5213
  opacity: !isDisabled ? 1 : 0.5
@@ -5207,12 +5223,18 @@ var UploadCSVButton = function UploadCSVButton(_ref) {
5207
5223
 
5208
5224
  var CSV_FILE_URL = BASE_URL + "/api/ImportCsv/csv";
5209
5225
  var CSV_FILE_TEACHER = BASE_URL + "/api/Teacher";
5226
+ var importCSV = function importCSV(formData, subFolder) {
5227
+ return apiUpload.post(CSV_FILE_URL + "/" + subFolder, formData);
5228
+ };
5210
5229
  var importStudentCSV = function importStudentCSV(formData) {
5211
5230
  return apiUpload.post(CSV_FILE_TEACHER + "/adminImportStudent", formData);
5212
5231
  };
5213
5232
  var importClassReflectionCSV = function importClassReflectionCSV(formData) {
5214
5233
  return apiUpload.post(CSV_FILE_URL + "/importClassReflection", formData);
5215
5234
  };
5235
+ var importStudentByTeacher = function importStudentByTeacher(teacherId, formData) {
5236
+ return apiUpload.post(CSV_FILE_TEACHER + "/adminImportStudentByTeacherId/" + teacherId, formData);
5237
+ };
5216
5238
 
5217
5239
  var CSVType;
5218
5240
 
@@ -5226,9 +5248,9 @@ var CSVType;
5226
5248
  })(CSVType || (CSVType = {}));
5227
5249
 
5228
5250
  var buttons = [{
5229
- text: "Import students",
5230
- backgroundColor: "#0abde3",
5231
- type: CSVType.Students
5251
+ text: "Import class reflections",
5252
+ backgroundColor: "#e74c3c",
5253
+ type: CSVType.ClassReflection
5232
5254
  }];
5233
5255
  var title = "CSV Import";
5234
5256
  var id = "csvupload";
@@ -5261,15 +5283,32 @@ var useCSVImport = function useCSVImport() {
5261
5283
  initImportReflection = _useState4[0],
5262
5284
  setInitImportReflection = _useState4[1];
5263
5285
 
5286
+ var _useState5 = useState(),
5287
+ studentDataFile = _useState5[0],
5288
+ setStudentDataFile = _useState5[1];
5289
+
5290
+ var domainName = window.location.hostname;
5291
+ var isCheckDomainIBS = domainName.includes('isb');
5292
+
5293
+ var _useState6 = useState(0),
5294
+ defaultTeacher = _useState6[0],
5295
+ setDefaultTeacher = _useState6[1];
5296
+
5297
+ var _useState7 = useState(""),
5298
+ fileName = _useState7[0],
5299
+ setFileName = _useState7[1];
5300
+
5264
5301
  useEffect(function () {
5265
5302
  document.title = title;
5266
5303
  }, []);
5267
5304
  var upload = useCallback(function (file) {
5268
5305
  try {
5269
- var _temp7 = function _temp7() {
5306
+ var _temp8 = function _temp8() {
5270
5307
  dispatch(setLoading(false));
5308
+ var inputId = document.getElementById(id);
5271
5309
  var input = document.getElementById('import-student');
5272
5310
  var importClass = document.getElementById('import-classReflection');
5311
+ inputId && (inputId.value = "");
5273
5312
  input && (input.value = "");
5274
5313
  importClass && (importClass.value = "");
5275
5314
  };
@@ -5277,34 +5316,42 @@ var useCSVImport = function useCSVImport() {
5277
5316
  if (!type || !file) return Promise.resolve();
5278
5317
  dispatch(setLoading(true));
5279
5318
 
5280
- var _temp8 = _catch(function () {
5281
- function _temp4() {
5282
- function _temp2() {
5283
- dispatch(setAlert({
5284
- type: "success",
5285
- message: "Import CSV successfully"
5286
- }));
5287
- }
5288
-
5289
- var _temp = function () {
5290
- if (type == CSVType.ClassReflection) {
5291
- return Promise.resolve(importClassReflectionCSV(formData)).then(function () {});
5292
- }
5293
- }();
5294
-
5295
- return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
5319
+ var _temp9 = _catch(function () {
5320
+ function _temp5() {
5321
+ dispatch(setAlert({
5322
+ type: "success",
5323
+ message: "Import CSV successfully"
5324
+ }));
5296
5325
  }
5297
5326
 
5298
5327
  var formData = new FormData();
5299
5328
  formData.append("file", file, file.name);
5300
5329
 
5301
- var _temp3 = function () {
5302
- if (type == CSVType.Students) {
5303
- return Promise.resolve(importStudentCSV(formData)).then(function () {});
5330
+ var _temp4 = function () {
5331
+ if (isCheckDomainIBS) {
5332
+ var _temp10 = function _temp10() {
5333
+ var _temp = function () {
5334
+ if (type == CSVType.ClassReflection) {
5335
+ return Promise.resolve(importClassReflectionCSV(formData)).then(function () {});
5336
+ }
5337
+ }();
5338
+
5339
+ if (_temp && _temp.then) return _temp.then(function () {});
5340
+ };
5341
+
5342
+ var _temp11 = function () {
5343
+ if (type == CSVType.Students) {
5344
+ return Promise.resolve(importStudentCSV(formData)).then(function () {});
5345
+ }
5346
+ }();
5347
+
5348
+ return _temp11 && _temp11.then ? _temp11.then(_temp10) : _temp10(_temp11);
5349
+ } else {
5350
+ return Promise.resolve(importCSV(formData, type.toString())).then(function () {});
5304
5351
  }
5305
5352
  }();
5306
5353
 
5307
- return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
5354
+ return _temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4);
5308
5355
  }, function (err) {
5309
5356
  var _err$response, _err$response$data;
5310
5357
 
@@ -5314,15 +5361,58 @@ var useCSVImport = function useCSVImport() {
5314
5361
  }));
5315
5362
  });
5316
5363
 
5317
- return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
5364
+ return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(_temp8) : _temp8(_temp9));
5318
5365
  } catch (e) {
5319
5366
  return Promise.reject(e);
5320
5367
  }
5321
5368
  }, [type]);
5322
5369
 
5370
+ var uploadByTeacherId = function uploadByTeacherId(file) {
5371
+ try {
5372
+ var _temp14 = function _temp14() {
5373
+ dispatch(setLoading(false));
5374
+ var input = document.getElementById('teacherSelector');
5375
+ input && (input.value = "");
5376
+ };
5377
+
5378
+ if (!defaultTeacher) {
5379
+ dispatch(setAlert({
5380
+ type: "danger",
5381
+ message: "Select teacher before import csv"
5382
+ }));
5383
+ return Promise.resolve();
5384
+ }
5385
+
5386
+ if (!type || !file) return Promise.resolve();
5387
+ dispatch(setLoading(true));
5388
+
5389
+ var _temp15 = _catch(function () {
5390
+ var formData = new FormData();
5391
+ formData.append("file", file, file.name);
5392
+ return Promise.resolve(importStudentByTeacher(defaultTeacher, formData)).then(function () {
5393
+ dispatch(setAlert({
5394
+ type: "success",
5395
+ message: "Import CSV successfully"
5396
+ }));
5397
+ });
5398
+ }, function (err) {
5399
+ var _err$response2, _err$response2$data;
5400
+
5401
+ dispatch(setAlert({
5402
+ type: "danger",
5403
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
5404
+ }));
5405
+ });
5406
+
5407
+ return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(_temp14) : _temp14(_temp15));
5408
+ } catch (e) {
5409
+ return Promise.reject(e);
5410
+ }
5411
+ };
5412
+
5323
5413
  var onConfirm = function onConfirm(values) {
5324
5414
  try {
5325
- var _temp11 = function _temp11() {
5415
+ var _temp18 = function _temp18() {
5326
5416
  dispatch(setLoading(false));
5327
5417
  var input = document.getElementById(id);
5328
5418
  input && (input.value = "");
@@ -5331,7 +5421,7 @@ var useCSVImport = function useCSVImport() {
5331
5421
  if (!dataFile || !dataFile) return Promise.resolve();
5332
5422
  dispatch(setLoading(true));
5333
5423
 
5334
- var _temp12 = _catch(function () {
5424
+ var _temp19 = _catch(function () {
5335
5425
  var formData = new FormData();
5336
5426
  formData.append("file", dataFile, dataFile.name);
5337
5427
  formData.append("teacherName", values.teacherName);
@@ -5347,20 +5437,52 @@ var useCSVImport = function useCSVImport() {
5347
5437
  setInitImportReflection(initClassReflect);
5348
5438
  });
5349
5439
  }, function (err) {
5350
- var _err$response2, _err$response2$data;
5440
+ var _err$response3, _err$response3$data;
5351
5441
 
5352
5442
  dispatch(setAlert({
5353
5443
  type: "danger",
5354
- message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
5444
+ message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message
5355
5445
  }));
5356
5446
  });
5357
5447
 
5358
- return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
5448
+ return Promise.resolve(_temp19 && _temp19.then ? _temp19.then(_temp18) : _temp18(_temp19));
5359
5449
  } catch (e) {
5360
5450
  return Promise.reject(e);
5361
5451
  }
5362
5452
  };
5363
5453
 
5454
+ var onChangeTeacher = function onChangeTeacher(teacher) {
5455
+ setDefaultTeacher(teacher.value);
5456
+ };
5457
+
5458
+ var setDataFileImportStudent = function setDataFileImportStudent(dataFile) {
5459
+ setStudentDataFile(dataFile);
5460
+ setFileName((dataFile === null || dataFile === void 0 ? void 0 : dataFile.name) || "");
5461
+ };
5462
+
5463
+ var onUpLoadStudentFile = function onUpLoadStudentFile() {
5464
+ if (!studentDataFile) {
5465
+ dispatch(setAlert({
5466
+ type: "danger",
5467
+ message: "Select CSV to import"
5468
+ }));
5469
+ return;
5470
+ }
5471
+
5472
+ uploadByTeacherId(studentDataFile);
5473
+ };
5474
+
5475
+ var onStudentSubmit = function onStudentSubmit() {
5476
+ dispatch(setModal({
5477
+ isOpen: true,
5478
+ type: "warning",
5479
+ message: "Are you sure upload this file?",
5480
+ onConfirm: function onConfirm() {
5481
+ onUpLoadStudentFile();
5482
+ }
5483
+ }));
5484
+ };
5485
+
5364
5486
  return {
5365
5487
  isLoading: isLoading,
5366
5488
  buttons: buttons,
@@ -5374,7 +5496,15 @@ var useCSVImport = function useCSVImport() {
5374
5496
  dataFile: dataFile,
5375
5497
  setDataFile: setDataFile,
5376
5498
  setArrStudent: setArrStudent,
5377
- arrStudent: arrStudent
5499
+ arrStudent: arrStudent,
5500
+ isCheckDomainIBS: isCheckDomainIBS,
5501
+ onChangeTeacher: onChangeTeacher,
5502
+ uploadByTeacherId: uploadByTeacherId,
5503
+ setDataFileImportStudent: setDataFileImportStudent,
5504
+ onUpLoadStudentFile: onUpLoadStudentFile,
5505
+ defaultTeacher: defaultTeacher,
5506
+ fileName: fileName,
5507
+ onStudentSubmit: onStudentSubmit
5378
5508
  };
5379
5509
  };
5380
5510
 
@@ -5400,11 +5530,17 @@ var CSVImport = function CSVImport() {
5400
5530
  setDataFile = _useCSVImport.setDataFile,
5401
5531
  setArrStudent = _useCSVImport.setArrStudent,
5402
5532
  buttons = _useCSVImport.buttons,
5403
- upload = _useCSVImport.upload;
5533
+ upload = _useCSVImport.upload,
5534
+ isCheckDomainIBS = _useCSVImport.isCheckDomainIBS,
5535
+ onChangeTeacher = _useCSVImport.onChangeTeacher,
5536
+ setDataFileImportStudent = _useCSVImport.setDataFileImportStudent,
5537
+ defaultTeacher = _useCSVImport.defaultTeacher,
5538
+ fileName = _useCSVImport.fileName,
5539
+ onStudentSubmit = _useCSVImport.onStudentSubmit;
5404
5540
 
5405
5541
  return React.createElement("div", {
5406
- className: "animated fadeIn pt-3"
5407
- }, React.createElement(Input, {
5542
+ className: "animated fadeIn pt-5"
5543
+ }, isCheckDomainIBS ? React.createElement(React.Fragment, null, React.createElement(Input, {
5408
5544
  className: "d-none",
5409
5545
  type: "file",
5410
5546
  id: "import-student",
@@ -5496,7 +5632,62 @@ var CSVImport = function CSVImport() {
5496
5632
  }
5497
5633
  });
5498
5634
  })))));
5499
- })));
5635
+ }))) : React.createElement(React.Fragment, null, React.createElement(Row, null, React.createElement(Col, {
5636
+ md: 3,
5637
+ className: "mb-3"
5638
+ }, React.createElement(TeacherSelector, {
5639
+ defaultValue: defaultTeacher,
5640
+ onChange: onChangeTeacher
5641
+ }), React.createElement("div", {
5642
+ className: "mt-3"
5643
+ }, fileName ? React.createElement("span", {
5644
+ className: "font-italic mb-1 font-lg"
5645
+ }, fileName) : null, React.createElement(Input, {
5646
+ className: "d-none",
5647
+ type: "file",
5648
+ id: "teacherSelector",
5649
+ onChange: function onChange(e) {
5650
+ return setDataFileImportStudent(e.target.files[0]);
5651
+ },
5652
+ accept: "text/csv"
5653
+ }), React.createElement(UploadCSVButton, {
5654
+ key: "Import student",
5655
+ htmlFor: "teacherSelector",
5656
+ text: "Select CSV",
5657
+ isDisabled: isLoading,
5658
+ backgroundColor: "#e74c3c",
5659
+ onClick: function onClick() {
5660
+ return setType(CSVType.Students);
5661
+ }
5662
+ })), React.createElement(Button, {
5663
+ color: "success",
5664
+ onClick: onStudentSubmit,
5665
+ className: "w-100 mt-3"
5666
+ }, "Import")), React.createElement(Col, {
5667
+ md: 3
5668
+ }), React.createElement(Col, {
5669
+ md: 3,
5670
+ className: "mb-3"
5671
+ }, React.createElement(Input, {
5672
+ className: "d-none",
5673
+ type: "file",
5674
+ id: id,
5675
+ onChange: function onChange(e) {
5676
+ return upload(e.target.files[0]);
5677
+ },
5678
+ accept: "text/csv"
5679
+ }), buttons.map(function (button) {
5680
+ return React.createElement(UploadCSVButton, {
5681
+ key: button.text,
5682
+ htmlFor: id,
5683
+ text: button.text,
5684
+ isDisabled: isLoading,
5685
+ backgroundColor: button.backgroundColor,
5686
+ onClick: function onClick() {
5687
+ return setType(button.type);
5688
+ }
5689
+ });
5690
+ })))));
5500
5691
  };
5501
5692
 
5502
5693
  var schema$5 = object({
@@ -7447,6 +7638,16 @@ var remove$c = function remove(id, userChangeId) {
7447
7638
  var getTeacher = function getTeacher() {
7448
7639
  return api.get(USER_DELETED_URL + "/all/teacher");
7449
7640
  };
7641
+ var getStudentAll = function getStudentAll(filter) {
7642
+ return api.get(USER_DELETED_URL + "/studentUser/all", {
7643
+ params: filter
7644
+ });
7645
+ };
7646
+ var changeTeacherOfStudent = function changeTeacherOfStudent(id, teacherUserId) {
7647
+ return api.put(USER_DELETED_URL + "/change-teacher/" + id, {
7648
+ teacherUserId: teacherUserId
7649
+ });
7650
+ };
7450
7651
 
7451
7652
  var useUserDeletedModal = function useUserDeletedModal() {
7452
7653
  var dispatch = useDispatch();
@@ -7832,6 +8033,333 @@ var UserList = function UserList() {
7832
8033
  }));
7833
8034
  };
7834
8035
 
8036
+ var initialUserChoice$1 = {
8037
+ id: "",
8038
+ studentName: "",
8039
+ emailStudent: "",
8040
+ teacherUserId: "",
8041
+ emailTeacher: "",
8042
+ teacherName: ""
8043
+ };
8044
+ var TITLE$c = "Switch teacher list";
8045
+
8046
+ var useSwitchTeacher = function useSwitchTeacher() {
8047
+ var _useState = useState([]),
8048
+ teacherList = _useState[0],
8049
+ setTeacherList = _useState[1];
8050
+
8051
+ var _useState2 = useState([]),
8052
+ userList = _useState2[0],
8053
+ setUserList = _useState2[1];
8054
+
8055
+ var _useState3 = useState(0),
8056
+ totalItems = _useState3[0],
8057
+ setTotalItems = _useState3[1];
8058
+
8059
+ var _useFilters = useFilters(),
8060
+ filters = _useFilters.filters,
8061
+ changeFilters = _useFilters.changeFilters;
8062
+
8063
+ var _useState4 = useState(initialUserChoice$1),
8064
+ userChoiced = _useState4[0],
8065
+ setUserChoiced = _useState4[1];
8066
+
8067
+ var _useState5 = useState(""),
8068
+ teacherChangeId = _useState5[0],
8069
+ setTeacherChangeId = _useState5[1];
8070
+
8071
+ var dispatch = useDispatch();
8072
+ var modal = useRef();
8073
+
8074
+ var openModal = function openModal() {
8075
+ modal && modal.current && modal.current.toggle();
8076
+ };
8077
+
8078
+ var getData = useCallback(function () {
8079
+ try {
8080
+ var _temp3 = function _temp3() {
8081
+ dispatch(setLoading(false));
8082
+ };
8083
+
8084
+ dispatch(setLoading(true));
8085
+
8086
+ var _temp4 = _catch(function () {
8087
+ return Promise.resolve(getStudentAll(filters)).then(function (res) {
8088
+ var _res$data = res.data,
8089
+ items = _res$data.items,
8090
+ totalItems = _res$data.totalItems;
8091
+ setUserList(items);
8092
+ setTotalItems(totalItems);
8093
+ });
8094
+ }, function (err) {
8095
+ var _err$response, _err$response$data;
8096
+
8097
+ dispatch(setAlert({
8098
+ type: "danger",
8099
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
8100
+ }));
8101
+ });
8102
+
8103
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
8104
+ } catch (e) {
8105
+ return Promise.reject(e);
8106
+ }
8107
+ }, [dispatch, filters]);
8108
+ var options = useMemo(function () {
8109
+ return teacherList.map(function (record) {
8110
+ return {
8111
+ label: record.name + " - " + record.email,
8112
+ value: record.id
8113
+ };
8114
+ });
8115
+ }, [teacherList]);
8116
+
8117
+ var resetData = function resetData() {
8118
+ setTeacherChangeId("");
8119
+ setUserChoiced(initialUserChoice$1);
8120
+ };
8121
+
8122
+ useEffect(function () {
8123
+ document.title = TITLE$c;
8124
+ }, []);
8125
+ useEffect(function () {
8126
+ getAllTeacher();
8127
+ }, [modal]);
8128
+
8129
+ var getAllTeacher = function getAllTeacher() {
8130
+ try {
8131
+ var _temp6 = _catch(function () {
8132
+ return Promise.resolve(getTeacher()).then(function (res) {
8133
+ setTeacherList(res.data);
8134
+ });
8135
+ }, function (err) {
8136
+ var _err$response2, _err$response2$data;
8137
+
8138
+ dispatch(setAlert({
8139
+ type: "danger",
8140
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
8141
+ }));
8142
+ });
8143
+
8144
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
8145
+ } catch (e) {
8146
+ return Promise.reject(e);
8147
+ }
8148
+ };
8149
+
8150
+ var removeData = function removeData(teacherUserId, studentId) {
8151
+ try {
8152
+ dispatch(setModal({
8153
+ isOpen: true,
8154
+ type: "warning",
8155
+ message: "Do you want to change teacher?",
8156
+ onConfirm: function () {
8157
+ try {
8158
+ var _temp9 = function _temp9() {
8159
+ dispatch(setLoading(false));
8160
+ };
8161
+
8162
+ dispatch(setLoading(true));
8163
+
8164
+ var _temp10 = _catch(function () {
8165
+ return Promise.resolve(changeTeacherOfStudent(studentId, teacherUserId)).then(function () {
8166
+ dispatch(setAlert({
8167
+ type: "success",
8168
+ message: "Change teacher successfully"
8169
+ }));
8170
+ openModal();
8171
+ resetData();
8172
+ changeFilters({
8173
+ currentPage: 1
8174
+ });
8175
+ });
8176
+ }, function (err) {
8177
+ var _err$response3, _err$response3$data;
8178
+
8179
+ dispatch(setAlert({
8180
+ type: "danger",
8181
+ message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message
8182
+ }));
8183
+ });
8184
+
8185
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
8186
+ } catch (e) {
8187
+ return Promise.reject(e);
8188
+ }
8189
+ }
8190
+ }));
8191
+ return Promise.resolve();
8192
+ } catch (e) {
8193
+ return Promise.reject(e);
8194
+ }
8195
+ };
8196
+
8197
+ useEffect(function () {
8198
+ getData();
8199
+ }, [filters]);
8200
+ return {
8201
+ userList: userList,
8202
+ totalItems: totalItems,
8203
+ filters: filters,
8204
+ getData: getData,
8205
+ changeFilters: changeFilters,
8206
+ modal: modal,
8207
+ openModal: openModal,
8208
+ teacherList: teacherList,
8209
+ options: options,
8210
+ setUserChoiced: setUserChoiced,
8211
+ userChoiced: userChoiced,
8212
+ setTeacherChangeId: setTeacherChangeId,
8213
+ teacherChangeId: teacherChangeId,
8214
+ removeData: removeData,
8215
+ resetData: resetData
8216
+ };
8217
+ };
8218
+
8219
+ var SwitchTeacherModal = function SwitchTeacherModal(props, ref) {
8220
+ var header = props.header,
8221
+ removeData = props.removeData,
8222
+ resetData = props.resetData,
8223
+ userChoiced = props.userChoiced,
8224
+ options = props.options,
8225
+ teacherChangeId = props.teacherChangeId,
8226
+ setTeacherChangeId = props.setTeacherChangeId;
8227
+ var valueDefault = options === null || options === void 0 ? void 0 : options.find(function (item) {
8228
+ return item.value == teacherChangeId;
8229
+ });
8230
+ return React.createElement(CommonModal, {
8231
+ header: header,
8232
+ ref: ref,
8233
+ confirmText: "Change Save",
8234
+ onConfirm: function onConfirm() {
8235
+ return removeData(teacherChangeId, userChoiced.id);
8236
+ },
8237
+ onCancel: function onCancel() {
8238
+ resetData();
8239
+ }
8240
+ }, React.createElement(Row, null, React.createElement(Col, {
8241
+ md: 12,
8242
+ className: "mb-2"
8243
+ }, React.createElement("p", null, "Student Name"), React.createElement("p", null, userChoiced.studentName, " "), React.createElement("p", null, "Student Email"), React.createElement("p", null, userChoiced.emailStudent, " "), React.createElement("p", null, "Current Teacher Name"), React.createElement("p", null, userChoiced.teacherName, " "), React.createElement("p", null, "Current Teacher Email"), React.createElement("p", null, userChoiced.emailTeacher, " "), !!userChoiced && React.createElement(CustomSelector, {
8244
+ options: options,
8245
+ value: valueDefault,
8246
+ placeholder: "Select teacher change",
8247
+ onChange: function onChange(e) {
8248
+ return setTeacherChangeId(e.value);
8249
+ }
8250
+ }))));
8251
+ };
8252
+
8253
+ var SwitchTeacherModal$1 = forwardRef(SwitchTeacherModal);
8254
+
8255
+ var header$4 = "List Students";
8256
+
8257
+ var SwitchTeacherList = function SwitchTeacherList() {
8258
+ var _useSwitchTeacher = useSwitchTeacher(),
8259
+ userList = _useSwitchTeacher.userList,
8260
+ totalItems = _useSwitchTeacher.totalItems,
8261
+ filters = _useSwitchTeacher.filters,
8262
+ changeFilters = _useSwitchTeacher.changeFilters,
8263
+ openModal = _useSwitchTeacher.openModal,
8264
+ modal = _useSwitchTeacher.modal,
8265
+ setUserChoiced = _useSwitchTeacher.setUserChoiced,
8266
+ userChoiced = _useSwitchTeacher.userChoiced,
8267
+ options = _useSwitchTeacher.options,
8268
+ setTeacherChangeId = _useSwitchTeacher.setTeacherChangeId,
8269
+ teacherChangeId = _useSwitchTeacher.teacherChangeId,
8270
+ removeData = _useSwitchTeacher.removeData,
8271
+ resetData = _useSwitchTeacher.resetData;
8272
+
8273
+ var choiceUser = function choiceUser(userChoiced) {
8274
+ !!userChoiced && setUserChoiced(userChoiced);
8275
+ setTeacherChangeId(userChoiced.teacherUserId);
8276
+ openModal();
8277
+ };
8278
+
8279
+ return React.createElement("div", {
8280
+ className: "fadeIn animated"
8281
+ }, React.createElement("h5", {
8282
+ className: "mt-4 mb-2"
8283
+ }, header$4), React.createElement(Row, {
8284
+ className: "my-2"
8285
+ }, React.createElement(Col, {
8286
+ md: 8
8287
+ }, React.createElement(SearchBox, {
8288
+ initValue: filters.searchString,
8289
+ onSearch: function onSearch(searchString) {
8290
+ return changeFilters({
8291
+ searchString: searchString
8292
+ });
8293
+ },
8294
+ placeholder: "Type something to search reflection result"
8295
+ })), React.createElement(Col, {
8296
+ md: 4,
8297
+ className: "d-flex justify-content-end align-items-center"
8298
+ }, "Total of users: ", totalItems)), React.createElement(Row, {
8299
+ className: "mb-2"
8300
+ }, React.createElement(Col, {
8301
+ md: 12
8302
+ }, userList && userList.length > 0 ? React.createElement("div", null, React.createElement(Table, {
8303
+ bordered: true,
8304
+ hover: true,
8305
+ striped: true,
8306
+ responsive: true,
8307
+ size: "sm"
8308
+ }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", {
8309
+ className: "align-top"
8310
+ }, "Student Name"), React.createElement("th", {
8311
+ className: "align-top"
8312
+ }, "Student Email"), React.createElement("th", {
8313
+ className: "align-top"
8314
+ }, "Current Teacher Name"), React.createElement("th", {
8315
+ className: "align-top"
8316
+ }, "Current Teacher Email"))), React.createElement("tbody", null, !!userList && userList.length > 0 && userList.map(function (record) {
8317
+ return React.createElement("tr", {
8318
+ key: record.id
8319
+ }, React.createElement("td", {
8320
+ className: "align-middle"
8321
+ }, React.createElement(LinkEditButton, {
8322
+ label: "" + record.studentName,
8323
+ onClick: function onClick() {
8324
+ return choiceUser(record);
8325
+ }
8326
+ })), React.createElement("td", {
8327
+ className: "align-middle"
8328
+ }, record.emailStudent), React.createElement("td", {
8329
+ className: "align-middle"
8330
+ }, record.teacherName), React.createElement("td", {
8331
+ className: "align-middle"
8332
+ }, record.emailTeacher));
8333
+ })))) : React.createElement(EmptyDataAlert, {
8334
+ label: "user"
8335
+ })), React.createElement(Col, {
8336
+ md: 12
8337
+ }, React.createElement(CustomPagination, {
8338
+ filters: filters,
8339
+ totalRecordCount: totalItems,
8340
+ changePageSize: function changePageSize(pageSize) {
8341
+ return changeFilters({
8342
+ pageSize: pageSize
8343
+ });
8344
+ },
8345
+ changePage: function changePage(currentPage) {
8346
+ return changeFilters({
8347
+ currentPage: currentPage
8348
+ });
8349
+ }
8350
+ }))), React.createElement(SwitchTeacherModal$1, {
8351
+ ref: modal,
8352
+ header: "Switch Teacher",
8353
+ onCancel: function onCancel() {},
8354
+ userChoiced: userChoiced,
8355
+ removeData: removeData,
8356
+ options: options,
8357
+ teacherChangeId: teacherChangeId,
8358
+ setTeacherChangeId: setTeacherChangeId,
8359
+ resetData: resetData
8360
+ }));
8361
+ };
8362
+
7835
8363
  var tabs = [{
7836
8364
  path: "/admin/set-up/skill",
7837
8365
  title: "Skills",
@@ -7880,6 +8408,10 @@ var tabs = [{
7880
8408
  path: "/admin/set-up/userDeleted",
7881
8409
  title: "User deleted",
7882
8410
  component: UserList
8411
+ }, {
8412
+ path: "/admin/set-up/switch-teacher",
8413
+ title: "Switch Teacher",
8414
+ component: SwitchTeacherList
7883
8415
  }];
7884
8416
  var title$1 = "Set up";
7885
8417
 
@@ -8073,7 +8605,7 @@ var renderType = function renderType(params) {
8073
8605
 
8074
8606
  var QUESTION_URL$1 = "/admin/question-bank";
8075
8607
  var CREATE_QUESTION_URL = "/admin/create-question";
8076
- var TITLE$c = "Question list";
8608
+ var TITLE$d = "Question list";
8077
8609
 
8078
8610
  var useQuestionList = function useQuestionList(isDefaultQuestion, isDefaultQuestionGeneralClass) {
8079
8611
  var history = useHistory();
@@ -8228,7 +8760,7 @@ var useQuestionList = function useQuestionList(isDefaultQuestion, isDefaultQuest
8228
8760
  history.push(url);
8229
8761
  }, []);
8230
8762
  useEffect(function () {
8231
- document.title = TITLE$c;
8763
+ document.title = TITLE$d;
8232
8764
  }, []);
8233
8765
  useEffect(function () {
8234
8766
  getData();
@@ -8860,7 +9392,7 @@ var useReflectionFormDetail = function useReflectionFormDetail() {
8860
9392
  };
8861
9393
  };
8862
9394
 
8863
- var TITLE$d = "Reflection form list";
9395
+ var TITLE$e = "Reflection form list";
8864
9396
 
8865
9397
  var useReflectionFormList = function useReflectionFormList() {
8866
9398
  var reflectionList = useSelector(function (state) {
@@ -8950,7 +9482,7 @@ var useReflectionFormList = function useReflectionFormList() {
8950
9482
  }
8951
9483
  }, [dispatch]);
8952
9484
  useEffect(function () {
8953
- document.title = TITLE$d;
9485
+ document.title = TITLE$e;
8954
9486
  }, []);
8955
9487
  useEffect(function () {
8956
9488
  getData();
@@ -10013,7 +10545,7 @@ var initValue$e = {
10013
10545
  isMandatory: false,
10014
10546
  isBeforeSession: false
10015
10547
  };
10016
- var TITLE$e = "Question detail";
10548
+ var TITLE$f = "Question detail";
10017
10549
 
10018
10550
  var useQuestionDetail = function useQuestionDetail(id) {
10019
10551
  var editorRef;
@@ -10039,7 +10571,7 @@ var useQuestionDetail = function useQuestionDetail(id) {
10039
10571
  };
10040
10572
 
10041
10573
  useEffect(function () {
10042
- document.title = TITLE$e;
10574
+ document.title = TITLE$f;
10043
10575
  setEdited(false);
10044
10576
  if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
10045
10577
  }, []);
@@ -10703,7 +11235,7 @@ var useAssessmentDetail = function useAssessmentDetail() {
10703
11235
  };
10704
11236
  };
10705
11237
 
10706
- var TITLE$f = "Assessment list";
11238
+ var TITLE$g = "Assessment list";
10707
11239
 
10708
11240
  var useAssessmentList = function useAssessmentList() {
10709
11241
  var assessmentList = useSelector(function (state) {
@@ -10786,7 +11318,7 @@ var useAssessmentList = function useAssessmentList() {
10786
11318
  dispatch(setLoading(false));
10787
11319
  }, [filters]);
10788
11320
  useEffect(function () {
10789
- document.title = TITLE$f;
11321
+ document.title = TITLE$g;
10790
11322
  }, []);
10791
11323
  useEffect(function () {
10792
11324
  getData();
@@ -11238,7 +11770,7 @@ var useFeedbackDetail = function useFeedbackDetail() {
11238
11770
  };
11239
11771
  };
11240
11772
 
11241
- var TITLE$g = "Feedback list";
11773
+ var TITLE$h = "Feedback list";
11242
11774
 
11243
11775
  var useFeedbackList = function useFeedbackList() {
11244
11776
  var feedbackList = useSelector(function (state) {
@@ -11290,7 +11822,7 @@ var useFeedbackList = function useFeedbackList() {
11290
11822
  }
11291
11823
  }, [dispatch, filters]);
11292
11824
  useEffect(function () {
11293
- document.title = TITLE$g;
11825
+ document.title = TITLE$h;
11294
11826
  }, []);
11295
11827
  useEffect(function () {
11296
11828
  getData();
@@ -11304,7 +11836,7 @@ var useFeedbackList = function useFeedbackList() {
11304
11836
  };
11305
11837
  };
11306
11838
 
11307
- var header$4 = "Feedback";
11839
+ var header$5 = "Feedback";
11308
11840
 
11309
11841
  var FeedbackList = function FeedbackList() {
11310
11842
  var history = useHistory();
@@ -11333,7 +11865,7 @@ var FeedbackList = function FeedbackList() {
11333
11865
  feedbackDetail: feedbackDetail
11334
11866
  }), React.createElement("h5", {
11335
11867
  className: "mb-2"
11336
- }, header$4), React.createElement(Row, {
11868
+ }, header$5), React.createElement(Row, {
11337
11869
  className: "my-2"
11338
11870
  }, React.createElement(Col, {
11339
11871
  md: 8,
@@ -11631,7 +12163,7 @@ var useTutorialScreenDetail = function useTutorialScreenDetail(typeRole) {
11631
12163
  };
11632
12164
  };
11633
12165
 
11634
- var TITLE$h = "Tutorial screen list";
12166
+ var TITLE$i = "Tutorial screen list";
11635
12167
 
11636
12168
  var useTutorialScreenList = function useTutorialScreenList(typeRole) {
11637
12169
  var tutorialScreenList = useSelector(function (state) {
@@ -11716,7 +12248,7 @@ var useTutorialScreenList = function useTutorialScreenList(typeRole) {
11716
12248
  dispatch(setLoading(false));
11717
12249
  }, [filters]);
11718
12250
  useEffect(function () {
11719
- document.title = TITLE$h;
12251
+ document.title = TITLE$i;
11720
12252
  }, []);
11721
12253
  useEffect(function () {
11722
12254
  getData();
@@ -12092,7 +12624,7 @@ var useQuestionCateDetail = function useQuestionCateDetail() {
12092
12624
  };
12093
12625
  };
12094
12626
 
12095
- var TITLE$i = "Question category list";
12627
+ var TITLE$j = "Question category list";
12096
12628
 
12097
12629
  var useQuestionCateList = function useQuestionCateList() {
12098
12630
  var questionCateList = useSelector(function (state) {
@@ -12175,7 +12707,7 @@ var useQuestionCateList = function useQuestionCateList() {
12175
12707
  dispatch(setLoading(false));
12176
12708
  }, [filters]);
12177
12709
  useEffect(function () {
12178
- document.title = TITLE$i;
12710
+ document.title = TITLE$j;
12179
12711
  }, []);
12180
12712
  useEffect(function () {
12181
12713
  getData();
@@ -12926,7 +13458,7 @@ var useAssignmentDetail = function useAssignmentDetail() {
12926
13458
  };
12927
13459
  };
12928
13460
 
12929
- var TITLE$j = "Assignment list";
13461
+ var TITLE$k = "Assignment list";
12930
13462
 
12931
13463
  var useAssignmentList = function useAssignmentList() {
12932
13464
  var assignmentList = useSelector(function (state) {
@@ -13023,7 +13555,7 @@ var useAssignmentList = function useAssignmentList() {
13023
13555
  dispatch(setLoading(false));
13024
13556
  }, [filters]);
13025
13557
  useEffect(function () {
13026
- document.title = TITLE$j;
13558
+ document.title = TITLE$k;
13027
13559
  }, []);
13028
13560
  useEffect(function () {
13029
13561
  getData();
@@ -13473,7 +14005,7 @@ var getRandomQuestion = function getRandomQuestion(data) {
13473
14005
  return api.post(QUESTION_URL$2 + "/random", data);
13474
14006
  };
13475
14007
 
13476
- var TITLE$k = "Session template list";
14008
+ var TITLE$l = "Session template list";
13477
14009
  var SESSION_TEMPLATE_URL$1 = "/admin/session-template-learning-support";
13478
14010
  var CREATE_TEMPLATE_URL = "/admin/create-session-template-learning-support";
13479
14011
 
@@ -13577,7 +14109,7 @@ var useSessionTemplateList = function useSessionTemplateList() {
13577
14109
  history.push(url);
13578
14110
  }, []);
13579
14111
  useEffect(function () {
13580
- document.title = TITLE$k;
14112
+ document.title = TITLE$l;
13581
14113
  }, []);
13582
14114
  useEffect(function () {
13583
14115
  getData();
@@ -13724,7 +14256,7 @@ var remove$j = function remove(id) {
13724
14256
  return api["delete"](SESSION_TEMPLATE_GENERAL_CLASS_URL + "/" + id);
13725
14257
  };
13726
14258
 
13727
- var TITLE$l = "Session template general class list";
14259
+ var TITLE$m = "Session template general class list";
13728
14260
  var SESSION_TEMPLATE_GENERAL_CLASS_URL$1 = "/admin/session-template/general-class";
13729
14261
  var CREATE_TEMPLATE_GENERAL_CLASS_URL = "/admin/create-session-template-general-class";
13730
14262
 
@@ -13814,7 +14346,7 @@ var useSessionTemplateGeneralClassList = function useSessionTemplateGeneralClass
13814
14346
  history.push(url);
13815
14347
  }, []);
13816
14348
  useEffect(function () {
13817
- document.title = TITLE$l;
14349
+ document.title = TITLE$m;
13818
14350
  }, []);
13819
14351
  useEffect(function () {
13820
14352
  getData();
@@ -15803,7 +16335,7 @@ var useCustomAlertDetail = function useCustomAlertDetail() {
15803
16335
  };
15804
16336
  };
15805
16337
 
15806
- var TITLE$m = "Custom alert list";
16338
+ var TITLE$n = "Custom alert list";
15807
16339
 
15808
16340
  var useCustomAlertList = function useCustomAlertList() {
15809
16341
  var customAlertList = useSelector(function (state) {
@@ -15891,7 +16423,7 @@ var useCustomAlertList = function useCustomAlertList() {
15891
16423
  dispatch(setLoading(false));
15892
16424
  }, [filters]);
15893
16425
  useEffect(function () {
15894
- document.title = TITLE$m;
16426
+ document.title = TITLE$n;
15895
16427
  }, []);
15896
16428
  useEffect(function () {
15897
16429
  getData();
@@ -15906,7 +16438,7 @@ var useCustomAlertList = function useCustomAlertList() {
15906
16438
  };
15907
16439
  };
15908
16440
 
15909
- var header$5 = "Custom alert";
16441
+ var header$6 = "Custom alert";
15910
16442
 
15911
16443
  var CustomAlertList = function CustomAlertList() {
15912
16444
  var modal = useRef();
@@ -15974,7 +16506,7 @@ var CustomAlertList = function CustomAlertList() {
15974
16506
  when: edited
15975
16507
  }), React.createElement("h5", {
15976
16508
  className: "mb-2"
15977
- }, header$5), React.createElement(Row, {
16509
+ }, header$6), React.createElement(Row, {
15978
16510
  className: "my-2"
15979
16511
  }, React.createElement(Col, {
15980
16512
  md: 4
@@ -16533,7 +17065,7 @@ var useCertificateDetail = function useCertificateDetail() {
16533
17065
  };
16534
17066
  };
16535
17067
 
16536
- var TITLE$n = "Certificate list";
17068
+ var TITLE$o = "Certificate list";
16537
17069
 
16538
17070
  var useCertificateList = function useCertificateList() {
16539
17071
  var certificateList = useSelector(function (state) {
@@ -16616,7 +17148,7 @@ var useCertificateList = function useCertificateList() {
16616
17148
  dispatch(setLoading(false));
16617
17149
  }, [filters]);
16618
17150
  useEffect(function () {
16619
- document.title = TITLE$n;
17151
+ document.title = TITLE$o;
16620
17152
  }, []);
16621
17153
  useEffect(function () {
16622
17154
  getData();
@@ -16631,7 +17163,7 @@ var useCertificateList = function useCertificateList() {
16631
17163
  };
16632
17164
  };
16633
17165
 
16634
- var header$6 = "Certificate";
17166
+ var header$7 = "Certificate";
16635
17167
 
16636
17168
  var CertificateList = function CertificateList() {
16637
17169
  var modal = useRef();
@@ -16690,7 +17222,7 @@ var CertificateList = function CertificateList() {
16690
17222
  when: edited
16691
17223
  }), React.createElement("h5", {
16692
17224
  className: "mb-2"
16693
- }, header$6), React.createElement(Row, {
17225
+ }, header$7), React.createElement(Row, {
16694
17226
  className: "my-2"
16695
17227
  }, React.createElement(Col, {
16696
17228
  md: 4
@@ -16764,7 +17296,7 @@ var CertificateList = function CertificateList() {
16764
17296
  }))));
16765
17297
  };
16766
17298
 
16767
- var TITLE$o = "Certificate list";
17299
+ var TITLE$p = "Certificate list";
16768
17300
 
16769
17301
  var useCertificateList$1 = function useCertificateList() {
16770
17302
  var dispatch = useDispatch();
@@ -16852,7 +17384,7 @@ var useCertificateList$1 = function useCertificateList() {
16852
17384
  }
16853
17385
  }, [listWaiting]);
16854
17386
  useEffect(function () {
16855
- document.title = TITLE$o;
17387
+ document.title = TITLE$p;
16856
17388
  getListWaiting();
16857
17389
  getListApproved();
16858
17390
  }, []);
@@ -17217,7 +17749,7 @@ var getGradeReport = function getGradeReport() {
17217
17749
  return api.get(REPORT_URL + "/grade");
17218
17750
  };
17219
17751
 
17220
- var TITLE$p = "Dashboard";
17752
+ var TITLE$q = "Dashboard";
17221
17753
 
17222
17754
  var useDashboard = function useDashboard() {
17223
17755
  var dispatch = useDispatch();
@@ -17269,7 +17801,7 @@ var useDashboard = function useDashboard() {
17269
17801
  }, []);
17270
17802
  var getData = useCallback(function () {
17271
17803
  try {
17272
- document.title = TITLE$p;
17804
+ document.title = TITLE$q;
17273
17805
  dispatch(setLoading(true));
17274
17806
  return Promise.resolve(Promise.any([callApi(getLoginCountingReport, setLoginCounting, []), callApi(getQuantityReport, setQuantity, {}), callApi(getGoalProgressReport, setGoalProgress, []), callApi(getHighImpactLearningStrategyReport, setHighImpact, {}), callApi(getPerceivedImpactReport, setPerceivedImpact, []), callApi(getGradeReport, setGrade, {})])).then(function () {
17275
17807
  dispatch(setLoading(false));