mario-core 2.9.107-beta → 2.9.113-beta

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
@@ -26,7 +26,6 @@ var fa = require('react-icons/fa');
26
26
  var dateFns = require('date-fns');
27
27
  var tinymceReact = require('@tinymce/tinymce-react');
28
28
  var differenceInCalendarYears = _interopDefault(require('date-fns/differenceInCalendarYears'));
29
- var moment = _interopDefault(require('moment'));
30
29
  var DatePicker = _interopDefault(require('react-datepicker'));
31
30
  var toDate = _interopDefault(require('date-fns/toDate'));
32
31
  var md = require('react-icons/md');
@@ -34,6 +33,7 @@ var Creatable = _interopDefault(require('react-select/creatable'));
34
33
  var ReactNotification$1 = _interopDefault(require('react-notifications-component'));
35
34
  require('react-notifications-component/dist/theme.css');
36
35
  var ai = require('react-icons/ai');
36
+ var moment = _interopDefault(require('moment'));
37
37
 
38
38
  var dashboard = "Dashboard";
39
39
  var user = "User";
@@ -215,10 +215,10 @@ var teacher_training = "Teacher training";
215
215
  var created_time = "Create time";
216
216
  var total_reflections = "Total Reflections";
217
217
  var student_training = "Student training";
218
- var create_destination = "Create Destination";
218
+ var create_designation = "Create Designation";
219
219
  var total_of_designation = "Total of Designation";
220
- var destinations = "Destinations";
221
- var edit_destination = "Edit Destination";
220
+ var designations = "Designations";
221
+ var edit_designation = "Edit Designation";
222
222
  var confirm = "Confirm";
223
223
  var hello = "Hello";
224
224
  var todays_1_1 = "Today’s 1-1";
@@ -609,6 +609,7 @@ var current_secondary_teacher_name = "Current Secondary Teacher Name";
609
609
  var current_secondary_teacher_email = "Current Secondary Teacher Email";
610
610
  var remove_secondary_teacher = "Remove Secondary Teacher";
611
611
  var select_secondary_teacher_change = "Select Secondary Teacher Change";
612
+ var filter_calendar = "Filter calendar";
612
613
  var lang_us = {
613
614
  dashboard: dashboard,
614
615
  user: user,
@@ -793,10 +794,10 @@ var lang_us = {
793
794
  created_time: created_time,
794
795
  total_reflections: total_reflections,
795
796
  student_training: student_training,
796
- create_destination: create_destination,
797
+ create_designation: create_designation,
797
798
  total_of_designation: total_of_designation,
798
- destinations: destinations,
799
- edit_destination: edit_destination,
799
+ designations: designations,
800
+ edit_designation: edit_designation,
800
801
  confirm: confirm,
801
802
  hello: hello,
802
803
  todays_1_1: todays_1_1,
@@ -1191,7 +1192,8 @@ var lang_us = {
1191
1192
  current_secondary_teacher_name: current_secondary_teacher_name,
1192
1193
  current_secondary_teacher_email: current_secondary_teacher_email,
1193
1194
  remove_secondary_teacher: remove_secondary_teacher,
1194
- select_secondary_teacher_change: select_secondary_teacher_change
1195
+ select_secondary_teacher_change: select_secondary_teacher_change,
1196
+ filter_calendar: filter_calendar
1195
1197
  };
1196
1198
 
1197
1199
  var dashboard$1 = "Dashboard";
@@ -1376,10 +1378,10 @@ var teacher_training$1 = "Teacher training";
1376
1378
  var created_time$1 = "Create time";
1377
1379
  var total_reflections$1 = "Total Reflections";
1378
1380
  var student_training$1 = "Student training";
1379
- var create_destination$1 = "Create Destination";
1381
+ var create_designation$1 = "Create Designation";
1380
1382
  var total_of_designation$1 = "Total of Designation";
1381
- var destinations$1 = "Destinations";
1382
- var edit_destination$1 = "Edit Destination";
1383
+ var designations$1 = "Designations";
1384
+ var edit_designation$1 = "Edit Designation";
1383
1385
  var confirm$1 = "Confirm";
1384
1386
  var hello$1 = "Hello";
1385
1387
  var todays_1_1$1 = "Today’s 1-1";
@@ -1770,6 +1772,7 @@ var current_secondary_teacher_name$1 = "Current Secondary Teacher Name";
1770
1772
  var current_secondary_teacher_email$1 = "Current Secondary Teacher Email";
1771
1773
  var remove_secondary_teacher$1 = "Remove Secondary Teacher";
1772
1774
  var select_secondary_teacher_change$1 = "Select Secondary Teacher Change";
1775
+ var filter_calendar$1 = "Filter calendar";
1773
1776
  var lang_uk = {
1774
1777
  dashboard: dashboard$1,
1775
1778
  user: user$1,
@@ -1954,10 +1957,10 @@ var lang_uk = {
1954
1957
  created_time: created_time$1,
1955
1958
  total_reflections: total_reflections$1,
1956
1959
  student_training: student_training$1,
1957
- create_destination: create_destination$1,
1960
+ create_designation: create_designation$1,
1958
1961
  total_of_designation: total_of_designation$1,
1959
- destinations: destinations$1,
1960
- edit_destination: edit_destination$1,
1962
+ designations: designations$1,
1963
+ edit_designation: edit_designation$1,
1961
1964
  confirm: confirm$1,
1962
1965
  hello: hello$1,
1963
1966
  todays_1_1: todays_1_1$1,
@@ -2352,7 +2355,8 @@ var lang_uk = {
2352
2355
  current_secondary_teacher_name: current_secondary_teacher_name$1,
2353
2356
  current_secondary_teacher_email: current_secondary_teacher_email$1,
2354
2357
  remove_secondary_teacher: remove_secondary_teacher$1,
2355
- select_secondary_teacher_change: select_secondary_teacher_change$1
2358
+ select_secondary_teacher_change: select_secondary_teacher_change$1,
2359
+ filter_calendar: filter_calendar$1
2356
2360
  };
2357
2361
 
2358
2362
  var DEFAULT_LANGUAGE = localStorage.getItem("language") !== null ? localStorage.getItem("language") : "uk";
@@ -2598,6 +2602,9 @@ var QUESTION_TYPES_OPTIONS = [{
2598
2602
  }, {
2599
2603
  label: "Learning strategy",
2600
2604
  value: "LearningStrategy"
2605
+ }, {
2606
+ label: "Dropdown",
2607
+ value: "Dropdown"
2601
2608
  }];
2602
2609
  var QUESTION_TYPES = {
2603
2610
  SINGLE_CHOICE: "SingleChoice",
@@ -2610,7 +2617,8 @@ var QUESTION_TYPES = {
2610
2617
  EMOTIONAL: "Emotional",
2611
2618
  SUMMARIZE: "Summarize",
2612
2619
  RATING: "Rating",
2613
- LEARNING_STRATEGY: "LearningStrategy"
2620
+ LEARNING_STRATEGY: "LearningStrategy",
2621
+ DROPDOWN: "Dropdown"
2614
2622
  };
2615
2623
  var STAR_OPTIONS = [{
2616
2624
  label: 2,
@@ -6772,8 +6780,89 @@ var SkillList = function SkillList() {
6772
6780
  }))));
6773
6781
  };
6774
6782
 
6775
- var setUserList = toolkit.createAction("users/setUserList");
6776
- var setStudentList = toolkit.createAction("users/setStudentList");
6783
+ var MAX_FILE_SIZE = 20097152;
6784
+
6785
+ var UploadFileButton = function UploadFileButton(_ref) {
6786
+ var fileName = _ref.fileName,
6787
+ maxWidth = _ref.maxWidth,
6788
+ maxHeight = _ref.maxHeight,
6789
+ setFile = _ref.setFile,
6790
+ canDelete = _ref.canDelete,
6791
+ onDelete = _ref.onDelete,
6792
+ isCheckFeedBack = _ref.isCheckFeedBack,
6793
+ onAddImage = _ref.onAddImage;
6794
+ var dispatch = reactRedux.useDispatch();
6795
+
6796
+ var _useState = React.useState(""),
6797
+ imagePreviewUrl = _useState[0],
6798
+ setImagePreviewUrl = _useState[1];
6799
+
6800
+ var imageStyle = {
6801
+ maxWidth: maxWidth || "100%",
6802
+ maxHeight: maxHeight || "100%"
6803
+ };
6804
+ var imageSrc = imagePreviewUrl || getFileUrl(fileName);
6805
+
6806
+ var handleImageChange = function handleImageChange(e) {
6807
+ e.preventDefault();
6808
+ var reader = new FileReader();
6809
+ var newFile = e.target.files[0];
6810
+
6811
+ if (newFile.size > MAX_FILE_SIZE) {
6812
+ dispatch(setAlert({
6813
+ type: "danger",
6814
+ message: "File can't be larger than 2MB"
6815
+ }));
6816
+ return;
6817
+ }
6818
+
6819
+ reader.onloadend = function () {
6820
+ setFile(newFile);
6821
+ setImagePreviewUrl(reader.result);
6822
+ };
6823
+
6824
+ if (newFile) {
6825
+ reader.readAsDataURL(newFile);
6826
+ }
6827
+
6828
+ !!onAddImage && onAddImage();
6829
+ };
6830
+
6831
+ var imagePreviewContainer = imagePreviewUrl || fileName ? React__default.createElement("img", {
6832
+ style: imageStyle,
6833
+ src: imageSrc,
6834
+ alt: "image"
6835
+ }) : null;
6836
+ return React__default.createElement("div", {
6837
+ className: "mb-2"
6838
+ }, React__default.createElement(reactstrap.Form, {
6839
+ className: "mb-2"
6840
+ }, React__default.createElement(reactstrap.Input, {
6841
+ className: "d-none",
6842
+ type: "file",
6843
+ id: "uploadFile",
6844
+ onChange: handleImageChange,
6845
+ accept: "image/*"
6846
+ }), React__default.createElement("div", {
6847
+ className: "d-flex align-items-center"
6848
+ }, React__default.createElement(reactstrap.Label, {
6849
+ htmlFor: "uploadFile",
6850
+ role: "button",
6851
+ tabIndex: 0,
6852
+ className: styles["input-file-label"]
6853
+ }, isCheckFeedBack == true ? React__default.createElement(md.MdAttachFile, null) : React__default.createElement(React__default.Fragment, null, React__default.createElement("i", {
6854
+ className: "fa fa-paperclip mr-1",
6855
+ "aria-hidden": "true"
6856
+ }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React__default.createElement(reactstrap.Button, {
6857
+ size: "sm",
6858
+ color: "danger",
6859
+ className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
6860
+ onClick: function onClick() {
6861
+ setImagePreviewUrl(null);
6862
+ onDelete && onDelete();
6863
+ }
6864
+ }, React__default.createElement(fa.FaTrashAlt, null)))), imagePreviewContainer);
6865
+ };
6777
6866
 
6778
6867
  var USER_URL$1 = BASE_URL + "/api/user";
6779
6868
  var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
@@ -6806,38 +6895,54 @@ var switchAccountUser = function switchAccountUser(id) {
6806
6895
  return api.post(EDU_USER_URL + "/switch-user/" + id);
6807
6896
  };
6808
6897
 
6809
- var USER_URL$2 = "/admin/user";
6810
- var CREATE_USER_URL = "/admin/create-user";
6811
- var TITLE$7 = "User list";
6812
- var HOMEPAGE_TEACHER$1 = "/home";
6813
- var HOMEPAGE_STUDENT$1 = "/home";
6814
- var HOMEPAGE_ADMIN$1 = "/admin/dashboard";
6815
- var HOMEPAGE_PARENT$1 = "/parent";
6816
- var HOMEPAGE_DISTRICT$1 = "/admin/schools";
6817
- var HOMEPAGE_EDU_TEACHER$1 = "/list-student";
6898
+ var initValue$3 = {
6899
+ id: "",
6900
+ firstName: "",
6901
+ lastName: "",
6902
+ email: "",
6903
+ dateOfBirth: "",
6904
+ roles: [],
6905
+ isActive: true,
6906
+ profileImageFileName: ""
6907
+ };
6908
+ var USER_LIST_URL = "/admin/user";
6909
+ var TITLE$7 = "User detail";
6818
6910
 
6819
- var useUserList = function useUserList() {
6911
+ var useUserDetail = function useUserDetail(id) {
6912
+ var dispatch = reactRedux.useDispatch();
6820
6913
  var history = reactRouterDom.useHistory();
6821
- var query = new URLSearchParams(location.search);
6822
- var queryName = query.get("query");
6823
- var userList = reactRedux.useSelector(function (state) {
6824
- return state.users.userList;
6825
- });
6826
- var totalItems = reactRedux.useSelector(function (state) {
6827
- return state.users.totalItems;
6828
- });
6829
6914
 
6830
- var _useFilters = useFilters(),
6831
- filters = _useFilters.filters,
6832
- changeFilters = _useFilters.changeFilters;
6915
+ var _useState = React.useState(initValue$3),
6916
+ userDetail = _useState[0],
6917
+ setUserDetail = _useState[1];
6833
6918
 
6834
- var _useState = React.useState(!!queryName ? queryName : ""),
6835
- fullName = _useState[0],
6836
- setFullName = _useState[1];
6919
+ var _useState2 = React.useState(null),
6920
+ file = _useState2[0],
6921
+ setFile = _useState2[1];
6837
6922
 
6838
- var isDistrict = window.location.host.includes("-district");
6839
- var dispatch = reactRedux.useDispatch();
6840
- var getData = React.useCallback(function (fullName) {
6923
+ var _useState3 = React.useState(false),
6924
+ edited = _useState3[0],
6925
+ setEdited = _useState3[1];
6926
+
6927
+ var setEditedTrue = function setEditedTrue() {
6928
+ try {
6929
+ localStorage.setItem(window.location.href, "true");
6930
+ setEdited(true);
6931
+ return Promise.resolve();
6932
+ } catch (e) {
6933
+ return Promise.reject(e);
6934
+ }
6935
+ };
6936
+
6937
+ React.useEffect(function () {
6938
+ document.title = TITLE$7;
6939
+ setEdited(false);
6940
+ if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
6941
+ }, []);
6942
+ React.useEffect(function () {
6943
+ !!id && getData();
6944
+ }, [id]);
6945
+ var getData = React.useCallback(function () {
6841
6946
  try {
6842
6947
  var _temp3 = function _temp3() {
6843
6948
  dispatch(setLoading(false));
@@ -6846,22 +6951,14 @@ var useUserList = function useUserList() {
6846
6951
  dispatch(setLoading(true));
6847
6952
 
6848
6953
  var _temp4 = _catch(function () {
6849
- return Promise.resolve(fullName ? get$5(_extends({}, filters, {
6850
- searchString: fullName
6851
- })) : get$5(filters)).then(function (res) {
6852
- var _res$data = res.data,
6853
- items = _res$data.items,
6854
- totalItems = _res$data.totalItems;
6855
-
6856
- for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
6857
- var user = _step.value;
6858
- user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
6859
- }
6954
+ return Promise.resolve(getById$3(id)).then(function (res) {
6955
+ var _res$data;
6860
6956
 
6861
- dispatch(setUserList({
6862
- userList: items,
6863
- totalItems: totalItems
6957
+ setUserDetail(_extends({}, res.data, {
6958
+ dateOfBirth: dateFns.format(new Date(res.data.dateOfBirth), DATE_FORMAT),
6959
+ roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
6864
6960
  }));
6961
+ document.title = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.fullName;
6865
6962
  });
6866
6963
  }, function (err) {
6867
6964
  var _err$response, _err$response$data;
@@ -6876,688 +6973,171 @@ var useUserList = function useUserList() {
6876
6973
  } catch (e) {
6877
6974
  return Promise.reject(e);
6878
6975
  }
6879
- }, [dispatch, filters]);
6880
- React.useEffect(function () {
6881
- document.title = TITLE$7;
6976
+ }, [id]);
6977
+ var backToList = React.useCallback(function (user) {
6978
+ !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
6882
6979
  }, []);
6883
- React.useEffect(function () {
6884
- if (!!fullName) {
6885
- getData(fullName);
6886
- setFullName(null);
6887
- } else {
6888
- getData();
6889
- }
6890
- }, [filters]);
6891
- var removeData = React.useCallback(function (id) {
6892
- dispatch(setLoading(true));
6893
-
6980
+ var confirmData = React.useCallback(function (data) {
6894
6981
  try {
6895
- dispatch(setModal({
6896
- isOpen: true,
6897
- type: "warning",
6898
- message: "Do you want to remove this user?",
6899
- onConfirm: function () {
6900
- try {
6901
- return Promise.resolve(remove$3(id)).then(function () {
6902
- dispatch(setAlert({
6903
- type: "success",
6904
- message: "Remove user successfully"
6905
- }));
6906
- changeFilters({
6907
- currentPage: 1
6982
+ var _temp9 = function _temp9() {
6983
+ dispatch(setLoading(false));
6984
+ };
6985
+
6986
+ dispatch(setLoading(true));
6987
+
6988
+ var _temp10 = _catch(function () {
6989
+ function _temp6() {
6990
+ var next = !!id ? update$5 : create$5;
6991
+ !id && delete data.id;
6992
+ return Promise.resolve(next(data)).then(function (result) {
6993
+ if (!!result) {
6994
+ getById$3(result.data.id).then(function (e) {
6995
+ backToList(e.data.fullName);
6908
6996
  });
6909
- });
6910
- } catch (e) {
6911
- return Promise.reject(e);
6912
- }
6913
- }
6914
- }));
6915
- } catch (err) {
6916
- var _err$response2, _err$response2$data;
6997
+ }
6917
6998
 
6918
- dispatch(setAlert({
6919
- type: "danger",
6920
- 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
6921
- }));
6922
- }
6999
+ if (!id) {
7000
+ alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
7001
+ }
6923
7002
 
6924
- dispatch(setLoading(false));
6925
- }, [filters]);
7003
+ dispatch(setAlert({
7004
+ type: "success",
7005
+ message: (!!id ? "Update" : "Create") + " user successfully"
7006
+ }));
7007
+ });
7008
+ }
6926
7009
 
6927
- var redirectLoginUser = function redirectLoginUser(res) {
6928
- var _res$data2 = res.data,
6929
- token = _res$data2.token,
6930
- id = _res$data2.id,
6931
- firstName = _res$data2.firstName,
6932
- lastName = _res$data2.lastName,
6933
- roles = _res$data2.roles,
6934
- email = _res$data2.email,
6935
- profileImageFileName = _res$data2.profileImageFileName;
6936
- localStorage.setItem(ACCESS_TOKEN, token);
6937
- localStorage.removeItem(NOTIFICATION_ALERT_KEY);
6938
- dispatch(setUser({
6939
- id: id,
6940
- firstName: firstName,
6941
- lastName: lastName,
6942
- roles: roles,
6943
- email: email,
6944
- profileImageFileName: profileImageFileName
6945
- }));
7010
+ var _temp5 = function () {
7011
+ if (!!file) {
7012
+ var formData = new FormData();
7013
+ var name = file.name;
7014
+ formData.append("file", file, name);
7015
+ return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
7016
+ var _res$data2;
6946
7017
 
6947
- if (isDistrict) {
6948
- history.push(HOMEPAGE_DISTRICT$1);
6949
- } else if (roles.includes("Admin")) {
6950
- history.push(HOMEPAGE_ADMIN$1);
6951
- } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
6952
- history.push(HOMEPAGE_TEACHER$1);
6953
- } else if (roles.includes("Student")) {
6954
- history.push(HOMEPAGE_STUDENT$1);
6955
- } else if (roles.includes("Parent")) {
6956
- history.push(HOMEPAGE_PARENT$1);
6957
- } else if (roles.includes("EduTeacher")) {
6958
- history.push(HOMEPAGE_EDU_TEACHER$1);
6959
- } else if (roles.includes("Counselor") || roles.includes("SecondaryTeacher")) {
6960
- history.push(HOMEPAGE_TEACHER$1);
6961
- }
6962
- };
7018
+ var imageUrl = res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.key;
7019
+ data.profileImageFileName = imageUrl;
7020
+ });
7021
+ }
7022
+ }();
6963
7023
 
6964
- var swicthUser = React.useCallback(function (id) {
6965
- try {
6966
- var _temp6 = _catch(function () {
6967
- return Promise.resolve(switchAccountUser(id)).then(function (res) {
6968
- var data = res.data;
6969
- dispatch(setModal({
6970
- isOpen: true,
6971
- type: "warning",
6972
- message: "Do you want to impersonate this user?",
6973
- onConfirm: function () {
6974
- try {
6975
- var _temp9 = function _temp9() {
6976
- dispatch(setLoading(false));
6977
- };
7024
+ return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
7025
+ }, function (err) {
7026
+ var _err$response2, _err$response2$data;
6978
7027
 
6979
- dispatch(setLoading(true));
7028
+ dispatch(setAlert({
7029
+ type: "danger",
7030
+ 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
7031
+ }));
7032
+ });
6980
7033
 
6981
- var _temp10 = _catch(function () {
6982
- var req = {
6983
- email: data.email,
6984
- password: "default",
6985
- accessToken: data.token
6986
- };
6987
- return Promise.resolve(logIn(req)).then(function (res) {
6988
- localStorage.clear();
6989
- redirectLoginUser(res);
6990
- });
6991
- }, function (err) {
6992
- var _err$response3, _err$response3$data;
7034
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7035
+ } catch (e) {
7036
+ return Promise.reject(e);
7037
+ }
7038
+ }, [id, file]);
6993
7039
 
6994
- setAlert({
6995
- type: "danger",
6996
- 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
6997
- });
6998
- });
7040
+ var confirmChangePassword = function confirmChangePassword(data) {
7041
+ try {
7042
+ var _temp13 = function _temp13() {
7043
+ dispatch(setLoading(false));
7044
+ };
6999
7045
 
7000
- return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7001
- } catch (e) {
7002
- return Promise.reject(e);
7003
- }
7004
- }
7046
+ dispatch(setLoading(true));
7047
+
7048
+ var _temp14 = _catch(function () {
7049
+ return Promise.resolve(changePassword(data)).then(function () {
7050
+ dispatch(setAlert({
7051
+ type: "success",
7052
+ message: "Change password successfully"
7005
7053
  }));
7006
7054
  });
7007
- }, function (err) {
7008
- var _err$response4, _err$response4$data;
7055
+ }, function (e) {
7056
+ var _e$response, _e$response$data;
7009
7057
 
7010
7058
  dispatch(setAlert({
7011
7059
  type: "danger",
7012
- message: ((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.title) || err.message
7060
+ message: ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : (_e$response$data = _e$response.data) === null || _e$response$data === void 0 ? void 0 : _e$response$data.title) || e.message
7013
7061
  }));
7014
7062
  });
7015
7063
 
7016
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
7064
+ return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
7017
7065
  } catch (e) {
7018
7066
  return Promise.reject(e);
7019
7067
  }
7020
- }, [filters]);
7021
-
7022
- var reDirectDetailPage = function reDirectDetailPage(id) {
7023
- var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
7024
- history.push(url);
7025
7068
  };
7026
7069
 
7027
- return {
7028
- userList: userList,
7029
- totalItems: totalItems,
7030
- filters: filters,
7031
- queryName: queryName,
7032
- getData: getData,
7033
- removeData: removeData,
7034
- changeFilters: changeFilters,
7035
- reDirectDetailPage: reDirectDetailPage,
7036
- swicthUser: swicthUser
7037
- };
7038
- };
7070
+ var forgotPasswordRequest = React.useCallback(function (data) {
7071
+ try {
7072
+ var _temp17 = function _temp17() {
7073
+ dispatch(setLoading(false));
7074
+ };
7039
7075
 
7040
- var SearchBox = function SearchBox(_ref) {
7041
- var initValue = _ref.initValue,
7042
- onSearch = _ref.onSearch,
7043
- placeholder = _ref.placeholder,
7044
- className = _ref.className,
7045
- style = _ref.style;
7076
+ dispatch(setLoading(true));
7046
7077
 
7047
- var _useState = React.useState(initValue),
7048
- searchString = _useState[0],
7049
- setSearchString = _useState[1];
7078
+ var _temp18 = _catch(function () {
7079
+ return Promise.resolve(forgotChangePassword(data)).then(function () {
7080
+ dispatch(setAlert({
7081
+ type: "success",
7082
+ message: "Send forgot password link successfully"
7083
+ }));
7084
+ });
7085
+ }, function (err) {
7086
+ var _err$response3, _err$response3$data;
7050
7087
 
7051
- React.useEffect(function () {
7052
- setSearchString(initValue);
7053
- }, [initValue]);
7054
- var onKeyUp = React.useCallback(function (e) {
7055
- e.key === "Enter" && onSearch(searchString);
7056
- }, [searchString, onSearch]);
7057
- return React__default.createElement(reactstrap.Input, {
7058
- placeholder: placeholder,
7059
- value: searchString,
7060
- onChange: function onChange(e) {
7061
- return setSearchString(e.target.value);
7062
- },
7063
- onKeyUp: onKeyUp,
7064
- className: className,
7065
- style: style
7066
- });
7067
- };
7088
+ dispatch(setAlert({
7089
+ type: "danger",
7090
+ 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 || "Error occured"
7091
+ }));
7092
+ });
7068
7093
 
7069
- SearchBox.defaultProps = {
7070
- placeholder: "Type something to search",
7071
- className: "",
7072
- style: {}
7094
+ return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
7095
+ } catch (e) {
7096
+ return Promise.reject(e);
7097
+ }
7098
+ }, []);
7099
+ return {
7100
+ userDetail: userDetail,
7101
+ backToList: backToList,
7102
+ confirmData: confirmData,
7103
+ file: file,
7104
+ setFile: setFile,
7105
+ edited: edited,
7106
+ setEdited: setEdited,
7107
+ setEditedTrue: setEditedTrue,
7108
+ confirmChangePassword: confirmChangePassword,
7109
+ forgotPasswordRequest: forgotPasswordRequest
7110
+ };
7073
7111
  };
7074
- var SearchBox$1 = React.memo(SearchBox);
7075
7112
 
7076
- var searchInputStyle = {
7077
- height: 38
7078
- };
7113
+ var userSchema = yup.object({
7114
+ firstName: yup.string().required("First name is required"),
7115
+ lastName: yup.string().required("Last name is required"),
7116
+ dateOfBirth: yup.string().required("Date of birth is required"),
7117
+ email: yup.string().email("Email is invalid").required("Email is required"),
7118
+ roles: yup.array().of(yup.string()).min(1, "Role is required")
7119
+ });
7079
7120
 
7080
- var SearchBoxContainer = function SearchBoxContainer(_ref) {
7081
- var text = _ref.text,
7082
- initValue = _ref.initValue,
7083
- onClick = _ref.onClick,
7084
- onSearch = _ref.onSearch,
7085
- placeholder = _ref.placeholder;
7086
- return React__default.createElement("div", {
7087
- className: "d-flex align-items-center"
7088
- }, React__default.createElement("div", null, React__default.createElement(AddButton, {
7089
- text: text,
7090
- onClick: onClick
7091
- })), React__default.createElement("div", {
7092
- className: "flex-grow-1 ml-2"
7093
- }, React__default.createElement(SearchBox$1, {
7094
- initValue: initValue,
7095
- onSearch: onSearch,
7096
- placeholder: placeholder,
7097
- style: searchInputStyle
7098
- })));
7099
- };
7121
+ var changePasswordSchema = yup.object({
7122
+ oldPassword: yup.string().required("Current password is required"),
7123
+ newPassword: yup.string().required("New password is required"),
7124
+ confirmedNewPassword: yup.string().required("Confirm password is required")
7125
+ });
7100
7126
 
7101
- SearchBoxContainer.defaultProps = {
7102
- placeholder: "Type something to search"
7103
- };
7127
+ var CREATE_USER = "create_user";
7128
+ var EDIT_USER_HEADER = "edit_user";
7129
+ var CHANGE_PASSWORD$1 = "change_password";
7104
7130
 
7105
- var utcToLocalTime = (function (time, FORMAT) {
7106
- if (time === DATE_MIN_VALUE) return "";
7131
+ var UserDetail = function UserDetail() {
7132
+ var _useParams = reactRouterDom.useParams(),
7133
+ id = _useParams.id;
7107
7134
 
7108
- try {
7109
- return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7110
- } catch (_unused) {
7111
- return "";
7112
- }
7113
- });
7135
+ var user = reactRedux.useSelector(function (state) {
7136
+ return state.common.user;
7137
+ });
7114
7138
 
7115
- var header$2 = "User";
7116
-
7117
- var UserList = function UserList() {
7118
- var _useUserList = useUserList(),
7119
- queryName = _useUserList.queryName,
7120
- userList = _useUserList.userList,
7121
- totalItems = _useUserList.totalItems,
7122
- filters = _useUserList.filters,
7123
- removeData = _useUserList.removeData,
7124
- changeFilters = _useUserList.changeFilters,
7125
- reDirectDetailPage = _useUserList.reDirectDetailPage,
7126
- swicthUser = _useUserList.swicthUser;
7127
-
7128
- var _useTranslation = reactI18next.useTranslation(),
7129
- t = _useTranslation.t;
7130
-
7131
- return React__default.createElement("div", {
7132
- className: "fadeIn animated"
7133
- }, React__default.createElement("h5", {
7134
- className: "mb-2"
7135
- }, t("" + header$2)), React__default.createElement(reactstrap.Row, {
7136
- className: "my-2"
7137
- }, React__default.createElement(reactstrap.Col, {
7138
- md: 8
7139
- }, React__default.createElement(SearchBoxContainer, {
7140
- text: t("create_user"),
7141
- onClick: function onClick() {
7142
- return reDirectDetailPage();
7143
- },
7144
- initValue: !!queryName ? queryName : "",
7145
- onSearch: function onSearch(searchString) {
7146
- return changeFilters({
7147
- searchString: searchString
7148
- });
7149
- },
7150
- placeholder: t("type_something_to_search_by_user_name")
7151
- })), React__default.createElement(reactstrap.Col, {
7152
- md: 4,
7153
- className: "d-flex justify-content-end align-items-center"
7154
- }, t("total_of_users"), " : ", totalItems)), React__default.createElement(reactstrap.Row, {
7155
- className: "mb-2"
7156
- }, React__default.createElement(reactstrap.Col, {
7157
- md: 12
7158
- }, userList && userList.length > 0 ? React__default.createElement("div", null, React__default.createElement(reactstrap.Table, {
7159
- bordered: true,
7160
- hover: true,
7161
- striped: true,
7162
- responsive: true,
7163
- size: "sm"
7164
- }, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
7165
- className: "align-top"
7166
- }, t("name")), React__default.createElement("th", {
7167
- className: "align-top"
7168
- }, t("email")), React__default.createElement("th", {
7169
- className: "align-top"
7170
- }, t("age")), React__default.createElement("th", {
7171
- className: "align-top"
7172
- }, t("role")), React__default.createElement("th", {
7173
- className: "align-top"
7174
- }, t("active_status")), React__default.createElement("th", {
7175
- className: "align-top"
7176
- }, t("created_time")), React__default.createElement("th", {
7177
- className: "text-center"
7178
- }, t("action")))), React__default.createElement("tbody", null, userList.map(function (record) {
7179
- return React__default.createElement("tr", {
7180
- key: record.id
7181
- }, React__default.createElement("td", {
7182
- className: "align-middle"
7183
- }, React__default.createElement(LinkEditButton, {
7184
- label: "" + record.fullName,
7185
- onClick: function onClick() {
7186
- return reDirectDetailPage(record.id);
7187
- }
7188
- })), React__default.createElement("td", {
7189
- className: "align-middle"
7190
- }, record.email), React__default.createElement("td", {
7191
- className: "align-middle"
7192
- }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React__default.createElement("td", {
7193
- className: "align-middle"
7194
- }, !!record.roles && record.roles.join(", ")), React__default.createElement("td", {
7195
- className: "align-middle"
7196
- }, record.isActive ? t("active") : t("inactive")), React__default.createElement("td", {
7197
- className: "align-middle"
7198
- }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React__default.createElement("td", {
7199
- className: "text-center align-middle"
7200
- }, React__default.createElement(fa.FaUsersCog, {
7201
- style: {
7202
- fontSize: "18px",
7203
- marginRight: "10px",
7204
- cursor: "pointer"
7205
- },
7206
- onClick: function onClick() {
7207
- return swicthUser(record.id);
7208
- }
7209
- }), React__default.createElement(DeleteButtonIcon, {
7210
- onClick: function onClick() {
7211
- return removeData(record.id);
7212
- }
7213
- })));
7214
- })))) : React__default.createElement(EmptyDataAlert, {
7215
- label: t("user")
7216
- })), React__default.createElement(reactstrap.Col, {
7217
- md: 12
7218
- }, React__default.createElement(CustomPagination, {
7219
- filters: filters,
7220
- totalRecordCount: totalItems,
7221
- changePageSize: function changePageSize(pageSize) {
7222
- return changeFilters({
7223
- pageSize: pageSize
7224
- });
7225
- },
7226
- changePage: function changePage(currentPage) {
7227
- return changeFilters({
7228
- currentPage: currentPage
7229
- });
7230
- }
7231
- }))));
7232
- };
7233
-
7234
- var MAX_FILE_SIZE = 20097152;
7235
-
7236
- var UploadFileButton = function UploadFileButton(_ref) {
7237
- var fileName = _ref.fileName,
7238
- maxWidth = _ref.maxWidth,
7239
- maxHeight = _ref.maxHeight,
7240
- setFile = _ref.setFile,
7241
- canDelete = _ref.canDelete,
7242
- onDelete = _ref.onDelete,
7243
- isCheckFeedBack = _ref.isCheckFeedBack,
7244
- onAddImage = _ref.onAddImage;
7245
- var dispatch = reactRedux.useDispatch();
7246
-
7247
- var _useState = React.useState(""),
7248
- imagePreviewUrl = _useState[0],
7249
- setImagePreviewUrl = _useState[1];
7250
-
7251
- var imageStyle = {
7252
- maxWidth: maxWidth || "100%",
7253
- maxHeight: maxHeight || "100%"
7254
- };
7255
- var imageSrc = imagePreviewUrl || getFileUrl(fileName);
7256
-
7257
- var handleImageChange = function handleImageChange(e) {
7258
- e.preventDefault();
7259
- var reader = new FileReader();
7260
- var newFile = e.target.files[0];
7261
-
7262
- if (newFile.size > MAX_FILE_SIZE) {
7263
- dispatch(setAlert({
7264
- type: "danger",
7265
- message: "File can't be larger than 2MB"
7266
- }));
7267
- return;
7268
- }
7269
-
7270
- reader.onloadend = function () {
7271
- setFile(newFile);
7272
- setImagePreviewUrl(reader.result);
7273
- };
7274
-
7275
- if (newFile) {
7276
- reader.readAsDataURL(newFile);
7277
- }
7278
-
7279
- !!onAddImage && onAddImage();
7280
- };
7281
-
7282
- var imagePreviewContainer = imagePreviewUrl || fileName ? React__default.createElement("img", {
7283
- style: imageStyle,
7284
- src: imageSrc,
7285
- alt: "image"
7286
- }) : null;
7287
- return React__default.createElement("div", {
7288
- className: "mb-2"
7289
- }, React__default.createElement(reactstrap.Form, {
7290
- className: "mb-2"
7291
- }, React__default.createElement(reactstrap.Input, {
7292
- className: "d-none",
7293
- type: "file",
7294
- id: "uploadFile",
7295
- onChange: handleImageChange,
7296
- accept: "image/*"
7297
- }), React__default.createElement("div", {
7298
- className: "d-flex align-items-center"
7299
- }, React__default.createElement(reactstrap.Label, {
7300
- htmlFor: "uploadFile",
7301
- role: "button",
7302
- tabIndex: 0,
7303
- className: styles["input-file-label"]
7304
- }, isCheckFeedBack == true ? React__default.createElement(md.MdAttachFile, null) : React__default.createElement(React__default.Fragment, null, React__default.createElement("i", {
7305
- className: "fa fa-paperclip mr-1",
7306
- "aria-hidden": "true"
7307
- }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React__default.createElement(reactstrap.Button, {
7308
- size: "sm",
7309
- color: "danger",
7310
- className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
7311
- onClick: function onClick() {
7312
- setImagePreviewUrl(null);
7313
- onDelete && onDelete();
7314
- }
7315
- }, React__default.createElement(fa.FaTrashAlt, null)))), imagePreviewContainer);
7316
- };
7317
-
7318
- var initValue$3 = {
7319
- id: "",
7320
- firstName: "",
7321
- lastName: "",
7322
- email: "",
7323
- dateOfBirth: "",
7324
- roles: [],
7325
- isActive: true,
7326
- profileImageFileName: ""
7327
- };
7328
- var USER_LIST_URL = "/admin/user";
7329
- var TITLE$8 = "User detail";
7330
-
7331
- var useUserDetail = function useUserDetail(id) {
7332
- var dispatch = reactRedux.useDispatch();
7333
- var history = reactRouterDom.useHistory();
7334
-
7335
- var _useState = React.useState(initValue$3),
7336
- userDetail = _useState[0],
7337
- setUserDetail = _useState[1];
7338
-
7339
- var _useState2 = React.useState(null),
7340
- file = _useState2[0],
7341
- setFile = _useState2[1];
7342
-
7343
- var _useState3 = React.useState(false),
7344
- edited = _useState3[0],
7345
- setEdited = _useState3[1];
7346
-
7347
- var setEditedTrue = function setEditedTrue() {
7348
- try {
7349
- localStorage.setItem(window.location.href, "true");
7350
- setEdited(true);
7351
- return Promise.resolve();
7352
- } catch (e) {
7353
- return Promise.reject(e);
7354
- }
7355
- };
7356
-
7357
- React.useEffect(function () {
7358
- document.title = TITLE$8;
7359
- setEdited(false);
7360
- if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
7361
- }, []);
7362
- React.useEffect(function () {
7363
- !!id && getData();
7364
- }, [id]);
7365
- var getData = React.useCallback(function () {
7366
- try {
7367
- var _temp3 = function _temp3() {
7368
- dispatch(setLoading(false));
7369
- };
7370
-
7371
- dispatch(setLoading(true));
7372
-
7373
- var _temp4 = _catch(function () {
7374
- return Promise.resolve(getById$3(id)).then(function (res) {
7375
- var _res$data;
7376
-
7377
- setUserDetail(_extends({}, res.data, {
7378
- dateOfBirth: dateFns.format(new Date(res.data.dateOfBirth), DATE_FORMAT),
7379
- roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
7380
- }));
7381
- document.title = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.fullName;
7382
- });
7383
- }, function (err) {
7384
- var _err$response, _err$response$data;
7385
-
7386
- dispatch(setAlert({
7387
- type: "danger",
7388
- 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
7389
- }));
7390
- });
7391
-
7392
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
7393
- } catch (e) {
7394
- return Promise.reject(e);
7395
- }
7396
- }, [id]);
7397
- var backToList = React.useCallback(function (user) {
7398
- !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
7399
- }, []);
7400
- var confirmData = React.useCallback(function (data) {
7401
- try {
7402
- var _temp9 = function _temp9() {
7403
- dispatch(setLoading(false));
7404
- };
7405
-
7406
- dispatch(setLoading(true));
7407
-
7408
- var _temp10 = _catch(function () {
7409
- function _temp6() {
7410
- var next = !!id ? update$5 : create$5;
7411
- !id && delete data.id;
7412
- return Promise.resolve(next(data)).then(function (result) {
7413
- if (!!result) {
7414
- getById$3(result.data.id).then(function (e) {
7415
- backToList(e.data.fullName);
7416
- });
7417
- }
7418
-
7419
- if (!id) {
7420
- alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
7421
- }
7422
-
7423
- dispatch(setAlert({
7424
- type: "success",
7425
- message: (!!id ? "Update" : "Create") + " user successfully"
7426
- }));
7427
- });
7428
- }
7429
-
7430
- var _temp5 = function () {
7431
- if (!!file) {
7432
- var formData = new FormData();
7433
- var name = file.name;
7434
- formData.append("file", file, name);
7435
- return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
7436
- var _res$data2;
7437
-
7438
- var imageUrl = res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.key;
7439
- data.profileImageFileName = imageUrl;
7440
- });
7441
- }
7442
- }();
7443
-
7444
- return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
7445
- }, function (err) {
7446
- var _err$response2, _err$response2$data;
7447
-
7448
- dispatch(setAlert({
7449
- type: "danger",
7450
- 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
7451
- }));
7452
- });
7453
-
7454
- return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7455
- } catch (e) {
7456
- return Promise.reject(e);
7457
- }
7458
- }, [id, file]);
7459
-
7460
- var confirmChangePassword = function confirmChangePassword(data) {
7461
- try {
7462
- var _temp13 = function _temp13() {
7463
- dispatch(setLoading(false));
7464
- };
7465
-
7466
- dispatch(setLoading(true));
7467
-
7468
- var _temp14 = _catch(function () {
7469
- return Promise.resolve(changePassword(data)).then(function () {
7470
- dispatch(setAlert({
7471
- type: "success",
7472
- message: "Change password successfully"
7473
- }));
7474
- });
7475
- }, function (e) {
7476
- var _e$response, _e$response$data;
7477
-
7478
- dispatch(setAlert({
7479
- type: "danger",
7480
- message: ((_e$response = e.response) === null || _e$response === void 0 ? void 0 : (_e$response$data = _e$response.data) === null || _e$response$data === void 0 ? void 0 : _e$response$data.title) || e.message
7481
- }));
7482
- });
7483
-
7484
- return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
7485
- } catch (e) {
7486
- return Promise.reject(e);
7487
- }
7488
- };
7489
-
7490
- var forgotPasswordRequest = React.useCallback(function (data) {
7491
- try {
7492
- var _temp17 = function _temp17() {
7493
- dispatch(setLoading(false));
7494
- };
7495
-
7496
- dispatch(setLoading(true));
7497
-
7498
- var _temp18 = _catch(function () {
7499
- return Promise.resolve(forgotChangePassword(data)).then(function () {
7500
- dispatch(setAlert({
7501
- type: "success",
7502
- message: "Send forgot password link successfully"
7503
- }));
7504
- });
7505
- }, function (err) {
7506
- var _err$response3, _err$response3$data;
7507
-
7508
- dispatch(setAlert({
7509
- type: "danger",
7510
- 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 || "Error occured"
7511
- }));
7512
- });
7513
-
7514
- return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
7515
- } catch (e) {
7516
- return Promise.reject(e);
7517
- }
7518
- }, []);
7519
- return {
7520
- userDetail: userDetail,
7521
- backToList: backToList,
7522
- confirmData: confirmData,
7523
- file: file,
7524
- setFile: setFile,
7525
- edited: edited,
7526
- setEdited: setEdited,
7527
- setEditedTrue: setEditedTrue,
7528
- confirmChangePassword: confirmChangePassword,
7529
- forgotPasswordRequest: forgotPasswordRequest
7530
- };
7531
- };
7532
-
7533
- var userSchema = yup.object({
7534
- firstName: yup.string().required("First name is required"),
7535
- lastName: yup.string().required("Last name is required"),
7536
- dateOfBirth: yup.string().required("Date of birth is required"),
7537
- email: yup.string().email("Email is invalid").required("Email is required"),
7538
- roles: yup.array().of(yup.string()).min(1, "Role is required")
7539
- });
7540
-
7541
- var changePasswordSchema = yup.object({
7542
- oldPassword: yup.string().required("Current password is required"),
7543
- newPassword: yup.string().required("New password is required"),
7544
- confirmedNewPassword: yup.string().required("Confirm password is required")
7545
- });
7546
-
7547
- var CREATE_USER = "create_user";
7548
- var EDIT_USER_HEADER = "edit_user";
7549
- var CHANGE_PASSWORD$1 = "change_password";
7550
-
7551
- var UserDetail = function UserDetail() {
7552
- var _useParams = reactRouterDom.useParams(),
7553
- id = _useParams.id;
7554
-
7555
- var user = reactRedux.useSelector(function (state) {
7556
- return state.common.user;
7557
- });
7558
-
7559
- var _useTranslation = reactI18next.useTranslation(),
7560
- t = _useTranslation.t;
7139
+ var _useTranslation = reactI18next.useTranslation(),
7140
+ t = _useTranslation.t;
7561
7141
 
7562
7142
  var _useUserDetail = useUserDetail(id),
7563
7143
  userDetail = _useUserDetail.userDetail,
@@ -7623,15 +7203,12 @@ var UserDetail = function UserDetail() {
7623
7203
  return;
7624
7204
  }
7625
7205
 
7626
- if ([ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER, ROLES.COUNSELOR, ROLES.SECONDARY_TEACHER].includes(role)) {
7206
+ if ([ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER].includes(role)) {
7627
7207
  setFieldValue("roles", [role]);
7628
7208
  return;
7629
7209
  }
7630
7210
 
7631
- var teacherAssistantRoles = values.roles.filter(function (item) {
7632
- return ![ROLES.STUDENT, ROLES.ADMIN, ROLES.PARENT, ROLES.EDUTEACHER, ROLES.COUNSELOR, ROLES.SECONDARY_TEACHER].includes(item);
7633
- });
7634
- setFieldValue("roles", [].concat(teacherAssistantRoles, [role]));
7211
+ setFieldValue("roles", [].concat(values.roles, [role]));
7635
7212
  }, [values.roles]);
7636
7213
  return React__default.createElement("div", {
7637
7214
  className: "animated fadeIn detail-buttons-padding"
@@ -8019,6 +7596,42 @@ var CreatableSelector = function CreatableSelector(props) {
8019
7596
  });
8020
7597
  };
8021
7598
 
7599
+ var SearchBox = function SearchBox(_ref) {
7600
+ var initValue = _ref.initValue,
7601
+ onSearch = _ref.onSearch,
7602
+ placeholder = _ref.placeholder,
7603
+ className = _ref.className,
7604
+ style = _ref.style;
7605
+
7606
+ var _useState = React.useState(initValue),
7607
+ searchString = _useState[0],
7608
+ setSearchString = _useState[1];
7609
+
7610
+ React.useEffect(function () {
7611
+ setSearchString(initValue);
7612
+ }, [initValue]);
7613
+ var onKeyUp = React.useCallback(function (e) {
7614
+ e.key === "Enter" && onSearch(searchString);
7615
+ }, [searchString, onSearch]);
7616
+ return React__default.createElement(reactstrap.Input, {
7617
+ placeholder: placeholder,
7618
+ value: searchString,
7619
+ onChange: function onChange(e) {
7620
+ return setSearchString(e.target.value);
7621
+ },
7622
+ onKeyUp: onKeyUp,
7623
+ className: className,
7624
+ style: style
7625
+ });
7626
+ };
7627
+
7628
+ SearchBox.defaultProps = {
7629
+ placeholder: "Type something to search",
7630
+ className: "",
7631
+ style: {}
7632
+ };
7633
+ var SearchBox$1 = React.memo(SearchBox);
7634
+
8022
7635
  var QuestionTypeSelector = function QuestionTypeSelector(props) {
8023
7636
  var id = props.id;
8024
7637
  var initValue = !!id ? QUESTION_TYPES_OPTIONS.find(function (option) {
@@ -8374,23 +7987,36 @@ var NotificationStatusSelector = function NotificationStatusSelector(_ref) {
8374
7987
 
8375
7988
  var NotificationStatusSelector$1 = React.memo(NotificationStatusSelector);
8376
7989
 
7990
+ var utcToLocalTime = (function (time, FORMAT) {
7991
+ if (time === DATE_MIN_VALUE) return "";
7992
+
7993
+ try {
7994
+ return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7995
+ } catch (_unused) {
7996
+ return "";
7997
+ }
7998
+ });
7999
+
8377
8000
  var defaultFilters = {
8378
8001
  currentPage: 1,
8379
8002
  pageSize: 30,
8380
8003
  searchString: "",
8381
8004
  isRead: false
8382
8005
  };
8383
- var TITLE$9 = "Notification list";
8006
+ var TITLE$8 = "Notification list";
8384
8007
  var NOTIFICATION_CHANNEL$1 = "NOTIFICATION_CHANNEL";
8385
8008
  var NEW_NOTIFICATION$1 = "NEW_NOTIFICATION";
8386
8009
 
8387
8010
  var useNotificationList = function useNotificationList() {
8388
8011
  var dispatch = reactRedux.useDispatch();
8389
- var userId = reactRedux.useSelector(function (state) {
8390
- var _state$common$user;
8391
8012
 
8392
- return (_state$common$user = state.common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.id;
8013
+ var _useParams = reactRouterDom.useParams(),
8014
+ roles = _useParams.roles;
8015
+
8016
+ var user = reactRedux.useSelector(function (state) {
8017
+ return state.common.user;
8393
8018
  });
8019
+ var userId = user === null || user === void 0 ? void 0 : user.id;
8394
8020
  var notificationList = reactRedux.useSelector(function (state) {
8395
8021
  return state.notification.notificationList;
8396
8022
  });
@@ -8481,7 +8107,9 @@ var useNotificationList = function useNotificationList() {
8481
8107
  dispatch(setLoading(true));
8482
8108
 
8483
8109
  var _temp4 = _catch(function () {
8484
- return Promise.resolve(get(filters)).then(function (res) {
8110
+ return Promise.resolve(get(_extends({}, filters, {
8111
+ roles: !(roles !== null && roles !== void 0 && roles.trim()) ? user === null || user === void 0 ? void 0 : user.roles : [roles] || []
8112
+ }))).then(function (res) {
8485
8113
  var _res$data = res.data,
8486
8114
  items = _res$data.items,
8487
8115
  totalItems = _res$data.totalItems;
@@ -8505,7 +8133,7 @@ var useNotificationList = function useNotificationList() {
8505
8133
  }
8506
8134
  }, [filters]);
8507
8135
  React.useEffect(function () {
8508
- document.title = TITLE$9;
8136
+ document.title = TITLE$8;
8509
8137
  }, []);
8510
8138
  React.useEffect(function () {
8511
8139
  getData();
@@ -8590,7 +8218,7 @@ var useNotificationList = function useNotificationList() {
8590
8218
  };
8591
8219
  };
8592
8220
 
8593
- var header$3 = "Notification list";
8221
+ var header$2 = "Notification list";
8594
8222
  var ICON_SIZE = 20;
8595
8223
 
8596
8224
  var NotificationList = function NotificationList() {
@@ -8611,7 +8239,7 @@ var NotificationList = function NotificationList() {
8611
8239
  }
8612
8240
  }, React__default.createElement("h5", {
8613
8241
  className: "mb-2"
8614
- }, header$3), React__default.createElement(reactstrap.Row, {
8242
+ }, header$2), React__default.createElement(reactstrap.Row, {
8615
8243
  className: "my-2"
8616
8244
  }, React__default.createElement(reactstrap.Col, {
8617
8245
  md: 8
@@ -8711,6 +8339,35 @@ var NotificationList = function NotificationList() {
8711
8339
  }))));
8712
8340
  };
8713
8341
 
8342
+ var searchInputStyle = {
8343
+ height: 38
8344
+ };
8345
+
8346
+ var SearchBoxContainer = function SearchBoxContainer(_ref) {
8347
+ var text = _ref.text,
8348
+ initValue = _ref.initValue,
8349
+ onClick = _ref.onClick,
8350
+ onSearch = _ref.onSearch,
8351
+ placeholder = _ref.placeholder;
8352
+ return React__default.createElement("div", {
8353
+ className: "d-flex align-items-center"
8354
+ }, React__default.createElement("div", null, React__default.createElement(AddButton, {
8355
+ text: text,
8356
+ onClick: onClick
8357
+ })), React__default.createElement("div", {
8358
+ className: "flex-grow-1 ml-2"
8359
+ }, React__default.createElement(SearchBox$1, {
8360
+ initValue: initValue,
8361
+ onSearch: onSearch,
8362
+ placeholder: placeholder,
8363
+ style: searchInputStyle
8364
+ })));
8365
+ };
8366
+
8367
+ SearchBoxContainer.defaultProps = {
8368
+ placeholder: "Type something to search"
8369
+ };
8370
+
8714
8371
  var CustomTabs = function CustomTabs(props) {
8715
8372
  var history = reactRouterDom.useHistory();
8716
8373
  var location = reactRouterDom.useLocation();
@@ -9115,7 +8772,7 @@ var get$8 = function get(filter) {
9115
8772
  });
9116
8773
  };
9117
8774
 
9118
- var TITLE$a = "Gallery";
8775
+ var TITLE$9 = "Gallery";
9119
8776
  var defaultFilter = {
9120
8777
  searchString: ""
9121
8778
  };
@@ -9352,7 +9009,7 @@ var useGalleryList = function useGalleryList(isLibrary) {
9352
9009
  }
9353
9010
  }, [dispatch, filters]);
9354
9011
  React.useEffect(function () {
9355
- document.title = TITLE$a;
9012
+ document.title = TITLE$9;
9356
9013
  dispatch(setTargetMedia({
9357
9014
  targetMedia: undefined
9358
9015
  }));
@@ -9544,7 +9201,7 @@ var MediaDetail = function MediaDetail(_ref) {
9544
9201
 
9545
9202
  var MediaDetail$1 = React__default.memo(MediaDetail);
9546
9203
 
9547
- var header$4 = "Gallery";
9204
+ var header$3 = "Gallery";
9548
9205
 
9549
9206
  var GalleryList = function GalleryList(_ref) {
9550
9207
  var isLibrary = _ref.isLibrary;
@@ -9555,7 +9212,7 @@ var GalleryList = function GalleryList(_ref) {
9555
9212
  className: "fadeIn animated"
9556
9213
  }, !isLibrary && React__default.createElement("h5", {
9557
9214
  className: "mb-2"
9558
- }, header$4), React__default.createElement(reactstrap.Row, {
9215
+ }, header$3), React__default.createElement(reactstrap.Row, {
9559
9216
  className: "mb-2"
9560
9217
  }, React__default.createElement(reactstrap.Col, {
9561
9218
  md: 8
@@ -10181,6 +9838,9 @@ var commonReducer$8 = toolkit.createReducer(initialState$e, function (builder) {
10181
9838
  });
10182
9839
  });
10183
9840
 
9841
+ var setUserList = toolkit.createAction("users/setUserList");
9842
+ var setStudentList = toolkit.createAction("users/setStudentList");
9843
+
10184
9844
  var initialState$f = {
10185
9845
  userList: [],
10186
9846
  totalItems: 0,
@@ -10700,193 +10360,545 @@ var dataPlayer = toolkit.createReducer(initialState$v, function (builder) {
10700
10360
  return response.questionId === questionId;
10701
10361
  });
10702
10362
 
10703
- if (!existedResponse) {
10704
- questionResponseCloner.push({
10705
- questionId: questionId,
10706
- text: text
10707
- });
10708
- } else {
10709
- existedResponse.text = text;
10363
+ if (!existedResponse) {
10364
+ questionResponseCloner.push({
10365
+ questionId: questionId,
10366
+ text: text
10367
+ });
10368
+ } else {
10369
+ existedResponse.text = text;
10370
+ }
10371
+
10372
+ return _extends({}, state, {
10373
+ questionResponse: questionResponseCloner
10374
+ });
10375
+ }).addCase(reset, function (_state, _action) {
10376
+ return initialState$v;
10377
+ });
10378
+ });
10379
+
10380
+ var setCertificateList = toolkit.createAction("certificates/setCertificateList");
10381
+
10382
+ var initialState$w = {
10383
+ certificateList: [],
10384
+ totalItems: 0
10385
+ };
10386
+ var commonReducer$f = toolkit.createReducer(initialState$w, function (builder) {
10387
+ builder.addCase(setCertificateList, function (state, action) {
10388
+ state.certificateList = action.payload.certificateList;
10389
+ state.totalItems = action.payload.totalItems;
10390
+ }).addCase(reset, function (_state, _action) {
10391
+ return initialState$w;
10392
+ });
10393
+ });
10394
+
10395
+ var setImproveMyClass = toolkit.createAction("improveMyClass/setImproveMyClass");
10396
+
10397
+ var initialState$x = {
10398
+ improveMyClassList: []
10399
+ };
10400
+ var commonReducer$g = toolkit.createReducer(initialState$x, function (builder) {
10401
+ builder.addCase(setImproveMyClass, function (state, action) {
10402
+ state.improveMyClassList = action.payload;
10403
+ }).addCase(reset, function (_state, _action) {
10404
+ return initialState$x;
10405
+ });
10406
+ });
10407
+
10408
+ var setFilterWidget = toolkit.createAction("setFilterWidget");
10409
+
10410
+ var initialState$y = {
10411
+ filterWidget: "Year"
10412
+ };
10413
+ var widgetReducer = toolkit.createReducer(initialState$y, function (builder) {
10414
+ builder.addCase(setFilterWidget, function (state, action) {
10415
+ state.filterWidget = action.payload.filterWidget;
10416
+ }).addCase(reset, function (_state, _action) {
10417
+ return initialState$y;
10418
+ });
10419
+ });
10420
+
10421
+ var setBandScoreList = toolkit.createAction("bandScores/setBandScoreList");
10422
+
10423
+ var initialState$z = {
10424
+ bandScoreList: [],
10425
+ totalItems: 0
10426
+ };
10427
+ var commonReducer$h = toolkit.createReducer(initialState$z, function (builder) {
10428
+ builder.addCase(setBandScoreList, function (state, action) {
10429
+ state.bandScoreList = action.payload.bandScoreList;
10430
+ state.totalItems = action.payload.totalItems;
10431
+ }).addCase(reset, function (_state, _action) {
10432
+ return initialState$z;
10433
+ });
10434
+ });
10435
+
10436
+ var setSchoolBlankDayList = toolkit.createAction("schoolBlankDays/setSchoolBlankDayList");
10437
+
10438
+ var initialState$A = {
10439
+ schoolBlankDayList: [],
10440
+ totalItems: 0
10441
+ };
10442
+ var commonReducer$i = toolkit.createReducer(initialState$A, function (builder) {
10443
+ builder.addCase(setSchoolBlankDayList, function (state, action) {
10444
+ state.schoolBlankDayList = action.payload.schoolBlankDayList;
10445
+ state.totalItems = action.payload.totalItems;
10446
+ }).addCase(reset, function (_state, _action) {
10447
+ return initialState$A;
10448
+ });
10449
+ });
10450
+
10451
+ var setStudentIdSelectedByTeacher = toolkit.createAction("navMobile/setStudentIdSelectedByTeacher");
10452
+
10453
+ var initialState$B = {
10454
+ studentIdSelectedByTeacher: 0
10455
+ };
10456
+ var navMobileReducer = toolkit.createReducer(initialState$B, function (builder) {
10457
+ builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10458
+ state.studentIdSelectedByTeacher = action.payload;
10459
+ }).addCase(reset, function (_state, _action) {
10460
+ return initialState$B;
10461
+ });
10462
+ });
10463
+
10464
+ var rootReducer = combineReducers({
10465
+ common: commonReducer,
10466
+ classes: classReducer,
10467
+ conferenceRubrics: conferenceRubricReducer,
10468
+ faqs: commonReducer$1,
10469
+ skills: commonReducer$2,
10470
+ emailTemplate: emailTemplateReducer,
10471
+ suggestionBank: suggestionBankReducer,
10472
+ learningStrategy: learningStrategyReducer,
10473
+ subjects: commonReducer$3,
10474
+ learningSupportCategories: commonReducer$4,
10475
+ questionBank: questionBankReducer,
10476
+ badges: commonReducer$5,
10477
+ semester: commonReducer$6,
10478
+ goalExamples: commonReducer$8,
10479
+ users: commonReducer$9,
10480
+ reflections: reflectionReducer,
10481
+ reflectionResults: reflectionReducer$1,
10482
+ feedbacks: commonReducer$a,
10483
+ assessments: commonReducer$b,
10484
+ questionByCategory: questionCategoryReducer,
10485
+ mailCategory: questionBankReducer$1,
10486
+ questionCate: questionCateReducer,
10487
+ notification: questionBankReducer$2,
10488
+ myStudent: commonReducer$c,
10489
+ assignments: commonReducer$7,
10490
+ assistants: assistantReducer,
10491
+ sesstionTemplates: sessionTemplateReducer,
10492
+ sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10493
+ tutorialScreens: tutorialScreenReducer,
10494
+ customAlerts: commonReducer$d,
10495
+ gallery: commonReducer$e,
10496
+ dashboard: dashboardReducer,
10497
+ sessionPlayer: sessionPlayerReducer,
10498
+ dataPlayer: dataPlayer,
10499
+ certificate: commonReducer$f,
10500
+ improveMyClass: commonReducer$g,
10501
+ widget: widgetReducer,
10502
+ bandScores: commonReducer$h,
10503
+ schoolBlankDays: commonReducer$i,
10504
+ navMobileReducer: navMobileReducer
10505
+ });
10506
+
10507
+ var store = toolkit.configureStore({
10508
+ reducer: rootReducer,
10509
+ middleware: function middleware(getDefaultMiddleware) {
10510
+ return getDefaultMiddleware({
10511
+ serializableCheck: false
10512
+ }).concat(logger);
10513
+ }
10514
+ });
10515
+
10516
+ var isInViewport = function isInViewport(el) {
10517
+ var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
10518
+ return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
10519
+ };
10520
+
10521
+ var debounce = function debounce(callback, wait) {
10522
+ var timeout = null;
10523
+ return function () {
10524
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10525
+ args[_key] = arguments[_key];
10710
10526
  }
10711
10527
 
10712
- return _extends({}, state, {
10713
- questionResponse: questionResponseCloner
10714
- });
10715
- }).addCase(reset, function (_state, _action) {
10716
- return initialState$v;
10717
- });
10718
- });
10528
+ var next = function next() {
10529
+ return callback.apply(void 0, args);
10530
+ };
10719
10531
 
10720
- var setCertificateList = toolkit.createAction("certificates/setCertificateList");
10532
+ clearTimeout(timeout);
10533
+ timeout = setTimeout(next, wait);
10534
+ };
10535
+ };
10721
10536
 
10722
- var initialState$w = {
10723
- certificateList: [],
10724
- totalItems: 0
10537
+ var getTextFromHTML = function getTextFromHTML(htmlString) {
10538
+ var p = document.createElement("p");
10539
+ p.innerHTML = htmlString;
10540
+ var text = p.innerText;
10541
+ p.remove();
10542
+ return text;
10725
10543
  };
10726
- var commonReducer$f = toolkit.createReducer(initialState$w, function (builder) {
10727
- builder.addCase(setCertificateList, function (state, action) {
10728
- state.certificateList = action.payload.certificateList;
10729
- state.totalItems = action.payload.totalItems;
10730
- }).addCase(reset, function (_state, _action) {
10731
- return initialState$w;
10732
- });
10544
+
10545
+ var generateRandomString = (function () {
10546
+ return (Math.random() + 1).toString(36).substring(7);
10733
10547
  });
10734
10548
 
10735
- var setImproveMyClass = toolkit.createAction("improveMyClass/setImproveMyClass");
10549
+ var amplitudeClient = amplitude.getInstance();
10736
10550
 
10737
- var initialState$x = {
10738
- improveMyClassList: []
10739
- };
10740
- var commonReducer$g = toolkit.createReducer(initialState$x, function (builder) {
10741
- builder.addCase(setImproveMyClass, function (state, action) {
10742
- state.improveMyClassList = action.payload;
10743
- }).addCase(reset, function (_state, _action) {
10744
- return initialState$x;
10551
+ var USER_URL$2 = "/admin/user";
10552
+ var CREATE_USER_URL = "/admin/create-user";
10553
+ var TITLE$a = "User list";
10554
+ var HOMEPAGE_TEACHER$1 = "/home";
10555
+ var HOMEPAGE_STUDENT$1 = "/home";
10556
+ var HOMEPAGE_ADMIN$1 = "/admin/dashboard";
10557
+ var HOMEPAGE_PARENT$1 = "/parent";
10558
+ var HOMEPAGE_DISTRICT$1 = "/admin/schools";
10559
+ var HOMEPAGE_EDU_TEACHER$1 = "/list-student";
10560
+
10561
+ var useUserList = function useUserList() {
10562
+ var history = reactRouterDom.useHistory();
10563
+ var query = new URLSearchParams(location.search);
10564
+ var queryName = query.get("query");
10565
+ var userList = reactRedux.useSelector(function (state) {
10566
+ return state.users.userList;
10567
+ });
10568
+ var totalItems = reactRedux.useSelector(function (state) {
10569
+ return state.users.totalItems;
10745
10570
  });
10746
- });
10747
10571
 
10748
- var setFilterWidget = toolkit.createAction("setFilterWidget");
10572
+ var _useFilters = useFilters(),
10573
+ filters = _useFilters.filters,
10574
+ changeFilters = _useFilters.changeFilters;
10749
10575
 
10750
- var initialState$y = {
10751
- filterWidget: "Year"
10752
- };
10753
- var widgetReducer = toolkit.createReducer(initialState$y, function (builder) {
10754
- builder.addCase(setFilterWidget, function (state, action) {
10755
- state.filterWidget = action.payload.filterWidget;
10756
- }).addCase(reset, function (_state, _action) {
10757
- return initialState$y;
10758
- });
10759
- });
10576
+ var _useState = React.useState(!!queryName ? queryName : ""),
10577
+ fullName = _useState[0],
10578
+ setFullName = _useState[1];
10760
10579
 
10761
- var setBandScoreList = toolkit.createAction("bandScores/setBandScoreList");
10580
+ var isDistrict = window.location.host.includes("-district");
10581
+ var dispatch = reactRedux.useDispatch();
10582
+ var getData = React.useCallback(function (fullName) {
10583
+ try {
10584
+ var _temp3 = function _temp3() {
10585
+ dispatch(setLoading(false));
10586
+ };
10762
10587
 
10763
- var initialState$z = {
10764
- bandScoreList: [],
10765
- totalItems: 0
10766
- };
10767
- var commonReducer$h = toolkit.createReducer(initialState$z, function (builder) {
10768
- builder.addCase(setBandScoreList, function (state, action) {
10769
- state.bandScoreList = action.payload.bandScoreList;
10770
- state.totalItems = action.payload.totalItems;
10771
- }).addCase(reset, function (_state, _action) {
10772
- return initialState$z;
10773
- });
10774
- });
10588
+ dispatch(setLoading(true));
10775
10589
 
10776
- var setSchoolBlankDayList = toolkit.createAction("schoolBlankDays/setSchoolBlankDayList");
10590
+ var _temp4 = _catch(function () {
10591
+ return Promise.resolve(fullName ? get$5(_extends({}, filters, {
10592
+ searchString: fullName
10593
+ })) : get$5(filters)).then(function (res) {
10594
+ var _res$data = res.data,
10595
+ items = _res$data.items,
10596
+ totalItems = _res$data.totalItems;
10777
10597
 
10778
- var initialState$A = {
10779
- schoolBlankDayList: [],
10780
- totalItems: 0
10781
- };
10782
- var commonReducer$i = toolkit.createReducer(initialState$A, function (builder) {
10783
- builder.addCase(setSchoolBlankDayList, function (state, action) {
10784
- state.schoolBlankDayList = action.payload.schoolBlankDayList;
10785
- state.totalItems = action.payload.totalItems;
10786
- }).addCase(reset, function (_state, _action) {
10787
- return initialState$A;
10788
- });
10789
- });
10598
+ for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
10599
+ var user = _step.value;
10600
+ user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
10601
+ }
10602
+
10603
+ dispatch(setUserList({
10604
+ userList: items,
10605
+ totalItems: totalItems
10606
+ }));
10607
+ });
10608
+ }, function (err) {
10609
+ var _err$response, _err$response$data;
10610
+
10611
+ dispatch(setAlert({
10612
+ type: "danger",
10613
+ 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
10614
+ }));
10615
+ });
10616
+
10617
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
10618
+ } catch (e) {
10619
+ return Promise.reject(e);
10620
+ }
10621
+ }, [dispatch, filters]);
10622
+ React.useEffect(function () {
10623
+ document.title = TITLE$a;
10624
+ }, []);
10625
+ React.useEffect(function () {
10626
+ if (!!fullName) {
10627
+ getData(fullName);
10628
+ setFullName(null);
10629
+ } else {
10630
+ getData();
10631
+ }
10632
+ }, [filters]);
10633
+ var removeData = React.useCallback(function (id) {
10634
+ dispatch(setLoading(true));
10635
+
10636
+ try {
10637
+ dispatch(setModal({
10638
+ isOpen: true,
10639
+ type: "warning",
10640
+ message: "Do you want to remove this user?",
10641
+ onConfirm: function () {
10642
+ try {
10643
+ return Promise.resolve(remove$3(id)).then(function () {
10644
+ dispatch(setAlert({
10645
+ type: "success",
10646
+ message: "Remove user successfully"
10647
+ }));
10648
+ changeFilters({
10649
+ currentPage: 1
10650
+ });
10651
+ });
10652
+ } catch (e) {
10653
+ return Promise.reject(e);
10654
+ }
10655
+ }
10656
+ }));
10657
+ } catch (err) {
10658
+ var _err$response2, _err$response2$data;
10659
+
10660
+ dispatch(setAlert({
10661
+ type: "danger",
10662
+ 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
10663
+ }));
10664
+ }
10665
+
10666
+ dispatch(setLoading(false));
10667
+ }, [filters]);
10668
+
10669
+ var redirectLoginUser = function redirectLoginUser(res) {
10670
+ var _res$data2 = res.data,
10671
+ token = _res$data2.token,
10672
+ id = _res$data2.id,
10673
+ firstName = _res$data2.firstName,
10674
+ lastName = _res$data2.lastName,
10675
+ roles = _res$data2.roles,
10676
+ email = _res$data2.email,
10677
+ profileImageFileName = _res$data2.profileImageFileName;
10678
+ localStorage.setItem(ACCESS_TOKEN, token);
10679
+ localStorage.removeItem(NOTIFICATION_ALERT_KEY);
10680
+ dispatch(setUser({
10681
+ id: id,
10682
+ firstName: firstName,
10683
+ lastName: lastName,
10684
+ roles: roles,
10685
+ email: email,
10686
+ profileImageFileName: profileImageFileName
10687
+ }));
10688
+
10689
+ if (isDistrict) {
10690
+ history.push(HOMEPAGE_DISTRICT$1);
10691
+ } else if (roles.includes("Admin")) {
10692
+ history.push(HOMEPAGE_ADMIN$1);
10693
+ } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
10694
+ history.push(HOMEPAGE_TEACHER$1);
10695
+ } else if (roles.includes("Student")) {
10696
+ history.push(HOMEPAGE_STUDENT$1);
10697
+ } else if (roles.includes("Parent")) {
10698
+ history.push(HOMEPAGE_PARENT$1);
10699
+ } else if (roles.includes("EduTeacher")) {
10700
+ history.push(HOMEPAGE_EDU_TEACHER$1);
10701
+ } else if (roles.includes("Counselor") || roles.includes("SecondaryTeacher")) {
10702
+ history.push(HOMEPAGE_TEACHER$1);
10703
+ }
10704
+ };
10705
+
10706
+ var swicthUser = React.useCallback(function (id) {
10707
+ try {
10708
+ var _temp6 = _catch(function () {
10709
+ return Promise.resolve(switchAccountUser(id)).then(function (res) {
10710
+ var data = res.data;
10711
+ dispatch(setModal({
10712
+ isOpen: true,
10713
+ type: "warning",
10714
+ message: "Do you want to impersonate this user?",
10715
+ onConfirm: function () {
10716
+ try {
10717
+ var _temp9 = function _temp9() {
10718
+ dispatch(setLoading(false));
10719
+ };
10790
10720
 
10791
- var setStudentIdSelectedByTeacher = toolkit.createAction("navMobile/setStudentIdSelectedByTeacher");
10721
+ dispatch(setLoading(true));
10792
10722
 
10793
- var initialState$B = {
10794
- studentIdSelectedByTeacher: 0
10795
- };
10796
- var navMobileReducer = toolkit.createReducer(initialState$B, function (builder) {
10797
- builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10798
- state.studentIdSelectedByTeacher = action.payload;
10799
- }).addCase(reset, function (_state, _action) {
10800
- return initialState$B;
10801
- });
10802
- });
10723
+ var _temp10 = _catch(function () {
10724
+ var req = {
10725
+ email: data.email,
10726
+ password: "default",
10727
+ accessToken: data.token
10728
+ };
10729
+ return Promise.resolve(logIn(req)).then(function (res) {
10730
+ localStorage.clear();
10731
+ redirectLoginUser(res);
10732
+ });
10733
+ }, function (err) {
10734
+ var _err$response3, _err$response3$data;
10803
10735
 
10804
- var rootReducer = combineReducers({
10805
- common: commonReducer,
10806
- classes: classReducer,
10807
- conferenceRubrics: conferenceRubricReducer,
10808
- faqs: commonReducer$1,
10809
- skills: commonReducer$2,
10810
- emailTemplate: emailTemplateReducer,
10811
- suggestionBank: suggestionBankReducer,
10812
- learningStrategy: learningStrategyReducer,
10813
- subjects: commonReducer$3,
10814
- learningSupportCategories: commonReducer$4,
10815
- questionBank: questionBankReducer,
10816
- badges: commonReducer$5,
10817
- semester: commonReducer$6,
10818
- goalExamples: commonReducer$8,
10819
- users: commonReducer$9,
10820
- reflections: reflectionReducer,
10821
- reflectionResults: reflectionReducer$1,
10822
- feedbacks: commonReducer$a,
10823
- assessments: commonReducer$b,
10824
- questionByCategory: questionCategoryReducer,
10825
- mailCategory: questionBankReducer$1,
10826
- questionCate: questionCateReducer,
10827
- notification: questionBankReducer$2,
10828
- myStudent: commonReducer$c,
10829
- assignments: commonReducer$7,
10830
- assistants: assistantReducer,
10831
- sesstionTemplates: sessionTemplateReducer,
10832
- sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10833
- tutorialScreens: tutorialScreenReducer,
10834
- customAlerts: commonReducer$d,
10835
- gallery: commonReducer$e,
10836
- dashboard: dashboardReducer,
10837
- sessionPlayer: sessionPlayerReducer,
10838
- dataPlayer: dataPlayer,
10839
- certificate: commonReducer$f,
10840
- improveMyClass: commonReducer$g,
10841
- widget: widgetReducer,
10842
- bandScores: commonReducer$h,
10843
- schoolBlankDays: commonReducer$i,
10844
- navMobileReducer: navMobileReducer
10845
- });
10736
+ setAlert({
10737
+ type: "danger",
10738
+ 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
10739
+ });
10740
+ });
10846
10741
 
10847
- var store = toolkit.configureStore({
10848
- reducer: rootReducer,
10849
- middleware: function middleware(getDefaultMiddleware) {
10850
- return getDefaultMiddleware({
10851
- serializableCheck: false
10852
- }).concat(logger);
10853
- }
10854
- });
10742
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
10743
+ } catch (e) {
10744
+ return Promise.reject(e);
10745
+ }
10746
+ }
10747
+ }));
10748
+ });
10749
+ }, function (err) {
10750
+ var _err$response4, _err$response4$data;
10855
10751
 
10856
- var isInViewport = function isInViewport(el) {
10857
- var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
10858
- return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
10859
- };
10752
+ dispatch(setAlert({
10753
+ type: "danger",
10754
+ message: ((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.title) || err.message
10755
+ }));
10756
+ });
10860
10757
 
10861
- var debounce = function debounce(callback, wait) {
10862
- var timeout = null;
10863
- return function () {
10864
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10865
- args[_key] = arguments[_key];
10758
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
10759
+ } catch (e) {
10760
+ return Promise.reject(e);
10866
10761
  }
10762
+ }, [filters]);
10867
10763
 
10868
- var next = function next() {
10869
- return callback.apply(void 0, args);
10870
- };
10764
+ var reDirectDetailPage = function reDirectDetailPage(id) {
10765
+ var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
10766
+ history.push(url);
10767
+ };
10871
10768
 
10872
- clearTimeout(timeout);
10873
- timeout = setTimeout(next, wait);
10769
+ return {
10770
+ userList: userList,
10771
+ totalItems: totalItems,
10772
+ filters: filters,
10773
+ queryName: queryName,
10774
+ getData: getData,
10775
+ removeData: removeData,
10776
+ changeFilters: changeFilters,
10777
+ reDirectDetailPage: reDirectDetailPage,
10778
+ swicthUser: swicthUser
10874
10779
  };
10875
10780
  };
10876
10781
 
10877
- var getTextFromHTML = function getTextFromHTML(htmlString) {
10878
- var p = document.createElement("p");
10879
- p.innerHTML = htmlString;
10880
- var text = p.innerText;
10881
- p.remove();
10882
- return text;
10883
- };
10782
+ var header$4 = "User";
10884
10783
 
10885
- var generateRandomString = (function () {
10886
- return (Math.random() + 1).toString(36).substring(7);
10887
- });
10784
+ var UserList = function UserList() {
10785
+ var _useUserList = useUserList(),
10786
+ queryName = _useUserList.queryName,
10787
+ userList = _useUserList.userList,
10788
+ totalItems = _useUserList.totalItems,
10789
+ filters = _useUserList.filters,
10790
+ removeData = _useUserList.removeData,
10791
+ changeFilters = _useUserList.changeFilters,
10792
+ reDirectDetailPage = _useUserList.reDirectDetailPage,
10793
+ swicthUser = _useUserList.swicthUser;
10888
10794
 
10889
- var amplitudeClient = amplitude.getInstance();
10795
+ var _useTranslation = reactI18next.useTranslation(),
10796
+ t = _useTranslation.t;
10797
+
10798
+ return React__default.createElement("div", {
10799
+ className: "fadeIn animated"
10800
+ }, React__default.createElement("h5", {
10801
+ className: "mb-2"
10802
+ }, t("" + header$4)), React__default.createElement(reactstrap.Row, {
10803
+ className: "my-2"
10804
+ }, React__default.createElement(reactstrap.Col, {
10805
+ md: 8
10806
+ }, React__default.createElement(SearchBoxContainer, {
10807
+ text: t("create_user"),
10808
+ onClick: function onClick() {
10809
+ return reDirectDetailPage();
10810
+ },
10811
+ initValue: !!queryName ? queryName : "",
10812
+ onSearch: function onSearch(searchString) {
10813
+ return changeFilters({
10814
+ searchString: searchString
10815
+ });
10816
+ },
10817
+ placeholder: t("type_something_to_search_by_user_name")
10818
+ })), React__default.createElement(reactstrap.Col, {
10819
+ md: 4,
10820
+ className: "d-flex justify-content-end align-items-center"
10821
+ }, t("total_of_users"), " : ", totalItems)), React__default.createElement(reactstrap.Row, {
10822
+ className: "mb-2"
10823
+ }, React__default.createElement(reactstrap.Col, {
10824
+ md: 12
10825
+ }, userList && userList.length > 0 ? React__default.createElement("div", null, React__default.createElement(reactstrap.Table, {
10826
+ bordered: true,
10827
+ hover: true,
10828
+ striped: true,
10829
+ responsive: true,
10830
+ size: "sm"
10831
+ }, React__default.createElement("thead", null, React__default.createElement("tr", null, React__default.createElement("th", {
10832
+ className: "align-top"
10833
+ }, t("name")), React__default.createElement("th", {
10834
+ className: "align-top"
10835
+ }, t("email")), React__default.createElement("th", {
10836
+ className: "align-top"
10837
+ }, t("age")), React__default.createElement("th", {
10838
+ className: "align-top"
10839
+ }, t("role")), React__default.createElement("th", {
10840
+ className: "align-top"
10841
+ }, t("active_status")), React__default.createElement("th", {
10842
+ className: "align-top"
10843
+ }, t("created_time")), React__default.createElement("th", {
10844
+ className: "text-center"
10845
+ }, t("action")))), React__default.createElement("tbody", null, userList.map(function (record) {
10846
+ return React__default.createElement("tr", {
10847
+ key: record.id
10848
+ }, React__default.createElement("td", {
10849
+ className: "align-middle"
10850
+ }, React__default.createElement(LinkEditButton, {
10851
+ label: "" + record.fullName,
10852
+ onClick: function onClick() {
10853
+ return reDirectDetailPage(record.id);
10854
+ }
10855
+ })), React__default.createElement("td", {
10856
+ className: "align-middle"
10857
+ }, record.email), React__default.createElement("td", {
10858
+ className: "align-middle"
10859
+ }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React__default.createElement("td", {
10860
+ className: "align-middle"
10861
+ }, !!record.roles && record.roles.join(", ")), React__default.createElement("td", {
10862
+ className: "align-middle"
10863
+ }, record.isActive ? t("active") : t("inactive")), React__default.createElement("td", {
10864
+ className: "align-middle"
10865
+ }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React__default.createElement("td", {
10866
+ className: "text-center align-middle"
10867
+ }, React__default.createElement(fa.FaUsersCog, {
10868
+ style: {
10869
+ fontSize: "18px",
10870
+ marginRight: "10px",
10871
+ cursor: "pointer"
10872
+ },
10873
+ onClick: function onClick() {
10874
+ return swicthUser(record.id);
10875
+ }
10876
+ }), React__default.createElement(DeleteButtonIcon, {
10877
+ onClick: function onClick() {
10878
+ return removeData(record.id);
10879
+ }
10880
+ })));
10881
+ })))) : React__default.createElement(EmptyDataAlert, {
10882
+ label: t("user")
10883
+ })), React__default.createElement(reactstrap.Col, {
10884
+ md: 12
10885
+ }, React__default.createElement(CustomPagination, {
10886
+ filters: filters,
10887
+ totalRecordCount: totalItems,
10888
+ changePageSize: function changePageSize(pageSize) {
10889
+ return changeFilters({
10890
+ pageSize: pageSize
10891
+ });
10892
+ },
10893
+ changePage: function changePage(currentPage) {
10894
+ return changeFilters({
10895
+ currentPage: currentPage
10896
+ });
10897
+ }
10898
+ }))));
10899
+ };
10900
+
10901
+ var amplitudeClient$1 = amplitude.getInstance();
10890
10902
 
10891
10903
  Object.defineProperty(exports, 'I18nextProvider', {
10892
10904
  enumerable: true,
@@ -10967,7 +10979,7 @@ exports.UploadFileButton = UploadFileButton;
10967
10979
  exports.UserDetail = UserDetail;
10968
10980
  exports.UserList = UserList;
10969
10981
  exports.addTab = addTab;
10970
- exports.amplitudeClient = amplitudeClient;
10982
+ exports.amplitudeClient = amplitudeClient$1;
10971
10983
  exports.answerQuestion = answerQuestion;
10972
10984
  exports.answerQuestionDataPlayer = answerQuestionDataPlayer;
10973
10985
  exports.api = api;