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.
@@ -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";
@@ -2596,6 +2600,9 @@ var QUESTION_TYPES_OPTIONS = [{
2596
2600
  }, {
2597
2601
  label: "Learning strategy",
2598
2602
  value: "LearningStrategy"
2603
+ }, {
2604
+ label: "Dropdown",
2605
+ value: "Dropdown"
2599
2606
  }];
2600
2607
  var QUESTION_TYPES = {
2601
2608
  SINGLE_CHOICE: "SingleChoice",
@@ -2608,7 +2615,8 @@ var QUESTION_TYPES = {
2608
2615
  EMOTIONAL: "Emotional",
2609
2616
  SUMMARIZE: "Summarize",
2610
2617
  RATING: "Rating",
2611
- LEARNING_STRATEGY: "LearningStrategy"
2618
+ LEARNING_STRATEGY: "LearningStrategy",
2619
+ DROPDOWN: "Dropdown"
2612
2620
  };
2613
2621
  var STAR_OPTIONS = [{
2614
2622
  label: 2,
@@ -6770,8 +6778,89 @@ var SkillList = function SkillList() {
6770
6778
  }))));
6771
6779
  };
6772
6780
 
6773
- var setUserList = createAction("users/setUserList");
6774
- var setStudentList = createAction("users/setStudentList");
6781
+ var MAX_FILE_SIZE = 20097152;
6782
+
6783
+ var UploadFileButton = function UploadFileButton(_ref) {
6784
+ var fileName = _ref.fileName,
6785
+ maxWidth = _ref.maxWidth,
6786
+ maxHeight = _ref.maxHeight,
6787
+ setFile = _ref.setFile,
6788
+ canDelete = _ref.canDelete,
6789
+ onDelete = _ref.onDelete,
6790
+ isCheckFeedBack = _ref.isCheckFeedBack,
6791
+ onAddImage = _ref.onAddImage;
6792
+ var dispatch = useDispatch();
6793
+
6794
+ var _useState = useState(""),
6795
+ imagePreviewUrl = _useState[0],
6796
+ setImagePreviewUrl = _useState[1];
6797
+
6798
+ var imageStyle = {
6799
+ maxWidth: maxWidth || "100%",
6800
+ maxHeight: maxHeight || "100%"
6801
+ };
6802
+ var imageSrc = imagePreviewUrl || getFileUrl(fileName);
6803
+
6804
+ var handleImageChange = function handleImageChange(e) {
6805
+ e.preventDefault();
6806
+ var reader = new FileReader();
6807
+ var newFile = e.target.files[0];
6808
+
6809
+ if (newFile.size > MAX_FILE_SIZE) {
6810
+ dispatch(setAlert({
6811
+ type: "danger",
6812
+ message: "File can't be larger than 2MB"
6813
+ }));
6814
+ return;
6815
+ }
6816
+
6817
+ reader.onloadend = function () {
6818
+ setFile(newFile);
6819
+ setImagePreviewUrl(reader.result);
6820
+ };
6821
+
6822
+ if (newFile) {
6823
+ reader.readAsDataURL(newFile);
6824
+ }
6825
+
6826
+ !!onAddImage && onAddImage();
6827
+ };
6828
+
6829
+ var imagePreviewContainer = imagePreviewUrl || fileName ? React.createElement("img", {
6830
+ style: imageStyle,
6831
+ src: imageSrc,
6832
+ alt: "image"
6833
+ }) : null;
6834
+ return React.createElement("div", {
6835
+ className: "mb-2"
6836
+ }, React.createElement(Form, {
6837
+ className: "mb-2"
6838
+ }, React.createElement(Input, {
6839
+ className: "d-none",
6840
+ type: "file",
6841
+ id: "uploadFile",
6842
+ onChange: handleImageChange,
6843
+ accept: "image/*"
6844
+ }), React.createElement("div", {
6845
+ className: "d-flex align-items-center"
6846
+ }, React.createElement(Label, {
6847
+ htmlFor: "uploadFile",
6848
+ role: "button",
6849
+ tabIndex: 0,
6850
+ className: styles["input-file-label"]
6851
+ }, isCheckFeedBack == true ? React.createElement(MdAttachFile, null) : React.createElement(React.Fragment, null, React.createElement("i", {
6852
+ className: "fa fa-paperclip mr-1",
6853
+ "aria-hidden": "true"
6854
+ }), imagePreviewUrl || fileName ? "Change file" : "Choose file")), canDelete && imagePreviewContainer && React.createElement(Button, {
6855
+ size: "sm",
6856
+ color: "danger",
6857
+ className: styles["delete-avatar-button"] + " ml-2 d-flex align-items-center justify-content-center",
6858
+ onClick: function onClick() {
6859
+ setImagePreviewUrl(null);
6860
+ onDelete && onDelete();
6861
+ }
6862
+ }, React.createElement(FaTrashAlt, null)))), imagePreviewContainer);
6863
+ };
6775
6864
 
6776
6865
  var USER_URL$1 = BASE_URL + "/api/user";
6777
6866
  var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
@@ -6804,38 +6893,54 @@ var switchAccountUser = function switchAccountUser(id) {
6804
6893
  return api.post(EDU_USER_URL + "/switch-user/" + id);
6805
6894
  };
6806
6895
 
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";
6896
+ var initValue$3 = {
6897
+ id: "",
6898
+ firstName: "",
6899
+ lastName: "",
6900
+ email: "",
6901
+ dateOfBirth: "",
6902
+ roles: [],
6903
+ isActive: true,
6904
+ profileImageFileName: ""
6905
+ };
6906
+ var USER_LIST_URL = "/admin/user";
6907
+ var TITLE$7 = "User detail";
6816
6908
 
6817
- var useUserList = function useUserList() {
6909
+ var useUserDetail = function useUserDetail(id) {
6910
+ var dispatch = useDispatch();
6818
6911
  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
6912
 
6828
- var _useFilters = useFilters(),
6829
- filters = _useFilters.filters,
6830
- changeFilters = _useFilters.changeFilters;
6913
+ var _useState = useState(initValue$3),
6914
+ userDetail = _useState[0],
6915
+ setUserDetail = _useState[1];
6831
6916
 
6832
- var _useState = useState(!!queryName ? queryName : ""),
6833
- fullName = _useState[0],
6834
- setFullName = _useState[1];
6917
+ var _useState2 = useState(null),
6918
+ file = _useState2[0],
6919
+ setFile = _useState2[1];
6835
6920
 
6836
- var isDistrict = window.location.host.includes("-district");
6837
- var dispatch = useDispatch();
6838
- var getData = useCallback(function (fullName) {
6921
+ var _useState3 = useState(false),
6922
+ edited = _useState3[0],
6923
+ setEdited = _useState3[1];
6924
+
6925
+ var setEditedTrue = function setEditedTrue() {
6926
+ try {
6927
+ localStorage.setItem(window.location.href, "true");
6928
+ setEdited(true);
6929
+ return Promise.resolve();
6930
+ } catch (e) {
6931
+ return Promise.reject(e);
6932
+ }
6933
+ };
6934
+
6935
+ useEffect(function () {
6936
+ document.title = TITLE$7;
6937
+ setEdited(false);
6938
+ if (!!localStorage.getItem(window.location.href)) localStorage.removeItem(window.location.href);
6939
+ }, []);
6940
+ useEffect(function () {
6941
+ !!id && getData();
6942
+ }, [id]);
6943
+ var getData = useCallback(function () {
6839
6944
  try {
6840
6945
  var _temp3 = function _temp3() {
6841
6946
  dispatch(setLoading(false));
@@ -6844,22 +6949,14 @@ var useUserList = function useUserList() {
6844
6949
  dispatch(setLoading(true));
6845
6950
 
6846
6951
  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
- }
6952
+ return Promise.resolve(getById$3(id)).then(function (res) {
6953
+ var _res$data;
6858
6954
 
6859
- dispatch(setUserList({
6860
- userList: items,
6861
- totalItems: totalItems
6955
+ setUserDetail(_extends({}, res.data, {
6956
+ dateOfBirth: format(new Date(res.data.dateOfBirth), DATE_FORMAT),
6957
+ roles: res.data.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : res.data.roles
6862
6958
  }));
6959
+ document.title = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.fullName;
6863
6960
  });
6864
6961
  }, function (err) {
6865
6962
  var _err$response, _err$response$data;
@@ -6874,688 +6971,171 @@ var useUserList = function useUserList() {
6874
6971
  } catch (e) {
6875
6972
  return Promise.reject(e);
6876
6973
  }
6877
- }, [dispatch, filters]);
6878
- useEffect(function () {
6879
- document.title = TITLE$7;
6974
+ }, [id]);
6975
+ var backToList = useCallback(function (user) {
6976
+ !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
6880
6977
  }, []);
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
-
6978
+ var confirmData = useCallback(function (data) {
6892
6979
  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
6980
+ var _temp9 = function _temp9() {
6981
+ dispatch(setLoading(false));
6982
+ };
6983
+
6984
+ dispatch(setLoading(true));
6985
+
6986
+ var _temp10 = _catch(function () {
6987
+ function _temp6() {
6988
+ var next = !!id ? update$5 : create$5;
6989
+ !id && delete data.id;
6990
+ return Promise.resolve(next(data)).then(function (result) {
6991
+ if (!!result) {
6992
+ getById$3(result.data.id).then(function (e) {
6993
+ backToList(e.data.fullName);
6906
6994
  });
6907
- });
6908
- } catch (e) {
6909
- return Promise.reject(e);
6910
- }
6911
- }
6912
- }));
6913
- } catch (err) {
6914
- var _err$response2, _err$response2$data;
6995
+ }
6915
6996
 
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
- }
6997
+ if (!id) {
6998
+ alert("Password of " + result.data.email + " is " + ("\"" + result.data.password + "\""));
6999
+ }
6921
7000
 
6922
- dispatch(setLoading(false));
6923
- }, [filters]);
7001
+ dispatch(setAlert({
7002
+ type: "success",
7003
+ message: (!!id ? "Update" : "Create") + " user successfully"
7004
+ }));
7005
+ });
7006
+ }
6924
7007
 
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
- }));
7008
+ var _temp5 = function () {
7009
+ if (!!file) {
7010
+ var formData = new FormData();
7011
+ var name = file.name;
7012
+ formData.append("file", file, name);
7013
+ return Promise.resolve(systemProfileUpload(formData)).then(function (res) {
7014
+ var _res$data2;
6944
7015
 
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
- };
7016
+ var imageUrl = res === null || res === void 0 ? void 0 : (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.key;
7017
+ data.profileImageFileName = imageUrl;
7018
+ });
7019
+ }
7020
+ }();
6961
7021
 
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
- };
7022
+ return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
7023
+ }, function (err) {
7024
+ var _err$response2, _err$response2$data;
6976
7025
 
6977
- dispatch(setLoading(true));
7026
+ dispatch(setAlert({
7027
+ type: "danger",
7028
+ 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
7029
+ }));
7030
+ });
6978
7031
 
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;
7032
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
7033
+ } catch (e) {
7034
+ return Promise.reject(e);
7035
+ }
7036
+ }, [id, file]);
6991
7037
 
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
- });
7038
+ var confirmChangePassword = function confirmChangePassword(data) {
7039
+ try {
7040
+ var _temp13 = function _temp13() {
7041
+ dispatch(setLoading(false));
7042
+ };
6997
7043
 
6998
- return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
6999
- } catch (e) {
7000
- return Promise.reject(e);
7001
- }
7002
- }
7044
+ dispatch(setLoading(true));
7045
+
7046
+ var _temp14 = _catch(function () {
7047
+ return Promise.resolve(changePassword(data)).then(function () {
7048
+ dispatch(setAlert({
7049
+ type: "success",
7050
+ message: "Change password successfully"
7003
7051
  }));
7004
7052
  });
7005
- }, function (err) {
7006
- var _err$response4, _err$response4$data;
7053
+ }, function (e) {
7054
+ var _e$response, _e$response$data;
7007
7055
 
7008
7056
  dispatch(setAlert({
7009
7057
  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
7058
+ 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
7059
  }));
7012
7060
  });
7013
7061
 
7014
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
7062
+ return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
7015
7063
  } catch (e) {
7016
7064
  return Promise.reject(e);
7017
7065
  }
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
7066
  };
7024
7067
 
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
- };
7068
+ var forgotPasswordRequest = useCallback(function (data) {
7069
+ try {
7070
+ var _temp17 = function _temp17() {
7071
+ dispatch(setLoading(false));
7072
+ };
7037
7073
 
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;
7074
+ dispatch(setLoading(true));
7044
7075
 
7045
- var _useState = useState(initValue),
7046
- searchString = _useState[0],
7047
- setSearchString = _useState[1];
7076
+ var _temp18 = _catch(function () {
7077
+ return Promise.resolve(forgotChangePassword(data)).then(function () {
7078
+ dispatch(setAlert({
7079
+ type: "success",
7080
+ message: "Send forgot password link successfully"
7081
+ }));
7082
+ });
7083
+ }, function (err) {
7084
+ var _err$response3, _err$response3$data;
7048
7085
 
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
- };
7086
+ dispatch(setAlert({
7087
+ type: "danger",
7088
+ 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"
7089
+ }));
7090
+ });
7066
7091
 
7067
- SearchBox.defaultProps = {
7068
- placeholder: "Type something to search",
7069
- className: "",
7070
- style: {}
7092
+ return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
7093
+ } catch (e) {
7094
+ return Promise.reject(e);
7095
+ }
7096
+ }, []);
7097
+ return {
7098
+ userDetail: userDetail,
7099
+ backToList: backToList,
7100
+ confirmData: confirmData,
7101
+ file: file,
7102
+ setFile: setFile,
7103
+ edited: edited,
7104
+ setEdited: setEdited,
7105
+ setEditedTrue: setEditedTrue,
7106
+ confirmChangePassword: confirmChangePassword,
7107
+ forgotPasswordRequest: forgotPasswordRequest
7108
+ };
7071
7109
  };
7072
- var SearchBox$1 = memo(SearchBox);
7073
7110
 
7074
- var searchInputStyle = {
7075
- height: 38
7076
- };
7111
+ var userSchema = object({
7112
+ firstName: string().required("First name is required"),
7113
+ lastName: string().required("Last name is required"),
7114
+ dateOfBirth: string().required("Date of birth is required"),
7115
+ email: string().email("Email is invalid").required("Email is required"),
7116
+ roles: array().of(string()).min(1, "Role is required")
7117
+ });
7077
7118
 
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
- };
7119
+ var changePasswordSchema = object({
7120
+ oldPassword: string().required("Current password is required"),
7121
+ newPassword: string().required("New password is required"),
7122
+ confirmedNewPassword: string().required("Confirm password is required")
7123
+ });
7098
7124
 
7099
- SearchBoxContainer.defaultProps = {
7100
- placeholder: "Type something to search"
7101
- };
7125
+ var CREATE_USER = "create_user";
7126
+ var EDIT_USER_HEADER = "edit_user";
7127
+ var CHANGE_PASSWORD$1 = "change_password";
7102
7128
 
7103
- var utcToLocalTime = (function (time, FORMAT) {
7104
- if (time === DATE_MIN_VALUE) return "";
7129
+ var UserDetail = function UserDetail() {
7130
+ var _useParams = useParams(),
7131
+ id = _useParams.id;
7105
7132
 
7106
- try {
7107
- return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7108
- } catch (_unused) {
7109
- return "";
7110
- }
7111
- });
7133
+ var user = useSelector(function (state) {
7134
+ return state.common.user;
7135
+ });
7112
7136
 
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;
7137
+ var _useTranslation = useTranslation(),
7138
+ t = _useTranslation.t;
7559
7139
 
7560
7140
  var _useUserDetail = useUserDetail(id),
7561
7141
  userDetail = _useUserDetail.userDetail,
@@ -7621,15 +7201,12 @@ var UserDetail = function UserDetail() {
7621
7201
  return;
7622
7202
  }
7623
7203
 
7624
- if ([ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER, ROLES.COUNSELOR, ROLES.SECONDARY_TEACHER].includes(role)) {
7204
+ if ([ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER].includes(role)) {
7625
7205
  setFieldValue("roles", [role]);
7626
7206
  return;
7627
7207
  }
7628
7208
 
7629
- var teacherAssistantRoles = values.roles.filter(function (item) {
7630
- return ![ROLES.STUDENT, ROLES.ADMIN, ROLES.PARENT, ROLES.EDUTEACHER, ROLES.COUNSELOR, ROLES.SECONDARY_TEACHER].includes(item);
7631
- });
7632
- setFieldValue("roles", [].concat(teacherAssistantRoles, [role]));
7209
+ setFieldValue("roles", [].concat(values.roles, [role]));
7633
7210
  }, [values.roles]);
7634
7211
  return React.createElement("div", {
7635
7212
  className: "animated fadeIn detail-buttons-padding"
@@ -8017,6 +7594,42 @@ var CreatableSelector = function CreatableSelector(props) {
8017
7594
  });
8018
7595
  };
8019
7596
 
7597
+ var SearchBox = function SearchBox(_ref) {
7598
+ var initValue = _ref.initValue,
7599
+ onSearch = _ref.onSearch,
7600
+ placeholder = _ref.placeholder,
7601
+ className = _ref.className,
7602
+ style = _ref.style;
7603
+
7604
+ var _useState = useState(initValue),
7605
+ searchString = _useState[0],
7606
+ setSearchString = _useState[1];
7607
+
7608
+ useEffect(function () {
7609
+ setSearchString(initValue);
7610
+ }, [initValue]);
7611
+ var onKeyUp = useCallback(function (e) {
7612
+ e.key === "Enter" && onSearch(searchString);
7613
+ }, [searchString, onSearch]);
7614
+ return React.createElement(Input, {
7615
+ placeholder: placeholder,
7616
+ value: searchString,
7617
+ onChange: function onChange(e) {
7618
+ return setSearchString(e.target.value);
7619
+ },
7620
+ onKeyUp: onKeyUp,
7621
+ className: className,
7622
+ style: style
7623
+ });
7624
+ };
7625
+
7626
+ SearchBox.defaultProps = {
7627
+ placeholder: "Type something to search",
7628
+ className: "",
7629
+ style: {}
7630
+ };
7631
+ var SearchBox$1 = memo(SearchBox);
7632
+
8020
7633
  var QuestionTypeSelector = function QuestionTypeSelector(props) {
8021
7634
  var id = props.id;
8022
7635
  var initValue = !!id ? QUESTION_TYPES_OPTIONS.find(function (option) {
@@ -8372,23 +7985,36 @@ var NotificationStatusSelector = function NotificationStatusSelector(_ref) {
8372
7985
 
8373
7986
  var NotificationStatusSelector$1 = memo(NotificationStatusSelector);
8374
7987
 
7988
+ var utcToLocalTime = (function (time, FORMAT) {
7989
+ if (time === DATE_MIN_VALUE) return "";
7990
+
7991
+ try {
7992
+ return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7993
+ } catch (_unused) {
7994
+ return "";
7995
+ }
7996
+ });
7997
+
8375
7998
  var defaultFilters = {
8376
7999
  currentPage: 1,
8377
8000
  pageSize: 30,
8378
8001
  searchString: "",
8379
8002
  isRead: false
8380
8003
  };
8381
- var TITLE$9 = "Notification list";
8004
+ var TITLE$8 = "Notification list";
8382
8005
  var NOTIFICATION_CHANNEL$1 = "NOTIFICATION_CHANNEL";
8383
8006
  var NEW_NOTIFICATION$1 = "NEW_NOTIFICATION";
8384
8007
 
8385
8008
  var useNotificationList = function useNotificationList() {
8386
8009
  var dispatch = useDispatch();
8387
- var userId = useSelector(function (state) {
8388
- var _state$common$user;
8389
8010
 
8390
- return (_state$common$user = state.common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.id;
8011
+ var _useParams = useParams(),
8012
+ roles = _useParams.roles;
8013
+
8014
+ var user = useSelector(function (state) {
8015
+ return state.common.user;
8391
8016
  });
8017
+ var userId = user === null || user === void 0 ? void 0 : user.id;
8392
8018
  var notificationList = useSelector(function (state) {
8393
8019
  return state.notification.notificationList;
8394
8020
  });
@@ -8479,7 +8105,9 @@ var useNotificationList = function useNotificationList() {
8479
8105
  dispatch(setLoading(true));
8480
8106
 
8481
8107
  var _temp4 = _catch(function () {
8482
- return Promise.resolve(get(filters)).then(function (res) {
8108
+ return Promise.resolve(get(_extends({}, filters, {
8109
+ roles: !(roles !== null && roles !== void 0 && roles.trim()) ? user === null || user === void 0 ? void 0 : user.roles : [roles] || []
8110
+ }))).then(function (res) {
8483
8111
  var _res$data = res.data,
8484
8112
  items = _res$data.items,
8485
8113
  totalItems = _res$data.totalItems;
@@ -8503,7 +8131,7 @@ var useNotificationList = function useNotificationList() {
8503
8131
  }
8504
8132
  }, [filters]);
8505
8133
  useEffect(function () {
8506
- document.title = TITLE$9;
8134
+ document.title = TITLE$8;
8507
8135
  }, []);
8508
8136
  useEffect(function () {
8509
8137
  getData();
@@ -8588,7 +8216,7 @@ var useNotificationList = function useNotificationList() {
8588
8216
  };
8589
8217
  };
8590
8218
 
8591
- var header$3 = "Notification list";
8219
+ var header$2 = "Notification list";
8592
8220
  var ICON_SIZE = 20;
8593
8221
 
8594
8222
  var NotificationList = function NotificationList() {
@@ -8609,7 +8237,7 @@ var NotificationList = function NotificationList() {
8609
8237
  }
8610
8238
  }, React.createElement("h5", {
8611
8239
  className: "mb-2"
8612
- }, header$3), React.createElement(Row, {
8240
+ }, header$2), React.createElement(Row, {
8613
8241
  className: "my-2"
8614
8242
  }, React.createElement(Col, {
8615
8243
  md: 8
@@ -8709,6 +8337,35 @@ var NotificationList = function NotificationList() {
8709
8337
  }))));
8710
8338
  };
8711
8339
 
8340
+ var searchInputStyle = {
8341
+ height: 38
8342
+ };
8343
+
8344
+ var SearchBoxContainer = function SearchBoxContainer(_ref) {
8345
+ var text = _ref.text,
8346
+ initValue = _ref.initValue,
8347
+ onClick = _ref.onClick,
8348
+ onSearch = _ref.onSearch,
8349
+ placeholder = _ref.placeholder;
8350
+ return React.createElement("div", {
8351
+ className: "d-flex align-items-center"
8352
+ }, React.createElement("div", null, React.createElement(AddButton, {
8353
+ text: text,
8354
+ onClick: onClick
8355
+ })), React.createElement("div", {
8356
+ className: "flex-grow-1 ml-2"
8357
+ }, React.createElement(SearchBox$1, {
8358
+ initValue: initValue,
8359
+ onSearch: onSearch,
8360
+ placeholder: placeholder,
8361
+ style: searchInputStyle
8362
+ })));
8363
+ };
8364
+
8365
+ SearchBoxContainer.defaultProps = {
8366
+ placeholder: "Type something to search"
8367
+ };
8368
+
8712
8369
  var CustomTabs = function CustomTabs(props) {
8713
8370
  var history = useHistory();
8714
8371
  var location = useLocation();
@@ -9113,7 +8770,7 @@ var get$8 = function get(filter) {
9113
8770
  });
9114
8771
  };
9115
8772
 
9116
- var TITLE$a = "Gallery";
8773
+ var TITLE$9 = "Gallery";
9117
8774
  var defaultFilter = {
9118
8775
  searchString: ""
9119
8776
  };
@@ -9350,7 +9007,7 @@ var useGalleryList = function useGalleryList(isLibrary) {
9350
9007
  }
9351
9008
  }, [dispatch, filters]);
9352
9009
  useEffect(function () {
9353
- document.title = TITLE$a;
9010
+ document.title = TITLE$9;
9354
9011
  dispatch(setTargetMedia({
9355
9012
  targetMedia: undefined
9356
9013
  }));
@@ -9542,7 +9199,7 @@ var MediaDetail = function MediaDetail(_ref) {
9542
9199
 
9543
9200
  var MediaDetail$1 = React.memo(MediaDetail);
9544
9201
 
9545
- var header$4 = "Gallery";
9202
+ var header$3 = "Gallery";
9546
9203
 
9547
9204
  var GalleryList = function GalleryList(_ref) {
9548
9205
  var isLibrary = _ref.isLibrary;
@@ -9553,7 +9210,7 @@ var GalleryList = function GalleryList(_ref) {
9553
9210
  className: "fadeIn animated"
9554
9211
  }, !isLibrary && React.createElement("h5", {
9555
9212
  className: "mb-2"
9556
- }, header$4), React.createElement(Row, {
9213
+ }, header$3), React.createElement(Row, {
9557
9214
  className: "mb-2"
9558
9215
  }, React.createElement(Col, {
9559
9216
  md: 8
@@ -10179,6 +9836,9 @@ var commonReducer$8 = createReducer(initialState$e, function (builder) {
10179
9836
  });
10180
9837
  });
10181
9838
 
9839
+ var setUserList = createAction("users/setUserList");
9840
+ var setStudentList = createAction("users/setStudentList");
9841
+
10182
9842
  var initialState$f = {
10183
9843
  userList: [],
10184
9844
  totalItems: 0,
@@ -10698,193 +10358,545 @@ var dataPlayer = createReducer(initialState$v, function (builder) {
10698
10358
  return response.questionId === questionId;
10699
10359
  });
10700
10360
 
10701
- if (!existedResponse) {
10702
- questionResponseCloner.push({
10703
- questionId: questionId,
10704
- text: text
10705
- });
10706
- } else {
10707
- existedResponse.text = text;
10361
+ if (!existedResponse) {
10362
+ questionResponseCloner.push({
10363
+ questionId: questionId,
10364
+ text: text
10365
+ });
10366
+ } else {
10367
+ existedResponse.text = text;
10368
+ }
10369
+
10370
+ return _extends({}, state, {
10371
+ questionResponse: questionResponseCloner
10372
+ });
10373
+ }).addCase(reset, function (_state, _action) {
10374
+ return initialState$v;
10375
+ });
10376
+ });
10377
+
10378
+ var setCertificateList = createAction("certificates/setCertificateList");
10379
+
10380
+ var initialState$w = {
10381
+ certificateList: [],
10382
+ totalItems: 0
10383
+ };
10384
+ var commonReducer$f = createReducer(initialState$w, function (builder) {
10385
+ builder.addCase(setCertificateList, function (state, action) {
10386
+ state.certificateList = action.payload.certificateList;
10387
+ state.totalItems = action.payload.totalItems;
10388
+ }).addCase(reset, function (_state, _action) {
10389
+ return initialState$w;
10390
+ });
10391
+ });
10392
+
10393
+ var setImproveMyClass = createAction("improveMyClass/setImproveMyClass");
10394
+
10395
+ var initialState$x = {
10396
+ improveMyClassList: []
10397
+ };
10398
+ var commonReducer$g = createReducer(initialState$x, function (builder) {
10399
+ builder.addCase(setImproveMyClass, function (state, action) {
10400
+ state.improveMyClassList = action.payload;
10401
+ }).addCase(reset, function (_state, _action) {
10402
+ return initialState$x;
10403
+ });
10404
+ });
10405
+
10406
+ var setFilterWidget = createAction("setFilterWidget");
10407
+
10408
+ var initialState$y = {
10409
+ filterWidget: "Year"
10410
+ };
10411
+ var widgetReducer = createReducer(initialState$y, function (builder) {
10412
+ builder.addCase(setFilterWidget, function (state, action) {
10413
+ state.filterWidget = action.payload.filterWidget;
10414
+ }).addCase(reset, function (_state, _action) {
10415
+ return initialState$y;
10416
+ });
10417
+ });
10418
+
10419
+ var setBandScoreList = createAction("bandScores/setBandScoreList");
10420
+
10421
+ var initialState$z = {
10422
+ bandScoreList: [],
10423
+ totalItems: 0
10424
+ };
10425
+ var commonReducer$h = createReducer(initialState$z, function (builder) {
10426
+ builder.addCase(setBandScoreList, function (state, action) {
10427
+ state.bandScoreList = action.payload.bandScoreList;
10428
+ state.totalItems = action.payload.totalItems;
10429
+ }).addCase(reset, function (_state, _action) {
10430
+ return initialState$z;
10431
+ });
10432
+ });
10433
+
10434
+ var setSchoolBlankDayList = createAction("schoolBlankDays/setSchoolBlankDayList");
10435
+
10436
+ var initialState$A = {
10437
+ schoolBlankDayList: [],
10438
+ totalItems: 0
10439
+ };
10440
+ var commonReducer$i = createReducer(initialState$A, function (builder) {
10441
+ builder.addCase(setSchoolBlankDayList, function (state, action) {
10442
+ state.schoolBlankDayList = action.payload.schoolBlankDayList;
10443
+ state.totalItems = action.payload.totalItems;
10444
+ }).addCase(reset, function (_state, _action) {
10445
+ return initialState$A;
10446
+ });
10447
+ });
10448
+
10449
+ var setStudentIdSelectedByTeacher = createAction("navMobile/setStudentIdSelectedByTeacher");
10450
+
10451
+ var initialState$B = {
10452
+ studentIdSelectedByTeacher: 0
10453
+ };
10454
+ var navMobileReducer = createReducer(initialState$B, function (builder) {
10455
+ builder.addCase(setStudentIdSelectedByTeacher, function (state, action) {
10456
+ state.studentIdSelectedByTeacher = action.payload;
10457
+ }).addCase(reset, function (_state, _action) {
10458
+ return initialState$B;
10459
+ });
10460
+ });
10461
+
10462
+ var rootReducer = combineReducers({
10463
+ common: commonReducer,
10464
+ classes: classReducer,
10465
+ conferenceRubrics: conferenceRubricReducer,
10466
+ faqs: commonReducer$1,
10467
+ skills: commonReducer$2,
10468
+ emailTemplate: emailTemplateReducer,
10469
+ suggestionBank: suggestionBankReducer,
10470
+ learningStrategy: learningStrategyReducer,
10471
+ subjects: commonReducer$3,
10472
+ learningSupportCategories: commonReducer$4,
10473
+ questionBank: questionBankReducer,
10474
+ badges: commonReducer$5,
10475
+ semester: commonReducer$6,
10476
+ goalExamples: commonReducer$8,
10477
+ users: commonReducer$9,
10478
+ reflections: reflectionReducer,
10479
+ reflectionResults: reflectionReducer$1,
10480
+ feedbacks: commonReducer$a,
10481
+ assessments: commonReducer$b,
10482
+ questionByCategory: questionCategoryReducer,
10483
+ mailCategory: questionBankReducer$1,
10484
+ questionCate: questionCateReducer,
10485
+ notification: questionBankReducer$2,
10486
+ myStudent: commonReducer$c,
10487
+ assignments: commonReducer$7,
10488
+ assistants: assistantReducer,
10489
+ sesstionTemplates: sessionTemplateReducer,
10490
+ sessionTemplateGeneralClasses: sessionTemplateGeneralClassReducer,
10491
+ tutorialScreens: tutorialScreenReducer,
10492
+ customAlerts: commonReducer$d,
10493
+ gallery: commonReducer$e,
10494
+ dashboard: dashboardReducer,
10495
+ sessionPlayer: sessionPlayerReducer,
10496
+ dataPlayer: dataPlayer,
10497
+ certificate: commonReducer$f,
10498
+ improveMyClass: commonReducer$g,
10499
+ widget: widgetReducer,
10500
+ bandScores: commonReducer$h,
10501
+ schoolBlankDays: commonReducer$i,
10502
+ navMobileReducer: navMobileReducer
10503
+ });
10504
+
10505
+ var store = configureStore({
10506
+ reducer: rootReducer,
10507
+ middleware: function middleware(getDefaultMiddleware) {
10508
+ return getDefaultMiddleware({
10509
+ serializableCheck: false
10510
+ }).concat(logger);
10511
+ }
10512
+ });
10513
+
10514
+ var isInViewport = function isInViewport(el) {
10515
+ var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
10516
+ return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
10517
+ };
10518
+
10519
+ var debounce = function debounce(callback, wait) {
10520
+ var timeout = null;
10521
+ return function () {
10522
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
10523
+ args[_key] = arguments[_key];
10708
10524
  }
10709
10525
 
10710
- return _extends({}, state, {
10711
- questionResponse: questionResponseCloner
10712
- });
10713
- }).addCase(reset, function (_state, _action) {
10714
- return initialState$v;
10715
- });
10716
- });
10526
+ var next = function next() {
10527
+ return callback.apply(void 0, args);
10528
+ };
10717
10529
 
10718
- var setCertificateList = createAction("certificates/setCertificateList");
10530
+ clearTimeout(timeout);
10531
+ timeout = setTimeout(next, wait);
10532
+ };
10533
+ };
10719
10534
 
10720
- var initialState$w = {
10721
- certificateList: [],
10722
- totalItems: 0
10535
+ var getTextFromHTML = function getTextFromHTML(htmlString) {
10536
+ var p = document.createElement("p");
10537
+ p.innerHTML = htmlString;
10538
+ var text = p.innerText;
10539
+ p.remove();
10540
+ return text;
10723
10541
  };
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
- });
10542
+
10543
+ var generateRandomString = (function () {
10544
+ return (Math.random() + 1).toString(36).substring(7);
10731
10545
  });
10732
10546
 
10733
- var setImproveMyClass = createAction("improveMyClass/setImproveMyClass");
10547
+ var amplitudeClient = amplitude.getInstance();
10734
10548
 
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;
10549
+ var USER_URL$2 = "/admin/user";
10550
+ var CREATE_USER_URL = "/admin/create-user";
10551
+ var TITLE$a = "User list";
10552
+ var HOMEPAGE_TEACHER$1 = "/home";
10553
+ var HOMEPAGE_STUDENT$1 = "/home";
10554
+ var HOMEPAGE_ADMIN$1 = "/admin/dashboard";
10555
+ var HOMEPAGE_PARENT$1 = "/parent";
10556
+ var HOMEPAGE_DISTRICT$1 = "/admin/schools";
10557
+ var HOMEPAGE_EDU_TEACHER$1 = "/list-student";
10558
+
10559
+ var useUserList = function useUserList() {
10560
+ var history = useHistory();
10561
+ var query = new URLSearchParams(location.search);
10562
+ var queryName = query.get("query");
10563
+ var userList = useSelector(function (state) {
10564
+ return state.users.userList;
10565
+ });
10566
+ var totalItems = useSelector(function (state) {
10567
+ return state.users.totalItems;
10743
10568
  });
10744
- });
10745
10569
 
10746
- var setFilterWidget = createAction("setFilterWidget");
10570
+ var _useFilters = useFilters(),
10571
+ filters = _useFilters.filters,
10572
+ changeFilters = _useFilters.changeFilters;
10747
10573
 
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
- });
10574
+ var _useState = useState(!!queryName ? queryName : ""),
10575
+ fullName = _useState[0],
10576
+ setFullName = _useState[1];
10758
10577
 
10759
- var setBandScoreList = createAction("bandScores/setBandScoreList");
10578
+ var isDistrict = window.location.host.includes("-district");
10579
+ var dispatch = useDispatch();
10580
+ var getData = useCallback(function (fullName) {
10581
+ try {
10582
+ var _temp3 = function _temp3() {
10583
+ dispatch(setLoading(false));
10584
+ };
10760
10585
 
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
- });
10586
+ dispatch(setLoading(true));
10773
10587
 
10774
- var setSchoolBlankDayList = createAction("schoolBlankDays/setSchoolBlankDayList");
10588
+ var _temp4 = _catch(function () {
10589
+ return Promise.resolve(fullName ? get$5(_extends({}, filters, {
10590
+ searchString: fullName
10591
+ })) : get$5(filters)).then(function (res) {
10592
+ var _res$data = res.data,
10593
+ items = _res$data.items,
10594
+ totalItems = _res$data.totalItems;
10775
10595
 
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
- });
10596
+ for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
10597
+ var user = _step.value;
10598
+ user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
10599
+ }
10600
+
10601
+ dispatch(setUserList({
10602
+ userList: items,
10603
+ totalItems: totalItems
10604
+ }));
10605
+ });
10606
+ }, function (err) {
10607
+ var _err$response, _err$response$data;
10608
+
10609
+ dispatch(setAlert({
10610
+ type: "danger",
10611
+ 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
10612
+ }));
10613
+ });
10614
+
10615
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
10616
+ } catch (e) {
10617
+ return Promise.reject(e);
10618
+ }
10619
+ }, [dispatch, filters]);
10620
+ useEffect(function () {
10621
+ document.title = TITLE$a;
10622
+ }, []);
10623
+ useEffect(function () {
10624
+ if (!!fullName) {
10625
+ getData(fullName);
10626
+ setFullName(null);
10627
+ } else {
10628
+ getData();
10629
+ }
10630
+ }, [filters]);
10631
+ var removeData = useCallback(function (id) {
10632
+ dispatch(setLoading(true));
10633
+
10634
+ try {
10635
+ dispatch(setModal({
10636
+ isOpen: true,
10637
+ type: "warning",
10638
+ message: "Do you want to remove this user?",
10639
+ onConfirm: function () {
10640
+ try {
10641
+ return Promise.resolve(remove$3(id)).then(function () {
10642
+ dispatch(setAlert({
10643
+ type: "success",
10644
+ message: "Remove user successfully"
10645
+ }));
10646
+ changeFilters({
10647
+ currentPage: 1
10648
+ });
10649
+ });
10650
+ } catch (e) {
10651
+ return Promise.reject(e);
10652
+ }
10653
+ }
10654
+ }));
10655
+ } catch (err) {
10656
+ var _err$response2, _err$response2$data;
10657
+
10658
+ dispatch(setAlert({
10659
+ type: "danger",
10660
+ 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
10661
+ }));
10662
+ }
10663
+
10664
+ dispatch(setLoading(false));
10665
+ }, [filters]);
10666
+
10667
+ var redirectLoginUser = function redirectLoginUser(res) {
10668
+ var _res$data2 = res.data,
10669
+ token = _res$data2.token,
10670
+ id = _res$data2.id,
10671
+ firstName = _res$data2.firstName,
10672
+ lastName = _res$data2.lastName,
10673
+ roles = _res$data2.roles,
10674
+ email = _res$data2.email,
10675
+ profileImageFileName = _res$data2.profileImageFileName;
10676
+ localStorage.setItem(ACCESS_TOKEN, token);
10677
+ localStorage.removeItem(NOTIFICATION_ALERT_KEY);
10678
+ dispatch(setUser({
10679
+ id: id,
10680
+ firstName: firstName,
10681
+ lastName: lastName,
10682
+ roles: roles,
10683
+ email: email,
10684
+ profileImageFileName: profileImageFileName
10685
+ }));
10686
+
10687
+ if (isDistrict) {
10688
+ history.push(HOMEPAGE_DISTRICT$1);
10689
+ } else if (roles.includes("Admin")) {
10690
+ history.push(HOMEPAGE_ADMIN$1);
10691
+ } else if (roles.includes("Teacher") || roles.includes("Assistant")) {
10692
+ history.push(HOMEPAGE_TEACHER$1);
10693
+ } else if (roles.includes("Student")) {
10694
+ history.push(HOMEPAGE_STUDENT$1);
10695
+ } else if (roles.includes("Parent")) {
10696
+ history.push(HOMEPAGE_PARENT$1);
10697
+ } else if (roles.includes("EduTeacher")) {
10698
+ history.push(HOMEPAGE_EDU_TEACHER$1);
10699
+ } else if (roles.includes("Counselor") || roles.includes("SecondaryTeacher")) {
10700
+ history.push(HOMEPAGE_TEACHER$1);
10701
+ }
10702
+ };
10703
+
10704
+ var swicthUser = useCallback(function (id) {
10705
+ try {
10706
+ var _temp6 = _catch(function () {
10707
+ return Promise.resolve(switchAccountUser(id)).then(function (res) {
10708
+ var data = res.data;
10709
+ dispatch(setModal({
10710
+ isOpen: true,
10711
+ type: "warning",
10712
+ message: "Do you want to impersonate this user?",
10713
+ onConfirm: function () {
10714
+ try {
10715
+ var _temp9 = function _temp9() {
10716
+ dispatch(setLoading(false));
10717
+ };
10788
10718
 
10789
- var setStudentIdSelectedByTeacher = createAction("navMobile/setStudentIdSelectedByTeacher");
10719
+ dispatch(setLoading(true));
10790
10720
 
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
- });
10721
+ var _temp10 = _catch(function () {
10722
+ var req = {
10723
+ email: data.email,
10724
+ password: "default",
10725
+ accessToken: data.token
10726
+ };
10727
+ return Promise.resolve(logIn(req)).then(function (res) {
10728
+ localStorage.clear();
10729
+ redirectLoginUser(res);
10730
+ });
10731
+ }, function (err) {
10732
+ var _err$response3, _err$response3$data;
10801
10733
 
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
- });
10734
+ setAlert({
10735
+ type: "danger",
10736
+ 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
10737
+ });
10738
+ });
10844
10739
 
10845
- var store = configureStore({
10846
- reducer: rootReducer,
10847
- middleware: function middleware(getDefaultMiddleware) {
10848
- return getDefaultMiddleware({
10849
- serializableCheck: false
10850
- }).concat(logger);
10851
- }
10852
- });
10740
+ return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp9) : _temp9(_temp10));
10741
+ } catch (e) {
10742
+ return Promise.reject(e);
10743
+ }
10744
+ }
10745
+ }));
10746
+ });
10747
+ }, function (err) {
10748
+ var _err$response4, _err$response4$data;
10853
10749
 
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
- };
10750
+ dispatch(setAlert({
10751
+ type: "danger",
10752
+ 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
10753
+ }));
10754
+ });
10858
10755
 
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];
10756
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
10757
+ } catch (e) {
10758
+ return Promise.reject(e);
10864
10759
  }
10760
+ }, [filters]);
10865
10761
 
10866
- var next = function next() {
10867
- return callback.apply(void 0, args);
10868
- };
10762
+ var reDirectDetailPage = function reDirectDetailPage(id) {
10763
+ var url = !!id ? USER_URL$2 + "/" + id : CREATE_USER_URL;
10764
+ history.push(url);
10765
+ };
10869
10766
 
10870
- clearTimeout(timeout);
10871
- timeout = setTimeout(next, wait);
10767
+ return {
10768
+ userList: userList,
10769
+ totalItems: totalItems,
10770
+ filters: filters,
10771
+ queryName: queryName,
10772
+ getData: getData,
10773
+ removeData: removeData,
10774
+ changeFilters: changeFilters,
10775
+ reDirectDetailPage: reDirectDetailPage,
10776
+ swicthUser: swicthUser
10872
10777
  };
10873
10778
  };
10874
10779
 
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
- };
10780
+ var header$4 = "User";
10882
10781
 
10883
- var generateRandomString = (function () {
10884
- return (Math.random() + 1).toString(36).substring(7);
10885
- });
10782
+ var UserList = function UserList() {
10783
+ var _useUserList = useUserList(),
10784
+ queryName = _useUserList.queryName,
10785
+ userList = _useUserList.userList,
10786
+ totalItems = _useUserList.totalItems,
10787
+ filters = _useUserList.filters,
10788
+ removeData = _useUserList.removeData,
10789
+ changeFilters = _useUserList.changeFilters,
10790
+ reDirectDetailPage = _useUserList.reDirectDetailPage,
10791
+ swicthUser = _useUserList.swicthUser;
10886
10792
 
10887
- var amplitudeClient = amplitude.getInstance();
10793
+ var _useTranslation = useTranslation(),
10794
+ t = _useTranslation.t;
10795
+
10796
+ return React.createElement("div", {
10797
+ className: "fadeIn animated"
10798
+ }, React.createElement("h5", {
10799
+ className: "mb-2"
10800
+ }, t("" + header$4)), React.createElement(Row, {
10801
+ className: "my-2"
10802
+ }, React.createElement(Col, {
10803
+ md: 8
10804
+ }, React.createElement(SearchBoxContainer, {
10805
+ text: t("create_user"),
10806
+ onClick: function onClick() {
10807
+ return reDirectDetailPage();
10808
+ },
10809
+ initValue: !!queryName ? queryName : "",
10810
+ onSearch: function onSearch(searchString) {
10811
+ return changeFilters({
10812
+ searchString: searchString
10813
+ });
10814
+ },
10815
+ placeholder: t("type_something_to_search_by_user_name")
10816
+ })), React.createElement(Col, {
10817
+ md: 4,
10818
+ className: "d-flex justify-content-end align-items-center"
10819
+ }, t("total_of_users"), " : ", totalItems)), React.createElement(Row, {
10820
+ className: "mb-2"
10821
+ }, React.createElement(Col, {
10822
+ md: 12
10823
+ }, userList && userList.length > 0 ? React.createElement("div", null, React.createElement(Table, {
10824
+ bordered: true,
10825
+ hover: true,
10826
+ striped: true,
10827
+ responsive: true,
10828
+ size: "sm"
10829
+ }, React.createElement("thead", null, React.createElement("tr", null, React.createElement("th", {
10830
+ className: "align-top"
10831
+ }, t("name")), React.createElement("th", {
10832
+ className: "align-top"
10833
+ }, t("email")), React.createElement("th", {
10834
+ className: "align-top"
10835
+ }, t("age")), React.createElement("th", {
10836
+ className: "align-top"
10837
+ }, t("role")), React.createElement("th", {
10838
+ className: "align-top"
10839
+ }, t("active_status")), React.createElement("th", {
10840
+ className: "align-top"
10841
+ }, t("created_time")), React.createElement("th", {
10842
+ className: "text-center"
10843
+ }, t("action")))), React.createElement("tbody", null, userList.map(function (record) {
10844
+ return React.createElement("tr", {
10845
+ key: record.id
10846
+ }, React.createElement("td", {
10847
+ className: "align-middle"
10848
+ }, React.createElement(LinkEditButton, {
10849
+ label: "" + record.fullName,
10850
+ onClick: function onClick() {
10851
+ return reDirectDetailPage(record.id);
10852
+ }
10853
+ })), React.createElement("td", {
10854
+ className: "align-middle"
10855
+ }, record.email), React.createElement("td", {
10856
+ className: "align-middle"
10857
+ }, differenceInCalendarYears(new Date(), new Date(record.dateOfBirth))), React.createElement("td", {
10858
+ className: "align-middle"
10859
+ }, !!record.roles && record.roles.join(", ")), React.createElement("td", {
10860
+ className: "align-middle"
10861
+ }, record.isActive ? t("active") : t("inactive")), React.createElement("td", {
10862
+ className: "align-middle"
10863
+ }, utcToLocalTime(record === null || record === void 0 ? void 0 : record.createTime, "yyyy-MM-DD HH:mm")), React.createElement("td", {
10864
+ className: "text-center align-middle"
10865
+ }, React.createElement(FaUsersCog, {
10866
+ style: {
10867
+ fontSize: "18px",
10868
+ marginRight: "10px",
10869
+ cursor: "pointer"
10870
+ },
10871
+ onClick: function onClick() {
10872
+ return swicthUser(record.id);
10873
+ }
10874
+ }), React.createElement(DeleteButtonIcon, {
10875
+ onClick: function onClick() {
10876
+ return removeData(record.id);
10877
+ }
10878
+ })));
10879
+ })))) : React.createElement(EmptyDataAlert, {
10880
+ label: t("user")
10881
+ })), React.createElement(Col, {
10882
+ md: 12
10883
+ }, React.createElement(CustomPagination, {
10884
+ filters: filters,
10885
+ totalRecordCount: totalItems,
10886
+ changePageSize: function changePageSize(pageSize) {
10887
+ return changeFilters({
10888
+ pageSize: pageSize
10889
+ });
10890
+ },
10891
+ changePage: function changePage(currentPage) {
10892
+ return changeFilters({
10893
+ currentPage: currentPage
10894
+ });
10895
+ }
10896
+ }))));
10897
+ };
10898
+
10899
+ var amplitudeClient$1 = amplitude.getInstance();
10888
10900
 
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 };
10901
+ 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
10902
  //# sourceMappingURL=index.modern.js.map