@itilite/iui-user-management 0.4.28 → 0.4.29

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: true,
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
  }),
@@ -8672,6 +8789,37 @@ var UserList = function UserList(_ref2) {
8672
8789
  setOpenImportUsersModal(false);
8673
8790
  handleImportPagenavigation(jobId);
8674
8791
  };
8792
+ var onResetPasswordHandler = function onResetPasswordHandler(email) {
8793
+ dispatch(resetPasswordForUser({
8794
+ email: email
8795
+ }));
8796
+ };
8797
+ var toggleInviteModal = function toggleInviteModal(ids, type) {
8798
+ console.log(type);
8799
+ if (!type && (Object.values(selected).flat().length === 0 || Object.values(selected).flat() === undefined)) {
8800
+ IUIToastMessageService$7.warningNotify('Select at least one user to invite.');
8801
+ return false;
8802
+ }
8803
+ setUserIds(ids);
8804
+ setToggleInviteModal(!showInviteModal);
8805
+ };
8806
+ var onResendInviteHandler = function onResendInviteHandler() {
8807
+ var userIdArr = [];
8808
+ if (userIds && !isNaN(userIds)) {
8809
+ userIdArr = [userIds];
8810
+ } else if (Object.keys(selected).length) {
8811
+ Object.values(selected).map(function (val, i) {
8812
+ if (val.length) {
8813
+ val.map(function (idx, i) {
8814
+ userIdArr.push(idx);
8815
+ });
8816
+ }
8817
+ });
8818
+ }
8819
+ setUserIds('');
8820
+ dispatch(resendInviteForUser(userIdArr));
8821
+ setToggleInviteModal(!showInviteModal);
8822
+ };
8675
8823
  var handleExportUsers = function handleExportUsers() {
8676
8824
  try {
8677
8825
  setDownlStatus(true);
@@ -8711,6 +8859,9 @@ var UserList = function UserList(_ref2) {
8711
8859
  }, {
8712
8860
  label: 'Bulk action history',
8713
8861
  handler: handleBulkActionHistoryClick
8862
+ }, {
8863
+ label: 'Resend invite',
8864
+ handler: toggleInviteModal
8714
8865
  }];
8715
8866
  useEffect(function () {
8716
8867
  var roleCanAccess = ['travel_itilite_admin', 'travel_admin', 'expense_itilite_admin', 'expense_admin'];
@@ -8913,7 +9064,9 @@ var UserList = function UserList(_ref2) {
8913
9064
  disableRowCheckbox: deactivatedUsers,
8914
9065
  searchValue: searchValue,
8915
9066
  isILadmin: isILadmin,
8916
- onPrimaryAdminHandler: onPrimaryAdminHandler
9067
+ onPrimaryAdminHandler: onPrimaryAdminHandler,
9068
+ onResetPasswordHandler: onResetPasswordHandler,
9069
+ toggleInviteModal: toggleInviteModal
8917
9070
  }))
8918
9071
  }, {
8919
9072
  label: /*#__PURE__*/React.createElement(IUIBox, null, "Sign-up requests", ' ', /*#__PURE__*/React.createElement(TabLabelCount, {
@@ -8986,7 +9139,41 @@ var UserList = function UserList(_ref2) {
8986
9139
  className: styles$5.headerText
8987
9140
  }, '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
9141
  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, {
9142
+ }, "The", ' ', Object.values(selected).flat().length === 1 ? ' user ' : ' users ', "won\u2019t be able to access itilite platform"))), /*#__PURE__*/React.createElement(IUIModal, {
9143
+ isOpen: showInviteModal,
9144
+ closeHandler: toggleInviteModal,
9145
+ cancelLabel: "Cancel",
9146
+ headerText: "Resend Invites?",
9147
+ submitLabel: "Send",
9148
+ submitHandler: function submitHandler() {
9149
+ return onResendInviteHandler();
9150
+ },
9151
+ width: "400px",
9152
+ modalBodyStyle: {
9153
+ padding: '0px'
9154
+ },
9155
+ footerStyle: {
9156
+ justifyContent: 'center'
9157
+ }
9158
+ }, /*#__PURE__*/React.createElement("div", {
9159
+ style: {
9160
+ display: 'flex',
9161
+ padding: '16px',
9162
+ margin: '8px 24px',
9163
+ border: '1px solid #FDE047',
9164
+ background: '#FEFCE8',
9165
+ borderRadius: '5px'
9166
+ }
9167
+ }, /*#__PURE__*/React.createElement("div", {
9168
+ style: {
9169
+ marginRight: '5px'
9170
+ }
9171
+ }, /*#__PURE__*/React.createElement(InviteInfoIcon, null)), /*#__PURE__*/React.createElement("div", {
9172
+ style: {
9173
+ fontSize: '14px',
9174
+ color: '#374151'
9175
+ }
9176
+ }, "This invitation will be sent to users who have not logged into the platform."))), /*#__PURE__*/React.createElement(BulkUploadModal, {
8990
9177
  isOpenImportUsersModal: isOpenImportUsersModal,
8991
9178
  closeImportUsersModal: closeImportUsersModal,
8992
9179
  closeImportModal: closeImportModal