mario-education 2.3.0 → 2.3.1

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.
@@ -150,9 +150,6 @@ var StudentSelector = function StudentSelector(_ref) {
150
150
  id: student.id
151
151
  };
152
152
  });
153
- console.log("teacher assignment");
154
- console.log(options);
155
- console.log(value);
156
153
  return React.createElement(CustomSelector, {
157
154
  options: options,
158
155
  inputValue: searchString,
@@ -5212,6 +5209,9 @@ var CSV_FILE_URL = BASE_URL + "/api/ImportCsv/csv";
5212
5209
  var importCSV = function importCSV(formData, subFolder) {
5213
5210
  return apiUpload.post(CSV_FILE_URL + "/" + subFolder, formData);
5214
5211
  };
5212
+ var importClassReflectionCSV = function importClassReflectionCSV(formData) {
5213
+ return apiUpload.post(CSV_FILE_URL + "/importClassReflection", formData);
5214
+ };
5215
5215
 
5216
5216
  var CSVType;
5217
5217
 
@@ -5247,6 +5247,12 @@ var buttons = [{
5247
5247
  }];
5248
5248
  var title = "CSV Import";
5249
5249
  var id = "csvupload";
5250
+ var initClassReflect = {
5251
+ teacherName: '',
5252
+ teacherEmail: '',
5253
+ studentIds: [],
5254
+ file: ''
5255
+ };
5250
5256
 
5251
5257
  var useCSVImport = function useCSVImport() {
5252
5258
  var dispatch = useDispatch();
@@ -5258,6 +5264,18 @@ var useCSVImport = function useCSVImport() {
5258
5264
  type = _useState[0],
5259
5265
  setType = _useState[1];
5260
5266
 
5267
+ var _useState2 = useState(),
5268
+ dataFile = _useState2[0],
5269
+ setDataFile = _useState2[1];
5270
+
5271
+ var _useState3 = useState([]),
5272
+ arrStudent = _useState3[0],
5273
+ setArrStudent = _useState3[1];
5274
+
5275
+ var _useState4 = useState(initClassReflect),
5276
+ initImportReflection = _useState4[0],
5277
+ setInitImportReflection = _useState4[1];
5278
+
5261
5279
  useEffect(function () {
5262
5280
  document.title = title;
5263
5281
  }, []);
@@ -5295,50 +5313,203 @@ var useCSVImport = function useCSVImport() {
5295
5313
  return Promise.reject(e);
5296
5314
  }
5297
5315
  }, [type]);
5316
+
5317
+ var onConfirm = function onConfirm(values) {
5318
+ try {
5319
+ var _temp7 = function _temp7() {
5320
+ dispatch(setLoading(false));
5321
+ var input = document.getElementById(id);
5322
+ input && (input.value = "");
5323
+ };
5324
+
5325
+ if (!dataFile || !dataFile) return Promise.resolve();
5326
+ dispatch(setLoading(true));
5327
+
5328
+ var _temp8 = _catch(function () {
5329
+ var formData = new FormData();
5330
+ formData.append("file", dataFile, dataFile.name);
5331
+ formData.append("teacherName", values.teacherName);
5332
+ formData.append("teacherEmail", values.teacherEmail);
5333
+ formData.append("studentIds", values.studentIds);
5334
+ return Promise.resolve(importClassReflectionCSV(formData)).then(function () {
5335
+ dispatch(setAlert({
5336
+ type: "success",
5337
+ message: "Import CSV successfully"
5338
+ }));
5339
+ setInitImportReflection(initClassReflect);
5340
+ });
5341
+ }, function (err) {
5342
+ var _err$response2, _err$response2$data;
5343
+
5344
+ dispatch(setAlert({
5345
+ type: "danger",
5346
+ 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
5347
+ }));
5348
+ });
5349
+
5350
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
5351
+ } catch (e) {
5352
+ return Promise.reject(e);
5353
+ }
5354
+ };
5355
+
5298
5356
  return {
5299
5357
  isLoading: isLoading,
5300
5358
  buttons: buttons,
5301
5359
  id: id,
5302
5360
  setType: setType,
5303
- upload: upload
5361
+ upload: upload,
5362
+ initImportReflection: initImportReflection,
5363
+ setInitImportReflection: setInitImportReflection,
5364
+ onConfirm: onConfirm,
5365
+ CSVType: CSVType,
5366
+ dataFile: dataFile,
5367
+ setDataFile: setDataFile,
5368
+ setArrStudent: setArrStudent,
5369
+ arrStudent: arrStudent
5304
5370
  };
5305
5371
  };
5306
5372
 
5373
+ var schema$4 = object({
5374
+ teacherName: string().required(),
5375
+ teacherEmail: string().required(),
5376
+ studentIds: array().required().test("test students", "Please choose student", function () {
5377
+ return !!this.parent.studentIds && !!this.parent.studentIds.length;
5378
+ }),
5379
+ file: string().required()
5380
+ });
5381
+
5307
5382
  var CSVImport = function CSVImport() {
5308
5383
  var _useCSVImport = useCSVImport(),
5384
+ initImportReflection = _useCSVImport.initImportReflection,
5385
+ onConfirm = _useCSVImport.onConfirm,
5309
5386
  isLoading = _useCSVImport.isLoading,
5310
- buttons = _useCSVImport.buttons,
5311
- id = _useCSVImport.id,
5312
5387
  setType = _useCSVImport.setType,
5313
- upload = _useCSVImport.upload;
5388
+ id = _useCSVImport.id,
5389
+ CSVType = _useCSVImport.CSVType,
5390
+ dataFile = _useCSVImport.dataFile,
5391
+ setDataFile = _useCSVImport.setDataFile,
5392
+ setArrStudent = _useCSVImport.setArrStudent,
5393
+ arrStudent = _useCSVImport.arrStudent;
5314
5394
 
5315
5395
  return React.createElement("div", {
5316
5396
  className: "animated fadeIn pt-3"
5317
- }, React.createElement(Input, {
5318
- className: "d-none",
5319
- type: "file",
5320
- id: id,
5321
- onChange: function onChange(e) {
5322
- return upload(e.target.files[0]);
5323
- },
5324
- accept: "text/csv"
5325
- }), React.createElement("div", {
5326
- className: "d-flex align-items-center"
5327
- }, buttons.map(function (button) {
5328
- return React.createElement(UploadCSVButton, {
5329
- key: button.text,
5397
+ }, React.createElement("div", {
5398
+ className: "class-reflection"
5399
+ }, React.createElement(Formik, {
5400
+ initialValues: initImportReflection,
5401
+ enableReinitialize: true,
5402
+ validationSchema: schema$4,
5403
+ onSubmit: function onSubmit(values, actions) {
5404
+ onConfirm(values);
5405
+ setDataFile('');
5406
+ setArrStudent([]);
5407
+ actions.resetForm();
5408
+ }
5409
+ }, function (formProps) {
5410
+ var values = formProps.values,
5411
+ touched = formProps.touched,
5412
+ errors = formProps.errors,
5413
+ handleSubmit = formProps.handleSubmit,
5414
+ handleChange = formProps.handleChange;
5415
+ return React.createElement(Row, {
5416
+ className: "mb-2"
5417
+ }, React.createElement(Input, {
5418
+ className: "d-none",
5419
+ type: "file",
5420
+ id: id,
5421
+ onChange: function onChange(e) {
5422
+ setDataFile(e.target.files[0]);
5423
+ formProps.setFieldValue('file', 'imported');
5424
+ var input = document.getElementById(id);
5425
+ input && (input.value = "");
5426
+ },
5427
+ accept: "text/csv"
5428
+ }), React.createElement(Col, {
5429
+ md: 6,
5430
+ className: "mb-2"
5431
+ }, React.createElement(Row, null, React.createElement(Col, {
5432
+ md: 12,
5433
+ className: "mb-2"
5434
+ }, React.createElement(RequiredLabel, {
5435
+ text: "Class Teacher Name"
5436
+ }), React.createElement(Input, {
5437
+ name: "teacherName",
5438
+ value: values.teacherName,
5439
+ type: "text",
5440
+ onChange: function onChange(e) {
5441
+ handleChange(e);
5442
+ }
5443
+ }), touched.teacherName && errors.teacherName && React.createElement(ErrorHandler, {
5444
+ text: errors.teacherName
5445
+ })), React.createElement(Col, {
5446
+ md: 12,
5447
+ className: "mb-2"
5448
+ }, React.createElement(RequiredLabel, {
5449
+ text: "Class Teacher Email"
5450
+ }), React.createElement(Input, {
5451
+ name: "teacherEmail",
5452
+ value: values.teacherEmail,
5453
+ type: "text",
5454
+ onChange: function onChange(e) {
5455
+ handleChange(e);
5456
+ }
5457
+ }), touched.teacherEmail && errors.teacherEmail && React.createElement(ErrorHandler, {
5458
+ text: errors.teacherEmail
5459
+ })), React.createElement(Col, {
5460
+ md: 12,
5461
+ className: "mb-2"
5462
+ }, React.createElement(Label, null, "Students"), React.createElement(StudentSelector, {
5463
+ onChange: function onChange(e) {
5464
+ setArrStudent(e);
5465
+ formProps.setFieldValue("studentIds", e.map(function (i) {
5466
+ return i.value;
5467
+ }) || []);
5468
+ },
5469
+ value: arrStudent
5470
+ })), React.createElement(Col, {
5471
+ md: 12,
5472
+ className: "mb-2"
5473
+ }, touched.studentIds && errors.studentIds && React.createElement(ErrorHandler, {
5474
+ text: errors.studentIds
5475
+ })), React.createElement(Col, {
5476
+ md: 12,
5477
+ className: "mb-2"
5478
+ }, React.createElement(RequiredLabel, {
5479
+ text: "Upload File Class Reflection"
5480
+ }), React.createElement(UploadCSVButton, {
5481
+ key: "Import class reflections",
5330
5482
  htmlFor: id,
5331
- text: button.text,
5483
+ text: "Import class reflections",
5332
5484
  isDisabled: isLoading,
5333
- backgroundColor: button.backgroundColor,
5485
+ backgroundColor: "#e74c3c",
5334
5486
  onClick: function onClick() {
5335
- return setType(button.type);
5487
+ setType(CSVType.ClassReflection);
5336
5488
  }
5337
- });
5489
+ }), !!dataFile && React.createElement("p", {
5490
+ style: {
5491
+ color: 'red',
5492
+ fontStyle: 'italic',
5493
+ marginTop: '5px'
5494
+ }
5495
+ }, dataFile.name)), !dataFile && React.createElement(Col, {
5496
+ md: 12,
5497
+ className: "mb-2"
5498
+ }, touched.file && errors.file && React.createElement(ErrorHandler, {
5499
+ text: errors.file
5500
+ })), React.createElement(Col, {
5501
+ md: 12
5502
+ }, React.createElement(Button, {
5503
+ color: "primary",
5504
+ className: "float-right",
5505
+ onClick: function onClick() {
5506
+ return handleSubmit();
5507
+ }
5508
+ }, "Import"), ' '))));
5338
5509
  })));
5339
5510
  };
5340
5511
 
5341
- var schema$4 = object({
5512
+ var schema$5 = object({
5342
5513
  name: string().required("Name is required"),
5343
5514
  startTime: string().required("Start time is required"),
5344
5515
  endTime: string().required("End time is required")
@@ -5357,7 +5528,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5357
5528
  return React.createElement(Formik, {
5358
5529
  initialValues: semesterDetail,
5359
5530
  enableReinitialize: true,
5360
- validationSchema: schema$4,
5531
+ validationSchema: schema$5,
5361
5532
  onSubmit: function onSubmit(values, actions) {
5362
5533
  onConfirm(values);
5363
5534
  actions.resetForm();
@@ -5468,7 +5639,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5468
5639
 
5469
5640
  var SemesterDetailModal$1 = forwardRef(SemesterDetailModal);
5470
5641
 
5471
- var schema$5 = object({
5642
+ var schema$6 = object({
5472
5643
  value: number().required("Breaking month is required")
5473
5644
  });
5474
5645
  var options = [{
@@ -5521,7 +5692,7 @@ var BreakingMonthModal = function BreakingMonthModal(props, ref) {
5521
5692
  return React.createElement(Formik, {
5522
5693
  initialValues: breakingMonthDetail,
5523
5694
  enableReinitialize: true,
5524
- validationSchema: schema$5,
5695
+ validationSchema: schema$6,
5525
5696
  onSubmit: function onSubmit(values, actions) {
5526
5697
  onConfirm(values);
5527
5698
  actions.resetForm();
@@ -6099,7 +6270,7 @@ var SemesterList = function SemesterList() {
6099
6270
  }, "Change breaking month"))))));
6100
6271
  };
6101
6272
 
6102
- var schema$6 = object({
6273
+ var schema$7 = object({
6103
6274
  label: string().required("Label is required"),
6104
6275
  value: number().required("Value is required")
6105
6276
  });
@@ -6117,7 +6288,7 @@ var BandScoreDetailModal = function BandScoreDetailModal(props, ref) {
6117
6288
  return React.createElement(Formik, {
6118
6289
  initialValues: bandScoreDetail,
6119
6290
  enableReinitialize: true,
6120
- validationSchema: schema$6,
6291
+ validationSchema: schema$7,
6121
6292
  onSubmit: function onSubmit(values, actions) {
6122
6293
  onConfirm(values);
6123
6294
  actions.resetForm();
@@ -6786,7 +6957,7 @@ var CurrentLicense = function CurrentLicense() {
6786
6957
  }))));
6787
6958
  };
6788
6959
 
6789
- var schema$7 = object({
6960
+ var schema$8 = object({
6790
6961
  name: string().required("Name is required"),
6791
6962
  startTime: string().required("Start time is required"),
6792
6963
  endTime: string().required("End time is required")
@@ -6805,7 +6976,7 @@ var SchoolBlankDayDetailModal = function SchoolBlankDayDetailModal(props, ref) {
6805
6976
  return React.createElement(Formik, {
6806
6977
  initialValues: schoolBlankDayDetail,
6807
6978
  enableReinitialize: true,
6808
- validationSchema: schema$7,
6979
+ validationSchema: schema$8,
6809
6980
  onSubmit: function onSubmit(values, actions) {
6810
6981
  onConfirm(values);
6811
6982
  actions.resetForm();
@@ -8335,7 +8506,7 @@ var QuestionSplitPaneSelector = function QuestionSplitPaneSelector(props) {
8335
8506
  }, " ", "v", " ")) : "");
8336
8507
  };
8337
8508
 
8338
- var schema$8 = object({
8509
+ var schema$9 = object({
8339
8510
  name: string().required("Name is required")
8340
8511
  });
8341
8512
 
@@ -8361,7 +8532,7 @@ var ReflectionDetailModal = function ReflectionDetailModal(props, ref) {
8361
8532
  return React.createElement(Formik, {
8362
8533
  initialValues: reflectionformDetail,
8363
8534
  enableReinitialize: true,
8364
- validationSchema: schema$8,
8535
+ validationSchema: schema$9,
8365
8536
  onSubmit: function onSubmit(values, actions) {
8366
8537
  values.questionIds = arrId;
8367
8538
  onConfirm(values);
@@ -9742,7 +9913,7 @@ var AdditionalComponent = function AdditionalComponent(_ref) {
9742
9913
  return null;
9743
9914
  };
9744
9915
 
9745
- var schema$9 = object({
9916
+ var schema$a = object({
9746
9917
  text: string().required("Question text is required"),
9747
9918
  type: string().required("Question type is required"),
9748
9919
  categoryId: number().test("test category id", "Category is required", function (value) {
@@ -9995,7 +10166,7 @@ var QuestionDetail = function QuestionDetail() {
9995
10166
  return React.createElement(Formik, {
9996
10167
  initialValues: questionDetail,
9997
10168
  enableReinitialize: true,
9998
- validationSchema: schema$9,
10169
+ validationSchema: schema$a,
9999
10170
  onSubmit: function onSubmit(values) {
10000
10171
  if (values.type == QUESTION_TYPES.EMOTIONAL && !!values.answers) {
10001
10172
  for (var index in values.answers) {
@@ -10261,7 +10432,7 @@ var QuestionSplitPaneSelector$1 = function QuestionSplitPaneSelector(props) {
10261
10432
  }, " ", "v", " ")) : "");
10262
10433
  };
10263
10434
 
10264
- var schema$a = object({
10435
+ var schema$b = object({
10265
10436
  name: string().required("Name is required")
10266
10437
  });
10267
10438
 
@@ -10287,7 +10458,7 @@ var AssessmentDetailModal = function AssessmentDetailModal(props, ref) {
10287
10458
  return React.createElement(Formik, {
10288
10459
  initialValues: assessmentDetail,
10289
10460
  enableReinitialize: true,
10290
- validationSchema: schema$a,
10461
+ validationSchema: schema$b,
10291
10462
  onSubmit: function onSubmit(values, actions) {
10292
10463
  values.questionIds = arrId;
10293
10464
  onConfirm(values);
@@ -11229,7 +11400,7 @@ var FeedbackList = function FeedbackList() {
11229
11400
  }))));
11230
11401
  };
11231
11402
 
11232
- var schema$b = object({
11403
+ var schema$c = object({
11233
11404
  name: string().required("Name is required")
11234
11405
  });
11235
11406
 
@@ -11249,7 +11420,7 @@ var TutorialScreenDetailModal = function TutorialScreenDetailModal(props, ref) {
11249
11420
  typeRole: typeRole
11250
11421
  }),
11251
11422
  enableReinitialize: true,
11252
- validationSchema: schema$b,
11423
+ validationSchema: schema$c,
11253
11424
  onSubmit: function onSubmit(values, actions) {
11254
11425
  onConfirm(values);
11255
11426
  actions.resetForm();
@@ -11729,7 +11900,7 @@ var TutorialScreenContainer = function TutorialScreenContainer() {
11729
11900
  });
11730
11901
  };
11731
11902
 
11732
- var schema$c = object({
11903
+ var schema$d = object({
11733
11904
  name: string().required("Name is required")
11734
11905
  });
11735
11906
 
@@ -11746,7 +11917,7 @@ var QuestionCateModal = function QuestionCateModal(props, ref) {
11746
11917
  return React.createElement(Formik, {
11747
11918
  initialValues: questionCateDetail,
11748
11919
  enableReinitialize: true,
11749
- validationSchema: schema$c,
11920
+ validationSchema: schema$d,
11750
11921
  onSubmit: function onSubmit(values, actions) {
11751
11922
  onConfirm(values);
11752
11923
  actions.resetForm();
@@ -12333,7 +12504,7 @@ var SemesterSelector = function SemesterSelector(_ref) {
12333
12504
  }));
12334
12505
  };
12335
12506
 
12336
- var schema$d = object({
12507
+ var schema$e = object({
12337
12508
  beginDate: string().required("Begin date is required"),
12338
12509
  endDate: string().required("End date is required"),
12339
12510
  timeSemester: string().required("Time Semester is required"),
@@ -12369,7 +12540,7 @@ var AssignmentDetailModal = function AssignmentDetailModal(props, ref) {
12369
12540
  return React.createElement(Formik, {
12370
12541
  initialValues: assignmentDetail,
12371
12542
  enableReinitialize: true,
12372
- validationSchema: schema$d,
12543
+ validationSchema: schema$e,
12373
12544
  onSubmit: function onSubmit(values, actions) {
12374
12545
  onConfirm(values);
12375
12546
  actions.resetForm();
@@ -14057,7 +14228,7 @@ var SkillSelector$1 = function SkillSelector(_ref) {
14057
14228
  });
14058
14229
  };
14059
14230
 
14060
- var schema$e = object({
14231
+ var schema$f = object({
14061
14232
  name: string().required("Name is required"),
14062
14233
  isConference: boolean().required("Is conference is required"),
14063
14234
  conferenceRubricId: number().nullable().test("Test conference rubric id", "Conference rubric is required", function () {
@@ -14445,7 +14616,7 @@ var SessionTemplateDetail = function SessionTemplateDetail() {
14445
14616
  return React.createElement(Formik, {
14446
14617
  initialValues: sessionTemplateDetail,
14447
14618
  enableReinitialize: true,
14448
- validationSchema: schema$e,
14619
+ validationSchema: schema$f,
14449
14620
  onSubmit: function onSubmit(values) {
14450
14621
  confirmData(values);
14451
14622
  setEdited(false);
@@ -14998,7 +15169,7 @@ var useSessionTemplateGeneralClassDetail = function useSessionTemplateGeneralCla
14998
15169
  };
14999
15170
 
15000
15171
  var LINK_TO_DEFAULT_QUESTION_GENERAL_CLASS = "/admin/question/default-question-general-list";
15001
- var schema$f = object({
15172
+ var schema$g = object({
15002
15173
  name: string().trim().required("Name is required"),
15003
15174
  subjectId: number().required("Subject is required").test("Test subject", "Subject is required", function (value) {
15004
15175
  return value > 0;
@@ -15082,7 +15253,7 @@ var SessionTemplateGeneralClassDetail = function SessionTemplateGeneralClassDeta
15082
15253
  return React.createElement(Formik, {
15083
15254
  initialValues: sessionTemplateGeneralClassDetail,
15084
15255
  enableReinitialize: true,
15085
- validationSchema: schema$f,
15256
+ validationSchema: schema$g,
15086
15257
  onSubmit: function onSubmit(values) {
15087
15258
  confirmData(values);
15088
15259
  setEdited(false);
@@ -15289,7 +15460,7 @@ var SessionTemplateGeneralClassDetail = function SessionTemplateGeneralClassDeta
15289
15460
  });
15290
15461
  };
15291
15462
 
15292
- var schema$g = object({
15463
+ var schema$h = object({
15293
15464
  learningSupportCategoryId: number().test("testLearningSupportCategoryId", "Invalid category", function (number) {
15294
15465
  return !!number && number >= 1;
15295
15466
  }),
@@ -15319,7 +15490,7 @@ var CustomAlertDetailModal = function CustomAlertDetailModal(props, ref) {
15319
15490
  return React.createElement(Formik, {
15320
15491
  initialValues: customAlertDetail,
15321
15492
  enableReinitialize: true,
15322
- validationSchema: schema$g,
15493
+ validationSchema: schema$h,
15323
15494
  onSubmit: function onSubmit(values, actions) {
15324
15495
  onConfirm(values);
15325
15496
  actions.resetForm();
@@ -15893,7 +16064,7 @@ var CustomAlertList = function CustomAlertList() {
15893
16064
 
15894
16065
  var certificate = {"certificate-item":"_3DVMZ","add-breakpoint":"_3zOGW","box-item":"_3DQwX"};
15895
16066
 
15896
- var schema$h = object({
16067
+ var schema$i = object({
15897
16068
  name: string().required("Name is required"),
15898
16069
  certificateItems: array().test("Text label required", "Text is required", function (value) {
15899
16070
  return value === null || value === void 0 ? void 0 : value.every(function (item) {
@@ -15918,7 +16089,7 @@ var CertificateDetailModal = function CertificateDetailModal(props, ref) {
15918
16089
  return React.createElement(Formik, {
15919
16090
  initialValues: certificateDetail,
15920
16091
  enableReinitialize: true,
15921
- validationSchema: schema$h,
16092
+ validationSchema: schema$i,
15922
16093
  onSubmit: function onSubmit(values, actions) {
15923
16094
  var _values$certificateIt;
15924
16095