@gpa-gemstone/common-pages 0.0.104 → 0.0.106

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. package/lib/ErrorBoundary.d.ts +17 -17
  2. package/lib/ErrorBoundary.js +91 -68
  3. package/lib/Note.d.ts +22 -22
  4. package/lib/Note.js +256 -230
  5. package/lib/SearchBar.d.ts +37 -37
  6. package/lib/SearchBar.js +203 -180
  7. package/lib/SelectionPopup.d.ts +42 -42
  8. package/lib/SelectionPopup.js +93 -90
  9. package/lib/Setting.d.ts +8 -8
  10. package/lib/Setting.js +151 -125
  11. package/lib/SliceInterfaces.d.ts +76 -76
  12. package/lib/SliceInterfaces.js +2 -2
  13. package/lib/StandardSelectPopup.d.ts +20 -20
  14. package/lib/StandardSelectPopup.js +135 -109
  15. package/lib/TimeFilter/QuickSelects.d.ts +7 -0
  16. package/lib/TimeFilter/QuickSelects.js +240 -0
  17. package/lib/TimeFilter.d.ts +26 -0
  18. package/lib/TimeFilter.js +270 -0
  19. package/lib/TimeWindowUtils.d.ts +33 -0
  20. package/lib/TimeWindowUtils.js +121 -0
  21. package/lib/ValueList/ByValueList.d.ts +10 -10
  22. package/lib/ValueList/ByValueList.js +141 -115
  23. package/lib/ValueList/Group.d.ts +11 -11
  24. package/lib/ValueList/Group.js +97 -71
  25. package/lib/ValueList/GroupForm.d.ts +9 -9
  26. package/lib/ValueList/GroupForm.js +74 -51
  27. package/lib/ValueList/GroupInfo.d.ts +8 -8
  28. package/lib/ValueList/GroupInfo.js +95 -69
  29. package/lib/ValueList/GroupItem.d.ts +9 -9
  30. package/lib/ValueList/GroupItem.js +142 -116
  31. package/lib/ValueList/ItemForm.d.ts +9 -9
  32. package/lib/ValueList/ItemForm.js +82 -59
  33. package/lib/index.d.ts +12 -11
  34. package/lib/index.js +50 -45
  35. package/lib/user/AdditionalField.d.ts +26 -26
  36. package/lib/user/AdditionalField.js +290 -264
  37. package/lib/user/ByUser.d.ts +12 -12
  38. package/lib/user/ByUser.js +174 -148
  39. package/lib/user/User.d.ts +14 -14
  40. package/lib/user/User.js +97 -71
  41. package/lib/user/UserForm.d.ts +12 -12
  42. package/lib/user/UserForm.js +166 -143
  43. package/lib/user/UserInfo.d.ts +7 -7
  44. package/lib/user/UserInfo.js +123 -97
  45. package/lib/user/UserPermissions.d.ts +8 -8
  46. package/lib/user/UserPermissions.js +106 -83
  47. package/package.json +11 -10
@@ -1,97 +1,123 @@
1
- "use strict";
2
- // ******************************************************************************************************
3
- // UserInfo.tsx - Gbtc
4
- //
5
- // Copyright © 2020, Grid Protection Alliance. All Rights Reserved.
6
- //
7
- // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
8
- // the NOTICE file distributed with this work for additional information regarding copyright ownership.
9
- // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
10
- // file except in compliance with the License. You may obtain a copy of the License at:
11
- //
12
- // http://opensource.org/licenses/MIT
13
- //
14
- // Unless agreed to in writing, the subject software distributed under the License is distributed on an
15
- // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
16
- // License for the specific language governing permissions and limitations.
17
- //
18
- // Code Modification History:
19
- // ----------------------------------------------------------------------------------------------------
20
- // 07/14/2021 - C. Lackner
21
- // Generated original version of source code.
22
- // ******************************************************************************************************
23
- var __assign = (this && this.__assign) || function () {
24
- __assign = Object.assign || function(t) {
25
- for (var s, i = 1, n = arguments.length; i < n; i++) {
26
- s = arguments[i];
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28
- t[p] = s[p];
29
- }
30
- return t;
31
- };
32
- return __assign.apply(this, arguments);
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- var React = require("react");
36
- var CryptoJS = require("crypto-js");
37
- var UserForm_1 = require("./UserForm");
38
- var react_interactive_1 = require("@gpa-gemstone/react-interactive");
39
- var gpa_symbols_1 = require("@gpa-gemstone/gpa-symbols");
40
- var react_redux_1 = require("react-redux");
41
- function UserInfo(props) {
42
- var dispatch = (0, react_redux_1.useDispatch)();
43
- var currentUser = (0, react_redux_1.useSelector)(props.UserSlice.CurrentUser);
44
- var _a = React.useState(currentUser), user = _a[0], setUser = _a[1];
45
- var _b = React.useState([]), warnings = _b[0], setWarning = _b[1];
46
- var _c = React.useState('None'), hover = _c[0], setHover = _c[1];
47
- React.useEffect(function () {
48
- if (currentUser == null || user == null)
49
- return;
50
- var encryptedPwd = (user.Password !== currentUser.Password ? CryptoJS.SHA256(user.Password + "0").toString(CryptoJS.enc.Base64) : user.Password);
51
- var w = [];
52
- if (currentUser.FirstName !== user.FirstName)
53
- w.push('Changes to First Name will be lost.');
54
- if (currentUser.LastName !== user.LastName)
55
- w.push('Changes to Last Name will be lost.');
56
- if (currentUser.Phone !== user.Phone)
57
- w.push('Changes to Phone will be lost.');
58
- if (currentUser.Email !== user.Email)
59
- w.push('Changes to Email will be lost.');
60
- if (currentUser.ChangePasswordOn !== user.ChangePasswordOn)
61
- w.push('Changes to Change Password Date will be lost.');
62
- if (currentUser.LockedOut !== user.LockedOut)
63
- w.push('Changes to Account Locked Status will be lost.');
64
- if (currentUser.Approved !== user.Approved)
65
- w.push('Changes Account Approved Status will be lost.');
66
- if (currentUser.PhoneConfirmed !== user.PhoneConfirmed)
67
- w.push('Changes to Phone Confirmed Status will be lost.');
68
- if (currentUser.EmailConfirmed !== user.EmailConfirmed)
69
- w.push('Changes to Email confirmed Status will be lost.');
70
- if (!currentUser.UseADAuthentication && currentUser.Password !== encryptedPwd)
71
- w.push('Changes to Password will be lost.');
72
- setWarning(w);
73
- }, [currentUser, user]);
74
- React.useEffect(function () { setUser(currentUser); }, [currentUser]);
75
- function updateUser() {
76
- var encryptedPwd = (user.Password !== currentUser.Password ? CryptoJS.SHA256(user.Password + "0").toString(CryptoJS.enc.Base64) : user.Password);
77
- dispatch(props.UserSlice.SetCurrentUser(__assign(__assign({}, user), { Name: currentUser.Name, Password: encryptedPwd })));
78
- dispatch(props.UserSlice.DBAction({ verb: 'PATCH', record: __assign(__assign({}, user), { Name: currentUser.Name, Password: encryptedPwd }) }));
79
- }
80
- return (React.createElement("div", { className: "card", style: { marginBottom: 10 } },
81
- React.createElement("div", { className: "card-header" },
82
- React.createElement("div", { className: "row" },
83
- React.createElement("div", { className: "col" },
84
- React.createElement("h4", null, "User Information:")))),
85
- React.createElement("div", { className: "card-body", style: { height: window.innerHeight - 440, maxHeight: window.innerHeight - 440, overflowY: 'auto' } },
86
- React.createElement(UserForm_1.default, { UserAccount: user, Setter: function (u) { return setUser(u); }, Edit: true, UserSlice: props.UserSlice })),
87
- React.createElement("div", { className: "card-footer" },
88
- React.createElement("div", { className: "btn-group mr-2" },
89
- React.createElement("button", { className: "btn btn-primary", onClick: function () { return updateUser(); }, disabled: warnings.length === 0 }, "Update")),
90
- React.createElement("div", { className: "btn-group mr-2" },
91
- React.createElement("button", { className: "btn btn-default", onClick: function () { return setUser(currentUser); }, disabled: warnings.length === 0, "data-tooltip": 'Clr', onMouseEnter: function () { return setHover('Clear'); }, onMouseLeave: function () { return setHover('None'); } }, "Reset")),
92
- React.createElement(react_interactive_1.ToolTip, { Show: hover === 'Clear' && (warnings.length > 0), Position: 'top', Theme: 'dark', Target: "Clr" }, warnings.map(function (t, i) { return React.createElement("p", { key: i },
93
- gpa_symbols_1.Warning,
94
- " ",
95
- t); })))));
96
- }
97
- exports.default = UserInfo;
1
+ "use strict";
2
+ // ******************************************************************************************************
3
+ // UserInfo.tsx - Gbtc
4
+ //
5
+ // Copyright © 2020, Grid Protection Alliance. All Rights Reserved.
6
+ //
7
+ // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
8
+ // the NOTICE file distributed with this work for additional information regarding copyright ownership.
9
+ // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
10
+ // file except in compliance with the License. You may obtain a copy of the License at:
11
+ //
12
+ // http://opensource.org/licenses/MIT
13
+ //
14
+ // Unless agreed to in writing, the subject software distributed under the License is distributed on an
15
+ // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
16
+ // License for the specific language governing permissions and limitations.
17
+ //
18
+ // Code Modification History:
19
+ // ----------------------------------------------------------------------------------------------------
20
+ // 07/14/2021 - C. Lackner
21
+ // Generated original version of source code.
22
+ // ******************************************************************************************************
23
+ var __assign = (this && this.__assign) || function () {
24
+ __assign = Object.assign || function(t) {
25
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
26
+ s = arguments[i];
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
28
+ t[p] = s[p];
29
+ }
30
+ return t;
31
+ };
32
+ return __assign.apply(this, arguments);
33
+ };
34
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
35
+ if (k2 === undefined) k2 = k;
36
+ var desc = Object.getOwnPropertyDescriptor(m, k);
37
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
38
+ desc = { enumerable: true, get: function() { return m[k]; } };
39
+ }
40
+ Object.defineProperty(o, k2, desc);
41
+ }) : (function(o, m, k, k2) {
42
+ if (k2 === undefined) k2 = k;
43
+ o[k2] = m[k];
44
+ }));
45
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
46
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
47
+ }) : function(o, v) {
48
+ o["default"] = v;
49
+ });
50
+ var __importStar = (this && this.__importStar) || function (mod) {
51
+ if (mod && mod.__esModule) return mod;
52
+ var result = {};
53
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
54
+ __setModuleDefault(result, mod);
55
+ return result;
56
+ };
57
+ var __importDefault = (this && this.__importDefault) || function (mod) {
58
+ return (mod && mod.__esModule) ? mod : { "default": mod };
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ var React = __importStar(require("react"));
62
+ var CryptoJS = __importStar(require("crypto-js"));
63
+ var UserForm_1 = __importDefault(require("./UserForm"));
64
+ var react_interactive_1 = require("@gpa-gemstone/react-interactive");
65
+ var gpa_symbols_1 = require("@gpa-gemstone/gpa-symbols");
66
+ var react_redux_1 = require("react-redux");
67
+ function UserInfo(props) {
68
+ var dispatch = (0, react_redux_1.useDispatch)();
69
+ var currentUser = (0, react_redux_1.useSelector)(props.UserSlice.CurrentUser);
70
+ var _a = React.useState(currentUser), user = _a[0], setUser = _a[1];
71
+ var _b = React.useState([]), warnings = _b[0], setWarning = _b[1];
72
+ var _c = React.useState('None'), hover = _c[0], setHover = _c[1];
73
+ React.useEffect(function () {
74
+ if (currentUser == null || user == null)
75
+ return;
76
+ var encryptedPwd = (user.Password !== currentUser.Password ? CryptoJS.SHA256(user.Password + "0").toString(CryptoJS.enc.Base64) : user.Password);
77
+ var w = [];
78
+ if (currentUser.FirstName !== user.FirstName)
79
+ w.push('Changes to First Name will be lost.');
80
+ if (currentUser.LastName !== user.LastName)
81
+ w.push('Changes to Last Name will be lost.');
82
+ if (currentUser.Phone !== user.Phone)
83
+ w.push('Changes to Phone will be lost.');
84
+ if (currentUser.Email !== user.Email)
85
+ w.push('Changes to Email will be lost.');
86
+ if (currentUser.ChangePasswordOn !== user.ChangePasswordOn)
87
+ w.push('Changes to Change Password Date will be lost.');
88
+ if (currentUser.LockedOut !== user.LockedOut)
89
+ w.push('Changes to Account Locked Status will be lost.');
90
+ if (currentUser.Approved !== user.Approved)
91
+ w.push('Changes Account Approved Status will be lost.');
92
+ if (currentUser.PhoneConfirmed !== user.PhoneConfirmed)
93
+ w.push('Changes to Phone Confirmed Status will be lost.');
94
+ if (currentUser.EmailConfirmed !== user.EmailConfirmed)
95
+ w.push('Changes to Email confirmed Status will be lost.');
96
+ if (!currentUser.UseADAuthentication && currentUser.Password !== encryptedPwd)
97
+ w.push('Changes to Password will be lost.');
98
+ setWarning(w);
99
+ }, [currentUser, user]);
100
+ React.useEffect(function () { setUser(currentUser); }, [currentUser]);
101
+ function updateUser() {
102
+ var encryptedPwd = (user.Password !== currentUser.Password ? CryptoJS.SHA256(user.Password + "0").toString(CryptoJS.enc.Base64) : user.Password);
103
+ dispatch(props.UserSlice.SetCurrentUser(__assign(__assign({}, user), { Name: currentUser.Name, Password: encryptedPwd })));
104
+ dispatch(props.UserSlice.DBAction({ verb: 'PATCH', record: __assign(__assign({}, user), { Name: currentUser.Name, Password: encryptedPwd }) }));
105
+ }
106
+ return (React.createElement("div", { className: "card", style: { marginBottom: 10 } },
107
+ React.createElement("div", { className: "card-header" },
108
+ React.createElement("div", { className: "row" },
109
+ React.createElement("div", { className: "col" },
110
+ React.createElement("h4", null, "User Information:")))),
111
+ React.createElement("div", { className: "card-body", style: { height: window.innerHeight - 440, maxHeight: window.innerHeight - 440, overflowY: 'auto' } },
112
+ React.createElement(UserForm_1.default, { UserAccount: user, Setter: function (u) { return setUser(u); }, Edit: true, UserSlice: props.UserSlice })),
113
+ React.createElement("div", { className: "card-footer" },
114
+ React.createElement("div", { className: "btn-group mr-2" },
115
+ React.createElement("button", { className: "btn btn-primary", onClick: function () { return updateUser(); }, disabled: warnings.length === 0 }, "Update")),
116
+ React.createElement("div", { className: "btn-group mr-2" },
117
+ React.createElement("button", { className: "btn btn-default", onClick: function () { return setUser(currentUser); }, disabled: warnings.length === 0, "data-tooltip": 'Clr', onMouseEnter: function () { return setHover('Clear'); }, onMouseLeave: function () { return setHover('None'); } }, "Reset")),
118
+ React.createElement(react_interactive_1.ToolTip, { Show: hover === 'Clear' && (warnings.length > 0), Position: 'top', Theme: 'dark', Target: "Clr" }, warnings.map(function (t, i) { return React.createElement("p", { key: i },
119
+ gpa_symbols_1.Warning,
120
+ " ",
121
+ t); })))));
122
+ }
123
+ exports.default = UserInfo;
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
2
- import { ISecurityRoleSlice } from '../SliceInterfaces';
3
- interface IProps {
4
- UserID: string;
5
- RoleSlice: ISecurityRoleSlice;
6
- }
7
- declare function UserPermission(props: IProps): JSX.Element;
8
- export default UserPermission;
1
+ import * as React from 'react';
2
+ import { ISecurityRoleSlice } from '../SliceInterfaces';
3
+ interface IProps {
4
+ UserID: string;
5
+ RoleSlice: ISecurityRoleSlice;
6
+ }
7
+ declare function UserPermission(props: IProps): React.JSX.Element;
8
+ export default UserPermission;
@@ -1,83 +1,106 @@
1
- "use strict";
2
- // ******************************************************************************************************
3
- // UserPermission.tsx - Gbtc
4
- //
5
- // Copyright © 2020, Grid Protection Alliance. All Rights Reserved.
6
- //
7
- // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
8
- // the NOTICE file distributed with this work for additional information regarding copyright ownership.
9
- // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
10
- // file except in compliance with the License. You may obtain a copy of the License at:
11
- //
12
- // http://opensource.org/licenses/MIT
13
- //
14
- // Unless agreed to in writing, the subject software distributed under the License is distributed on an
15
- // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
16
- // License for the specific language governing permissions and limitations.
17
- //
18
- // Code Modification History:
19
- // ----------------------------------------------------------------------------------------------------
20
- // 07/14/2021 - C. Lackner
21
- // Generated original version of source code.
22
- // ******************************************************************************************************
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- var React = require("react");
25
- var _ = require("lodash");
26
- var react_forms_1 = require("@gpa-gemstone/react-forms");
27
- var react_redux_1 = require("react-redux");
28
- function UserPermission(props) {
29
- var dispatch = (0, react_redux_1.useDispatch)();
30
- var currentRoles = (0, react_redux_1.useSelector)(props.RoleSlice.Roles);
31
- var allRoleStatus = (0, react_redux_1.useSelector)(props.RoleSlice.Status);
32
- var availableRoles = (0, react_redux_1.useSelector)(props.RoleSlice.AvailableRoles);
33
- var currentRoleStatus = (0, react_redux_1.useSelector)(props.RoleSlice.CurrentRoleStatus);
34
- var _a = React.useState([]), workingRoles = _a[0], setWorkingRoles = _a[1];
35
- var _b = React.useState(false), changed = _b[0], setChanged = _b[1];
36
- React.useEffect(function () {
37
- if (allRoleStatus === 'unintiated' || allRoleStatus === 'changed')
38
- dispatch(props.RoleSlice.FetchRoles());
39
- }, [dispatch, allRoleStatus]);
40
- React.useEffect(function () {
41
- if (currentRoleStatus === 'unintiated' || currentRoleStatus === 'changed')
42
- dispatch(props.RoleSlice.FetchUserRoles(props.UserID));
43
- }, [dispatch, currentRoleStatus, props.UserID]);
44
- React.useEffect(function () {
45
- resetCurrentRoles(availableRoles, currentRoles);
46
- }, [currentRoles, availableRoles]);
47
- function resetCurrentRoles(avRoles, currRoles) {
48
- setChanged(false);
49
- setWorkingRoles(avRoles.map(function (src) {
50
- var upd = _.cloneDeep(src);
51
- upd.Assigned = currRoles.find(function (usrc) { return usrc.ApplicationRoleID === upd.ID; }) !== undefined;
52
- return upd;
53
- }));
54
- }
55
- return (React.createElement("div", { className: "card", style: { marginBottom: 10 } },
56
- React.createElement("div", { className: "card-header" },
57
- React.createElement("div", { className: "row" },
58
- React.createElement("div", { className: "col" },
59
- React.createElement("h4", null, "User Permissions:")))),
60
- React.createElement("div", { className: "card-body" },
61
- React.createElement("div", { className: "row" },
62
- React.createElement("div", { className: "col" },
63
- React.createElement("fieldset", { className: "border", style: { padding: '10px', height: '100%' } },
64
- React.createElement("legend", { className: "w-auto", style: { fontSize: 'large' } }, "System Center:"),
65
- React.createElement("form", null, workingRoles.map(function (scr, i, array) { return React.createElement(react_forms_1.CheckBox, { key: scr.ID, Record: scr, Field: 'Assigned', Label: scr.Name, Setter: function (record) {
66
- scr.Assigned = record.Assigned;
67
- var newArray = _.clone(array);
68
- setWorkingRoles(newArray);
69
- setChanged(true);
70
- } }); })))),
71
- React.createElement("div", { className: "col" }))),
72
- React.createElement("div", { className: "card-footer" },
73
- React.createElement("div", { className: "btn-group mr-2" },
74
- React.createElement("button", { className: "btn btn-primary", onClick: function () {
75
- return dispatch(props.RoleSlice.SetUserRoles({
76
- UserId: props.UserID,
77
- Roles: workingRoles.filter(function (scr) { return scr.Assigned; }).map(function (scr) { return ({ ID: '00000000-0000-0000-0000-000000000000', ApplicationRoleID: scr.ID, UserAccountID: props.UserID }); })
78
- }));
79
- }, disabled: !changed }, "Update")),
80
- React.createElement("div", { className: "btn-group mr-2" },
81
- React.createElement("button", { className: "btn btn-default", onClick: function () { return resetCurrentRoles(availableRoles, currentRoles); }, disabled: !changed }, "Reset")))));
82
- }
83
- exports.default = UserPermission;
1
+ "use strict";
2
+ // ******************************************************************************************************
3
+ // UserPermission.tsx - Gbtc
4
+ //
5
+ // Copyright © 2020, Grid Protection Alliance. All Rights Reserved.
6
+ //
7
+ // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
8
+ // the NOTICE file distributed with this work for additional information regarding copyright ownership.
9
+ // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
10
+ // file except in compliance with the License. You may obtain a copy of the License at:
11
+ //
12
+ // http://opensource.org/licenses/MIT
13
+ //
14
+ // Unless agreed to in writing, the subject software distributed under the License is distributed on an
15
+ // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
16
+ // License for the specific language governing permissions and limitations.
17
+ //
18
+ // Code Modification History:
19
+ // ----------------------------------------------------------------------------------------------------
20
+ // 07/14/2021 - C. Lackner
21
+ // Generated original version of source code.
22
+ // ******************************************************************************************************
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ var React = __importStar(require("react"));
48
+ var _ = __importStar(require("lodash"));
49
+ var react_forms_1 = require("@gpa-gemstone/react-forms");
50
+ var react_redux_1 = require("react-redux");
51
+ function UserPermission(props) {
52
+ var dispatch = (0, react_redux_1.useDispatch)();
53
+ var currentRoles = (0, react_redux_1.useSelector)(props.RoleSlice.Roles);
54
+ var allRoleStatus = (0, react_redux_1.useSelector)(props.RoleSlice.Status);
55
+ var availableRoles = (0, react_redux_1.useSelector)(props.RoleSlice.AvailableRoles);
56
+ var currentRoleStatus = (0, react_redux_1.useSelector)(props.RoleSlice.CurrentRoleStatus);
57
+ var _a = React.useState([]), workingRoles = _a[0], setWorkingRoles = _a[1];
58
+ var _b = React.useState(false), changed = _b[0], setChanged = _b[1];
59
+ React.useEffect(function () {
60
+ if (allRoleStatus === 'unintiated' || allRoleStatus === 'changed')
61
+ dispatch(props.RoleSlice.FetchRoles());
62
+ }, [dispatch, allRoleStatus]);
63
+ React.useEffect(function () {
64
+ if (currentRoleStatus === 'unintiated' || currentRoleStatus === 'changed')
65
+ dispatch(props.RoleSlice.FetchUserRoles(props.UserID));
66
+ }, [dispatch, currentRoleStatus, props.UserID]);
67
+ React.useEffect(function () {
68
+ resetCurrentRoles(availableRoles, currentRoles);
69
+ }, [currentRoles, availableRoles]);
70
+ function resetCurrentRoles(avRoles, currRoles) {
71
+ setChanged(false);
72
+ setWorkingRoles(avRoles.map(function (src) {
73
+ var upd = _.cloneDeep(src);
74
+ upd.Assigned = currRoles.find(function (usrc) { return usrc.ApplicationRoleID === upd.ID; }) !== undefined;
75
+ return upd;
76
+ }));
77
+ }
78
+ return (React.createElement("div", { className: "card", style: { marginBottom: 10 } },
79
+ React.createElement("div", { className: "card-header" },
80
+ React.createElement("div", { className: "row" },
81
+ React.createElement("div", { className: "col" },
82
+ React.createElement("h4", null, "User Permissions:")))),
83
+ React.createElement("div", { className: "card-body" },
84
+ React.createElement("div", { className: "row" },
85
+ React.createElement("div", { className: "col" },
86
+ React.createElement("fieldset", { className: "border", style: { padding: '10px', height: '100%' } },
87
+ React.createElement("legend", { className: "w-auto", style: { fontSize: 'large' } }, "System Center:"),
88
+ React.createElement("form", null, workingRoles.map(function (scr, i, array) { return React.createElement(react_forms_1.CheckBox, { key: scr.ID, Record: scr, Field: 'Assigned', Label: scr.Name, Setter: function (record) {
89
+ scr.Assigned = record.Assigned;
90
+ var newArray = _.clone(array);
91
+ setWorkingRoles(newArray);
92
+ setChanged(true);
93
+ } }); })))),
94
+ React.createElement("div", { className: "col" }))),
95
+ React.createElement("div", { className: "card-footer" },
96
+ React.createElement("div", { className: "btn-group mr-2" },
97
+ React.createElement("button", { className: "btn btn-primary", onClick: function () {
98
+ return dispatch(props.RoleSlice.SetUserRoles({
99
+ UserId: props.UserID,
100
+ Roles: workingRoles.filter(function (scr) { return scr.Assigned; }).map(function (scr) { return ({ ID: '00000000-0000-0000-0000-000000000000', ApplicationRoleID: scr.ID, UserAccountID: props.UserID }); })
101
+ }));
102
+ }, disabled: !changed }, "Update")),
103
+ React.createElement("div", { className: "btn-group mr-2" },
104
+ React.createElement("button", { className: "btn btn-default", onClick: function () { return resetCurrentRoles(availableRoles, currentRoles); }, disabled: !changed }, "Reset")))));
105
+ }
106
+ exports.default = UserPermission;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gpa-gemstone/common-pages",
3
- "version": "0.0.104",
3
+ "version": "0.0.106",
4
4
  "description": "Common UI pages for GPA products",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -38,21 +38,22 @@
38
38
  "@typescript-eslint/eslint-plugin": "^5.60.0",
39
39
  "@typescript-eslint/parser": "^5.60.0",
40
40
  "eslint": "^8.43.0",
41
- "jest": "^27.0.6",
41
+ "jest": "^29.0.0",
42
42
  "prettier": "^2.3.2",
43
- "ts-jest": "^27.0.4",
44
- "typescript": "4.4.4"
43
+ "ts-jest": "^29.0.0",
44
+ "typescript": "5.5.3"
45
45
  },
46
46
  "dependencies": {
47
- "@gpa-gemstone/application-typings": "0.0.70",
48
- "@gpa-gemstone/gpa-symbols": "0.0.34",
49
- "@gpa-gemstone/helper-functions": "0.0.30",
50
- "@gpa-gemstone/react-forms": "1.1.60",
51
- "@gpa-gemstone/react-interactive": "1.0.119",
52
- "@gpa-gemstone/react-table": "1.2.44",
47
+ "@gpa-gemstone/application-typings": "0.0.72",
48
+ "@gpa-gemstone/gpa-symbols": "0.0.36",
49
+ "@gpa-gemstone/helper-functions": "0.0.32",
50
+ "@gpa-gemstone/react-forms": "1.1.62",
51
+ "@gpa-gemstone/react-interactive": "1.0.121",
52
+ "@gpa-gemstone/react-table": "1.2.46",
53
53
  "@reduxjs/toolkit": "1.8.3",
54
54
  "crypto-js": "4.0.0",
55
55
  "moment": "^2.29.4",
56
+ "moment-timezone": "0.5.43",
56
57
  "react": "^18.2.0",
57
58
  "react-redux": "8.0.2",
58
59
  "styled-components": "5.3.3"