@bigbinary/neeto-team-members-frontend 4.4.1 → 4.4.2
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/app/javascript/src/translations/en.json +1 -1
- package/dist/MembersDropdown.js +4 -2
- package/dist/MembersDropdown.js.map +1 -1
- package/dist/Roles.js +34 -38
- package/dist/Roles.js.map +1 -1
- package/dist/TeamsDropdown.js +1 -1
- package/dist/cjs/MembersDropdown.js +4 -2
- package/dist/cjs/MembersDropdown.js.map +1 -1
- package/dist/cjs/Roles.js +31 -35
- package/dist/cjs/Roles.js.map +1 -1
- package/dist/cjs/TeamsDropdown.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/{index-7b978a0f.js → index-971becfe.js} +5 -3
- package/dist/index-971becfe.js.map +1 -0
- package/dist/{index-98835f14.js → index-dc7f5532.js} +5 -3
- package/dist/index-dc7f5532.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +5 -5
- package/dist/index-7b978a0f.js.map +0 -1
- package/dist/index-98835f14.js.map +0 -1
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"tooltips": {
|
|
131
131
|
"activateUserToEdit_one": "Please activate the user to edit their role.",
|
|
132
132
|
"activateUserToEdit_other": "Please activate the selected users to edit their role.",
|
|
133
|
-
"adminMustHaveAccess": "
|
|
133
|
+
"adminMustHaveAccess": "{{roleName}} permissions cannot be changed by anyone.",
|
|
134
134
|
"clickToViewPermissions": "Click to view the roles and their permissions.",
|
|
135
135
|
"noPermissionToAddMember": "Please ask the admin to permit you to add members.",
|
|
136
136
|
"noPermissionToAddRole": "Please ask the admin to permit you to add roles.",
|
package/dist/MembersDropdown.js
CHANGED
|
@@ -6,7 +6,7 @@ import Dropdown from '@bigbinary/neetoui/Dropdown';
|
|
|
6
6
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
7
7
|
import { includes, toLower, map, append, pluck, any, not, isEmpty } from 'ramda';
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
|
-
import { A as AssignList } from './index-
|
|
9
|
+
import { A as AssignList } from './index-dc7f5532.js';
|
|
10
10
|
import Down from '@bigbinary/neeto-icons/Down';
|
|
11
11
|
import Avatar from '@bigbinary/neetoui/Avatar';
|
|
12
12
|
import Tooltip from '@bigbinary/neetoui/Tooltip';
|
|
@@ -183,7 +183,8 @@ var MembersDropdown = function MembersDropdown(_ref) {
|
|
|
183
183
|
children: [options.map(function (_ref3, index) {
|
|
184
184
|
var label = _ref3.label,
|
|
185
185
|
value = _ref3.value,
|
|
186
|
-
type = _ref3.type
|
|
186
|
+
type = _ref3.type,
|
|
187
|
+
profileImagePath = _ref3.profileImagePath;
|
|
187
188
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
188
189
|
children: [type === SEARCH_TYPES.TEAM && /*#__PURE__*/jsx(AssignList.TeamsListItem, {
|
|
189
190
|
active: (config === null || config === void 0 ? void 0 : config.selectedTeam.id) === value,
|
|
@@ -196,6 +197,7 @@ var MembersDropdown = function MembersDropdown(_ref) {
|
|
|
196
197
|
}
|
|
197
198
|
}), type === SEARCH_TYPES.MEMBER && /*#__PURE__*/jsx(AssignList.MembersListItem, {
|
|
198
199
|
active: (config === null || config === void 0 ? void 0 : config.selectedMember.value) === value,
|
|
200
|
+
imageUrl: profileImagePath,
|
|
199
201
|
memberName: label,
|
|
200
202
|
onClick: function onClick() {
|
|
201
203
|
return handleClick(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MembersDropdown.js","sources":["../app/javascript/src/components/MembersDropdown/AssignDropdownTarget.jsx","../app/javascript/src/components/MembersDropdown/constants.js","../app/javascript/src/components/MembersDropdown/utils.js","../app/javascript/src/components/MembersDropdown/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Down } from \"neetoicons\";\nimport { Avatar, Tooltip, Typography } from \"neetoui\";\n\nconst AssignDropdownTarget = ({ selectedMember = {} }) => {\n const { label = \"--\", profileImagePath = \"\" } = selectedMember;\n\n return (\n <div className=\"flex h-10 w-60 cursor-pointer select-none items-center gap-2\">\n {label !== \"--\" && (\n <Avatar\n className=\"flex-shrink-0\"\n user={{ name: label, imageUrl: profileImagePath }}\n />\n )}\n <Tooltip content={label} position=\"top\">\n <Typography className=\"truncate xl:block\" style=\"h5\" weight=\"normal\">\n {label}\n </Typography>\n </Tooltip>\n <Down className=\"flex-shrink-0\" size={16} />\n </div>\n );\n};\n\nexport default memo(AssignDropdownTarget);\n","export const SEARCH_TYPES = {\n MEMBER: \"agent\",\n TEAM: \"group\",\n MEMBER_OR_TEAM: \"agent_or_group\",\n};\n\nexport const TEAM_UNGROUPED = { value: \"ungrouped\", label: \"--\" };\n","import { findBy, isNotEmpty, removeBy } from \"neetocist\";\nimport { includes, toLower, append, pluck, map, any } from \"ramda\";\n\nimport { TEAM_UNGROUPED, SEARCH_TYPES } from \"./constants\";\n\nconst createMembersDropdownOptions = ({\n selectedTeam,\n searchTerm,\n availableTeams,\n onlyMembers = false,\n}) => {\n const tempOptions = [];\n const hasSelectedTeam =\n selectedTeam?.value && selectedTeam.value !== TEAM_UNGROUPED.value;\n\n const filteredTeams = availableTeams.filter(team =>\n isNotEmpty(team.filteredMembers)\n );\n\n const addMembersInTeam = ({ filteredMembers }) =>\n filteredMembers.forEach(member => {\n tempOptions.push({ ...member, type: SEARCH_TYPES.MEMBER });\n });\n\n const containsSearchTerm = includes(toLower(searchTerm));\n\n if (hasSelectedTeam) {\n const selectedTeamData = findBy(\n { value: selectedTeam.value },\n availableTeams\n );\n if (selectedTeamData) addMembersInTeam(selectedTeamData);\n }\n\n if (!hasSelectedTeam) {\n filteredTeams.forEach(team => {\n tempOptions.push({ ...team, type: SEARCH_TYPES.TEAM });\n addMembersInTeam(team);\n });\n }\n\n if (onlyMembers) {\n return removeBy({ type: \"group\" }, tempOptions);\n }\n\n return searchTerm\n ? tempOptions.filter(({ label, filteredMembers = [] }) => {\n const teamAndMembersLabels = map(\n toLower,\n append(label, pluck(\"label\", filteredMembers))\n );\n\n return any(containsSearchTerm, teamAndMembersLabels);\n })\n : tempOptions;\n};\n\nexport { createMembersDropdownOptions };\n","import { Fragment, useMemo, useRef, useState } from \"react\";\n\nimport { useOnClickOutside } from \"neetocommons/react-utils\";\nimport { Typography, Dropdown, Spinner } from \"neetoui\";\nimport { isEmpty, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/dropdown.scss\";\n\nimport AssignDropdownTarget from \"./AssignDropdownTarget\";\nimport { SEARCH_TYPES } from \"./constants\";\nimport { createMembersDropdownOptions } from \"./utils\";\n\nimport AssignList from \"../Common/AssignList\";\n\nconst MembersDropdown = ({ config }) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const dropdownRef = useRef(null);\n\n const { t } = useTranslation();\n\n useOnClickOutside(dropdownRef, () => setIsDropdownOpen(false));\n\n const options = useMemo(\n () =>\n createMembersDropdownOptions({\n searchTerm,\n selectedTeam: config?.selectedTeam,\n availableTeams: config?.availableTeams || [],\n }),\n [config?.selectedTeam, searchTerm, config?.availableTeams]\n );\n\n const handleClick = value => {\n setIsDropdownOpen(false);\n config?.handleUpdate({\n id: config?.selectedMember.value === value ? null : value,\n });\n };\n\n return (\n <div ref={dropdownRef}>\n <Dropdown\n className=\"w-full\"\n closeOnSelect={config?.closeOnSelect ?? true}\n isOpen={isDropdownOpen}\n position=\"bottom-end\"\n ref={dropdownRef}\n targetClassName=\"w-full\"\n customTarget={() => (\n <AssignDropdownTarget selectedMember={config?.selectedMember} />\n )}\n onClick={() => setIsDropdownOpen(not)}\n onClose={() => setSearchTerm(\"\")}\n >\n <AssignList>\n <AssignList.Search\n {...{ searchTerm }}\n handleClearSearchTerm={() => setSearchTerm(\"\")}\n placeholder={config?.searchPlaceholder}\n onChange={({ target: { value } }) => setSearchTerm(value)}\n />\n {config?.isLoading ? (\n <div className=\"flex w-full items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div\n className=\"ntm-assign-droplist__list-wrapper flex flex-col px-3\"\n key={searchTerm}\n >\n {options.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === SEARCH_TYPES.TEAM && (\n <AssignList.TeamsListItem\n active={config?.selectedTeam.id === value}\n teamName={label}\n onClick={() =>\n config?.handleUpdate({\n id:\n config?.selectedTeam.value === value ? null : value,\n isTeam: true,\n })\n }\n />\n )}\n {type === SEARCH_TYPES.MEMBER && (\n <AssignList.MembersListItem\n active={config?.selectedMember.value === value}\n memberName={label}\n onClick={() => handleClick(value)}\n />\n )}\n </Fragment>\n ))}\n {isEmpty(options) && (\n <div className=\"flex w-full items-center justify-center p-2\">\n <Typography\n data-cy=\"ticket-details-member-no-records-message\"\n style=\"body2\"\n >\n {t(\"neetoTeamMembers.helpers.noRecords\")}\n </Typography>\n </div>\n )}\n </div>\n )}\n </AssignList>\n </Dropdown>\n </div>\n );\n};\n\nexport default MembersDropdown;\n"],"names":["AssignDropdownTarget","_ref","_ref$selectedMember","selectedMember","_selectedMember$label","label","_selectedMember$profi","profileImagePath","_jsxs","className","children","_jsx","Avatar","user","name","imageUrl","Tooltip","content","position","Typography","style","weight","Down","size","memo","SEARCH_TYPES","MEMBER","TEAM","MEMBER_OR_TEAM","TEAM_UNGROUPED","value","createMembersDropdownOptions","selectedTeam","searchTerm","availableTeams","_ref$onlyMembers","onlyMembers","tempOptions","hasSelectedTeam","filteredTeams","filter","team","isNotEmpty","filteredMembers","addMembersInTeam","_ref2","forEach","member","push","_objectSpread","type","containsSearchTerm","includes","toLower","selectedTeamData","findBy","removeBy","_ref3","_ref3$filteredMembers","teamAndMembersLabels","map","append","pluck","any","MembersDropdown","_config$closeOnSelect","config","_useState","useState","_useState2","_slicedToArray","isDropdownOpen","setIsDropdownOpen","_useState3","_useState4","setSearchTerm","dropdownRef","useRef","_useTranslation","useTranslation","t","useOnClickOutside","options","useMemo","handleClick","handleUpdate","id","ref","Dropdown","closeOnSelect","isOpen","targetClassName","customTarget","onClick","not","onClose","AssignList","Search","handleClearSearchTerm","placeholder","searchPlaceholder","onChange","target","isLoading","Spinner","index","Fragment","TeamsListItem","active","teamName","isTeam","MembersListItem","memberName","isEmpty"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MembersDropdown.js","sources":["../app/javascript/src/components/MembersDropdown/AssignDropdownTarget.jsx","../app/javascript/src/components/MembersDropdown/constants.js","../app/javascript/src/components/MembersDropdown/utils.js","../app/javascript/src/components/MembersDropdown/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Down } from \"neetoicons\";\nimport { Avatar, Tooltip, Typography } from \"neetoui\";\n\nconst AssignDropdownTarget = ({ selectedMember = {} }) => {\n const { label = \"--\", profileImagePath = \"\" } = selectedMember;\n\n return (\n <div className=\"flex h-10 w-60 cursor-pointer select-none items-center gap-2\">\n {label !== \"--\" && (\n <Avatar\n className=\"flex-shrink-0\"\n user={{ name: label, imageUrl: profileImagePath }}\n />\n )}\n <Tooltip content={label} position=\"top\">\n <Typography className=\"truncate xl:block\" style=\"h5\" weight=\"normal\">\n {label}\n </Typography>\n </Tooltip>\n <Down className=\"flex-shrink-0\" size={16} />\n </div>\n );\n};\n\nexport default memo(AssignDropdownTarget);\n","export const SEARCH_TYPES = {\n MEMBER: \"agent\",\n TEAM: \"group\",\n MEMBER_OR_TEAM: \"agent_or_group\",\n};\n\nexport const TEAM_UNGROUPED = { value: \"ungrouped\", label: \"--\" };\n","import { findBy, isNotEmpty, removeBy } from \"neetocist\";\nimport { includes, toLower, append, pluck, map, any } from \"ramda\";\n\nimport { TEAM_UNGROUPED, SEARCH_TYPES } from \"./constants\";\n\nconst createMembersDropdownOptions = ({\n selectedTeam,\n searchTerm,\n availableTeams,\n onlyMembers = false,\n}) => {\n const tempOptions = [];\n const hasSelectedTeam =\n selectedTeam?.value && selectedTeam.value !== TEAM_UNGROUPED.value;\n\n const filteredTeams = availableTeams.filter(team =>\n isNotEmpty(team.filteredMembers)\n );\n\n const addMembersInTeam = ({ filteredMembers }) =>\n filteredMembers.forEach(member => {\n tempOptions.push({ ...member, type: SEARCH_TYPES.MEMBER });\n });\n\n const containsSearchTerm = includes(toLower(searchTerm));\n\n if (hasSelectedTeam) {\n const selectedTeamData = findBy(\n { value: selectedTeam.value },\n availableTeams\n );\n if (selectedTeamData) addMembersInTeam(selectedTeamData);\n }\n\n if (!hasSelectedTeam) {\n filteredTeams.forEach(team => {\n tempOptions.push({ ...team, type: SEARCH_TYPES.TEAM });\n addMembersInTeam(team);\n });\n }\n\n if (onlyMembers) {\n return removeBy({ type: \"group\" }, tempOptions);\n }\n\n return searchTerm\n ? tempOptions.filter(({ label, filteredMembers = [] }) => {\n const teamAndMembersLabels = map(\n toLower,\n append(label, pluck(\"label\", filteredMembers))\n );\n\n return any(containsSearchTerm, teamAndMembersLabels);\n })\n : tempOptions;\n};\n\nexport { createMembersDropdownOptions };\n","import { Fragment, useMemo, useRef, useState } from \"react\";\n\nimport { useOnClickOutside } from \"neetocommons/react-utils\";\nimport { Typography, Dropdown, Spinner } from \"neetoui\";\nimport { isEmpty, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/dropdown.scss\";\n\nimport AssignDropdownTarget from \"./AssignDropdownTarget\";\nimport { SEARCH_TYPES } from \"./constants\";\nimport { createMembersDropdownOptions } from \"./utils\";\n\nimport AssignList from \"../Common/AssignList\";\n\nconst MembersDropdown = ({ config }) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const dropdownRef = useRef(null);\n\n const { t } = useTranslation();\n\n useOnClickOutside(dropdownRef, () => setIsDropdownOpen(false));\n\n const options = useMemo(\n () =>\n createMembersDropdownOptions({\n searchTerm,\n selectedTeam: config?.selectedTeam,\n availableTeams: config?.availableTeams || [],\n }),\n [config?.selectedTeam, searchTerm, config?.availableTeams]\n );\n\n const handleClick = value => {\n setIsDropdownOpen(false);\n config?.handleUpdate({\n id: config?.selectedMember.value === value ? null : value,\n });\n };\n\n return (\n <div ref={dropdownRef}>\n <Dropdown\n className=\"w-full\"\n closeOnSelect={config?.closeOnSelect ?? true}\n isOpen={isDropdownOpen}\n position=\"bottom-end\"\n ref={dropdownRef}\n targetClassName=\"w-full\"\n customTarget={() => (\n <AssignDropdownTarget selectedMember={config?.selectedMember} />\n )}\n onClick={() => setIsDropdownOpen(not)}\n onClose={() => setSearchTerm(\"\")}\n >\n <AssignList>\n <AssignList.Search\n {...{ searchTerm }}\n handleClearSearchTerm={() => setSearchTerm(\"\")}\n placeholder={config?.searchPlaceholder}\n onChange={({ target: { value } }) => setSearchTerm(value)}\n />\n {config?.isLoading ? (\n <div className=\"flex w-full items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div\n className=\"ntm-assign-droplist__list-wrapper flex flex-col px-3\"\n key={searchTerm}\n >\n {options.map(\n ({ label, value, type, profileImagePath }, index) => (\n <Fragment key={index}>\n {type === SEARCH_TYPES.TEAM && (\n <AssignList.TeamsListItem\n active={config?.selectedTeam.id === value}\n teamName={label}\n onClick={() =>\n config?.handleUpdate({\n id:\n config?.selectedTeam.value === value\n ? null\n : value,\n isTeam: true,\n })\n }\n />\n )}\n {type === SEARCH_TYPES.MEMBER && (\n <AssignList.MembersListItem\n active={config?.selectedMember.value === value}\n imageUrl={profileImagePath}\n memberName={label}\n onClick={() => handleClick(value)}\n />\n )}\n </Fragment>\n )\n )}\n {isEmpty(options) && (\n <div className=\"flex w-full items-center justify-center p-2\">\n <Typography\n data-cy=\"ticket-details-member-no-records-message\"\n style=\"body2\"\n >\n {t(\"neetoTeamMembers.helpers.noRecords\")}\n </Typography>\n </div>\n )}\n </div>\n )}\n </AssignList>\n </Dropdown>\n </div>\n );\n};\n\nexport default MembersDropdown;\n"],"names":["AssignDropdownTarget","_ref","_ref$selectedMember","selectedMember","_selectedMember$label","label","_selectedMember$profi","profileImagePath","_jsxs","className","children","_jsx","Avatar","user","name","imageUrl","Tooltip","content","position","Typography","style","weight","Down","size","memo","SEARCH_TYPES","MEMBER","TEAM","MEMBER_OR_TEAM","TEAM_UNGROUPED","value","createMembersDropdownOptions","selectedTeam","searchTerm","availableTeams","_ref$onlyMembers","onlyMembers","tempOptions","hasSelectedTeam","filteredTeams","filter","team","isNotEmpty","filteredMembers","addMembersInTeam","_ref2","forEach","member","push","_objectSpread","type","containsSearchTerm","includes","toLower","selectedTeamData","findBy","removeBy","_ref3","_ref3$filteredMembers","teamAndMembersLabels","map","append","pluck","any","MembersDropdown","_config$closeOnSelect","config","_useState","useState","_useState2","_slicedToArray","isDropdownOpen","setIsDropdownOpen","_useState3","_useState4","setSearchTerm","dropdownRef","useRef","_useTranslation","useTranslation","t","useOnClickOutside","options","useMemo","handleClick","handleUpdate","id","ref","Dropdown","closeOnSelect","isOpen","targetClassName","customTarget","onClick","not","onClose","AssignList","Search","handleClearSearchTerm","placeholder","searchPlaceholder","onChange","target","isLoading","Spinner","index","Fragment","TeamsListItem","active","teamName","isTeam","MembersListItem","memberName","isEmpty"],"mappings":"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"}
|
package/dist/Roles.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { _ as _slicedToArray } from './slicedToArray-6674c4b8.js';
|
|
2
|
-
import require$$0, { useRef, memo, useCallback, useEffect, useState, Fragment as Fragment$1, useMemo } from 'react';
|
|
2
|
+
import require$$0, { useRef, memo, useCallback, useEffect, useState, createElement, Fragment as Fragment$1, useMemo } from 'react';
|
|
3
3
|
import i18next, { t } from 'i18next';
|
|
4
|
-
import { isNotEmpty, isPresent, _findBy,
|
|
4
|
+
import { isNotEmpty, isPresent, _findBy, noop } from '@bigbinary/neeto-cist';
|
|
5
5
|
import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
|
|
6
6
|
import { withTitle, useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
7
7
|
import Container from '@bigbinary/neeto-molecules/Container';
|
|
8
8
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
9
|
-
import { not, map, prop, identical,
|
|
9
|
+
import { not, map, prop, identical, includes, __, groupBy, pluck, isEmpty, filter } from 'ramda';
|
|
10
10
|
import { c as commonjsGlobal } from './_commonjsHelpers-1789f0cf.js';
|
|
11
11
|
import { w as withReactQuery } from './withReactQuery-e3d0bd1f.js';
|
|
12
12
|
import { _ as _defineProperty, a as _typeof } from './defineProperty-b85f2e0f.js';
|
|
@@ -30,7 +30,6 @@ import Textarea from '@bigbinary/neetoui/formik/Textarea';
|
|
|
30
30
|
import { object, string } from 'yup';
|
|
31
31
|
import { P as Permissions, g as getChildrenRemovedFromRoot, s as sortPermissionsBySequence, a as getPermissionGroups, b as getModifiedPermissions } from './Permissions-1b52172b.js';
|
|
32
32
|
import NoData from '@bigbinary/neetoui/NoData';
|
|
33
|
-
import { _ as _toConsumableArray } from './toConsumableArray-0e395868.js';
|
|
34
33
|
import classnames from 'classnames';
|
|
35
34
|
import Checkbox from '@bigbinary/neetoui/Checkbox';
|
|
36
35
|
import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
|
|
@@ -42,6 +41,7 @@ import Up from '@bigbinary/neeto-icons/Up';
|
|
|
42
41
|
import './unsupportedIterableToArray-7c7192e5.js';
|
|
43
42
|
import './queryClient-71ecdd08.js';
|
|
44
43
|
import './objectWithoutProperties-a0edb288.js';
|
|
44
|
+
import './toConsumableArray-0e395868.js';
|
|
45
45
|
import 'formik';
|
|
46
46
|
|
|
47
47
|
var dist = {exports: {}};
|
|
@@ -1720,10 +1720,9 @@ var deepClone = function deepClone(object) {
|
|
|
1720
1720
|
return result;
|
|
1721
1721
|
};
|
|
1722
1722
|
var renderRolesTooltipContent = function renderRolesTooltipContent(roleName) {
|
|
1723
|
-
return Object.is(roleName, "Admin")
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
return _toConsumableArray(new Set(array));
|
|
1723
|
+
return Object.is(roleName, "Admin") || Object.is(roleName, "Owner") ? t("neetoTeamMembers.tooltips.adminMustHaveAccess", {
|
|
1724
|
+
roleName: roleName
|
|
1725
|
+
}) : t("neetoTeamMembers.tooltips.noPermissionToEditRoles");
|
|
1727
1726
|
};
|
|
1728
1727
|
var updatePermissionVisibility = function updatePermissionVisibility(categoryName, permissions) {
|
|
1729
1728
|
var category = permissions.get(categoryName);
|
|
@@ -1805,18 +1804,16 @@ var Row = function Row(_ref) {
|
|
|
1805
1804
|
_ref$permission = _ref.permission,
|
|
1806
1805
|
permission = _ref$permission === void 0 ? null : _ref$permission,
|
|
1807
1806
|
roles = _ref.roles,
|
|
1808
|
-
|
|
1807
|
+
_ref$setManageRole = _ref.setManageRole,
|
|
1808
|
+
setManageRole = _ref$setManageRole === void 0 ? noop : _ref$setManageRole;
|
|
1809
1809
|
var isUpdatePermissionGranted = config.permissions.update;
|
|
1810
1810
|
var permissions = (allPermissionsOfCategory === null || allPermissionsOfCategory === void 0 ? void 0 : allPermissionsOfCategory.get("permissions")) || [];
|
|
1811
1811
|
var allPermissionIdsOfCategory = map(prop("id"), permissions);
|
|
1812
|
-
var handleSubmit = function handleSubmit(role
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
});
|
|
1818
|
-
}, role);
|
|
1819
|
-
setModifiedRoles(replaceById(role.id, modifiedRole));
|
|
1812
|
+
var handleSubmit = function handleSubmit(role) {
|
|
1813
|
+
setManageRole({
|
|
1814
|
+
isEdit: true,
|
|
1815
|
+
selectedRole: role
|
|
1816
|
+
});
|
|
1820
1817
|
};
|
|
1821
1818
|
var isCheckboxChecked = function isCheckboxChecked(role) {
|
|
1822
1819
|
return !allPermissionsOfCategory ? includes(permission === null || permission === void 0 ? void 0 : permission.id, role.permissionIds) : allPermissionIdsOfCategory.every(includes(__, role.permissionIds));
|
|
@@ -1834,17 +1831,16 @@ var Row = function Row(_ref) {
|
|
|
1834
1831
|
children: /*#__PURE__*/jsx(Tooltip, {
|
|
1835
1832
|
content: renderRolesTooltipContent(role.name),
|
|
1836
1833
|
position: "top",
|
|
1837
|
-
disabled: isUpdatePermissionGranted && !identical(role.name, "Admin"),
|
|
1834
|
+
disabled: isUpdatePermissionGranted && !identical(role.name, "Admin") && !identical(role.name, "Owner"),
|
|
1838
1835
|
children: /*#__PURE__*/jsx("div", {
|
|
1839
1836
|
className: "ntm-roles-table-cell__checkbox-wrapper",
|
|
1840
1837
|
children: /*#__PURE__*/jsx(Checkbox, {
|
|
1841
|
-
disabled: true,
|
|
1842
1838
|
checked: isCheckboxChecked(role),
|
|
1843
1839
|
className: "ntm-roles-table-cell__checkbox",
|
|
1844
1840
|
"data-cy": "ntm-roles-table-permission-checkbox",
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
return handleSubmit(role
|
|
1841
|
+
disabled: identical(role.name, "Admin") || identical(role.name, "Owner"),
|
|
1842
|
+
onChange: function onChange() {
|
|
1843
|
+
return handleSubmit(role);
|
|
1848
1844
|
}
|
|
1849
1845
|
})
|
|
1850
1846
|
})
|
|
@@ -1991,7 +1987,6 @@ var Columns = function Columns(_ref) {
|
|
|
1991
1987
|
filteredRoles = _ref.filteredRoles,
|
|
1992
1988
|
permissions = _ref.permissions,
|
|
1993
1989
|
roles = _ref.roles,
|
|
1994
|
-
setModifiedRoles = _ref.setModifiedRoles,
|
|
1995
1990
|
setIsScrollPresent = _ref.setIsScrollPresent;
|
|
1996
1991
|
var _useState = useState(DEFAULT_MANAGE_ROLE_VALUES),
|
|
1997
1992
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -2005,9 +2000,9 @@ var Columns = function Columns(_ref) {
|
|
|
2005
2000
|
className: "ntm-roles-table__columns",
|
|
2006
2001
|
children: [/*#__PURE__*/jsx(TableHeader$1, {
|
|
2007
2002
|
config: config,
|
|
2008
|
-
roles: filteredRoles,
|
|
2009
2003
|
setIsScrollPresent: setIsScrollPresent,
|
|
2010
|
-
setManageRole: setManageRole
|
|
2004
|
+
setManageRole: setManageRole,
|
|
2005
|
+
roles: filteredRoles
|
|
2011
2006
|
}), /*#__PURE__*/jsx(distExports.ScrollSyncPane, {
|
|
2012
2007
|
group: ["horizontal", "vertical"],
|
|
2013
2008
|
children: /*#__PURE__*/jsx("div", {
|
|
@@ -2018,32 +2013,33 @@ var Columns = function Columns(_ref) {
|
|
|
2018
2013
|
var permissions = groupedPermissions.get("permissions");
|
|
2019
2014
|
return /*#__PURE__*/jsxs("div", {
|
|
2020
2015
|
children: [/*#__PURE__*/jsx(Row, {
|
|
2021
|
-
allPermissionsOfCategory: groupedPermissions,
|
|
2022
2016
|
config: config,
|
|
2023
|
-
|
|
2024
|
-
|
|
2017
|
+
setManageRole: setManageRole,
|
|
2018
|
+
allPermissionsOfCategory: groupedPermissions,
|
|
2019
|
+
roles: filteredRoles
|
|
2025
2020
|
}), isPermissionVisible && permissions.map(function (permission) {
|
|
2026
|
-
return /*#__PURE__*/
|
|
2021
|
+
return /*#__PURE__*/createElement(Row, {
|
|
2027
2022
|
config: config,
|
|
2028
2023
|
permission: permission,
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2024
|
+
setManageRole: setManageRole,
|
|
2025
|
+
key: permission.id,
|
|
2026
|
+
roles: filteredRoles
|
|
2027
|
+
});
|
|
2032
2028
|
})]
|
|
2033
2029
|
}, index);
|
|
2034
2030
|
})
|
|
2035
2031
|
})
|
|
2036
2032
|
}), /*#__PURE__*/jsx(ManageRoles, {
|
|
2037
2033
|
config: config,
|
|
2038
|
-
|
|
2034
|
+
onClose: onClose,
|
|
2039
2035
|
permissions: permissions,
|
|
2040
|
-
|
|
2041
|
-
|
|
2036
|
+
isOpen: manageRole.isEdit,
|
|
2037
|
+
selectedRole: manageRole.selectedRole
|
|
2042
2038
|
}), /*#__PURE__*/jsx(Delete, {
|
|
2043
|
-
|
|
2039
|
+
onClose: onClose,
|
|
2044
2040
|
roles: roles,
|
|
2045
|
-
|
|
2046
|
-
|
|
2041
|
+
isOpen: manageRole.isDelete,
|
|
2042
|
+
selectedRole: manageRole.selectedRole
|
|
2047
2043
|
})]
|
|
2048
2044
|
});
|
|
2049
2045
|
};
|