mario-education 2.2.9 → 2.3.3

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/index.js CHANGED
@@ -153,9 +153,6 @@ var StudentSelector = function StudentSelector(_ref) {
153
153
  id: student.id
154
154
  };
155
155
  });
156
- console.log("teacher assignment");
157
- console.log(options);
158
- console.log(value);
159
156
  return React__default.createElement(marioCore.CustomSelector, {
160
157
  options: options,
161
158
  inputValue: searchString,
@@ -5178,7 +5175,6 @@ var LearningSupportCategoryList = function LearningSupportCategoryList() {
5178
5175
 
5179
5176
  var style = {
5180
5177
  padding: "4px 8px",
5181
- marginRight: 16,
5182
5178
  marginBottom: 0,
5183
5179
  borderRadius: "2px",
5184
5180
  color: "#fff",
@@ -5192,12 +5188,13 @@ var UploadCSVButton = function UploadCSVButton(_ref) {
5192
5188
  isDisabled = _ref.isDisabled,
5193
5189
  text = _ref.text,
5194
5190
  backgroundColor = _ref.backgroundColor,
5195
- _onClick = _ref.onClick;
5191
+ _onClick = _ref.onClick,
5192
+ isClassReflection = _ref.isClassReflection;
5196
5193
  return React__default.createElement(reactstrap.Label, {
5197
5194
  htmlFor: htmlFor,
5198
5195
  role: "button",
5199
5196
  tabIndex: 0,
5200
- className: "d-flex align-items-center justfy-content-center " + (!isDisabled ? "cursor-pointer hover-opacity" : ""),
5197
+ className: "d-flex align-items-center justfy-content-center \n " + (isClassReflection ? "w-25" : "") + "\n " + (!isDisabled ? "cursor-pointer hover-opacity" : ""),
5201
5198
  style: _extends({}, style, {
5202
5199
  backgroundColor: backgroundColor,
5203
5200
  opacity: !isDisabled ? 1 : 0.5
@@ -5212,8 +5209,12 @@ var UploadCSVButton = function UploadCSVButton(_ref) {
5212
5209
  };
5213
5210
 
5214
5211
  var CSV_FILE_URL = marioCore.BASE_URL + "/api/ImportCsv/csv";
5215
- var importCSV = function importCSV(formData, subFolder) {
5216
- return marioCore.apiUpload.post(CSV_FILE_URL + "/" + subFolder, formData);
5212
+ var CSV_FILE_TEACHER = marioCore.BASE_URL + "/api/Teacher";
5213
+ var importStudentCSV = function importStudentCSV(formData) {
5214
+ return marioCore.apiUpload.post(CSV_FILE_TEACHER + "/adminImportStudent", formData);
5215
+ };
5216
+ var importClassReflectionCSV = function importClassReflectionCSV(formData) {
5217
+ return marioCore.apiUpload.post(CSV_FILE_URL + "/importClassReflection", formData);
5217
5218
  };
5218
5219
 
5219
5220
  var CSVType;
@@ -5228,28 +5229,18 @@ var CSVType;
5228
5229
  })(CSVType || (CSVType = {}));
5229
5230
 
5230
5231
  var buttons = [{
5231
- text: "Import subjects",
5232
- backgroundColor: "#1dd1a1",
5233
- type: CSVType.Subjects
5234
- }, {
5235
- text: "Import grades",
5236
- backgroundColor: "#54a0ff",
5237
- type: CSVType.Grades
5238
- }, {
5239
- text: "Import attendances",
5240
- backgroundColor: "#feca57",
5241
- type: CSVType.Attendances
5242
- }, {
5243
- text: "Import class reflections",
5244
- backgroundColor: "#e74c3c",
5245
- type: CSVType.ClassReflection
5246
- }, {
5247
- text: "Import others",
5248
- backgroundColor: "#8395a7",
5249
- type: CSVType.Others
5232
+ text: "Import students",
5233
+ backgroundColor: "#0abde3",
5234
+ type: CSVType.Students
5250
5235
  }];
5251
5236
  var title = "CSV Import";
5252
5237
  var id = "csvupload";
5238
+ var initClassReflect = {
5239
+ teacherName: '',
5240
+ teacherEmail: '',
5241
+ studentIds: [],
5242
+ file: ''
5243
+ };
5253
5244
 
5254
5245
  var useCSVImport = function useCSVImport() {
5255
5246
  var dispatch = reactRedux.useDispatch();
@@ -5261,6 +5252,18 @@ var useCSVImport = function useCSVImport() {
5261
5252
  type = _useState[0],
5262
5253
  setType = _useState[1];
5263
5254
 
5255
+ var _useState2 = React.useState(),
5256
+ dataFile = _useState2[0],
5257
+ setDataFile = _useState2[1];
5258
+
5259
+ var _useState3 = React.useState([]),
5260
+ arrStudent = _useState3[0],
5261
+ setArrStudent = _useState3[1];
5262
+
5263
+ var _useState4 = React.useState(initClassReflect),
5264
+ initImportReflection = _useState4[0],
5265
+ setInitImportReflection = _useState4[1];
5266
+
5264
5267
  React.useEffect(function () {
5265
5268
  document.title = title;
5266
5269
  }, []);
@@ -5268,7 +5271,7 @@ var useCSVImport = function useCSVImport() {
5268
5271
  try {
5269
5272
  var _temp3 = function _temp3() {
5270
5273
  dispatch(marioCore.setLoading(false));
5271
- var input = document.getElementById(id);
5274
+ var input = document.getElementById('import-student');
5272
5275
  input && (input.value = "");
5273
5276
  };
5274
5277
 
@@ -5278,7 +5281,7 @@ var useCSVImport = function useCSVImport() {
5278
5281
  var _temp4 = _catch(function () {
5279
5282
  var formData = new FormData();
5280
5283
  formData.append("file", file, file.name);
5281
- return Promise.resolve(importCSV(formData, type.toString())).then(function () {
5284
+ return Promise.resolve(importStudentCSV(formData)).then(function () {
5282
5285
  dispatch(marioCore.setAlert({
5283
5286
  type: "success",
5284
5287
  message: "Import CSV successfully"
@@ -5298,21 +5301,87 @@ var useCSVImport = function useCSVImport() {
5298
5301
  return Promise.reject(e);
5299
5302
  }
5300
5303
  }, [type]);
5304
+
5305
+ var onConfirm = function onConfirm(values) {
5306
+ try {
5307
+ var _temp7 = function _temp7() {
5308
+ dispatch(marioCore.setLoading(false));
5309
+ var input = document.getElementById(id);
5310
+ input && (input.value = "");
5311
+ };
5312
+
5313
+ if (!dataFile || !dataFile) return Promise.resolve();
5314
+ dispatch(marioCore.setLoading(true));
5315
+
5316
+ var _temp8 = _catch(function () {
5317
+ var formData = new FormData();
5318
+ formData.append("file", dataFile, dataFile.name);
5319
+ formData.append("teacherName", values.teacherName);
5320
+ formData.append("teacherEmail", values.teacherEmail);
5321
+ values.studentIds.forEach(function (item) {
5322
+ formData.append("studentIds", item);
5323
+ });
5324
+ return Promise.resolve(importClassReflectionCSV(formData)).then(function () {
5325
+ dispatch(marioCore.setAlert({
5326
+ type: "success",
5327
+ message: "Import CSV successfully"
5328
+ }));
5329
+ setInitImportReflection(initClassReflect);
5330
+ });
5331
+ }, function (err) {
5332
+ var _err$response2, _err$response2$data;
5333
+
5334
+ dispatch(marioCore.setAlert({
5335
+ type: "danger",
5336
+ 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
5337
+ }));
5338
+ });
5339
+
5340
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
5341
+ } catch (e) {
5342
+ return Promise.reject(e);
5343
+ }
5344
+ };
5345
+
5301
5346
  return {
5302
5347
  isLoading: isLoading,
5303
5348
  buttons: buttons,
5304
5349
  id: id,
5305
5350
  setType: setType,
5306
- upload: upload
5351
+ upload: upload,
5352
+ initImportReflection: initImportReflection,
5353
+ setInitImportReflection: setInitImportReflection,
5354
+ onConfirm: onConfirm,
5355
+ CSVType: CSVType,
5356
+ dataFile: dataFile,
5357
+ setDataFile: setDataFile,
5358
+ setArrStudent: setArrStudent,
5359
+ arrStudent: arrStudent
5307
5360
  };
5308
5361
  };
5309
5362
 
5363
+ var schema$4 = yup.object({
5364
+ teacherName: yup.string().required(),
5365
+ teacherEmail: yup.string().email('Invalid email').required(),
5366
+ studentIds: yup.array().required().test("test students", "Please choose student", function () {
5367
+ return !!this.parent.studentIds && !!this.parent.studentIds.length;
5368
+ }),
5369
+ file: yup.string().required()
5370
+ });
5371
+
5310
5372
  var CSVImport = function CSVImport() {
5311
5373
  var _useCSVImport = useCSVImport(),
5374
+ initImportReflection = _useCSVImport.initImportReflection,
5375
+ onConfirm = _useCSVImport.onConfirm,
5312
5376
  isLoading = _useCSVImport.isLoading,
5313
- buttons = _useCSVImport.buttons,
5314
- id = _useCSVImport.id,
5315
5377
  setType = _useCSVImport.setType,
5378
+ id = _useCSVImport.id,
5379
+ CSVType = _useCSVImport.CSVType,
5380
+ dataFile = _useCSVImport.dataFile,
5381
+ setDataFile = _useCSVImport.setDataFile,
5382
+ setArrStudent = _useCSVImport.setArrStudent,
5383
+ arrStudent = _useCSVImport.arrStudent,
5384
+ buttons = _useCSVImport.buttons,
5316
5385
  upload = _useCSVImport.upload;
5317
5386
 
5318
5387
  return React__default.createElement("div", {
@@ -5320,28 +5389,147 @@ var CSVImport = function CSVImport() {
5320
5389
  }, React__default.createElement(reactstrap.Input, {
5321
5390
  className: "d-none",
5322
5391
  type: "file",
5323
- id: id,
5392
+ id: "import-student",
5324
5393
  onChange: function onChange(e) {
5325
5394
  return upload(e.target.files[0]);
5326
5395
  },
5327
5396
  accept: "text/csv"
5328
5397
  }), React__default.createElement("div", {
5329
- className: "d-flex align-items-center"
5330
- }, buttons.map(function (button) {
5331
- return React__default.createElement(UploadCSVButton, {
5332
- key: button.text,
5398
+ className: "class-reflection"
5399
+ }, React__default.createElement(formik.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__default.createElement(reactstrap.Row, {
5416
+ className: "mb-2"
5417
+ }, React__default.createElement(reactstrap.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__default.createElement(reactstrap.Col, {
5429
+ md: 6,
5430
+ className: "mb-2"
5431
+ }, React__default.createElement(reactstrap.Row, null, React__default.createElement(reactstrap.Col, {
5432
+ md: 12,
5433
+ className: "mb-2"
5434
+ }, React__default.createElement(marioCore.RequiredLabel, {
5435
+ text: "Class Teacher Name"
5436
+ }), React__default.createElement(reactstrap.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__default.createElement(marioCore.ErrorHandler, {
5444
+ text: errors.teacherName
5445
+ })), React__default.createElement(reactstrap.Col, {
5446
+ md: 12,
5447
+ className: "mb-2"
5448
+ }, React__default.createElement(marioCore.RequiredLabel, {
5449
+ text: "Class Teacher Email"
5450
+ }), React__default.createElement(reactstrap.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__default.createElement(marioCore.ErrorHandler, {
5458
+ text: errors.teacherEmail
5459
+ })), React__default.createElement(reactstrap.Col, {
5460
+ md: 12,
5461
+ className: "mb-2"
5462
+ }, React__default.createElement(reactstrap.Label, null, "Students"), React__default.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__default.createElement(reactstrap.Col, {
5471
+ md: 12,
5472
+ className: "mb-2"
5473
+ }, touched.studentIds && errors.studentIds && React__default.createElement(marioCore.ErrorHandler, {
5474
+ text: errors.studentIds
5475
+ })), React__default.createElement(reactstrap.Col, {
5476
+ md: 12,
5477
+ className: "mb-2"
5478
+ }, React__default.createElement(marioCore.RequiredLabel, {
5479
+ text: "Upload File Class Reflection"
5480
+ }), React__default.createElement(UploadCSVButton, {
5481
+ key: "Import class reflections",
5482
+ isClassReflection: true,
5333
5483
  htmlFor: id,
5334
- text: button.text,
5484
+ text: "Upload File",
5335
5485
  isDisabled: isLoading,
5336
- backgroundColor: button.backgroundColor,
5486
+ backgroundColor: "#e74c3c",
5337
5487
  onClick: function onClick() {
5338
- return setType(button.type);
5488
+ setType(CSVType.ClassReflection);
5339
5489
  }
5340
- });
5490
+ }), !!dataFile && React__default.createElement("p", {
5491
+ style: {
5492
+ color: '#007bff',
5493
+ fontStyle: 'italic',
5494
+ marginTop: '5px'
5495
+ }
5496
+ }, dataFile.name)), !dataFile && React__default.createElement(reactstrap.Col, {
5497
+ md: 12,
5498
+ className: "mb-2"
5499
+ }, touched.file && errors.file && React__default.createElement(marioCore.ErrorHandler, {
5500
+ text: errors.file
5501
+ })), React__default.createElement(reactstrap.Col, {
5502
+ md: 12
5503
+ }, React__default.createElement(reactstrap.Button, {
5504
+ color: "primary",
5505
+ className: "float-right",
5506
+ onClick: function onClick() {
5507
+ return handleSubmit();
5508
+ }
5509
+ }, "Import"), ' '))), React__default.createElement(reactstrap.Col, {
5510
+ md: 6,
5511
+ className: "mb-2"
5512
+ }, React__default.createElement(reactstrap.Row, null, React__default.createElement(reactstrap.Col, {
5513
+ md: 12,
5514
+ className: "mb-2"
5515
+ }, React__default.createElement(marioCore.RequiredLabel, {
5516
+ text: "Import student"
5517
+ }), buttons.map(function (button) {
5518
+ return React__default.createElement(UploadCSVButton, {
5519
+ key: button.text,
5520
+ htmlFor: 'import-student',
5521
+ text: button.text,
5522
+ isDisabled: isLoading,
5523
+ backgroundColor: button.backgroundColor,
5524
+ onClick: function onClick() {
5525
+ return setType(button.type);
5526
+ }
5527
+ });
5528
+ })))));
5341
5529
  })));
5342
5530
  };
5343
5531
 
5344
- var schema$4 = yup.object({
5532
+ var schema$5 = yup.object({
5345
5533
  name: yup.string().required("Name is required"),
5346
5534
  startTime: yup.string().required("Start time is required"),
5347
5535
  endTime: yup.string().required("End time is required")
@@ -5360,7 +5548,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5360
5548
  return React__default.createElement(formik.Formik, {
5361
5549
  initialValues: semesterDetail,
5362
5550
  enableReinitialize: true,
5363
- validationSchema: schema$4,
5551
+ validationSchema: schema$5,
5364
5552
  onSubmit: function onSubmit(values, actions) {
5365
5553
  onConfirm(values);
5366
5554
  actions.resetForm();
@@ -5413,7 +5601,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5413
5601
  })), React__default.createElement(reactstrap.Col, {
5414
5602
  md: 6
5415
5603
  }, React__default.createElement(DatePicker, {
5416
- value: marioCore.utcToLocalTime(values.startTime, "Do MMMM YYYY"),
5604
+ value: !!values.startTime ? marioCore.utcToLocalTime(values.startTime, "Do MMMM YYYY") : "",
5417
5605
  todayButton: "Today",
5418
5606
  peekNextMonth: true,
5419
5607
  showMonthDropdown: true,
@@ -5444,7 +5632,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5444
5632
  })), React__default.createElement(reactstrap.Col, {
5445
5633
  md: 6
5446
5634
  }, React__default.createElement(DatePicker, {
5447
- value: marioCore.utcToLocalTime(values.endTime, "Do MMMM YYYY"),
5635
+ value: !!values.endTime ? marioCore.utcToLocalTime(values.endTime, "Do MMMM YYYY") : "",
5448
5636
  todayButton: "Today",
5449
5637
  peekNextMonth: true,
5450
5638
  showMonthDropdown: true,
@@ -5471,7 +5659,7 @@ var SemesterDetailModal = function SemesterDetailModal(props, ref) {
5471
5659
 
5472
5660
  var SemesterDetailModal$1 = React.forwardRef(SemesterDetailModal);
5473
5661
 
5474
- var schema$5 = yup.object({
5662
+ var schema$6 = yup.object({
5475
5663
  value: yup.number().required("Breaking month is required")
5476
5664
  });
5477
5665
  var options = [{
@@ -5524,7 +5712,7 @@ var BreakingMonthModal = function BreakingMonthModal(props, ref) {
5524
5712
  return React__default.createElement(formik.Formik, {
5525
5713
  initialValues: breakingMonthDetail,
5526
5714
  enableReinitialize: true,
5527
- validationSchema: schema$5,
5715
+ validationSchema: schema$6,
5528
5716
  onSubmit: function onSubmit(values, actions) {
5529
5717
  onConfirm(values);
5530
5718
  actions.resetForm();
@@ -6102,7 +6290,7 @@ var SemesterList = function SemesterList() {
6102
6290
  }, "Change breaking month"))))));
6103
6291
  };
6104
6292
 
6105
- var schema$6 = yup.object({
6293
+ var schema$7 = yup.object({
6106
6294
  label: yup.string().required("Label is required"),
6107
6295
  value: yup.number().required("Value is required")
6108
6296
  });
@@ -6120,7 +6308,7 @@ var BandScoreDetailModal = function BandScoreDetailModal(props, ref) {
6120
6308
  return React__default.createElement(formik.Formik, {
6121
6309
  initialValues: bandScoreDetail,
6122
6310
  enableReinitialize: true,
6123
- validationSchema: schema$6,
6311
+ validationSchema: schema$7,
6124
6312
  onSubmit: function onSubmit(values, actions) {
6125
6313
  onConfirm(values);
6126
6314
  actions.resetForm();
@@ -6789,7 +6977,7 @@ var CurrentLicense = function CurrentLicense() {
6789
6977
  }))));
6790
6978
  };
6791
6979
 
6792
- var schema$7 = yup.object({
6980
+ var schema$8 = yup.object({
6793
6981
  name: yup.string().required("Name is required"),
6794
6982
  startTime: yup.string().required("Start time is required"),
6795
6983
  endTime: yup.string().required("End time is required")
@@ -6808,7 +6996,7 @@ var SchoolBlankDayDetailModal = function SchoolBlankDayDetailModal(props, ref) {
6808
6996
  return React__default.createElement(formik.Formik, {
6809
6997
  initialValues: schoolBlankDayDetail,
6810
6998
  enableReinitialize: true,
6811
- validationSchema: schema$7,
6999
+ validationSchema: schema$8,
6812
7000
  onSubmit: function onSubmit(values, actions) {
6813
7001
  onConfirm(values);
6814
7002
  actions.resetForm();
@@ -8338,7 +8526,7 @@ var QuestionSplitPaneSelector = function QuestionSplitPaneSelector(props) {
8338
8526
  }, " ", "v", " ")) : "");
8339
8527
  };
8340
8528
 
8341
- var schema$8 = yup.object({
8529
+ var schema$9 = yup.object({
8342
8530
  name: yup.string().required("Name is required")
8343
8531
  });
8344
8532
 
@@ -8364,7 +8552,7 @@ var ReflectionDetailModal = function ReflectionDetailModal(props, ref) {
8364
8552
  return React__default.createElement(formik.Formik, {
8365
8553
  initialValues: reflectionformDetail,
8366
8554
  enableReinitialize: true,
8367
- validationSchema: schema$8,
8555
+ validationSchema: schema$9,
8368
8556
  onSubmit: function onSubmit(values, actions) {
8369
8557
  values.questionIds = arrId;
8370
8558
  onConfirm(values);
@@ -9745,7 +9933,7 @@ var AdditionalComponent = function AdditionalComponent(_ref) {
9745
9933
  return null;
9746
9934
  };
9747
9935
 
9748
- var schema$9 = yup.object({
9936
+ var schema$a = yup.object({
9749
9937
  text: yup.string().required("Question text is required"),
9750
9938
  type: yup.string().required("Question type is required"),
9751
9939
  categoryId: yup.number().test("test category id", "Category is required", function (value) {
@@ -9998,7 +10186,7 @@ var QuestionDetail = function QuestionDetail() {
9998
10186
  return React__default.createElement(formik.Formik, {
9999
10187
  initialValues: questionDetail,
10000
10188
  enableReinitialize: true,
10001
- validationSchema: schema$9,
10189
+ validationSchema: schema$a,
10002
10190
  onSubmit: function onSubmit(values) {
10003
10191
  if (values.type == marioCore.QUESTION_TYPES.EMOTIONAL && !!values.answers) {
10004
10192
  for (var index in values.answers) {
@@ -10264,7 +10452,7 @@ var QuestionSplitPaneSelector$1 = function QuestionSplitPaneSelector(props) {
10264
10452
  }, " ", "v", " ")) : "");
10265
10453
  };
10266
10454
 
10267
- var schema$a = yup.object({
10455
+ var schema$b = yup.object({
10268
10456
  name: yup.string().required("Name is required")
10269
10457
  });
10270
10458
 
@@ -10290,7 +10478,7 @@ var AssessmentDetailModal = function AssessmentDetailModal(props, ref) {
10290
10478
  return React__default.createElement(formik.Formik, {
10291
10479
  initialValues: assessmentDetail,
10292
10480
  enableReinitialize: true,
10293
- validationSchema: schema$a,
10481
+ validationSchema: schema$b,
10294
10482
  onSubmit: function onSubmit(values, actions) {
10295
10483
  values.questionIds = arrId;
10296
10484
  onConfirm(values);
@@ -11232,7 +11420,7 @@ var FeedbackList = function FeedbackList() {
11232
11420
  }))));
11233
11421
  };
11234
11422
 
11235
- var schema$b = yup.object({
11423
+ var schema$c = yup.object({
11236
11424
  name: yup.string().required("Name is required")
11237
11425
  });
11238
11426
 
@@ -11252,7 +11440,7 @@ var TutorialScreenDetailModal = function TutorialScreenDetailModal(props, ref) {
11252
11440
  typeRole: typeRole
11253
11441
  }),
11254
11442
  enableReinitialize: true,
11255
- validationSchema: schema$b,
11443
+ validationSchema: schema$c,
11256
11444
  onSubmit: function onSubmit(values, actions) {
11257
11445
  onConfirm(values);
11258
11446
  actions.resetForm();
@@ -11732,110 +11920,7 @@ var TutorialScreenContainer = function TutorialScreenContainer() {
11732
11920
  });
11733
11921
  };
11734
11922
 
11735
- var QuestionBankList$1 = function QuestionBankList(_ref) {
11736
- var isDefaultQuestion = _ref.isDefaultQuestion,
11737
- isDefaultQuestionGeneral = _ref.isDefaultQuestionGeneral;
11738
-
11739
- var _useQuestionList = useQuestionList(isDefaultQuestion, isDefaultQuestionGeneral),
11740
- totalItems = _useQuestionList.totalItems,
11741
- gridOptions = _useQuestionList.gridOptions,
11742
- setRef = _useQuestionList.setRef,
11743
- goToDetail = _useQuestionList.goToDetail,
11744
- filters = _useQuestionList.filters,
11745
- changeFilters = _useQuestionList.changeFilters,
11746
- updateOrderQuestions = _useQuestionList.updateOrderQuestions;
11747
-
11748
- var onRowDragEnd = function onRowDragEnd(e) {
11749
- var dataAfterDrag = e.node.parent.childrenAfterFilter.map(function (item, index) {
11750
- return {
11751
- id: item.data.id,
11752
- orderDrag: ++index
11753
- };
11754
- });
11755
- updateOrderQuestions(dataAfterDrag, isDefaultQuestionGeneral);
11756
- };
11757
-
11758
- return React__default.createElement("div", {
11759
- className: "animated fadeIn"
11760
- }, React__default.createElement(reactstrap.Row, {
11761
- className: "my-2"
11762
- }, React__default.createElement(reactstrap.Col, {
11763
- md: 8
11764
- }, React__default.createElement(marioCore.SearchBoxContainer, {
11765
- text: "Create question",
11766
- onClick: function onClick() {
11767
- return goToDetail();
11768
- },
11769
- initValue: filters.searchString,
11770
- onSearch: function onSearch(searchString) {
11771
- return changeFilters({
11772
- searchString: searchString
11773
- });
11774
- },
11775
- placeholder: "Type something to Search question"
11776
- })), isDefaultQuestion && React__default.createElement(reactstrap.Col, {
11777
- md: 2
11778
- }, React__default.createElement(DefaultQuestionStudentTeacherFilter, {
11779
- isDefaultQuestionTeacher: filters.isDefaultQuestionTeacher,
11780
- onChange: function onChange(e) {
11781
- return changeFilters({
11782
- isDefaultQuestionTeacher: e ? e.value : null
11783
- });
11784
- }
11785
- })), isDefaultQuestionGeneral && React__default.createElement(reactstrap.Col, {
11786
- md: 2
11787
- }, React__default.createElement(DefaultQuestionStudentTeacherFilter, {
11788
- isDefaultQuestionTeacher: filters.isDefaultQuestionGeneralClassTeacher,
11789
- onChange: function onChange(e) {
11790
- return changeFilters({
11791
- isDefaultQuestionGeneralClassTeacher: e ? e.value : null
11792
- });
11793
- },
11794
- isDefaultGeneralClass: true
11795
- })), React__default.createElement(reactstrap.Col, {
11796
- md: isDefaultQuestion || isDefaultQuestionGeneral ? 2 : 4,
11797
- className: "d-flex align-items-center justify-content-end"
11798
- }, "Total of questions: ", totalItems)), React__default.createElement(reactstrap.Row, {
11799
- className: "mb-2"
11800
- }, React__default.createElement(reactstrap.Col, {
11801
- md: 12,
11802
- className: "mb-2"
11803
- }, React__default.createElement("div", {
11804
- className: "ag-theme-balham w-100"
11805
- }, React__default.createElement(react.AgGridReact, {
11806
- domLayout: "autoHeight",
11807
- gridOptions: gridOptions,
11808
- masterDetail: true,
11809
- onGridReady: function onGridReady(params) {
11810
- setRef(params.api);
11811
- },
11812
- rowDragManaged: true,
11813
- animateRows: true,
11814
- modules: [masterDetail.MasterDetailModule, clientSideRowModel.ClientSideRowModelModule],
11815
- onRowDragEnd: onRowDragEnd
11816
- }))), React__default.createElement(reactstrap.Col, {
11817
- md: 12
11818
- }, React__default.createElement(marioCore.CustomPagination, {
11819
- filters: filters,
11820
- totalRecordCount: totalItems,
11821
- changePageSize: function changePageSize(pageSize) {
11822
- return changeFilters({
11823
- pageSize: pageSize
11824
- });
11825
- },
11826
- changePage: function changePage(currentPage) {
11827
- return changeFilters({
11828
- currentPage: currentPage
11829
- });
11830
- }
11831
- }))));
11832
- };
11833
-
11834
- QuestionBankList$1.defaultProps = {
11835
- isDefaultQuestion: false
11836
- };
11837
-
11838
- var schema$c = yup.object({
11923
+ var schema$d = yup.object({
11839
11924
  name: yup.string().required("Name is required")
11840
11925
  });
11841
11926
 
@@ -11852,7 +11937,7 @@ var QuestionCateModal = function QuestionCateModal(props, ref) {
11852
11937
  return React__default.createElement(formik.Formik, {
11853
11938
  initialValues: questionCateDetail,
11854
11939
  enableReinitialize: true,
11855
- validationSchema: schema$c,
11940
+ validationSchema: schema$d,
11856
11941
  onSubmit: function onSubmit(values, actions) {
11857
11942
  onConfirm(values);
11858
11943
  actions.resetForm();
@@ -12263,25 +12348,7 @@ var QuestionCateList = function QuestionCateList() {
12263
12348
  var tabs$3 = [{
12264
12349
  path: "/admin/question/question-list",
12265
12350
  title: "Question list",
12266
- component: QuestionBankList$1
12267
- }, {
12268
- path: "/admin/question/default-question-list",
12269
- title: "Default question list",
12270
- component: function component() {
12271
- return React__default.createElement(QuestionBankList$1, {
12272
- isDefaultQuestion: true,
12273
- isDefaultQuestionGeneral: false
12274
- });
12275
- }
12276
- }, {
12277
- path: "/admin/question/default-question-general-list",
12278
- title: "Default question general class list",
12279
- component: function component() {
12280
- return React__default.createElement(QuestionBankList$1, {
12281
- isDefaultQuestion: false,
12282
- isDefaultQuestionGeneral: true
12283
- });
12284
- }
12351
+ component: QuestionBankList
12285
12352
  }, {
12286
12353
  path: "/admin/question/question-category",
12287
12354
  title: "Question category",
@@ -12457,7 +12524,7 @@ var SemesterSelector = function SemesterSelector(_ref) {
12457
12524
  }));
12458
12525
  };
12459
12526
 
12460
- var schema$d = yup.object({
12527
+ var schema$e = yup.object({
12461
12528
  beginDate: yup.string().required("Begin date is required"),
12462
12529
  endDate: yup.string().required("End date is required"),
12463
12530
  timeSemester: yup.string().required("Time Semester is required"),
@@ -12493,7 +12560,7 @@ var AssignmentDetailModal = function AssignmentDetailModal(props, ref) {
12493
12560
  return React__default.createElement(formik.Formik, {
12494
12561
  initialValues: assignmentDetail,
12495
12562
  enableReinitialize: true,
12496
- validationSchema: schema$d,
12563
+ validationSchema: schema$e,
12497
12564
  onSubmit: function onSubmit(values, actions) {
12498
12565
  onConfirm(values);
12499
12566
  actions.resetForm();
@@ -14181,7 +14248,7 @@ var SkillSelector$1 = function SkillSelector(_ref) {
14181
14248
  });
14182
14249
  };
14183
14250
 
14184
- var schema$e = yup.object({
14251
+ var schema$f = yup.object({
14185
14252
  name: yup.string().required("Name is required"),
14186
14253
  isConference: yup.boolean().required("Is conference is required"),
14187
14254
  conferenceRubricId: yup.number().nullable().test("Test conference rubric id", "Conference rubric is required", function () {
@@ -14569,7 +14636,7 @@ var SessionTemplateDetail = function SessionTemplateDetail() {
14569
14636
  return React__default.createElement(formik.Formik, {
14570
14637
  initialValues: sessionTemplateDetail,
14571
14638
  enableReinitialize: true,
14572
- validationSchema: schema$e,
14639
+ validationSchema: schema$f,
14573
14640
  onSubmit: function onSubmit(values) {
14574
14641
  confirmData(values);
14575
14642
  setEdited(false);
@@ -15122,7 +15189,7 @@ var useSessionTemplateGeneralClassDetail = function useSessionTemplateGeneralCla
15122
15189
  };
15123
15190
 
15124
15191
  var LINK_TO_DEFAULT_QUESTION_GENERAL_CLASS = "/admin/question/default-question-general-list";
15125
- var schema$f = yup.object({
15192
+ var schema$g = yup.object({
15126
15193
  name: yup.string().trim().required("Name is required"),
15127
15194
  subjectId: yup.number().required("Subject is required").test("Test subject", "Subject is required", function (value) {
15128
15195
  return value > 0;
@@ -15206,7 +15273,7 @@ var SessionTemplateGeneralClassDetail = function SessionTemplateGeneralClassDeta
15206
15273
  return React__default.createElement(formik.Formik, {
15207
15274
  initialValues: sessionTemplateGeneralClassDetail,
15208
15275
  enableReinitialize: true,
15209
- validationSchema: schema$f,
15276
+ validationSchema: schema$g,
15210
15277
  onSubmit: function onSubmit(values) {
15211
15278
  confirmData(values);
15212
15279
  setEdited(false);
@@ -15413,7 +15480,7 @@ var SessionTemplateGeneralClassDetail = function SessionTemplateGeneralClassDeta
15413
15480
  });
15414
15481
  };
15415
15482
 
15416
- var schema$g = yup.object({
15483
+ var schema$h = yup.object({
15417
15484
  learningSupportCategoryId: yup.number().test("testLearningSupportCategoryId", "Invalid category", function (number) {
15418
15485
  return !!number && number >= 1;
15419
15486
  }),
@@ -15443,7 +15510,7 @@ var CustomAlertDetailModal = function CustomAlertDetailModal(props, ref) {
15443
15510
  return React__default.createElement(formik.Formik, {
15444
15511
  initialValues: customAlertDetail,
15445
15512
  enableReinitialize: true,
15446
- validationSchema: schema$g,
15513
+ validationSchema: schema$h,
15447
15514
  onSubmit: function onSubmit(values, actions) {
15448
15515
  onConfirm(values);
15449
15516
  actions.resetForm();
@@ -16017,7 +16084,7 @@ var CustomAlertList = function CustomAlertList() {
16017
16084
 
16018
16085
  var certificate = {"certificate-item":"_3DVMZ","add-breakpoint":"_3zOGW","box-item":"_3DQwX"};
16019
16086
 
16020
- var schema$h = yup.object({
16087
+ var schema$i = yup.object({
16021
16088
  name: yup.string().required("Name is required"),
16022
16089
  certificateItems: yup.array().test("Text label required", "Text is required", function (value) {
16023
16090
  return value === null || value === void 0 ? void 0 : value.every(function (item) {
@@ -16042,7 +16109,7 @@ var CertificateDetailModal = function CertificateDetailModal(props, ref) {
16042
16109
  return React__default.createElement(formik.Formik, {
16043
16110
  initialValues: certificateDetail,
16044
16111
  enableReinitialize: true,
16045
- validationSchema: schema$h,
16112
+ validationSchema: schema$i,
16046
16113
  onSubmit: function onSubmit(values, actions) {
16047
16114
  var _values$certificateIt;
16048
16115
 
@@ -17331,6 +17398,7 @@ var HighImpact = function HighImpact(_ref) {
17331
17398
  }, [data]);
17332
17399
  if (!data) return React__default.createElement(Loading, null);
17333
17400
  var series = [{
17401
+ name: "",
17334
17402
  data: ratings
17335
17403
  }];
17336
17404
  var options = {
@@ -17524,7 +17592,10 @@ var Quantity = function Quantity(_ref) {
17524
17592
  if (!data) return React__default.createElement(Loading, null);
17525
17593
  var teacherPercentage = data.teacherPercentage,
17526
17594
  studentPercentage = data.studentPercentage,
17527
- assistantPercentage = data.assistantPercentage;
17595
+ assistantPercentage = data.assistantPercentage,
17596
+ numberOfTeachers = data.numberOfTeachers,
17597
+ numberOfStudents = data.numberOfStudents,
17598
+ numberOfAssistants = data.numberOfAssistants;
17528
17599
  var series = [teacherPercentage, studentPercentage, assistantPercentage].map(function (number) {
17529
17600
  return Number(number.toFixed(2));
17530
17601
  });
@@ -17550,15 +17621,15 @@ var Quantity = function Quantity(_ref) {
17550
17621
  var details = [{
17551
17622
  label: "Teachers",
17552
17623
  color: colors$3[0],
17553
- value: teacherPercentage
17624
+ value: numberOfTeachers
17554
17625
  }, {
17555
17626
  label: "Students",
17556
17627
  color: colors$3[1],
17557
- value: studentPercentage
17628
+ value: numberOfStudents
17558
17629
  }, {
17559
17630
  label: "Assistants",
17560
17631
  color: colors$3[2],
17561
- value: assistantPercentage
17632
+ value: numberOfAssistants
17562
17633
  }];
17563
17634
  return React__default.createElement("div", {
17564
17635
  className: "d-flex h-100"
@@ -17572,8 +17643,6 @@ var Quantity = function Quantity(_ref) {
17572
17643
  bordered: true,
17573
17644
  size: "sm"
17574
17645
  }, React__default.createElement("tbody", null, details.map(function (item) {
17575
- var _item$value;
17576
-
17577
17646
  return React__default.createElement("tr", {
17578
17647
  key: item.label
17579
17648
  }, React__default.createElement("td", null, item.label), React__default.createElement("td", {
@@ -17583,8 +17652,8 @@ var Quantity = function Quantity(_ref) {
17583
17652
  style: {
17584
17653
  backgroundColor: item.color
17585
17654
  }
17586
- })), React__default.createElement("td", null, Number(((_item$value = item.value) === null || _item$value === void 0 ? void 0 : _item$value.toFixed(2)) || "0"), "%"));
17587
- }))))), React__default.createElement("div", {
17655
+ })), React__default.createElement("td", null, item.value));
17656
+ }))), React__default.createElement("p", null, "The number of user for each role"))), React__default.createElement("div", {
17588
17657
  className: "d-flex align-items-end"
17589
17658
  }, React__default.createElement(ReactApexChart, {
17590
17659
  options: options,