@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.
@@ -10,7 +10,8 @@ import thunk from 'redux-thunk';
10
10
  import moment from 'moment';
11
11
  import { composeWithDevTools } from 'redux-devtools-extension';
12
12
  import { useHistory } from 'react-router-dom';
13
- import { withStyles } from '@material-ui/core/styles';
13
+ import { withStyles, makeStyles } from '@material-ui/core/styles';
14
+ import Tooltip from '@material-ui/core/Tooltip';
14
15
  import Switch from '@material-ui/core/Switch';
15
16
  import MoreHorizIcon from '@material-ui/icons/MoreHoriz';
16
17
  import Button from '@material-ui/core/Button';
@@ -1250,7 +1251,6 @@ var fetchRenderFileds = function fetchRenderFileds() {
1250
1251
  var _res$data;
1251
1252
  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.');
1252
1253
  dispatch(stopLoader());
1253
- reject();
1254
1254
  }
1255
1255
  })["catch"](function (err) {
1256
1256
  reject(err);
@@ -1422,11 +1422,9 @@ var createUser = function createUser(payload) {
1422
1422
  } else {
1423
1423
  if (res.data.errors && typeof res.data.errors === 'object') {
1424
1424
  reject(res.data.errors);
1425
- return;
1426
1425
  } else if (!Object.keys(res.data.errors).length) {
1427
1426
  IUIToastMessageService$1.warningNotify(res.data.message);
1428
1427
  }
1429
- reject();
1430
1428
  }
1431
1429
  })["catch"](function (err) {
1432
1430
  var _err$response6;
@@ -1542,6 +1540,48 @@ var undoneSignUpRejection = function undoneSignUpRejection(userId) {
1542
1540
  });
1543
1541
  };
1544
1542
  };
1543
+ var resetPasswordForUser = function resetPasswordForUser(data) {
1544
+ return function (dispatch) {
1545
+ return new Promise(function (resolve, reject) {
1546
+ api$2.post("" + userAddEditUrl.resetPasswordForUserApi(), {
1547
+ email: data.email
1548
+ }).then(function (res) {
1549
+ 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.");
1550
+ resolve();
1551
+ })["catch"](function (err) {
1552
+ var _err$response9, _err$response9$data;
1553
+ 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)) {
1554
+ var _err$response10, _err$response10$data, _err$response10$data$;
1555
+ 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]);
1556
+ reject(err);
1557
+ return;
1558
+ }
1559
+ reject(err);
1560
+ });
1561
+ });
1562
+ };
1563
+ };
1564
+ var resendInviteForUser = function resendInviteForUser(data) {
1565
+ return function (dispatch) {
1566
+ return new Promise(function (resolve, reject) {
1567
+ api$2.post(userAddEditUrl.resendInviteForUserApi(), {
1568
+ user_ids: data
1569
+ }).then(function (res) {
1570
+ IUIToastMessageService$1.sNotify(res.data.message);
1571
+ resolve();
1572
+ })["catch"](function (err) {
1573
+ var _err$response11, _err$response11$data;
1574
+ 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)) {
1575
+ var _err$response12, _err$response12$data, _err$response12$data$;
1576
+ 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]);
1577
+ reject(err);
1578
+ return;
1579
+ }
1580
+ reject(err);
1581
+ });
1582
+ });
1583
+ };
1584
+ };
1545
1585
  var updateUser = function updateUser(payload, userId, inputChangeLog) {
1546
1586
  return function (dispatch) {
1547
1587
  return new Promise(function (resolve, reject) {
@@ -8121,6 +8161,10 @@ var StickyHeadTable = function StickyHeadTable(props) {
8121
8161
  selected = props.selected,
8122
8162
  _props$handleSingleCh = props.handleSingleCheckBoxClick,
8123
8163
  handleSingleCheckBoxClick = _props$handleSingleCh === void 0 ? function () {} : _props$handleSingleCh,
8164
+ _props$onResetPasswor = props.onResetPasswordHandler,
8165
+ onResetPasswordHandler = _props$onResetPasswor === void 0 ? function () {} : _props$onResetPasswor,
8166
+ _props$toggleInviteMo = props.toggleInviteModal,
8167
+ toggleInviteModal = _props$toggleInviteMo === void 0 ? function () {} : _props$toggleInviteMo,
8124
8168
  orderBy = props.orderBy,
8125
8169
  order = props.order,
8126
8170
  _props$onRequestSort = props.onRequestSort,
@@ -8138,6 +8182,21 @@ var StickyHeadTable = function StickyHeadTable(props) {
8138
8182
  searchValue = props.searchValue,
8139
8183
  _props$isILadmin = props.isILadmin,
8140
8184
  isILadmin = _props$isILadmin === void 0 ? false : _props$isILadmin;
8185
+ var useStyles = makeStyles(function (theme) {
8186
+ return {
8187
+ tooltip: {
8188
+ background: '#1F2937',
8189
+ fontSize: '14px',
8190
+ color: '#ffffff',
8191
+ padding: '12px 16px',
8192
+ borderRadius: '6px'
8193
+ },
8194
+ arrow: {
8195
+ color: '#1F2937'
8196
+ }
8197
+ };
8198
+ });
8199
+ var classes = useStyles();
8141
8200
  var columns = [{
8142
8201
  id: 'first_name',
8143
8202
  label: 'Name',
@@ -8157,6 +8216,27 @@ var StickyHeadTable = function StickyHeadTable(props) {
8157
8216
  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
8158
8217
  }));
8159
8218
  }
8219
+ }, {
8220
+ id: 'first_name',
8221
+ label: '',
8222
+ minWidth: 60,
8223
+ sortable: false,
8224
+ cell: function cell(row) {
8225
+ return /*#__PURE__*/React.createElement(IUIBox, {
8226
+ component: "div",
8227
+ width: 60
8228
+ }, row && row.has_visited === 0 ? /*#__PURE__*/React.createElement(Tooltip, {
8229
+ title: "This user hasn't logged on to the platform yet",
8230
+ arrow: true,
8231
+ classes: {
8232
+ arrow: classes.arrow,
8233
+ tooltip: classes.tooltip
8234
+ },
8235
+ placement: "top-start"
8236
+ }, /*#__PURE__*/React.createElement("div", {
8237
+ className: clsx(styles$5.tooltipText)
8238
+ }, "Invited")) : null);
8239
+ }
8160
8240
  }, {
8161
8241
  id: 'emp_info__department__name',
8162
8242
  label: 'Department',
@@ -8244,6 +8324,21 @@ var StickyHeadTable = function StickyHeadTable(props) {
8244
8324
  return onEditHandler(row.id);
8245
8325
  }
8246
8326
  }];
8327
+ if (row && row.has_visited && row.is_active) {
8328
+ options.push({
8329
+ label: 'Reset password',
8330
+ handler: function handler() {
8331
+ return onResetPasswordHandler(row.email);
8332
+ }
8333
+ });
8334
+ } else if (row && row.is_active) {
8335
+ options.push({
8336
+ label: 'Resend invite',
8337
+ handler: function handler() {
8338
+ return toggleInviteModal(row.id, 'single');
8339
+ }
8340
+ });
8341
+ }
8247
8342
  if (isILadmin) {
8248
8343
  options.push({
8249
8344
  label: 'Make primary admin',
@@ -8411,6 +8506,22 @@ var SingupRequests = function SingupRequests(props) {
8411
8506
  });
8412
8507
  };
8413
8508
 
8509
+ function InviteInfoIcon() {
8510
+ return /*#__PURE__*/React.createElement("svg", {
8511
+ xmlns: "http://www.w3.org/2000/svg",
8512
+ width: "20",
8513
+ height: "20",
8514
+ fill: "none",
8515
+ viewBox: "0 0 20 20"
8516
+ }, /*#__PURE__*/React.createElement("path", {
8517
+ fill: "#CA8A04",
8518
+ 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"
8519
+ }), /*#__PURE__*/React.createElement("path", {
8520
+ fill: "#CA8A04",
8521
+ 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"
8522
+ }));
8523
+ }
8524
+
8414
8525
  var IUIToastMessageService$7 = services.IUIToastMessageService;
8415
8526
  var env$7 = configs.env;
8416
8527
  var UndoButton = function UndoButton(_ref) {
@@ -8499,33 +8610,39 @@ var UserList = function UserList(_ref2) {
8499
8610
  var _useState10 = useState(false),
8500
8611
  isApiFetching = _useState10[0],
8501
8612
  setisApiFetching = _useState10[1];
8613
+ var _useState11 = useState(false),
8614
+ showInviteModal = _useState11[0],
8615
+ setToggleInviteModal = _useState11[1];
8616
+ var _useState12 = useState(''),
8617
+ userIds = _useState12[0],
8618
+ setUserIds = _useState12[1];
8502
8619
  var _React$useState5 = React.useState(1),
8503
8620
  signup_page = _React$useState5[0],
8504
8621
  setSignUpPage = _React$useState5[1];
8505
- var _useState11 = useState(5),
8506
- signup_rowsPerPage = _useState11[0],
8507
- setSignUpRowsPerPage = _useState11[1];
8622
+ var _useState13 = useState(5),
8623
+ signup_rowsPerPage = _useState13[0],
8624
+ setSignUpRowsPerPage = _useState13[1];
8508
8625
  var _React$useState6 = React.useState('asc'),
8509
8626
  signup_order = _React$useState6[0],
8510
8627
  setSignUpOrder = _React$useState6[1];
8511
8628
  var _React$useState7 = React.useState('fname'),
8512
8629
  signup_orderBy = _React$useState7[0],
8513
8630
  setSignUpOrderBy = _React$useState7[1];
8514
- var _useState12 = useState(''),
8515
- signup_searchValue = _useState12[0],
8516
- set_signup_SearchValue = _useState12[1];
8517
- var _useState13 = useState(false),
8518
- isSignUpSortingChange = _useState13[0],
8519
- setSignUpSortingChange = _useState13[1];
8520
- var _useState14 = useState(false),
8521
- isSignUpSearchingChange = _useState14[0],
8522
- setSignUpSearchingChange = _useState14[1];
8631
+ var _useState14 = useState(''),
8632
+ signup_searchValue = _useState14[0],
8633
+ set_signup_SearchValue = _useState14[1];
8523
8634
  var _useState15 = useState(false),
8524
- isSignUpSortingChangeTemp = _useState15[0],
8525
- setSignUpSortingChangeTemp = _useState15[1];
8635
+ isSignUpSortingChange = _useState15[0],
8636
+ setSignUpSortingChange = _useState15[1];
8526
8637
  var _useState16 = useState(false),
8527
- isSignUpSearchingChangeTemp = _useState16[0],
8528
- setSignUpSearchingChangeTemp = _useState16[1];
8638
+ isSignUpSearchingChange = _useState16[0],
8639
+ setSignUpSearchingChange = _useState16[1];
8640
+ var _useState17 = useState(false),
8641
+ isSignUpSortingChangeTemp = _useState17[0],
8642
+ setSignUpSortingChangeTemp = _useState17[1];
8643
+ var _useState18 = useState(false),
8644
+ isSignUpSearchingChangeTemp = _useState18[0],
8645
+ setSignUpSearchingChangeTemp = _useState18[1];
8529
8646
  var _useSelector3 = useSelector(function (state) {
8530
8647
  return state.userList;
8531
8648
  }),
@@ -8567,7 +8684,8 @@ var UserList = function UserList(_ref2) {
8567
8684
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8568
8685
  length: signup_rowsPerPage,
8569
8686
  page: signup_page,
8570
- search: signup_searchValue.trim()
8687
+ search: signup_searchValue.trim(),
8688
+ pagename: 'company'
8571
8689
  })).then(function () {
8572
8690
  return dispatch(stopDataFetchingStatus());
8573
8691
  });
@@ -8672,6 +8790,37 @@ var UserList = function UserList(_ref2) {
8672
8790
  setOpenImportUsersModal(false);
8673
8791
  handleImportPagenavigation(jobId);
8674
8792
  };
8793
+ var onResetPasswordHandler = function onResetPasswordHandler(email) {
8794
+ dispatch(resetPasswordForUser({
8795
+ email: email
8796
+ }));
8797
+ };
8798
+ var toggleInviteModal = function toggleInviteModal(ids, type) {
8799
+ console.log(type);
8800
+ if (!type && (Object.values(selected).flat().length === 0 || Object.values(selected).flat() === undefined)) {
8801
+ IUIToastMessageService$7.warningNotify('Select at least one user to invite.');
8802
+ return false;
8803
+ }
8804
+ setUserIds(ids);
8805
+ setToggleInviteModal(!showInviteModal);
8806
+ };
8807
+ var onResendInviteHandler = function onResendInviteHandler() {
8808
+ var userIdArr = [];
8809
+ if (userIds && !isNaN(userIds)) {
8810
+ userIdArr = [userIds];
8811
+ } else if (Object.keys(selected).length) {
8812
+ Object.values(selected).map(function (val, i) {
8813
+ if (val.length) {
8814
+ val.map(function (idx, i) {
8815
+ userIdArr.push(idx);
8816
+ });
8817
+ }
8818
+ });
8819
+ }
8820
+ setUserIds('');
8821
+ dispatch(resendInviteForUser(userIdArr));
8822
+ setToggleInviteModal(!showInviteModal);
8823
+ };
8675
8824
  var handleExportUsers = function handleExportUsers() {
8676
8825
  try {
8677
8826
  setDownlStatus(true);
@@ -8711,6 +8860,9 @@ var UserList = function UserList(_ref2) {
8711
8860
  }, {
8712
8861
  label: 'Bulk action history',
8713
8862
  handler: handleBulkActionHistoryClick
8863
+ }, {
8864
+ label: 'Resend invite',
8865
+ handler: toggleInviteModal
8714
8866
  }];
8715
8867
  useEffect(function () {
8716
8868
  var roleCanAccess = ['travel_itilite_admin', 'travel_admin', 'expense_itilite_admin', 'expense_admin'];
@@ -8728,7 +8880,7 @@ var UserList = function UserList(_ref2) {
8728
8880
  var pageNum = page;
8729
8881
  var searchParam = searchValue.trim() !== '' ? '&search=' + searchValue : '';
8730
8882
  var orderingParam = orderBy === '' ? '' : order === 'asc' ? '&ordering=' + orderBy : '&ordering=-' + orderBy;
8731
- var url = userListUrl.getUser + '?length=' + rowsPerPage + '&page=' + pageNum + searchParam + orderingParam + '&pagename=company';
8883
+ var url = userListUrl.getUser + '?length=' + rowsPerPage + '&page=' + pageNum + searchParam + orderingParam;
8732
8884
  if (isSearchingChange) {
8733
8885
  var delayDebounceFn = setTimeout(function () {
8734
8886
  setisApiFetching(true);
@@ -8748,7 +8900,8 @@ var UserList = function UserList(_ref2) {
8748
8900
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8749
8901
  length: signup_rowsPerPage,
8750
8902
  page: signup_page,
8751
- search: signup_searchValue.trim()
8903
+ search: signup_searchValue.trim(),
8904
+ pagename: 'company'
8752
8905
  })).then(function () {
8753
8906
  setSignUpSearchingChange(false);
8754
8907
  setisApiFetching(false);
@@ -8774,7 +8927,8 @@ var UserList = function UserList(_ref2) {
8774
8927
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8775
8928
  length: signup_rowsPerPage,
8776
8929
  page: signup_page,
8777
- search: signup_searchValue.trim()
8930
+ search: signup_searchValue.trim(),
8931
+ pagename: 'company'
8778
8932
  })).then(function () {
8779
8933
  setisApiFetching(false);
8780
8934
  setSignUpSortingChange(false);
@@ -8790,7 +8944,8 @@ var UserList = function UserList(_ref2) {
8790
8944
  ordering: signup_order === 'asc' ? signup_orderBy : "-" + signup_orderBy,
8791
8945
  length: signup_rowsPerPage,
8792
8946
  page: signup_page,
8793
- search: signup_searchValue.trim()
8947
+ search: signup_searchValue.trim(),
8948
+ pagename: 'company'
8794
8949
  })).then(function () {
8795
8950
  return dispatch(stopDataFetchingStatus());
8796
8951
  });
@@ -8913,7 +9068,9 @@ var UserList = function UserList(_ref2) {
8913
9068
  disableRowCheckbox: deactivatedUsers,
8914
9069
  searchValue: searchValue,
8915
9070
  isILadmin: isILadmin,
8916
- onPrimaryAdminHandler: onPrimaryAdminHandler
9071
+ onPrimaryAdminHandler: onPrimaryAdminHandler,
9072
+ onResetPasswordHandler: onResetPasswordHandler,
9073
+ toggleInviteModal: toggleInviteModal
8917
9074
  }))
8918
9075
  }, {
8919
9076
  label: /*#__PURE__*/React.createElement(IUIBox, null, "Sign-up requests", ' ', /*#__PURE__*/React.createElement(TabLabelCount, {
@@ -8986,7 +9143,41 @@ var UserList = function UserList(_ref2) {
8986
9143
  className: styles$5.headerText
8987
9144
  }, 'Are you sure you want to deactivate ' + Object.values(selected).flat().length.toString() + (Object.values(selected).flat().length === 1 ? ' user ?' : ' users ?')), /*#__PURE__*/React.createElement(IUITypography, {
8988
9145
  className: styles$5.description
8989
- }, "The", ' ', Object.values(selected).flat().length === 1 ? ' user ' : ' users ', "won\u2019t be able to access itilite platform"))), /*#__PURE__*/React.createElement(BulkUploadModal, {
9146
+ }, "The", ' ', Object.values(selected).flat().length === 1 ? ' user ' : ' users ', "won\u2019t be able to access itilite platform"))), /*#__PURE__*/React.createElement(IUIModal, {
9147
+ isOpen: showInviteModal,
9148
+ closeHandler: toggleInviteModal,
9149
+ cancelLabel: "Cancel",
9150
+ headerText: "Resend Invites?",
9151
+ submitLabel: "Send",
9152
+ submitHandler: function submitHandler() {
9153
+ return onResendInviteHandler();
9154
+ },
9155
+ width: "400px",
9156
+ modalBodyStyle: {
9157
+ padding: '0px'
9158
+ },
9159
+ footerStyle: {
9160
+ justifyContent: 'center'
9161
+ }
9162
+ }, /*#__PURE__*/React.createElement("div", {
9163
+ style: {
9164
+ display: 'flex',
9165
+ padding: '16px',
9166
+ margin: '8px 24px',
9167
+ border: '1px solid #FDE047',
9168
+ background: '#FEFCE8',
9169
+ borderRadius: '5px'
9170
+ }
9171
+ }, /*#__PURE__*/React.createElement("div", {
9172
+ style: {
9173
+ marginRight: '5px'
9174
+ }
9175
+ }, /*#__PURE__*/React.createElement(InviteInfoIcon, null)), /*#__PURE__*/React.createElement("div", {
9176
+ style: {
9177
+ fontSize: '14px',
9178
+ color: '#374151'
9179
+ }
9180
+ }, "This invitation will be sent to users who have not logged into the platform."))), /*#__PURE__*/React.createElement(BulkUploadModal, {
8990
9181
  isOpenImportUsersModal: isOpenImportUsersModal,
8991
9182
  closeImportUsersModal: closeImportUsersModal,
8992
9183
  closeImportModal: closeImportModal
@@ -9102,7 +9293,7 @@ function Listview(_ref) {
9102
9293
  id: 'no_of_users',
9103
9294
  label: 'Number of users',
9104
9295
  width: '45%',
9105
- sortable: true,
9296
+ sortable: false,
9106
9297
  cell: function cell(row) {
9107
9298
  return /*#__PURE__*/React.createElement(IUIBox, {
9108
9299
  component: "div"