authscape 1.0.536 → 1.0.540
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/index.js +153 -88
- package/package.json +1 -1
- package/src/components/kanban/Kanban.js +3 -3
- package/src/components/users/UserEditor.js +185 -101
- package/src/components/users/UserManagement.js +8 -15
package/index.js
CHANGED
|
@@ -2813,8 +2813,8 @@ function Kanban(_ref2) {
|
|
|
2813
2813
|
disableAddColumn = _ref2$disableAddColum === void 0 ? false : _ref2$disableAddColum,
|
|
2814
2814
|
containerStyles = _ref2.containerStyles,
|
|
2815
2815
|
itemStyles = _ref2.itemStyles,
|
|
2816
|
-
_ref2$
|
|
2817
|
-
|
|
2816
|
+
_ref2$identifier = _ref2.identifier,
|
|
2817
|
+
identifier = _ref2$identifier === void 0 ? null : _ref2$identifier,
|
|
2818
2818
|
containerStyle = _ref2.containerStyle,
|
|
2819
2819
|
_ref2$coordinateGette = _ref2.coordinateGetter,
|
|
2820
2820
|
coordinateGetter = _ref2$coordinateGette === void 0 ? multipleContainersCoordinateGetter : _ref2$coordinateGette,
|
|
@@ -2865,7 +2865,7 @@ function Kanban(_ref2) {
|
|
|
2865
2865
|
while (1) switch (_context.prev = _context.next) {
|
|
2866
2866
|
case 0:
|
|
2867
2867
|
response = null;
|
|
2868
|
-
if (!(
|
|
2868
|
+
if (!(identifier == null)) {
|
|
2869
2869
|
_context.next = 7;
|
|
2870
2870
|
break;
|
|
2871
2871
|
}
|
|
@@ -2877,7 +2877,7 @@ function Kanban(_ref2) {
|
|
|
2877
2877
|
break;
|
|
2878
2878
|
case 7:
|
|
2879
2879
|
_context.next = 9;
|
|
2880
|
-
return apiService().get("/Kanban/GetKanban?
|
|
2880
|
+
return apiService().get("/Kanban/GetKanban?identifier=" + identifier);
|
|
2881
2881
|
case 9:
|
|
2882
2882
|
response = _context.sent;
|
|
2883
2883
|
case 10:
|
|
@@ -9303,13 +9303,12 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
9303
9303
|
Object.defineProperty(exports, "__esModule", {
|
|
9304
9304
|
value: true
|
|
9305
9305
|
});
|
|
9306
|
-
exports
|
|
9306
|
+
exports.UserEditor = UserEditor;
|
|
9307
9307
|
var _react = _interopRequireWildcard(require("react"));
|
|
9308
9308
|
var _system = require("@mui/system");
|
|
9309
9309
|
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
9310
9310
|
var _material = require("@mui/material");
|
|
9311
9311
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
9312
|
-
var _authscape = require("authscape");
|
|
9313
9312
|
var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
|
|
9314
9313
|
var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
|
|
9315
9314
|
var _Select = _interopRequireDefault(require("@mui/material/Select"));
|
|
@@ -9332,10 +9331,14 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
|
|
|
9332
9331
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
9333
9332
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
9334
9333
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
9335
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
9334
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // import { apiService } from 'authscape';
|
|
9336
9335
|
function UserEditor(_ref) {
|
|
9337
9336
|
var _ref$userId = _ref.userId,
|
|
9338
|
-
userId = _ref$userId === void 0 ? null : _ref$userId
|
|
9337
|
+
userId = _ref$userId === void 0 ? null : _ref$userId,
|
|
9338
|
+
_ref$customFields = _ref.customFields,
|
|
9339
|
+
customFields = _ref$customFields === void 0 ? null : _ref$customFields,
|
|
9340
|
+
_ref$onSaved = _ref.onSaved,
|
|
9341
|
+
onSaved = _ref$onSaved === void 0 ? null : _ref$onSaved;
|
|
9339
9342
|
var _useForm = (0, _reactHookForm.useForm)(),
|
|
9340
9343
|
control = _useForm.control,
|
|
9341
9344
|
register = _useForm.register,
|
|
@@ -9381,14 +9384,14 @@ function UserEditor(_ref) {
|
|
|
9381
9384
|
while (1) switch (_context.prev = _context.next) {
|
|
9382
9385
|
case 0:
|
|
9383
9386
|
_context.next = 2;
|
|
9384
|
-
return
|
|
9387
|
+
return apiService().get("/UserManagement/GetRoles");
|
|
9385
9388
|
case 2:
|
|
9386
9389
|
responseRoles = _context.sent;
|
|
9387
9390
|
if (responseRoles != null && responseRoles.status == 200) {
|
|
9388
9391
|
setRole(responseRoles.data);
|
|
9389
9392
|
}
|
|
9390
9393
|
_context.next = 6;
|
|
9391
|
-
return
|
|
9394
|
+
return apiService().get("/UserManagement/GetPermissions");
|
|
9392
9395
|
case 6:
|
|
9393
9396
|
responsePermissions = _context.sent;
|
|
9394
9397
|
if (responsePermissions != null && responsePermissions.status == 200) {
|
|
@@ -9410,16 +9413,18 @@ function UserEditor(_ref) {
|
|
|
9410
9413
|
if (userId != null) {
|
|
9411
9414
|
var fetchData = /*#__PURE__*/function () {
|
|
9412
9415
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
9413
|
-
var response, roleNames, index, role;
|
|
9416
|
+
var response, roleNames, index, role, permissionNames, _index, permission;
|
|
9414
9417
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
9415
9418
|
while (1) switch (_context2.prev = _context2.next) {
|
|
9416
9419
|
case 0:
|
|
9417
9420
|
_context2.next = 2;
|
|
9418
|
-
return
|
|
9421
|
+
return apiService().get("/UserManagement/GetUser?userId=" + userId);
|
|
9419
9422
|
case 2:
|
|
9420
9423
|
response = _context2.sent;
|
|
9421
9424
|
if (response != null && response.status == 200) {
|
|
9422
9425
|
setUser(response.data);
|
|
9426
|
+
|
|
9427
|
+
// assign all selected roles
|
|
9423
9428
|
if (response.data.roles != null) {
|
|
9424
9429
|
roleNames = [];
|
|
9425
9430
|
for (index = 0; index < response.data.roles.length; index++) {
|
|
@@ -9428,6 +9433,16 @@ function UserEditor(_ref) {
|
|
|
9428
9433
|
}
|
|
9429
9434
|
setSelectedRole(roleNames);
|
|
9430
9435
|
}
|
|
9436
|
+
|
|
9437
|
+
// assign all selected permissions
|
|
9438
|
+
if (response.data.permissions != null) {
|
|
9439
|
+
permissionNames = [];
|
|
9440
|
+
for (_index = 0; _index < response.data.permissions.length; _index++) {
|
|
9441
|
+
permission = response.data.permissions[_index];
|
|
9442
|
+
permissionNames.push(permission);
|
|
9443
|
+
}
|
|
9444
|
+
setSelectedPermission(permissionNames);
|
|
9445
|
+
}
|
|
9431
9446
|
}
|
|
9432
9447
|
case 4:
|
|
9433
9448
|
case "end":
|
|
@@ -9442,20 +9457,7 @@ function UserEditor(_ref) {
|
|
|
9442
9457
|
fetchData();
|
|
9443
9458
|
}
|
|
9444
9459
|
}, [userId]);
|
|
9445
|
-
var fields = ["FirstName", "LastName", "Company", "IsActive",
|
|
9446
|
-
// "Department / Group",
|
|
9447
|
-
"Email"
|
|
9448
|
-
// "Email Verified",
|
|
9449
|
-
// "Business Phone",
|
|
9450
|
-
// "Mobile Phone",
|
|
9451
|
-
// "Fax",
|
|
9452
|
-
// "Street",
|
|
9453
|
-
// "City",
|
|
9454
|
-
// "State",
|
|
9455
|
-
// "Postal Code",
|
|
9456
|
-
// "Region"
|
|
9457
|
-
];
|
|
9458
|
-
|
|
9460
|
+
var fields = ["FirstName", "LastName", "Company", "IsActive", "Email"];
|
|
9459
9461
|
var findTheValue = function findTheValue(field) {
|
|
9460
9462
|
var result = "";
|
|
9461
9463
|
if (user != null) {
|
|
@@ -9467,41 +9469,138 @@ function UserEditor(_ref) {
|
|
|
9467
9469
|
}
|
|
9468
9470
|
return result;
|
|
9469
9471
|
};
|
|
9472
|
+
var findCustomFieldValue = function findCustomFieldValue(field) {
|
|
9473
|
+
var result = "";
|
|
9474
|
+
if (user != null && user.userCustomFields) {
|
|
9475
|
+
user.userCustomFields.forEach(function (userCustomField) {
|
|
9476
|
+
if (field.toLowerCase() == userCustomField.name.toLowerCase()) {
|
|
9477
|
+
result = userCustomField.value;
|
|
9478
|
+
}
|
|
9479
|
+
});
|
|
9480
|
+
}
|
|
9481
|
+
return result;
|
|
9482
|
+
};
|
|
9483
|
+
var renderCustomField = function renderCustomField(customFields) {
|
|
9484
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, user != null && customFields.map(function (field) {
|
|
9485
|
+
var result = findCustomFieldValue(field.name);
|
|
9486
|
+
return /*#__PURE__*/_react["default"].createElement(_system.Box, null, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
|
9487
|
+
name: field.name,
|
|
9488
|
+
control: control,
|
|
9489
|
+
rules: {
|
|
9490
|
+
required: field.isRequired
|
|
9491
|
+
},
|
|
9492
|
+
render: function render(_ref4) {
|
|
9493
|
+
var renderField = _ref4.renderField;
|
|
9494
|
+
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], _extends({
|
|
9495
|
+
label: field.name,
|
|
9496
|
+
variant: "outlined",
|
|
9497
|
+
defaultValue: result,
|
|
9498
|
+
margin: "normal",
|
|
9499
|
+
fullWidth: true
|
|
9500
|
+
}, register(field.name, {
|
|
9501
|
+
required: field.isRequired
|
|
9502
|
+
}), renderField));
|
|
9503
|
+
}
|
|
9504
|
+
}), errors[field.name] && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
9505
|
+
color: "red"
|
|
9506
|
+
}, field.name, " is required."));
|
|
9507
|
+
}));
|
|
9508
|
+
};
|
|
9509
|
+
var renderSystemField = function renderSystemField(customFields) {
|
|
9510
|
+
var isSystemField = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
9511
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, user != null && customFields.map(function (field) {
|
|
9512
|
+
var result = findTheValue(field);
|
|
9513
|
+
return /*#__PURE__*/_react["default"].createElement(_system.Box, null, field == "IsActive" && /*#__PURE__*/_react["default"].createElement(_system.Box, null, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
|
9514
|
+
name: field,
|
|
9515
|
+
control: control,
|
|
9516
|
+
rules: {
|
|
9517
|
+
required: false
|
|
9518
|
+
},
|
|
9519
|
+
render: function render(_ref5) {
|
|
9520
|
+
var renderField = _ref5.renderField;
|
|
9521
|
+
return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], _extends({
|
|
9522
|
+
control: /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
9523
|
+
defaultChecked: result
|
|
9524
|
+
}),
|
|
9525
|
+
label: field
|
|
9526
|
+
}, register(field, {
|
|
9527
|
+
required: false
|
|
9528
|
+
}), renderField));
|
|
9529
|
+
}
|
|
9530
|
+
}), errors[field] && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
9531
|
+
color: "red"
|
|
9532
|
+
}, field, " is required.")), field != "IsActive" && /*#__PURE__*/_react["default"].createElement(_system.Box, null, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
|
9533
|
+
name: field,
|
|
9534
|
+
control: control,
|
|
9535
|
+
rules: {
|
|
9536
|
+
required: true
|
|
9537
|
+
},
|
|
9538
|
+
render: function render(_ref6) {
|
|
9539
|
+
var renderField = _ref6.renderField;
|
|
9540
|
+
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], _extends({
|
|
9541
|
+
label: field,
|
|
9542
|
+
variant: "outlined",
|
|
9543
|
+
defaultValue: result,
|
|
9544
|
+
margin: "normal",
|
|
9545
|
+
fullWidth: true
|
|
9546
|
+
}, register(field, {
|
|
9547
|
+
required: true
|
|
9548
|
+
}), renderField));
|
|
9549
|
+
}
|
|
9550
|
+
}), errors[field] && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
9551
|
+
color: "red"
|
|
9552
|
+
}, field, " is required.")));
|
|
9553
|
+
}));
|
|
9554
|
+
};
|
|
9470
9555
|
return /*#__PURE__*/_react["default"].createElement(_system.Box, {
|
|
9471
9556
|
sx: {
|
|
9472
|
-
paddingTop:
|
|
9557
|
+
paddingTop: 0
|
|
9473
9558
|
}
|
|
9474
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
9559
|
+
}, /*#__PURE__*/_react["default"].createElement(_system.Box, {
|
|
9560
|
+
sx: {
|
|
9561
|
+
paddingBottom: 2
|
|
9562
|
+
}
|
|
9563
|
+
}, "Edit Account"), /*#__PURE__*/_react["default"].createElement("form", {
|
|
9475
9564
|
onSubmit: handleSubmit( /*#__PURE__*/function () {
|
|
9476
|
-
var
|
|
9477
|
-
var response;
|
|
9565
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {
|
|
9566
|
+
var userCustomFields, response;
|
|
9478
9567
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
9479
9568
|
while (1) switch (_context3.prev = _context3.next) {
|
|
9480
9569
|
case 0:
|
|
9481
|
-
|
|
9482
|
-
|
|
9570
|
+
userCustomFields = [];
|
|
9571
|
+
customFields.forEach(function (customField) {
|
|
9572
|
+
userCustomFields.push({
|
|
9573
|
+
name: customField.name,
|
|
9574
|
+
value: data[customField.name]
|
|
9575
|
+
});
|
|
9576
|
+
});
|
|
9577
|
+
_context3.next = 4;
|
|
9578
|
+
return apiService().put("/UserManagement/UpdateUser", {
|
|
9483
9579
|
id: userId,
|
|
9484
9580
|
firstName: data.FirstName,
|
|
9485
9581
|
lastName: data.LastName,
|
|
9486
9582
|
company: data.Company,
|
|
9487
9583
|
email: data.Email,
|
|
9488
9584
|
isActive: data.IsActive,
|
|
9489
|
-
roles:
|
|
9490
|
-
permissions:
|
|
9585
|
+
roles: selectedRoles != "" ? selectedRoles : null,
|
|
9586
|
+
permissions: selectedPermission != "" ? selectedPermission : null,
|
|
9587
|
+
userCustomFields: userCustomFields
|
|
9491
9588
|
});
|
|
9492
|
-
case
|
|
9589
|
+
case 4:
|
|
9493
9590
|
response = _context3.sent;
|
|
9494
9591
|
if (response != null && response.status == 200) {
|
|
9495
|
-
|
|
9592
|
+
if (onSaved != null) {
|
|
9593
|
+
onSaved();
|
|
9594
|
+
}
|
|
9496
9595
|
}
|
|
9497
|
-
case
|
|
9596
|
+
case 6:
|
|
9498
9597
|
case "end":
|
|
9499
9598
|
return _context3.stop();
|
|
9500
9599
|
}
|
|
9501
9600
|
}, _callee3);
|
|
9502
9601
|
}));
|
|
9503
9602
|
return function (_x2) {
|
|
9504
|
-
return
|
|
9603
|
+
return _ref7.apply(this, arguments);
|
|
9505
9604
|
};
|
|
9506
9605
|
}()),
|
|
9507
9606
|
noValidate: true,
|
|
@@ -9512,49 +9611,7 @@ function UserEditor(_ref) {
|
|
|
9512
9611
|
}, /*#__PURE__*/_react["default"].createElement(_material.Grid, {
|
|
9513
9612
|
item: true,
|
|
9514
9613
|
xs: 6
|
|
9515
|
-
}, /*#__PURE__*/_react["default"].createElement(_system.Box, null,
|
|
9516
|
-
var result = findTheValue(field);
|
|
9517
|
-
return /*#__PURE__*/_react["default"].createElement(_system.Box, null, field == "IsActive" && /*#__PURE__*/_react["default"].createElement(_system.Box, null, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
|
9518
|
-
name: field,
|
|
9519
|
-
control: control,
|
|
9520
|
-
rules: {
|
|
9521
|
-
required: false
|
|
9522
|
-
},
|
|
9523
|
-
render: function render(_ref5) {
|
|
9524
|
-
var renderField = _ref5.renderField;
|
|
9525
|
-
return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], _extends({
|
|
9526
|
-
control: /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
9527
|
-
defaultChecked: result
|
|
9528
|
-
}),
|
|
9529
|
-
label: field
|
|
9530
|
-
}, register(field, {
|
|
9531
|
-
required: false
|
|
9532
|
-
}), renderField));
|
|
9533
|
-
}
|
|
9534
|
-
}), errors[field] && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
9535
|
-
color: "red"
|
|
9536
|
-
}, field, " is required.")), field != "IsActive" && /*#__PURE__*/_react["default"].createElement(_system.Box, null, /*#__PURE__*/_react["default"].createElement(_reactHookForm.Controller, {
|
|
9537
|
-
name: field,
|
|
9538
|
-
control: control,
|
|
9539
|
-
rules: {
|
|
9540
|
-
required: true
|
|
9541
|
-
},
|
|
9542
|
-
render: function render(_ref6) {
|
|
9543
|
-
var renderField = _ref6.renderField;
|
|
9544
|
-
return /*#__PURE__*/_react["default"].createElement(_TextField["default"], _extends({
|
|
9545
|
-
label: field,
|
|
9546
|
-
variant: "outlined",
|
|
9547
|
-
defaultValue: result,
|
|
9548
|
-
margin: "normal",
|
|
9549
|
-
fullWidth: true
|
|
9550
|
-
}, register(field, {
|
|
9551
|
-
required: true
|
|
9552
|
-
}), renderField));
|
|
9553
|
-
}
|
|
9554
|
-
}), errors[field] && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
9555
|
-
color: "red"
|
|
9556
|
-
}, field, " is required.")));
|
|
9557
|
-
}))), /*#__PURE__*/_react["default"].createElement(_material.Grid, {
|
|
9614
|
+
}, /*#__PURE__*/_react["default"].createElement(_system.Box, null, renderSystemField(fields), renderCustomField(customFields))), /*#__PURE__*/_react["default"].createElement(_material.Grid, {
|
|
9558
9615
|
item: true,
|
|
9559
9616
|
xs: 6
|
|
9560
9617
|
}, /*#__PURE__*/_react["default"].createElement(_system.Box, null, /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
|
|
@@ -9639,7 +9696,11 @@ function UserEditor(_ref) {
|
|
|
9639
9696
|
}));
|
|
9640
9697
|
}))), errors.permissions && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
9641
9698
|
color: "red"
|
|
9642
|
-
}, "permissions", " is required.")))), /*#__PURE__*/_react["default"].createElement(_system.Box,
|
|
9699
|
+
}, "permissions", " is required.")))), /*#__PURE__*/_react["default"].createElement(_system.Box, {
|
|
9700
|
+
sx: {
|
|
9701
|
+
paddingTop: 2
|
|
9702
|
+
}
|
|
9703
|
+
}, /*#__PURE__*/_react["default"].createElement(_material.Button, {
|
|
9643
9704
|
variant: "contained",
|
|
9644
9705
|
type: "submit"
|
|
9645
9706
|
}, "Submit"))));
|
|
@@ -9655,7 +9716,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9655
9716
|
var _system = require("@mui/system");
|
|
9656
9717
|
var _material = require("@mui/material");
|
|
9657
9718
|
var _Stack = _interopRequireDefault(require("@mui/material/Stack"));
|
|
9658
|
-
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
9659
9719
|
var _Table = _interopRequireDefault(require("@mui/material/Table"));
|
|
9660
9720
|
var _TableBody = _interopRequireDefault(require("@mui/material/TableBody"));
|
|
9661
9721
|
var _TableCell = _interopRequireDefault(require("@mui/material/TableCell"));
|
|
@@ -9684,12 +9744,13 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
9684
9744
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
9685
9745
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
9686
9746
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // import { FileUploader, apiService } from 'authscape';
|
|
9747
|
+
// import { UserEditor } from '../../components/users/userEditor';
|
|
9748
|
+
|
|
9687
9749
|
function UserManagement(_ref) {
|
|
9688
|
-
var _ref$
|
|
9750
|
+
var _ref$customFields = _ref.customFields,
|
|
9751
|
+
customFields = _ref$customFields === void 0 ? null : _ref$customFields,
|
|
9752
|
+
_ref$onUploadComplete = _ref.onUploadCompleted,
|
|
9689
9753
|
_onUploadCompleted = _ref$onUploadComplete === void 0 ? null : _ref$onUploadComplete;
|
|
9690
|
-
// const [comments, setComments] = useState([]);
|
|
9691
|
-
// const [message, setMessage] = useState("");
|
|
9692
|
-
|
|
9693
9754
|
var _useState = (0, _react.useState)(null),
|
|
9694
9755
|
_useState2 = _slicedToArray(_useState, 2),
|
|
9695
9756
|
showUserDetails = _useState2[0],
|
|
@@ -9847,7 +9908,11 @@ function UserManagement(_ref) {
|
|
|
9847
9908
|
maxWidth: "xl",
|
|
9848
9909
|
fullWidth: true
|
|
9849
9910
|
}, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_system.Box, null, /*#__PURE__*/_react["default"].createElement(UserEditor, {
|
|
9850
|
-
userId: showUserDetails
|
|
9911
|
+
userId: showUserDetails,
|
|
9912
|
+
customFields: customFields,
|
|
9913
|
+
onSaved: function onSaved() {
|
|
9914
|
+
setShowUserDetails(null);
|
|
9915
|
+
}
|
|
9851
9916
|
})))));
|
|
9852
9917
|
}
|
|
9853
9918
|
"use strict";
|
package/package.json
CHANGED
|
@@ -134,7 +134,7 @@ export function Kanban({
|
|
|
134
134
|
disableAddColumn = false,
|
|
135
135
|
containerStyles,
|
|
136
136
|
itemStyles,
|
|
137
|
-
|
|
137
|
+
identifier = null,
|
|
138
138
|
containerStyle,
|
|
139
139
|
coordinateGetter = multipleContainersCoordinateGetter,
|
|
140
140
|
getItemStyles = () => ({}),
|
|
@@ -162,13 +162,13 @@ export function Kanban({
|
|
|
162
162
|
const fetchData = async () => {
|
|
163
163
|
|
|
164
164
|
let response = null;
|
|
165
|
-
if (
|
|
165
|
+
if (identifier == null)
|
|
166
166
|
{
|
|
167
167
|
response = await apiService().get("/Kanban/GetKanban");
|
|
168
168
|
}
|
|
169
169
|
else
|
|
170
170
|
{
|
|
171
|
-
response = await apiService().get("/Kanban/GetKanban?
|
|
171
|
+
response = await apiService().get("/Kanban/GetKanban?identifier=" + identifier);
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
if (response != null && response.status == 200)
|
|
@@ -3,7 +3,7 @@ import { Box } from '@mui/system';
|
|
|
3
3
|
import TextField from '@mui/material/TextField';
|
|
4
4
|
import { Button, Grid } from '@mui/material';
|
|
5
5
|
import Typography from '@mui/material/Typography';
|
|
6
|
-
import { apiService } from 'authscape';
|
|
6
|
+
// import { apiService } from 'authscape';
|
|
7
7
|
import FormControl from '@mui/material/FormControl';
|
|
8
8
|
import InputLabel from '@mui/material/InputLabel';
|
|
9
9
|
import Select from '@mui/material/Select';
|
|
@@ -15,7 +15,7 @@ import { useForm, Controller } from 'react-hook-form';
|
|
|
15
15
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
16
16
|
import Switch from '@mui/material/Switch';
|
|
17
17
|
|
|
18
|
-
export
|
|
18
|
+
export function UserEditor({userId = null, customFields = null, onSaved = null}) {
|
|
19
19
|
|
|
20
20
|
const {control, register, handleSubmit, formState: { errors }, watch, setValue } = useForm();
|
|
21
21
|
|
|
@@ -69,6 +69,7 @@ export default function UserEditor({userId = null}) {
|
|
|
69
69
|
{
|
|
70
70
|
setUser(response.data);
|
|
71
71
|
|
|
72
|
+
// assign all selected roles
|
|
72
73
|
if (response.data.roles != null)
|
|
73
74
|
{
|
|
74
75
|
let roleNames = [];
|
|
@@ -79,6 +80,18 @@ export default function UserEditor({userId = null}) {
|
|
|
79
80
|
}
|
|
80
81
|
setSelectedRole(roleNames);
|
|
81
82
|
}
|
|
83
|
+
|
|
84
|
+
// assign all selected permissions
|
|
85
|
+
if (response.data.permissions != null)
|
|
86
|
+
{
|
|
87
|
+
let permissionNames = [];
|
|
88
|
+
for (let index = 0; index < response.data.permissions.length; index++) {
|
|
89
|
+
const permission = response.data.permissions[index];
|
|
90
|
+
|
|
91
|
+
permissionNames.push(permission);
|
|
92
|
+
}
|
|
93
|
+
setSelectedPermission(permissionNames);
|
|
94
|
+
}
|
|
82
95
|
|
|
83
96
|
}
|
|
84
97
|
}
|
|
@@ -92,17 +105,7 @@ export default function UserEditor({userId = null}) {
|
|
|
92
105
|
"LastName",
|
|
93
106
|
"Company",
|
|
94
107
|
"IsActive",
|
|
95
|
-
|
|
96
|
-
"Email",
|
|
97
|
-
// "Email Verified",
|
|
98
|
-
// "Business Phone",
|
|
99
|
-
// "Mobile Phone",
|
|
100
|
-
// "Fax",
|
|
101
|
-
// "Street",
|
|
102
|
-
// "City",
|
|
103
|
-
// "State",
|
|
104
|
-
// "Postal Code",
|
|
105
|
-
// "Region"
|
|
108
|
+
"Email"
|
|
106
109
|
]
|
|
107
110
|
|
|
108
111
|
const findTheValue = (field) => {
|
|
@@ -123,26 +126,155 @@ export default function UserEditor({userId = null}) {
|
|
|
123
126
|
return result;
|
|
124
127
|
}
|
|
125
128
|
|
|
129
|
+
const findCustomFieldValue = (field) => {
|
|
130
|
+
|
|
131
|
+
let result = "";
|
|
132
|
+
if (user != null && user.userCustomFields)
|
|
133
|
+
{
|
|
134
|
+
user.userCustomFields.forEach(userCustomField => {
|
|
135
|
+
|
|
136
|
+
if (field.toLowerCase() == userCustomField.name.toLowerCase())
|
|
137
|
+
{
|
|
138
|
+
result = userCustomField.value;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const renderCustomField = (customFields) => {
|
|
148
|
+
|
|
149
|
+
return (
|
|
150
|
+
<>
|
|
151
|
+
{user != null && customFields.map((field) => {
|
|
152
|
+
|
|
153
|
+
let result = findCustomFieldValue(field.name);
|
|
154
|
+
|
|
155
|
+
return (
|
|
156
|
+
<Box>
|
|
157
|
+
<Controller name={field.name}
|
|
158
|
+
control={control}
|
|
159
|
+
rules={{
|
|
160
|
+
required: field.isRequired,
|
|
161
|
+
}}
|
|
162
|
+
render={({renderField}) =>
|
|
163
|
+
<TextField
|
|
164
|
+
label={field.name}
|
|
165
|
+
variant="outlined"
|
|
166
|
+
defaultValue={result}
|
|
167
|
+
margin="normal"
|
|
168
|
+
fullWidth
|
|
169
|
+
{...register(field.name, { required: field.isRequired })}
|
|
170
|
+
{...renderField}
|
|
171
|
+
/>
|
|
172
|
+
}
|
|
173
|
+
/>
|
|
174
|
+
{errors[field.name] && <Typography color={"red"}>{field.name} is required.</Typography>}
|
|
175
|
+
</Box>
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
})}
|
|
179
|
+
</>
|
|
180
|
+
)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const renderSystemField = (customFields, isSystemField = false) => {
|
|
184
|
+
|
|
185
|
+
return (
|
|
186
|
+
<>
|
|
187
|
+
{user != null && customFields.map((field) => {
|
|
188
|
+
|
|
189
|
+
let result = findTheValue(field);
|
|
190
|
+
|
|
191
|
+
return (
|
|
192
|
+
<Box>
|
|
193
|
+
|
|
194
|
+
{field == "IsActive" &&
|
|
195
|
+
<Box>
|
|
196
|
+
<Controller name={field}
|
|
197
|
+
control={control}
|
|
198
|
+
rules={{
|
|
199
|
+
required: false,
|
|
200
|
+
}}
|
|
201
|
+
render={({renderField}) =>
|
|
202
|
+
<FormControlLabel control={<Switch defaultChecked={result} />} label={field} {...register(field, { required: false })} {...renderField} />
|
|
203
|
+
}
|
|
204
|
+
/>
|
|
205
|
+
{errors[field] && <Typography color={"red"}>{field} is required.</Typography>}
|
|
206
|
+
|
|
207
|
+
</Box>
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
{field != "IsActive" &&
|
|
211
|
+
<Box>
|
|
212
|
+
<Controller name={field}
|
|
213
|
+
control={control}
|
|
214
|
+
rules={{
|
|
215
|
+
required: true,
|
|
216
|
+
}}
|
|
217
|
+
render={({renderField}) =>
|
|
218
|
+
<TextField
|
|
219
|
+
label={field}
|
|
220
|
+
variant="outlined"
|
|
221
|
+
defaultValue={result}
|
|
222
|
+
margin="normal"
|
|
223
|
+
fullWidth
|
|
224
|
+
{...register(field, { required: true })}
|
|
225
|
+
{...renderField}
|
|
226
|
+
/>
|
|
227
|
+
}
|
|
228
|
+
/>
|
|
229
|
+
{errors[field] && <Typography color={"red"}>{field} is required.</Typography>}
|
|
230
|
+
</Box>
|
|
231
|
+
}
|
|
232
|
+
</Box>
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
})}
|
|
236
|
+
</>
|
|
237
|
+
)
|
|
238
|
+
}
|
|
239
|
+
|
|
126
240
|
return (
|
|
127
|
-
<Box sx={{paddingTop:
|
|
241
|
+
<Box sx={{paddingTop:0}}>
|
|
242
|
+
|
|
243
|
+
<Box sx={{paddingBottom:2}}>
|
|
244
|
+
Edit Account
|
|
245
|
+
</Box>
|
|
128
246
|
|
|
129
247
|
<form onSubmit={handleSubmit(async (data) => {
|
|
248
|
+
|
|
249
|
+
let userCustomFields = [];
|
|
250
|
+
|
|
251
|
+
customFields.forEach(customField => {
|
|
252
|
+
|
|
253
|
+
userCustomFields.push({
|
|
254
|
+
name: customField.name,
|
|
255
|
+
value: data[customField.name]
|
|
256
|
+
});
|
|
257
|
+
});
|
|
130
258
|
|
|
131
|
-
|
|
259
|
+
let response = await apiService().put("/UserManagement/UpdateUser", {
|
|
132
260
|
id: userId,
|
|
133
261
|
firstName: data.FirstName,
|
|
134
262
|
lastName: data.LastName,
|
|
135
263
|
company: data.Company,
|
|
136
264
|
email: data.Email,
|
|
137
265
|
isActive: data.IsActive,
|
|
138
|
-
roles:
|
|
139
|
-
permissions:
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
266
|
+
roles: selectedRoles != "" ? selectedRoles : null,
|
|
267
|
+
permissions: selectedPermission != "" ? selectedPermission : null,
|
|
268
|
+
userCustomFields: userCustomFields
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
if (response != null && response.status == 200)
|
|
272
|
+
{
|
|
273
|
+
if (onSaved != null)
|
|
274
|
+
{
|
|
275
|
+
onSaved();
|
|
276
|
+
}
|
|
277
|
+
}
|
|
146
278
|
|
|
147
279
|
})} noValidate autoComplete="off">
|
|
148
280
|
<Grid container spacing={2}>
|
|
@@ -150,55 +282,9 @@ export default function UserEditor({userId = null}) {
|
|
|
150
282
|
|
|
151
283
|
<Box>
|
|
152
284
|
|
|
153
|
-
{
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
return (
|
|
158
|
-
<Box>
|
|
159
|
-
|
|
160
|
-
{field == "IsActive" &&
|
|
161
|
-
<Box>
|
|
162
|
-
<Controller name={field}
|
|
163
|
-
control={control}
|
|
164
|
-
rules={{
|
|
165
|
-
required: false,
|
|
166
|
-
}}
|
|
167
|
-
render={({renderField}) =>
|
|
168
|
-
<FormControlLabel control={<Switch defaultChecked={result} />} label={field} {...register(field, { required: false })} {...renderField} />
|
|
169
|
-
}
|
|
170
|
-
/>
|
|
171
|
-
{errors[field] && <Typography color={"red"}>{field} is required.</Typography>}
|
|
172
|
-
|
|
173
|
-
</Box>
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
{field != "IsActive" &&
|
|
177
|
-
<Box>
|
|
178
|
-
<Controller name={field}
|
|
179
|
-
control={control}
|
|
180
|
-
rules={{
|
|
181
|
-
required: true,
|
|
182
|
-
}}
|
|
183
|
-
render={({renderField}) =>
|
|
184
|
-
<TextField
|
|
185
|
-
label={field}
|
|
186
|
-
variant="outlined"
|
|
187
|
-
defaultValue={result}
|
|
188
|
-
margin="normal"
|
|
189
|
-
fullWidth
|
|
190
|
-
{...register(field, { required: true })}
|
|
191
|
-
{...renderField}
|
|
192
|
-
/>
|
|
193
|
-
}
|
|
194
|
-
/>
|
|
195
|
-
{errors[field] && <Typography color={"red"}>{field} is required.</Typography>}
|
|
196
|
-
</Box>
|
|
197
|
-
}
|
|
198
|
-
</Box>
|
|
199
|
-
)
|
|
200
|
-
|
|
201
|
-
})}
|
|
285
|
+
{renderSystemField(fields)}
|
|
286
|
+
|
|
287
|
+
{renderCustomField(customFields)}
|
|
202
288
|
|
|
203
289
|
</Box>
|
|
204
290
|
|
|
@@ -208,37 +294,35 @@ export default function UserEditor({userId = null}) {
|
|
|
208
294
|
|
|
209
295
|
<Box>
|
|
210
296
|
|
|
211
|
-
|
|
212
|
-
|
|
213
297
|
<FormControl sx={{ paddingTop:1, m: 1, width: "100%" }}>
|
|
214
298
|
<InputLabel id="demo-multiple-checkbox-label">Roles</InputLabel>
|
|
215
299
|
<Select
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
300
|
+
fullWidth={true}
|
|
301
|
+
labelId="demo-multiple-checkbox-label"
|
|
302
|
+
id="demo-multiple-checkbox"
|
|
303
|
+
{...register("roles", { required: false })}
|
|
304
|
+
multiple
|
|
305
|
+
value={selectedRoles}
|
|
306
|
+
onChange={(event) => {
|
|
307
|
+
|
|
308
|
+
const {
|
|
309
|
+
target: { value },
|
|
310
|
+
} = event;
|
|
311
|
+
setSelectedRole(
|
|
312
|
+
// On autofill we get a stringified value.
|
|
313
|
+
typeof value === 'string' ? value.split(',') : value,
|
|
314
|
+
);
|
|
315
|
+
|
|
316
|
+
}}
|
|
317
|
+
input={<OutlinedInput label="Roles" />}
|
|
318
|
+
renderValue={(selected) => selected.join(', ')}
|
|
319
|
+
MenuProps={MenuProps}>
|
|
320
|
+
{roles.map((role) => (
|
|
321
|
+
<MenuItem key={role.name} value={role.name}>
|
|
322
|
+
<Checkbox checked={selectedRoles.indexOf(role.name) > -1} />
|
|
323
|
+
<ListItemText primary={role.name} />
|
|
324
|
+
</MenuItem>
|
|
325
|
+
))}
|
|
242
326
|
</Select>
|
|
243
327
|
</FormControl>
|
|
244
328
|
{errors.roles && <Typography color={"red"}>{"roles"} is required.</Typography>}
|
|
@@ -281,7 +365,7 @@ export default function UserEditor({userId = null}) {
|
|
|
281
365
|
|
|
282
366
|
</Grid>
|
|
283
367
|
</Grid>
|
|
284
|
-
<Box>
|
|
368
|
+
<Box sx={{paddingTop:2}}>
|
|
285
369
|
<Button variant="contained" type="submit">Submit</Button>
|
|
286
370
|
</Box>
|
|
287
371
|
</form>
|
|
@@ -2,7 +2,6 @@ import React, {useEffect, useState, useRef} from 'react';
|
|
|
2
2
|
import { Box } from '@mui/system';
|
|
3
3
|
import { Button, Grid } from '@mui/material';
|
|
4
4
|
import Stack from '@mui/material/Stack';
|
|
5
|
-
import Typography from '@mui/material/Typography';
|
|
6
5
|
import Table from '@mui/material/Table';
|
|
7
6
|
import TableBody from '@mui/material/TableBody';
|
|
8
7
|
import TableCell from '@mui/material/TableCell';
|
|
@@ -22,10 +21,9 @@ import DialogContent from '@mui/material/DialogContent';
|
|
|
22
21
|
import DialogContentText from '@mui/material/DialogContentText';
|
|
23
22
|
import DialogTitle from '@mui/material/DialogTitle';
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
// import { UserEditor } from '../../components/users/userEditor';
|
|
26
25
|
|
|
27
|
-
|
|
28
|
-
// const [message, setMessage] = useState("");
|
|
26
|
+
export function UserManagement({customFields = null, onUploadCompleted = null}) {
|
|
29
27
|
|
|
30
28
|
const [showUserDetails, setShowUserDetails] = useState(null);
|
|
31
29
|
const [newUserDialog, setNewUserDialog] = useState(false);
|
|
@@ -148,21 +146,16 @@ export function UserManagement({onUploadCompleted = null}) {
|
|
|
148
146
|
}}
|
|
149
147
|
maxWidth={"xl"}
|
|
150
148
|
fullWidth={true}>
|
|
151
|
-
{/* <DialogTitle>
|
|
152
|
-
{"Upload users"}
|
|
153
|
-
</DialogTitle> */}
|
|
154
149
|
<DialogContent>
|
|
155
|
-
|
|
156
150
|
<Box>
|
|
157
|
-
<UserEditor
|
|
151
|
+
<UserEditor
|
|
152
|
+
userId={showUserDetails}
|
|
153
|
+
customFields={customFields}
|
|
154
|
+
onSaved={() => {
|
|
155
|
+
setShowUserDetails(null);
|
|
156
|
+
}} />
|
|
158
157
|
</Box>
|
|
159
|
-
|
|
160
158
|
</DialogContent>
|
|
161
|
-
{/* <DialogActions>
|
|
162
|
-
<Button onClick={() => {
|
|
163
|
-
setUploadUsersShowDialog(false);
|
|
164
|
-
}}>Cancel</Button>
|
|
165
|
-
</DialogActions> */}
|
|
166
159
|
</Dialog>
|
|
167
160
|
|
|
168
161
|
</Box>
|