mario-core 2.7.7 → 2.8.0

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.
@@ -1585,7 +1585,14 @@ var TheHeader = function TheHeader() {
1585
1585
  className: styles["header-logo"]
1586
1586
  })), React.createElement(CHeaderNav, {
1587
1587
  className: "pr-3"
1588
- }, !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, null)));
1588
+ }, React.createElement("a", {
1589
+ className: "mr-3",
1590
+ style: {
1591
+ color: '#000'
1592
+ },
1593
+ href: 'https://marioframework.com/mario-for-me-privacy-policy/',
1594
+ target: "blank"
1595
+ }, "Privacy Policy"), !isDistrict && React.createElement(NotificationButton, null), React.createElement(TheHeaderDropdown, null)));
1589
1596
  };
1590
1597
 
1591
1598
  var TITLE$3 = "Not found";
@@ -2415,6 +2422,7 @@ var config = {
2415
2422
  force_br_newlines: true,
2416
2423
  force_p_newlines: false,
2417
2424
  branding: false,
2425
+ convert_urls: false,
2418
2426
  plugins: "advlist autolink lists link image charmap print preview anchor\n searchreplace visualblocks code fullscreen\n insertdatetime media table paste code help wordcount media",
2419
2427
  toolbar: "undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | image",
2420
2428
  paste_data_images: true
@@ -4053,6 +4061,7 @@ var setUserList = createAction("users/setUserList");
4053
4061
  var setStudentList = createAction("users/setStudentList");
4054
4062
 
4055
4063
  var USER_URL = BASE_URL + "/api/user";
4064
+ var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
4056
4065
  var get$5 = function get(filter) {
4057
4066
  return api.get("" + USER_URL, {
4058
4067
  params: filter
@@ -4070,6 +4079,9 @@ var update$3 = function update(data) {
4070
4079
  var remove$3 = function remove(id) {
4071
4080
  return api["delete"](USER_URL + "/" + id);
4072
4081
  };
4082
+ var changePassword = function changePassword(formData) {
4083
+ return api.post(CHANGE_PASSWORD, formData);
4084
+ };
4073
4085
 
4074
4086
  var USER_URL$1 = "/admin/user";
4075
4087
  var CREATE_USER_URL = "/admin/create-user";
@@ -4078,7 +4090,7 @@ var TITLE$8 = "User list";
4078
4090
  var useUserList = function useUserList() {
4079
4091
  var history = useHistory();
4080
4092
  var query = new URLSearchParams(location.search);
4081
- var fullName = query.get("query");
4093
+ var queryName = query.get("query");
4082
4094
  var userList = useSelector(function (state) {
4083
4095
  return state.users.userList;
4084
4096
  });
@@ -4090,8 +4102,12 @@ var useUserList = function useUserList() {
4090
4102
  filters = _useFilters.filters,
4091
4103
  changeFilters = _useFilters.changeFilters;
4092
4104
 
4105
+ var _useState = useState(!!queryName ? queryName : ""),
4106
+ fullName = _useState[0],
4107
+ setFullName = _useState[1];
4108
+
4093
4109
  var dispatch = useDispatch();
4094
- var getData = useCallback(function () {
4110
+ var getData = useCallback(function (fullName) {
4095
4111
  try {
4096
4112
  var _temp3 = function _temp3() {
4097
4113
  dispatch(setLoading(false));
@@ -4100,7 +4116,9 @@ var useUserList = function useUserList() {
4100
4116
  dispatch(setLoading(true));
4101
4117
 
4102
4118
  var _temp4 = _catch(function () {
4103
- return Promise.resolve(get$5(filters)).then(function (res) {
4119
+ return Promise.resolve(fullName ? get$5(_extends({}, filters, {
4120
+ searchString: fullName
4121
+ })) : get$5(filters)).then(function (res) {
4104
4122
  var _res$data = res.data,
4105
4123
  items = _res$data.items,
4106
4124
  totalItems = _res$data.totalItems;
@@ -4127,13 +4145,13 @@ var useUserList = function useUserList() {
4127
4145
  document.title = TITLE$8;
4128
4146
  }, []);
4129
4147
  useEffect(function () {
4130
- getData();
4148
+ if (!!fullName) {
4149
+ getData(fullName);
4150
+ setFullName(null);
4151
+ } else {
4152
+ getData();
4153
+ }
4131
4154
  }, [filters]);
4132
- useEffect(function () {
4133
- changeFilters({
4134
- searchString: fullName
4135
- });
4136
- }, [fullName]);
4137
4155
  var removeData = useCallback(function (id) {
4138
4156
  dispatch(setLoading(true));
4139
4157
 
@@ -4179,7 +4197,7 @@ var useUserList = function useUserList() {
4179
4197
  userList: userList,
4180
4198
  totalItems: totalItems,
4181
4199
  filters: filters,
4182
- fullName: fullName,
4200
+ queryName: queryName,
4183
4201
  getData: getData,
4184
4202
  removeData: removeData,
4185
4203
  changeFilters: changeFilters,
@@ -4256,7 +4274,7 @@ var header$2 = "User";
4256
4274
 
4257
4275
  var UserList = function UserList() {
4258
4276
  var _useUserList = useUserList(),
4259
- fullName = _useUserList.fullName,
4277
+ queryName = _useUserList.queryName,
4260
4278
  userList = _useUserList.userList,
4261
4279
  totalItems = _useUserList.totalItems,
4262
4280
  filters = _useUserList.filters,
@@ -4277,7 +4295,7 @@ var UserList = function UserList() {
4277
4295
  onClick: function onClick() {
4278
4296
  return reDirectDetailPage();
4279
4297
  },
4280
- initValue: !!fullName ? fullName : '',
4298
+ initValue: !!queryName ? queryName : "",
4281
4299
  onSearch: function onSearch(searchString) {
4282
4300
  return changeFilters({
4283
4301
  searchString: searchString
@@ -4517,7 +4535,7 @@ var useUserDetail = function useUserDetail(id) {
4517
4535
  }
4518
4536
  }, [id]);
4519
4537
  var backToList = useCallback(function (user) {
4520
- !!user ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
4538
+ !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
4521
4539
  }, []);
4522
4540
  var confirmData = useCallback(function (data) {
4523
4541
  try {
@@ -4574,6 +4592,37 @@ var useUserDetail = function useUserDetail(id) {
4574
4592
  return Promise.reject(e);
4575
4593
  }
4576
4594
  }, [id, file]);
4595
+
4596
+ var confirmChangePassword = function confirmChangePassword(data) {
4597
+ try {
4598
+ var _temp13 = function _temp13() {
4599
+ dispatch(setLoading(false));
4600
+ };
4601
+
4602
+ dispatch(setLoading(true));
4603
+
4604
+ var _temp14 = _catch(function () {
4605
+ return Promise.resolve(changePassword(data)).then(function () {
4606
+ dispatch(setAlert({
4607
+ type: "success",
4608
+ message: "Change password successfully"
4609
+ }));
4610
+ });
4611
+ }, function (e) {
4612
+ var _e$response, _e$response$data;
4613
+
4614
+ dispatch(setAlert({
4615
+ type: "danger",
4616
+ 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
4617
+ }));
4618
+ });
4619
+
4620
+ return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
4621
+ } catch (e) {
4622
+ return Promise.reject(e);
4623
+ }
4624
+ };
4625
+
4577
4626
  return {
4578
4627
  userDetail: userDetail,
4579
4628
  backToList: backToList,
@@ -4582,7 +4631,8 @@ var useUserDetail = function useUserDetail(id) {
4582
4631
  setFile: setFile,
4583
4632
  edited: edited,
4584
4633
  setEdited: setEdited,
4585
- setEditedTrue: setEditedTrue
4634
+ setEditedTrue: setEditedTrue,
4635
+ confirmChangePassword: confirmChangePassword
4586
4636
  };
4587
4637
  };
4588
4638
 
@@ -4594,8 +4644,15 @@ var userSchema = object({
4594
4644
  roles: array().of(string()).min(1, "Role is required")
4595
4645
  });
4596
4646
 
4647
+ var changePasswordSchema = object({
4648
+ oldPassword: string().required("Current password is required"),
4649
+ newPassword: string().required("New password is required"),
4650
+ confirmedNewPassword: string().required("Confirm password is required")
4651
+ });
4652
+
4597
4653
  var CREATE_USER = "Create user";
4598
4654
  var EDIT_USER_HEADER = "Edit user";
4655
+ var CHANGE_PASSWORD$1 = "Change password";
4599
4656
  var ROLES = {
4600
4657
  ADMIN: "Admin",
4601
4658
  TEACHER: "Teacher",
@@ -4608,6 +4665,10 @@ var UserDetail = function UserDetail() {
4608
4665
  var _useParams = useParams(),
4609
4666
  id = _useParams.id;
4610
4667
 
4668
+ var user = useSelector(function (state) {
4669
+ return state.common.user;
4670
+ });
4671
+
4611
4672
  var _useUserDetail = useUserDetail(id),
4612
4673
  userDetail = _useUserDetail.userDetail,
4613
4674
  backToList = _useUserDetail.backToList,
@@ -4616,8 +4677,14 @@ var UserDetail = function UserDetail() {
4616
4677
  setFile = _useUserDetail.setFile,
4617
4678
  edited = _useUserDetail.edited,
4618
4679
  setEdited = _useUserDetail.setEdited,
4619
- setEditedTrue = _useUserDetail.setEditedTrue;
4680
+ setEditedTrue = _useUserDetail.setEditedTrue,
4681
+ confirmChangePassword = _useUserDetail.confirmChangePassword;
4620
4682
 
4683
+ var initialValueForm = {
4684
+ oldPassword: "",
4685
+ newPassword: "",
4686
+ confirmedNewPassword: ""
4687
+ };
4621
4688
  var header = !!id ? EDIT_USER_HEADER : CREATE_USER;
4622
4689
  var confirmText = !!id ? "Update" : "Create";
4623
4690
 
@@ -4823,7 +4890,82 @@ var UserDetail = function UserDetail() {
4823
4890
  style: {
4824
4891
  maxWidth: "100%"
4825
4892
  }
4826
- }))))), React.createElement(DetailActionButtons, {
4893
+ }))))), user.id === id ? React.createElement("div", null, React.createElement("h5", {
4894
+ className: "mt-3"
4895
+ }, CHANGE_PASSWORD$1), React.createElement(Formik, {
4896
+ initialValues: initialValueForm,
4897
+ enableReinitialize: true,
4898
+ validationSchema: changePasswordSchema,
4899
+ onSubmit: function onSubmit(values) {
4900
+ confirmChangePassword(values);
4901
+ }
4902
+ }, function (formProps) {
4903
+ var values = formProps.values,
4904
+ touched = formProps.touched,
4905
+ errors = formProps.errors,
4906
+ handleChange = formProps.handleChange,
4907
+ handleSubmit = formProps.handleSubmit;
4908
+ return React.createElement(Row, {
4909
+ className: "pt-2 pb-5"
4910
+ }, React.createElement(Col, {
4911
+ md: 7
4912
+ }, React.createElement(FormGroup, null, React.createElement(RequiredLabel$1, {
4913
+ text: "Current password"
4914
+ }), React.createElement(Input, {
4915
+ name: "oldPassword",
4916
+ type: "password",
4917
+ value: values.oldPassword,
4918
+ onChange: function onChange(e) {
4919
+ handleChange(e);
4920
+ setEditedTrue();
4921
+ },
4922
+ onBlur: handleBlur("subject"),
4923
+ placeholder: "Current password"
4924
+ }), touched.oldPassword && errors.oldPassword && React.createElement(ErrorHandler, {
4925
+ text: errors.oldPassword
4926
+ }))), React.createElement(Col, {
4927
+ md: 7
4928
+ }, React.createElement(FormGroup, null, React.createElement(RequiredLabel$1, {
4929
+ text: "New password"
4930
+ }), React.createElement(Input, {
4931
+ name: "newPassword",
4932
+ type: "password",
4933
+ value: values.newPassword,
4934
+ onChange: function onChange(e) {
4935
+ handleChange(e);
4936
+ setEditedTrue();
4937
+ },
4938
+ onBlur: handleBlur("subject"),
4939
+ placeholder: "New password"
4940
+ }), touched.newPassword && errors.newPassword && React.createElement(ErrorHandler, {
4941
+ text: errors.newPassword
4942
+ }))), React.createElement(Col, {
4943
+ md: 7
4944
+ }, React.createElement(FormGroup, null, React.createElement(RequiredLabel$1, {
4945
+ text: "Confirm password"
4946
+ }), React.createElement(Input, {
4947
+ name: "confirmedNewPassword",
4948
+ type: "password",
4949
+ value: values.confirmedNewPassword,
4950
+ onChange: function onChange(e) {
4951
+ handleChange(e);
4952
+ setEditedTrue();
4953
+ },
4954
+ onBlur: handleBlur("subject"),
4955
+ placeholder: "Confirm password"
4956
+ }), touched.confirmedNewPassword && errors.confirmedNewPassword && React.createElement(ErrorHandler, {
4957
+ text: errors.confirmedNewPassword
4958
+ }))), React.createElement(Col, {
4959
+ md: 12
4960
+ }, React.createElement(Button, {
4961
+ color: "primary",
4962
+ size: "sm",
4963
+ className: "px-4 pl-1 mr-2 ml-3",
4964
+ onClick: function onClick() {
4965
+ return handleSubmit();
4966
+ }
4967
+ }, "Save")));
4968
+ })) : null, React.createElement(DetailActionButtons, {
4827
4969
  confirmText: confirmText,
4828
4970
  onConfirm: handleSubmit,
4829
4971
  onCancel: backToList