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.
@@ -0,0 +1,10 @@
1
+ declare const changePasswordSchema: import("yup/lib/object").OptionalObjectSchema<{
2
+ oldPassword: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
3
+ newPassword: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
4
+ confirmedNewPassword: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
5
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
6
+ oldPassword: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
7
+ newPassword: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
8
+ confirmedNewPassword: import("yup/lib/string").RequiredStringSchema<string | undefined, Record<string, any>>;
9
+ }>>;
10
+ export default changePasswordSchema;
@@ -18,5 +18,6 @@ declare const useUserDetail: (id?: string | undefined) => {
18
18
  edited: boolean;
19
19
  setEdited: import("react").Dispatch<import("react").SetStateAction<boolean>>;
20
20
  setEditedTrue: () => Promise<void>;
21
+ confirmChangePassword: (data: any) => Promise<void>;
21
22
  };
22
23
  export default useUserDetail;
@@ -2,8 +2,8 @@ declare const useUserList: () => {
2
2
  userList: any;
3
3
  totalItems: any;
4
4
  filters: import("../../..").Filter;
5
- fullName: string | null;
6
- getData: () => Promise<void>;
5
+ queryName: string | null;
6
+ getData: (fullName?: string | undefined) => Promise<void>;
7
7
  removeData: (id: string) => void;
8
8
  changeFilters: (updatedFilters: any) => void;
9
9
  reDirectDetailPage: (id?: number | undefined) => void;
package/dist/index.js CHANGED
@@ -1588,7 +1588,14 @@ var TheHeader = function TheHeader() {
1588
1588
  className: styles["header-logo"]
1589
1589
  })), React__default.createElement(react.CHeaderNav, {
1590
1590
  className: "pr-3"
1591
- }, !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, null)));
1591
+ }, React__default.createElement("a", {
1592
+ className: "mr-3",
1593
+ style: {
1594
+ color: '#000'
1595
+ },
1596
+ href: 'https://marioframework.com/mario-for-me-privacy-policy/',
1597
+ target: "blank"
1598
+ }, "Privacy Policy"), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, null)));
1592
1599
  };
1593
1600
 
1594
1601
  var TITLE$3 = "Not found";
@@ -2418,6 +2425,7 @@ var config = {
2418
2425
  force_br_newlines: true,
2419
2426
  force_p_newlines: false,
2420
2427
  branding: false,
2428
+ convert_urls: false,
2421
2429
  plugins: "advlist autolink lists link image charmap print preview anchor\n searchreplace visualblocks code fullscreen\n insertdatetime media table paste code help wordcount media",
2422
2430
  toolbar: "undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | image",
2423
2431
  paste_data_images: true
@@ -4056,6 +4064,7 @@ var setUserList = toolkit.createAction("users/setUserList");
4056
4064
  var setStudentList = toolkit.createAction("users/setStudentList");
4057
4065
 
4058
4066
  var USER_URL = BASE_URL + "/api/user";
4067
+ var CHANGE_PASSWORD = BASE_URL + "/api/Account/changePassword";
4059
4068
  var get$5 = function get(filter) {
4060
4069
  return api.get("" + USER_URL, {
4061
4070
  params: filter
@@ -4073,6 +4082,9 @@ var update$3 = function update(data) {
4073
4082
  var remove$3 = function remove(id) {
4074
4083
  return api["delete"](USER_URL + "/" + id);
4075
4084
  };
4085
+ var changePassword = function changePassword(formData) {
4086
+ return api.post(CHANGE_PASSWORD, formData);
4087
+ };
4076
4088
 
4077
4089
  var USER_URL$1 = "/admin/user";
4078
4090
  var CREATE_USER_URL = "/admin/create-user";
@@ -4081,7 +4093,7 @@ var TITLE$8 = "User list";
4081
4093
  var useUserList = function useUserList() {
4082
4094
  var history = reactRouterDom.useHistory();
4083
4095
  var query = new URLSearchParams(location.search);
4084
- var fullName = query.get("query");
4096
+ var queryName = query.get("query");
4085
4097
  var userList = reactRedux.useSelector(function (state) {
4086
4098
  return state.users.userList;
4087
4099
  });
@@ -4093,8 +4105,12 @@ var useUserList = function useUserList() {
4093
4105
  filters = _useFilters.filters,
4094
4106
  changeFilters = _useFilters.changeFilters;
4095
4107
 
4108
+ var _useState = React.useState(!!queryName ? queryName : ""),
4109
+ fullName = _useState[0],
4110
+ setFullName = _useState[1];
4111
+
4096
4112
  var dispatch = reactRedux.useDispatch();
4097
- var getData = React.useCallback(function () {
4113
+ var getData = React.useCallback(function (fullName) {
4098
4114
  try {
4099
4115
  var _temp3 = function _temp3() {
4100
4116
  dispatch(setLoading(false));
@@ -4103,7 +4119,9 @@ var useUserList = function useUserList() {
4103
4119
  dispatch(setLoading(true));
4104
4120
 
4105
4121
  var _temp4 = _catch(function () {
4106
- return Promise.resolve(get$5(filters)).then(function (res) {
4122
+ return Promise.resolve(fullName ? get$5(_extends({}, filters, {
4123
+ searchString: fullName
4124
+ })) : get$5(filters)).then(function (res) {
4107
4125
  var _res$data = res.data,
4108
4126
  items = _res$data.items,
4109
4127
  totalItems = _res$data.totalItems;
@@ -4130,13 +4148,13 @@ var useUserList = function useUserList() {
4130
4148
  document.title = TITLE$8;
4131
4149
  }, []);
4132
4150
  React.useEffect(function () {
4133
- getData();
4151
+ if (!!fullName) {
4152
+ getData(fullName);
4153
+ setFullName(null);
4154
+ } else {
4155
+ getData();
4156
+ }
4134
4157
  }, [filters]);
4135
- React.useEffect(function () {
4136
- changeFilters({
4137
- searchString: fullName
4138
- });
4139
- }, [fullName]);
4140
4158
  var removeData = React.useCallback(function (id) {
4141
4159
  dispatch(setLoading(true));
4142
4160
 
@@ -4182,7 +4200,7 @@ var useUserList = function useUserList() {
4182
4200
  userList: userList,
4183
4201
  totalItems: totalItems,
4184
4202
  filters: filters,
4185
- fullName: fullName,
4203
+ queryName: queryName,
4186
4204
  getData: getData,
4187
4205
  removeData: removeData,
4188
4206
  changeFilters: changeFilters,
@@ -4259,7 +4277,7 @@ var header$2 = "User";
4259
4277
 
4260
4278
  var UserList = function UserList() {
4261
4279
  var _useUserList = useUserList(),
4262
- fullName = _useUserList.fullName,
4280
+ queryName = _useUserList.queryName,
4263
4281
  userList = _useUserList.userList,
4264
4282
  totalItems = _useUserList.totalItems,
4265
4283
  filters = _useUserList.filters,
@@ -4280,7 +4298,7 @@ var UserList = function UserList() {
4280
4298
  onClick: function onClick() {
4281
4299
  return reDirectDetailPage();
4282
4300
  },
4283
- initValue: !!fullName ? fullName : '',
4301
+ initValue: !!queryName ? queryName : "",
4284
4302
  onSearch: function onSearch(searchString) {
4285
4303
  return changeFilters({
4286
4304
  searchString: searchString
@@ -4520,7 +4538,7 @@ var useUserDetail = function useUserDetail(id) {
4520
4538
  }
4521
4539
  }, [id]);
4522
4540
  var backToList = React.useCallback(function (user) {
4523
- !!user ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
4541
+ !!user && typeof user === "string" ? history.push(USER_LIST_URL + ("?query=" + user)) : history.push(USER_LIST_URL);
4524
4542
  }, []);
4525
4543
  var confirmData = React.useCallback(function (data) {
4526
4544
  try {
@@ -4577,6 +4595,37 @@ var useUserDetail = function useUserDetail(id) {
4577
4595
  return Promise.reject(e);
4578
4596
  }
4579
4597
  }, [id, file]);
4598
+
4599
+ var confirmChangePassword = function confirmChangePassword(data) {
4600
+ try {
4601
+ var _temp13 = function _temp13() {
4602
+ dispatch(setLoading(false));
4603
+ };
4604
+
4605
+ dispatch(setLoading(true));
4606
+
4607
+ var _temp14 = _catch(function () {
4608
+ return Promise.resolve(changePassword(data)).then(function () {
4609
+ dispatch(setAlert({
4610
+ type: "success",
4611
+ message: "Change password successfully"
4612
+ }));
4613
+ });
4614
+ }, function (e) {
4615
+ var _e$response, _e$response$data;
4616
+
4617
+ dispatch(setAlert({
4618
+ type: "danger",
4619
+ 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
4620
+ }));
4621
+ });
4622
+
4623
+ return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp13) : _temp13(_temp14));
4624
+ } catch (e) {
4625
+ return Promise.reject(e);
4626
+ }
4627
+ };
4628
+
4580
4629
  return {
4581
4630
  userDetail: userDetail,
4582
4631
  backToList: backToList,
@@ -4585,7 +4634,8 @@ var useUserDetail = function useUserDetail(id) {
4585
4634
  setFile: setFile,
4586
4635
  edited: edited,
4587
4636
  setEdited: setEdited,
4588
- setEditedTrue: setEditedTrue
4637
+ setEditedTrue: setEditedTrue,
4638
+ confirmChangePassword: confirmChangePassword
4589
4639
  };
4590
4640
  };
4591
4641
 
@@ -4597,8 +4647,15 @@ var userSchema = yup.object({
4597
4647
  roles: yup.array().of(yup.string()).min(1, "Role is required")
4598
4648
  });
4599
4649
 
4650
+ var changePasswordSchema = yup.object({
4651
+ oldPassword: yup.string().required("Current password is required"),
4652
+ newPassword: yup.string().required("New password is required"),
4653
+ confirmedNewPassword: yup.string().required("Confirm password is required")
4654
+ });
4655
+
4600
4656
  var CREATE_USER = "Create user";
4601
4657
  var EDIT_USER_HEADER = "Edit user";
4658
+ var CHANGE_PASSWORD$1 = "Change password";
4602
4659
  var ROLES = {
4603
4660
  ADMIN: "Admin",
4604
4661
  TEACHER: "Teacher",
@@ -4611,6 +4668,10 @@ var UserDetail = function UserDetail() {
4611
4668
  var _useParams = reactRouterDom.useParams(),
4612
4669
  id = _useParams.id;
4613
4670
 
4671
+ var user = reactRedux.useSelector(function (state) {
4672
+ return state.common.user;
4673
+ });
4674
+
4614
4675
  var _useUserDetail = useUserDetail(id),
4615
4676
  userDetail = _useUserDetail.userDetail,
4616
4677
  backToList = _useUserDetail.backToList,
@@ -4619,8 +4680,14 @@ var UserDetail = function UserDetail() {
4619
4680
  setFile = _useUserDetail.setFile,
4620
4681
  edited = _useUserDetail.edited,
4621
4682
  setEdited = _useUserDetail.setEdited,
4622
- setEditedTrue = _useUserDetail.setEditedTrue;
4683
+ setEditedTrue = _useUserDetail.setEditedTrue,
4684
+ confirmChangePassword = _useUserDetail.confirmChangePassword;
4623
4685
 
4686
+ var initialValueForm = {
4687
+ oldPassword: "",
4688
+ newPassword: "",
4689
+ confirmedNewPassword: ""
4690
+ };
4624
4691
  var header = !!id ? EDIT_USER_HEADER : CREATE_USER;
4625
4692
  var confirmText = !!id ? "Update" : "Create";
4626
4693
 
@@ -4826,7 +4893,82 @@ var UserDetail = function UserDetail() {
4826
4893
  style: {
4827
4894
  maxWidth: "100%"
4828
4895
  }
4829
- }))))), React__default.createElement(DetailActionButtons, {
4896
+ }))))), user.id === id ? React__default.createElement("div", null, React__default.createElement("h5", {
4897
+ className: "mt-3"
4898
+ }, CHANGE_PASSWORD$1), React__default.createElement(formik.Formik, {
4899
+ initialValues: initialValueForm,
4900
+ enableReinitialize: true,
4901
+ validationSchema: changePasswordSchema,
4902
+ onSubmit: function onSubmit(values) {
4903
+ confirmChangePassword(values);
4904
+ }
4905
+ }, function (formProps) {
4906
+ var values = formProps.values,
4907
+ touched = formProps.touched,
4908
+ errors = formProps.errors,
4909
+ handleChange = formProps.handleChange,
4910
+ handleSubmit = formProps.handleSubmit;
4911
+ return React__default.createElement(reactstrap.Row, {
4912
+ className: "pt-2 pb-5"
4913
+ }, React__default.createElement(reactstrap.Col, {
4914
+ md: 7
4915
+ }, React__default.createElement(reactstrap.FormGroup, null, React__default.createElement(RequiredLabel$1, {
4916
+ text: "Current password"
4917
+ }), React__default.createElement(reactstrap.Input, {
4918
+ name: "oldPassword",
4919
+ type: "password",
4920
+ value: values.oldPassword,
4921
+ onChange: function onChange(e) {
4922
+ handleChange(e);
4923
+ setEditedTrue();
4924
+ },
4925
+ onBlur: handleBlur("subject"),
4926
+ placeholder: "Current password"
4927
+ }), touched.oldPassword && errors.oldPassword && React__default.createElement(ErrorHandler, {
4928
+ text: errors.oldPassword
4929
+ }))), React__default.createElement(reactstrap.Col, {
4930
+ md: 7
4931
+ }, React__default.createElement(reactstrap.FormGroup, null, React__default.createElement(RequiredLabel$1, {
4932
+ text: "New password"
4933
+ }), React__default.createElement(reactstrap.Input, {
4934
+ name: "newPassword",
4935
+ type: "password",
4936
+ value: values.newPassword,
4937
+ onChange: function onChange(e) {
4938
+ handleChange(e);
4939
+ setEditedTrue();
4940
+ },
4941
+ onBlur: handleBlur("subject"),
4942
+ placeholder: "New password"
4943
+ }), touched.newPassword && errors.newPassword && React__default.createElement(ErrorHandler, {
4944
+ text: errors.newPassword
4945
+ }))), React__default.createElement(reactstrap.Col, {
4946
+ md: 7
4947
+ }, React__default.createElement(reactstrap.FormGroup, null, React__default.createElement(RequiredLabel$1, {
4948
+ text: "Confirm password"
4949
+ }), React__default.createElement(reactstrap.Input, {
4950
+ name: "confirmedNewPassword",
4951
+ type: "password",
4952
+ value: values.confirmedNewPassword,
4953
+ onChange: function onChange(e) {
4954
+ handleChange(e);
4955
+ setEditedTrue();
4956
+ },
4957
+ onBlur: handleBlur("subject"),
4958
+ placeholder: "Confirm password"
4959
+ }), touched.confirmedNewPassword && errors.confirmedNewPassword && React__default.createElement(ErrorHandler, {
4960
+ text: errors.confirmedNewPassword
4961
+ }))), React__default.createElement(reactstrap.Col, {
4962
+ md: 12
4963
+ }, React__default.createElement(reactstrap.Button, {
4964
+ color: "primary",
4965
+ size: "sm",
4966
+ className: "px-4 pl-1 mr-2 ml-3",
4967
+ onClick: function onClick() {
4968
+ return handleSubmit();
4969
+ }
4970
+ }, "Save")));
4971
+ })) : null, React__default.createElement(DetailActionButtons, {
4830
4972
  confirmText: confirmText,
4831
4973
  onConfirm: handleSubmit,
4832
4974
  onCancel: backToList