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