@itilite/iui-user-management 0.4.28 → 0.4.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ var moment = _interopDefault(require('moment'));
14
14
  var reduxDevtoolsExtension = require('redux-devtools-extension');
15
15
  var reactRouterDom = require('react-router-dom');
16
16
  var styles$8 = require('@material-ui/core/styles');
17
+ var Tooltip = _interopDefault(require('@material-ui/core/Tooltip'));
17
18
  var Switch = _interopDefault(require('@material-ui/core/Switch'));
18
19
  var MoreHorizIcon = _interopDefault(require('@material-ui/icons/MoreHoriz'));
19
20
  var Button = _interopDefault(require('@material-ui/core/Button'));
@@ -1253,7 +1254,6 @@ var fetchRenderFileds = function fetchRenderFileds() {
1253
1254
  var _res$data;
1254
1255
  IUIToastMessageService$1.warningNotify((res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.message) || 'Opps, Something went wrong.');
1255
1256
  dispatch(stopLoader());
1256
- reject();
1257
1257
  }
1258
1258
  })["catch"](function (err) {
1259
1259
  reject(err);
@@ -1425,11 +1425,9 @@ var createUser = function createUser(payload) {
1425
1425
  } else {
1426
1426
  if (res.data.errors && typeof res.data.errors === 'object') {
1427
1427
  reject(res.data.errors);
1428
- return;
1429
1428
  } else if (!Object.keys(res.data.errors).length) {
1430
1429
  IUIToastMessageService$1.warningNotify(res.data.message);
1431
1430
  }
1432
- reject();
1433
1431
  }
1434
1432
  })["catch"](function (err) {
1435
1433
  var _err$response6;
@@ -1545,6 +1543,48 @@ var undoneSignUpRejection = function undoneSignUpRejection(userId) {
1545
1543
  });
1546
1544
  };
1547
1545
  };
1546
+ var resetPasswordForUser = function resetPasswordForUser(data) {
1547
+ return function (dispatch) {
1548
+ return new Promise(function (resolve, reject) {
1549
+ api$2.post("" + userAddEditUrl.resetPasswordForUserApi(), {
1550
+ email: data.email
1551
+ }).then(function (res) {
1552
+ IUIToastMessageService$1.sNotify("The link to reset the password has been sent to the user's email address. Check your \"junk mail\" or \"spam\" folders in case it's not received.");
1553
+ resolve();
1554
+ })["catch"](function (err) {
1555
+ var _err$response9, _err$response9$data;
1556
+ if (!(err !== null && err !== void 0 && (_err$response9 = err.response) !== null && _err$response9 !== void 0 && (_err$response9$data = _err$response9.data) !== null && _err$response9$data !== void 0 && _err$response9$data.status)) {
1557
+ var _err$response10, _err$response10$data, _err$response10$data$;
1558
+ IUIToastMessageService$1.errNotify(err === null || err === void 0 ? void 0 : (_err$response10 = err.response) === null || _err$response10 === void 0 ? void 0 : (_err$response10$data = _err$response10.data) === null || _err$response10$data === void 0 ? void 0 : (_err$response10$data$ = _err$response10$data.message) === null || _err$response10$data$ === void 0 ? void 0 : _err$response10$data$.email[0]);
1559
+ reject(err);
1560
+ return;
1561
+ }
1562
+ reject(err);
1563
+ });
1564
+ });
1565
+ };
1566
+ };
1567
+ var resendInviteForUser = function resendInviteForUser(data) {
1568
+ return function (dispatch) {
1569
+ return new Promise(function (resolve, reject) {
1570
+ api$2.post(userAddEditUrl.resendInviteForUserApi(), {
1571
+ user_ids: data
1572
+ }).then(function (res) {
1573
+ IUIToastMessageService$1.sNotify(res.data.message);
1574
+ resolve();
1575
+ })["catch"](function (err) {
1576
+ var _err$response11, _err$response11$data;
1577
+ if (!(err !== null && err !== void 0 && (_err$response11 = err.response) !== null && _err$response11 !== void 0 && (_err$response11$data = _err$response11.data) !== null && _err$response11$data !== void 0 && _err$response11$data.status)) {
1578
+ var _err$response12, _err$response12$data, _err$response12$data$;
1579
+ IUIToastMessageService$1.errNotify(err === null || err === void 0 ? void 0 : (_err$response12 = err.response) === null || _err$response12 === void 0 ? void 0 : (_err$response12$data = _err$response12.data) === null || _err$response12$data === void 0 ? void 0 : (_err$response12$data$ = _err$response12$data.message) === null || _err$response12$data$ === void 0 ? void 0 : _err$response12$data$.email[0]);
1580
+ reject(err);
1581
+ return;
1582
+ }
1583
+ reject(err);
1584
+ });
1585
+ });
1586
+ };
1587
+ };
1548
1588
  var updateUser = function updateUser(payload, userId, inputChangeLog) {
1549
1589
  return function (dispatch) {
1550
1590
  return new Promise(function (resolve, reject) {
@@ -8124,6 +8164,10 @@ var StickyHeadTable = function StickyHeadTable(props) {
8124
8164
  selected = props.selected,
8125
8165
  _props$handleSingleCh = props.handleSingleCheckBoxClick,
8126
8166
  handleSingleCheckBoxClick = _props$handleSingleCh === void 0 ? function () {} : _props$handleSingleCh,
8167
+ _props$onResetPasswor = props.onResetPasswordHandler,
8168
+ onResetPasswordHandler = _props$onResetPasswor === void 0 ? function () {} : _props$onResetPasswor,
8169
+ _props$toggleInviteMo = props.toggleInviteModal,
8170
+ toggleInviteModal = _props$toggleInviteMo === void 0 ? function () {} : _props$toggleInviteMo,
8127
8171
  orderBy = props.orderBy,
8128
8172
  order = props.order,
8129
8173
  _props$onRequestSort = props.onRequestSort,
@@ -8141,6 +8185,21 @@ var StickyHeadTable = function StickyHeadTable(props) {
8141
8185
  searchValue = props.searchValue,
8142
8186
  _props$isILadmin = props.isILadmin,
8143
8187
  isILadmin = _props$isILadmin === void 0 ? false : _props$isILadmin;
8188
+ var useStyles = styles$8.makeStyles(function (theme) {
8189
+ return {
8190
+ tooltip: {
8191
+ background: '#1F2937',
8192
+ fontSize: '14px',
8193
+ color: '#ffffff',
8194
+ padding: '12px 16px',
8195
+ borderRadius: '6px'
8196
+ },
8197
+ arrow: {
8198
+ color: '#1F2937'
8199
+ }
8200
+ };
8201
+ });
8202
+ var classes = useStyles();
8144
8203
  var columns = [{
8145
8204
  id: 'first_name',
8146
8205
  label: 'Name',
@@ -8160,6 +8219,27 @@ var StickyHeadTable = function StickyHeadTable(props) {
8160
8219
  profilePath: row === null || row === void 0 ? void 0 : (_row$profile_pic = row.profile_pic) === null || _row$profile_pic === void 0 ? void 0 : _row$profile_pic.presigned_url
8161
8220
  }));
8162
8221
  }
8222
+ }, {
8223
+ id: 'first_name',
8224
+ label: '',
8225
+ minWidth: 60,
8226
+ sortable: false,
8227
+ cell: function cell(row) {
8228
+ return /*#__PURE__*/React__default.createElement(iuistyles.IUIBox, {
8229
+ component: "div",
8230
+ width: 60
8231
+ }, row && row.has_visited === 0 ? /*#__PURE__*/React__default.createElement(Tooltip, {
8232
+ title: "This user hasn't logged on to the platform yet",
8233
+ arrow: true,
8234
+ classes: {
8235
+ arrow: classes.arrow,
8236
+ tooltip: classes.tooltip
8237
+ },
8238
+ placement: "top-start"
8239
+ }, /*#__PURE__*/React__default.createElement("div", {
8240
+ className: clsx(styles$5.tooltipText)
8241
+ }, "Invited")) : null);
8242
+ }
8163
8243
  }, {
8164
8244
  id: 'emp_info__department__name',
8165
8245
  label: 'Department',
@@ -8247,6 +8327,21 @@ var StickyHeadTable = function StickyHeadTable(props) {
8247
8327
  return onEditHandler(row.id);
8248
8328
  }
8249
8329
  }];
8330
+ if (row && row.has_visited && row.is_active) {
8331
+ options.push({
8332
+ label: 'Reset password',
8333
+ handler: function handler() {
8334
+ return onResetPasswordHandler(row.email);
8335
+ }
8336
+ });
8337
+ } else if (row && row.is_active) {
8338
+ options.push({
8339
+ label: 'Resend invite',
8340
+ handler: function handler() {
8341
+ return toggleInviteModal(row.id, 'single');
8342
+ }
8343
+ });
8344
+ }
8250
8345
  if (isILadmin) {
8251
8346
  options.push({
8252
8347
  label: 'Make primary admin',
@@ -8414,6 +8509,22 @@ var SingupRequests = function SingupRequests(props) {
8414
8509
  });
8415
8510
  };
8416
8511
 
8512
+ function InviteInfoIcon() {
8513
+ return /*#__PURE__*/React__default.createElement("svg", {
8514
+ xmlns: "http://www.w3.org/2000/svg",
8515
+ width: "20",
8516
+ height: "20",
8517
+ fill: "none",
8518
+ viewBox: "0 0 20 20"
8519
+ }, /*#__PURE__*/React__default.createElement("path", {
8520
+ fill: "#CA8A04",
8521
+ d: "M11 5a1 1 0 11-2 0 1 1 0 012 0zM8 8a1 1 0 000 2h1v3H8a1 1 0 100 2h4a1 1 0 100-2h-1V9a1 1 0 00-1-1H8z"
8522
+ }), /*#__PURE__*/React__default.createElement("path", {
8523
+ fill: "#CA8A04",
8524
+ d: "M0 10c0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10S0 4.477 0 10zm10-8a8 8 0 110 16 8 8 0 010-16z"
8525
+ }));
8526
+ }
8527
+
8417
8528
  var IUIToastMessageService$7 = utils.services.IUIToastMessageService;
8418
8529
  var env$7 = utils.configs.env;
8419
8530
  var UndoButton = function UndoButton(_ref) {
@@ -8502,33 +8613,39 @@ var UserList = function UserList(_ref2) {
8502
8613
  var _useState10 = React.useState(false),
8503
8614
  isApiFetching = _useState10[0],
8504
8615
  setisApiFetching = _useState10[1];
8616
+ var _useState11 = React.useState(false),
8617
+ showInviteModal = _useState11[0],
8618
+ setToggleInviteModal = _useState11[1];
8619
+ var _useState12 = React.useState(''),
8620
+ userIds = _useState12[0],
8621
+ setUserIds = _useState12[1];
8505
8622
  var _React$useState5 = React__default.useState(1),
8506
8623
  signup_page = _React$useState5[0],
8507
8624
  setSignUpPage = _React$useState5[1];
8508
- var _useState11 = React.useState(5),
8509
- signup_rowsPerPage = _useState11[0],
8510
- setSignUpRowsPerPage = _useState11[1];
8625
+ var _useState13 = React.useState(5),
8626
+ signup_rowsPerPage = _useState13[0],
8627
+ setSignUpRowsPerPage = _useState13[1];
8511
8628
  var _React$useState6 = React__default.useState('asc'),
8512
8629
  signup_order = _React$useState6[0],
8513
8630
  setSignUpOrder = _React$useState6[1];
8514
8631
  var _React$useState7 = React__default.useState('fname'),
8515
8632
  signup_orderBy = _React$useState7[0],
8516
8633
  setSignUpOrderBy = _React$useState7[1];
8517
- var _useState12 = React.useState(''),
8518
- signup_searchValue = _useState12[0],
8519
- set_signup_SearchValue = _useState12[1];
8520
- var _useState13 = React.useState(false),
8521
- isSignUpSortingChange = _useState13[0],
8522
- setSignUpSortingChange = _useState13[1];
8523
- var _useState14 = React.useState(false),
8524
- isSignUpSearchingChange = _useState14[0],
8525
- setSignUpSearchingChange = _useState14[1];
8634
+ var _useState14 = React.useState(''),
8635
+ signup_searchValue = _useState14[0],
8636
+ set_signup_SearchValue = _useState14[1];
8526
8637
  var _useState15 = React.useState(false),
8527
- isSignUpSortingChangeTemp = _useState15[0],
8528
- setSignUpSortingChangeTemp = _useState15[1];
8638
+ isSignUpSortingChange = _useState15[0],
8639
+ setSignUpSortingChange = _useState15[1];
8529
8640
  var _useState16 = React.useState(false),
8530
- isSignUpSearchingChangeTemp = _useState16[0],
8531
- setSignUpSearchingChangeTemp = _useState16[1];
8641
+ isSignUpSearchingChange = _useState16[0],
8642
+ setSignUpSearchingChange = _useState16[1];
8643
+ var _useState17 = React.useState(false),
8644
+ isSignUpSortingChangeTemp = _useState17[0],
8645
+ setSignUpSortingChangeTemp = _useState17[1];
8646
+ var _useState18 = React.useState(false),
8647
+ isSignUpSearchingChangeTemp = _useState18[0],
8648
+ setSignUpSearchingChangeTemp = _useState18[1];
8532
8649
  var _useSelector3 = reactRedux.useSelector(function (state) {
8533
8650
  return state.userList;
8534
8651
  }),
@@ -8570,7 +8687,8 @@ var UserList = function UserList(_ref2) {
8570
8687
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8571
8688
  length: signup_rowsPerPage,
8572
8689
  page: signup_page,
8573
- search: signup_searchValue.trim()
8690
+ search: signup_searchValue.trim(),
8691
+ pagename: 'company'
8574
8692
  })).then(function () {
8575
8693
  return dispatch(stopDataFetchingStatus());
8576
8694
  });
@@ -8675,6 +8793,37 @@ var UserList = function UserList(_ref2) {
8675
8793
  setOpenImportUsersModal(false);
8676
8794
  handleImportPagenavigation(jobId);
8677
8795
  };
8796
+ var onResetPasswordHandler = function onResetPasswordHandler(email) {
8797
+ dispatch(resetPasswordForUser({
8798
+ email: email
8799
+ }));
8800
+ };
8801
+ var toggleInviteModal = function toggleInviteModal(ids, type) {
8802
+ console.log(type);
8803
+ if (!type && (Object.values(selected).flat().length === 0 || Object.values(selected).flat() === undefined)) {
8804
+ IUIToastMessageService$7.warningNotify('Select at least one user to invite.');
8805
+ return false;
8806
+ }
8807
+ setUserIds(ids);
8808
+ setToggleInviteModal(!showInviteModal);
8809
+ };
8810
+ var onResendInviteHandler = function onResendInviteHandler() {
8811
+ var userIdArr = [];
8812
+ if (userIds && !isNaN(userIds)) {
8813
+ userIdArr = [userIds];
8814
+ } else if (Object.keys(selected).length) {
8815
+ Object.values(selected).map(function (val, i) {
8816
+ if (val.length) {
8817
+ val.map(function (idx, i) {
8818
+ userIdArr.push(idx);
8819
+ });
8820
+ }
8821
+ });
8822
+ }
8823
+ setUserIds('');
8824
+ dispatch(resendInviteForUser(userIdArr));
8825
+ setToggleInviteModal(!showInviteModal);
8826
+ };
8678
8827
  var handleExportUsers = function handleExportUsers() {
8679
8828
  try {
8680
8829
  setDownlStatus(true);
@@ -8714,6 +8863,9 @@ var UserList = function UserList(_ref2) {
8714
8863
  }, {
8715
8864
  label: 'Bulk action history',
8716
8865
  handler: handleBulkActionHistoryClick
8866
+ }, {
8867
+ label: 'Resend invite',
8868
+ handler: toggleInviteModal
8717
8869
  }];
8718
8870
  React.useEffect(function () {
8719
8871
  var roleCanAccess = ['travel_itilite_admin', 'travel_admin', 'expense_itilite_admin', 'expense_admin'];
@@ -8731,7 +8883,7 @@ var UserList = function UserList(_ref2) {
8731
8883
  var pageNum = page;
8732
8884
  var searchParam = searchValue.trim() !== '' ? '&search=' + searchValue : '';
8733
8885
  var orderingParam = orderBy === '' ? '' : order === 'asc' ? '&ordering=' + orderBy : '&ordering=-' + orderBy;
8734
- var url = userListUrl.getUser + '?length=' + rowsPerPage + '&page=' + pageNum + searchParam + orderingParam + '&pagename=company';
8886
+ var url = userListUrl.getUser + '?length=' + rowsPerPage + '&page=' + pageNum + searchParam + orderingParam;
8735
8887
  if (isSearchingChange) {
8736
8888
  var delayDebounceFn = setTimeout(function () {
8737
8889
  setisApiFetching(true);
@@ -8751,7 +8903,8 @@ var UserList = function UserList(_ref2) {
8751
8903
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8752
8904
  length: signup_rowsPerPage,
8753
8905
  page: signup_page,
8754
- search: signup_searchValue.trim()
8906
+ search: signup_searchValue.trim(),
8907
+ pagename: 'company'
8755
8908
  })).then(function () {
8756
8909
  setSignUpSearchingChange(false);
8757
8910
  setisApiFetching(false);
@@ -8777,7 +8930,8 @@ var UserList = function UserList(_ref2) {
8777
8930
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8778
8931
  length: signup_rowsPerPage,
8779
8932
  page: signup_page,
8780
- search: signup_searchValue.trim()
8933
+ search: signup_searchValue.trim(),
8934
+ pagename: 'company'
8781
8935
  })).then(function () {
8782
8936
  setisApiFetching(false);
8783
8937
  setSignUpSortingChange(false);
@@ -8793,7 +8947,8 @@ var UserList = function UserList(_ref2) {
8793
8947
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8794
8948
  length: signup_rowsPerPage,
8795
8949
  page: signup_page,
8796
- search: signup_searchValue.trim()
8950
+ search: signup_searchValue.trim(),
8951
+ pagename: 'company'
8797
8952
  })).then(function () {
8798
8953
  return dispatch(stopDataFetchingStatus());
8799
8954
  });
@@ -8916,7 +9071,9 @@ var UserList = function UserList(_ref2) {
8916
9071
  disableRowCheckbox: deactivatedUsers,
8917
9072
  searchValue: searchValue,
8918
9073
  isILadmin: isILadmin,
8919
- onPrimaryAdminHandler: onPrimaryAdminHandler
9074
+ onPrimaryAdminHandler: onPrimaryAdminHandler,
9075
+ onResetPasswordHandler: onResetPasswordHandler,
9076
+ toggleInviteModal: toggleInviteModal
8920
9077
  }))
8921
9078
  }, {
8922
9079
  label: /*#__PURE__*/React__default.createElement(iuistyles.IUIBox, null, "Sign-up requests", ' ', /*#__PURE__*/React__default.createElement(TabLabelCount, {
@@ -8989,7 +9146,41 @@ var UserList = function UserList(_ref2) {
8989
9146
  className: styles$5.headerText
8990
9147
  }, 'Are you sure you want to deactivate ' + Object.values(selected).flat().length.toString() + (Object.values(selected).flat().length === 1 ? ' user ?' : ' users ?')), /*#__PURE__*/React__default.createElement(iuistyles.IUITypography, {
8991
9148
  className: styles$5.description
8992
- }, "The", ' ', Object.values(selected).flat().length === 1 ? ' user ' : ' users ', "won\u2019t be able to access itilite platform"))), /*#__PURE__*/React__default.createElement(BulkUploadModal, {
9149
+ }, "The", ' ', Object.values(selected).flat().length === 1 ? ' user ' : ' users ', "won\u2019t be able to access itilite platform"))), /*#__PURE__*/React__default.createElement(iuistyles.IUIModal, {
9150
+ isOpen: showInviteModal,
9151
+ closeHandler: toggleInviteModal,
9152
+ cancelLabel: "Cancel",
9153
+ headerText: "Resend Invites?",
9154
+ submitLabel: "Send",
9155
+ submitHandler: function submitHandler() {
9156
+ return onResendInviteHandler();
9157
+ },
9158
+ width: "400px",
9159
+ modalBodyStyle: {
9160
+ padding: '0px'
9161
+ },
9162
+ footerStyle: {
9163
+ justifyContent: 'center'
9164
+ }
9165
+ }, /*#__PURE__*/React__default.createElement("div", {
9166
+ style: {
9167
+ display: 'flex',
9168
+ padding: '16px',
9169
+ margin: '8px 24px',
9170
+ border: '1px solid #FDE047',
9171
+ background: '#FEFCE8',
9172
+ borderRadius: '5px'
9173
+ }
9174
+ }, /*#__PURE__*/React__default.createElement("div", {
9175
+ style: {
9176
+ marginRight: '5px'
9177
+ }
9178
+ }, /*#__PURE__*/React__default.createElement(InviteInfoIcon, null)), /*#__PURE__*/React__default.createElement("div", {
9179
+ style: {
9180
+ fontSize: '14px',
9181
+ color: '#374151'
9182
+ }
9183
+ }, "This invitation will be sent to users who have not logged into the platform."))), /*#__PURE__*/React__default.createElement(BulkUploadModal, {
8993
9184
  isOpenImportUsersModal: isOpenImportUsersModal,
8994
9185
  closeImportUsersModal: closeImportUsersModal,
8995
9186
  closeImportModal: closeImportModal
@@ -9105,7 +9296,7 @@ function Listview(_ref) {
9105
9296
  id: 'no_of_users',
9106
9297
  label: 'Number of users',
9107
9298
  width: '45%',
9108
- sortable: true,
9299
+ sortable: false,
9109
9300
  cell: function cell(row) {
9110
9301
  return /*#__PURE__*/React__default.createElement(iuistyles.IUIBox, {
9111
9302
  component: "div"