@truedat/bg 6.3.0 → 6.3.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/package.json +6 -6
- package/src/concepts/components/ConceptCreate.js +1 -1
- package/src/taxonomy/api.js +1 -15
- package/src/taxonomy/components/AddDomainMember.js +24 -0
- package/src/taxonomy/components/DomainMembers.js +4 -105
- package/src/taxonomy/components/DomainRoutes.js +4 -4
- package/src/taxonomy/components/__tests__/AddDomainMember.spec.js +12 -0
- package/src/taxonomy/components/__tests__/DomainMembers.spec.js +10 -93
- package/src/taxonomy/components/__tests__/__snapshots__/AddDomainMember.spec.js.snap +170 -0
- package/src/taxonomy/components/__tests__/__snapshots__/DomainMembers.spec.js.snap +37 -111
- package/src/taxonomy/reducers/__tests__/domainRedirect.spec.js +1 -20
- package/src/taxonomy/reducers/domainRedirect.js +1 -15
- package/src/taxonomy/reducers/index.js +0 -10
- package/src/taxonomy/routines.js +0 -9
- package/src/taxonomy/sagas/index.js +0 -15
- package/src/taxonomy/components/AddMember.js +0 -23
- package/src/taxonomy/components/AddMemberForm.js +0 -187
- package/src/taxonomy/components/DomainMember.js +0 -230
- package/src/taxonomy/components/DomainMembersActions.js +0 -32
- package/src/taxonomy/components/ModalOnRoleDeletion.js +0 -77
- package/src/taxonomy/components/__tests__/AddMember.spec.js +0 -10
- package/src/taxonomy/components/__tests__/AddMemberForm.spec.js +0 -78
- package/src/taxonomy/components/__tests__/DomainMember.spec.js +0 -61
- package/src/taxonomy/components/__tests__/__snapshots__/AddMember.spec.js.snap +0 -26
- package/src/taxonomy/components/__tests__/__snapshots__/AddMemberForm.spec.js.snap +0 -187
- package/src/taxonomy/components/__tests__/__snapshots__/DomainMember.spec.js.snap +0 -47
- package/src/taxonomy/reducers/__tests__/domainConceptChildren.spec.js +0 -45
- package/src/taxonomy/reducers/__tests__/domainConceptChildrenLoading.spec.js +0 -38
- package/src/taxonomy/reducers/__tests__/domainMembers.spec.js +0 -33
- package/src/taxonomy/reducers/domainConceptChildren.js +0 -24
- package/src/taxonomy/reducers/domainConceptChildrenLoading.js +0 -16
- package/src/taxonomy/reducers/domainMemberDeleting.js +0 -14
- package/src/taxonomy/reducers/domainMemberSaving.js +0 -12
- package/src/taxonomy/reducers/domainMembers.js +0 -22
- package/src/taxonomy/sagas/__tests__/addDomainMember.spec.js +0 -49
- package/src/taxonomy/sagas/__tests__/fetchDomainConceptChildren.spec.js +0 -105
- package/src/taxonomy/sagas/__tests__/fetchDomainMembers.spec.js +0 -73
- package/src/taxonomy/sagas/__tests__/updateDomainMember.spec.js +0 -81
- package/src/taxonomy/sagas/addDomainMember.js +0 -32
- package/src/taxonomy/sagas/deleteDomainMember.js +0 -29
- package/src/taxonomy/sagas/fetchDomainConceptChildren.js +0 -47
- package/src/taxonomy/sagas/fetchDomainMembers.js +0 -28
- package/src/taxonomy/sagas/updateDomainMember.js +0 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@truedat/bg",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.2",
|
|
4
4
|
"description": "Truedat Web Business Glossary",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"jsnext:main": "src/index.js",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@testing-library/jest-dom": "^5.16.5",
|
|
35
35
|
"@testing-library/react": "^12.0.0",
|
|
36
36
|
"@testing-library/user-event": "^13.2.1",
|
|
37
|
-
"@truedat/test": "6.2
|
|
37
|
+
"@truedat/test": "6.3.2",
|
|
38
38
|
"babel-jest": "^28.1.0",
|
|
39
39
|
"babel-plugin-dynamic-import-node": "^2.3.3",
|
|
40
40
|
"babel-plugin-lodash": "^3.3.4",
|
|
@@ -86,9 +86,9 @@
|
|
|
86
86
|
]
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@truedat/core": "6.3.
|
|
90
|
-
"@truedat/df": "6.3.
|
|
91
|
-
"@truedat/lm": "6.3.
|
|
89
|
+
"@truedat/core": "6.3.2",
|
|
90
|
+
"@truedat/df": "6.3.2",
|
|
91
|
+
"@truedat/lm": "6.3.2",
|
|
92
92
|
"decode-uri-component": "^0.2.2",
|
|
93
93
|
"file-saver": "^2.0.5",
|
|
94
94
|
"moment": "^2.29.4",
|
|
@@ -111,5 +111,5 @@
|
|
|
111
111
|
"react-dom": ">= 16.8.6 < 17",
|
|
112
112
|
"semantic-ui-react": ">= 2.0.3 < 2.2"
|
|
113
113
|
},
|
|
114
|
-
"gitHead": "
|
|
114
|
+
"gitHead": "b9ccce69ebb729f62d28972e31b2865d74e9a0d6"
|
|
115
115
|
}
|
package/src/taxonomy/api.js
CHANGED
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
const API_ACL_ENTRY = "/api/acl_entries/:id";
|
|
2
1
|
const API_DOMAIN = "/api/domains/:id";
|
|
3
|
-
const API_DOMAIN_MEMBERS = "/api/acl_entries/domains/:id/";
|
|
4
|
-
const API_DOMAIN_MEMBER = "/api/acl_entries/:id";
|
|
5
2
|
const API_DOMAINS = "/api/domains";
|
|
6
|
-
const API_DOMAIN_CONCEPT_CHILDREN =
|
|
7
|
-
"/api/domains/:domain_id/business_concepts/:user_name/count";
|
|
8
|
-
const API_RESOURCE_ACL_ENTRIES = "/api/acl_entries/domains/:resource_id";
|
|
9
3
|
|
|
10
|
-
export {
|
|
11
|
-
API_ACL_ENTRY,
|
|
12
|
-
API_DOMAIN_CONCEPT_CHILDREN,
|
|
13
|
-
API_DOMAIN_MEMBERS,
|
|
14
|
-
API_DOMAIN_MEMBER,
|
|
15
|
-
API_DOMAIN,
|
|
16
|
-
API_DOMAINS,
|
|
17
|
-
API_RESOURCE_ACL_ENTRIES,
|
|
18
|
-
};
|
|
4
|
+
export { API_DOMAIN, API_DOMAINS };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { useHistory } from "react-router-dom";
|
|
4
|
+
|
|
5
|
+
import { linkTo } from "@truedat/core/routes";
|
|
6
|
+
import AddResourceMember from "@truedat/core/components/AddResourceMember";
|
|
7
|
+
import DomainCrumbs from "./DomainCrumbs";
|
|
8
|
+
|
|
9
|
+
const AddDomainMember = ({ id }) => {
|
|
10
|
+
const history = useHistory();
|
|
11
|
+
const onSuccess = () => history.push(linkTo.DOMAIN_MEMBERS({ id }));
|
|
12
|
+
return (
|
|
13
|
+
<>
|
|
14
|
+
<DomainCrumbs />
|
|
15
|
+
<AddResourceMember type="domain" id={`${id}`} onSuccess={onSuccess} />
|
|
16
|
+
</>
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
AddDomainMember.propTypes = {
|
|
21
|
+
id: PropTypes.number,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default AddDomainMember;
|
|
@@ -1,107 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import PropTypes from "prop-types";
|
|
4
|
-
import { Card, Header, Input, Message, Grid } from "semantic-ui-react";
|
|
5
|
-
import { connect } from "react-redux";
|
|
6
|
-
import { useIntl } from "react-intl";
|
|
7
|
-
import { accentInsensitivePathOrder } from "@truedat/core/services/sort";
|
|
8
|
-
import { Loading } from "@truedat/core/components";
|
|
9
|
-
import DomainMember from "./DomainMember";
|
|
10
|
-
import DomainMembersActions from "./DomainMembersActions";
|
|
1
|
+
import React from "react";
|
|
2
|
+
import ResourceMembers from "@truedat/core/components/ResourceMembers";
|
|
11
3
|
|
|
12
|
-
const
|
|
4
|
+
export const DomainMembers = () => <ResourceMembers type="domain" />;
|
|
13
5
|
|
|
14
|
-
|
|
15
|
-
_.flow(
|
|
16
|
-
_.at([
|
|
17
|
-
"principal.user_name",
|
|
18
|
-
"principal.full_name",
|
|
19
|
-
"role_name",
|
|
20
|
-
"principal.name"
|
|
21
|
-
]),
|
|
22
|
-
_.map(toSearchable),
|
|
23
|
-
_.some(_.includes(toSearchable(filter)))
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
const filterData = (filter, data) => {
|
|
27
|
-
return _.filter(matchesFilter(filter))(data);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const DomainMembers = ({
|
|
31
|
-
domain,
|
|
32
|
-
domainMembers,
|
|
33
|
-
domainMembersLoading
|
|
34
|
-
}) => {
|
|
35
|
-
const { formatMessage } = useIntl();
|
|
36
|
-
const [searchFilter, setSearchFilter] = useState("");
|
|
37
|
-
|
|
38
|
-
const filteredDomainMembers = filterData(searchFilter, domainMembers);
|
|
39
|
-
const groupedDomainMembers = _.flow(
|
|
40
|
-
_.sortBy(accentInsensitivePathOrder("role_name")),
|
|
41
|
-
_.groupBy("role_name"),
|
|
42
|
-
_.toPairs
|
|
43
|
-
)(filteredDomainMembers);
|
|
44
|
-
|
|
45
|
-
const handleFilterUsers = (_e, { value }) => {
|
|
46
|
-
setSearchFilter(value);
|
|
47
|
-
};
|
|
48
|
-
return (
|
|
49
|
-
<>
|
|
50
|
-
{!domainMembersLoading && (
|
|
51
|
-
<Grid centered columns={1}>
|
|
52
|
-
<Grid.Column>
|
|
53
|
-
<Input
|
|
54
|
-
onChange={handleFilterUsers}
|
|
55
|
-
value={searchFilter}
|
|
56
|
-
icon={{ name: "search", link: true }}
|
|
57
|
-
placeholder={formatMessage({ id: "user.search.placeholder" })}
|
|
58
|
-
/>
|
|
59
|
-
<DomainMembersActions />
|
|
60
|
-
</Grid.Column>
|
|
61
|
-
</Grid>
|
|
62
|
-
)}
|
|
63
|
-
{domainMembersLoading && <Loading inline="centered" />}
|
|
64
|
-
{_.isEmpty(filteredDomainMembers) && !domainMembersLoading && (
|
|
65
|
-
<Message
|
|
66
|
-
icon="warning"
|
|
67
|
-
header={formatMessage({ id: "domain.members.empty" })}
|
|
68
|
-
/>
|
|
69
|
-
)}
|
|
70
|
-
{groupedDomainMembers.map(([groupName, members], groupIndex) => {
|
|
71
|
-
return (
|
|
72
|
-
<React.Fragment key={`fragment_${groupIndex}`}>
|
|
73
|
-
<Header as="h3" key={`group_${groupIndex}`} dividing>
|
|
74
|
-
{groupName}
|
|
75
|
-
</Header>
|
|
76
|
-
<Card.Group key={`card_group_${groupIndex}`}>
|
|
77
|
-
{_.sortBy(["principal.name", "principal.user_name"])(members).map(
|
|
78
|
-
(m, i) => (
|
|
79
|
-
<DomainMember
|
|
80
|
-
key={`group_${groupIndex}.${i}`}
|
|
81
|
-
domain_id={domain.id}
|
|
82
|
-
{...m}
|
|
83
|
-
/>
|
|
84
|
-
)
|
|
85
|
-
)}
|
|
86
|
-
</Card.Group>
|
|
87
|
-
</React.Fragment>
|
|
88
|
-
);
|
|
89
|
-
})}
|
|
90
|
-
</>
|
|
91
|
-
);
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
DomainMembers.propTypes = {
|
|
95
|
-
domain: PropTypes.object,
|
|
96
|
-
domainMembers: PropTypes.array,
|
|
97
|
-
domainMembersLoading: PropTypes.bool,
|
|
98
|
-
intl: PropTypes.object
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
const mapStateToProps = ({ domain, domainMembers, domainMembersLoading }) => ({
|
|
102
|
-
domain,
|
|
103
|
-
domainMembers,
|
|
104
|
-
domainMembersLoading
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
export default connect(mapStateToProps)(DomainMembers);
|
|
6
|
+
export default DomainMembers;
|
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
DOMAIN_NEW,
|
|
16
16
|
DOMAIN_STRUCTURES,
|
|
17
17
|
} from "@truedat/core/routes";
|
|
18
|
-
import AddDomainMember from "./AddMember";
|
|
19
18
|
import Domain from "./Domain";
|
|
20
19
|
import DomainLoader from "./DomainLoader";
|
|
21
20
|
import DomainMembersLoader from "./DomainMembersLoader";
|
|
@@ -23,6 +22,7 @@ import Domains from "./Domains";
|
|
|
23
22
|
import DomainsLoader from "./DomainsLoader";
|
|
24
23
|
import EditDomain from "./EditDomain";
|
|
25
24
|
import NewDomain from "./NewDomain";
|
|
25
|
+
import AddDomainMember from "./AddDomainMember";
|
|
26
26
|
|
|
27
27
|
const RolesLoader = React.lazy(() =>
|
|
28
28
|
import("@truedat/auth/roles/components/RolesLoader")
|
|
@@ -41,10 +41,10 @@ const DomainRoutes = () => (
|
|
|
41
41
|
<Route exact path={DOMAIN_NEW} component={NewDomain} />
|
|
42
42
|
<Route
|
|
43
43
|
path={DOMAIN_MEMBERS_NEW}
|
|
44
|
-
render={() => (
|
|
44
|
+
render={({ match }) => (
|
|
45
45
|
<>
|
|
46
|
-
<
|
|
47
|
-
<
|
|
46
|
+
<RolesLoader />
|
|
47
|
+
<AddDomainMember id={parseInt(match?.params?.id)} />
|
|
48
48
|
</>
|
|
49
49
|
)}
|
|
50
50
|
/>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
|
+
import AddDomainMember from "../AddDomainMember";
|
|
4
|
+
|
|
5
|
+
const props = { id: 1 };
|
|
6
|
+
|
|
7
|
+
describe("<AddDomainMember />", () => {
|
|
8
|
+
it("matches the latest snapshot", () => {
|
|
9
|
+
const { container } = render(<AddDomainMember {...props} />);
|
|
10
|
+
expect(container).toMatchSnapshot();
|
|
11
|
+
});
|
|
12
|
+
});
|
|
@@ -1,106 +1,23 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { render } from "@testing-library/react";
|
|
3
3
|
import { intl } from "@truedat/test/intl-stub";
|
|
4
4
|
import { DomainMembers } from "../DomainMembers";
|
|
5
5
|
|
|
6
6
|
// workaround for enzyme issue with React.useContext
|
|
7
7
|
// see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
|
|
8
8
|
jest.spyOn(React, "useContext").mockImplementation(() => intl);
|
|
9
|
+
jest.mock("react-router-dom", () => ({
|
|
10
|
+
...jest.requireActual("react-router-dom"),
|
|
11
|
+
useParams: jest.fn().mockReturnValue({ id: 1 }),
|
|
12
|
+
}));
|
|
9
13
|
|
|
10
14
|
describe("<DomainMembers />", () => {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
principal_type: "group",
|
|
15
|
-
role_id: 2,
|
|
16
|
-
role_name: "data_owner",
|
|
17
|
-
principal: { description: "aaa bbb cc d", id: 2, name: "grupo1 " }
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
principal: {
|
|
21
|
-
email: "test@test.com",
|
|
22
|
-
full_name: "Data Owner 2",
|
|
23
|
-
id: 14,
|
|
24
|
-
user_name: "data_owner2"
|
|
25
|
-
},
|
|
26
|
-
principal_type: "user",
|
|
27
|
-
role_id: 2,
|
|
28
|
-
role_name: "data_owner"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
principal: {
|
|
32
|
-
email: "test@test.com",
|
|
33
|
-
full_name: "Datos A",
|
|
34
|
-
id: 1,
|
|
35
|
-
user_name: "datos_a"
|
|
36
|
-
},
|
|
37
|
-
principal_type: "user",
|
|
38
|
-
role_id: 3,
|
|
39
|
-
role_name: "Datos A"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
principal: {
|
|
43
|
-
email: "test@test.com",
|
|
44
|
-
full_name: "Last U",
|
|
45
|
-
id: 1,
|
|
46
|
-
user_name: "last_u"
|
|
47
|
-
},
|
|
48
|
-
principal_type: "user",
|
|
49
|
-
role_id: 6,
|
|
50
|
-
role_name: "Last R"
|
|
51
|
-
}
|
|
52
|
-
];
|
|
53
|
-
const domain = { id: 1, name: "My Domain Name" };
|
|
54
|
-
const props = { domain, domainMembers, domainMembersLoading };
|
|
15
|
+
const props = {
|
|
16
|
+
type: "domain",
|
|
17
|
+
};
|
|
55
18
|
|
|
56
19
|
it("matches the latest snapshot", () => {
|
|
57
|
-
const
|
|
58
|
-
expect(
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it("filters users and groups according to search filter", () => {
|
|
62
|
-
const wrapper = shallow(<DomainMembers {...props} />);
|
|
63
|
-
|
|
64
|
-
wrapper.find("Input").simulate("change", {}, { value: "data" });
|
|
65
|
-
expect(wrapper.findWhere(n => n.prop("domain_id"))).toHaveLength(2);
|
|
66
|
-
|
|
67
|
-
wrapper.find("Input").simulate("change", {}, { value: "Data Owner 2" });
|
|
68
|
-
expect(wrapper.findWhere(n => n.prop("domain_id"))).toHaveLength(1);
|
|
69
|
-
|
|
70
|
-
wrapper.find("Input").simulate("change", {}, { value: "grupo" });
|
|
71
|
-
expect(wrapper.findWhere(n => n.prop("domain_id"))).toHaveLength(1);
|
|
72
|
-
|
|
73
|
-
wrapper.find("Input").simulate("change", {}, { value: "xx" });
|
|
74
|
-
expect(wrapper.findWhere(n => n.prop("domain_id"))).toHaveLength(0);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
it("renders users and groups grouped by role name", () => {
|
|
78
|
-
const wrapper = shallow(<DomainMembers {...props} />);
|
|
79
|
-
|
|
80
|
-
expect(
|
|
81
|
-
wrapper
|
|
82
|
-
.find("Header")
|
|
83
|
-
.at(0)
|
|
84
|
-
.props().children
|
|
85
|
-
).toEqual("data_owner");
|
|
86
|
-
expect(
|
|
87
|
-
wrapper
|
|
88
|
-
.find("CardGroup")
|
|
89
|
-
.at(0)
|
|
90
|
-
.findWhere(n => n.prop("domain_id"))
|
|
91
|
-
).toHaveLength(2);
|
|
92
|
-
|
|
93
|
-
expect(
|
|
94
|
-
wrapper
|
|
95
|
-
.find("Header")
|
|
96
|
-
.at(2)
|
|
97
|
-
.props().children
|
|
98
|
-
).toEqual("Last R");
|
|
99
|
-
expect(
|
|
100
|
-
wrapper
|
|
101
|
-
.find("CardGroup")
|
|
102
|
-
.at(2)
|
|
103
|
-
.findWhere(n => n.prop("domain_id"))
|
|
104
|
-
).toHaveLength(1);
|
|
20
|
+
const { container } = render(<DomainMembers {...props} />);
|
|
21
|
+
expect(container).toMatchSnapshot();
|
|
105
22
|
});
|
|
106
23
|
});
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`<AddDomainMember /> matches the latest snapshot 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="ui breadcrumb"
|
|
7
|
+
>
|
|
8
|
+
<a
|
|
9
|
+
class="active section"
|
|
10
|
+
href="/domains"
|
|
11
|
+
>
|
|
12
|
+
Taxonomy
|
|
13
|
+
</a>
|
|
14
|
+
</div>
|
|
15
|
+
<div
|
|
16
|
+
class="ui segment ui text container"
|
|
17
|
+
>
|
|
18
|
+
<h2
|
|
19
|
+
class="ui header"
|
|
20
|
+
>
|
|
21
|
+
<i
|
|
22
|
+
aria-hidden="true"
|
|
23
|
+
class="id card outline icon"
|
|
24
|
+
/>
|
|
25
|
+
<div
|
|
26
|
+
class="content"
|
|
27
|
+
>
|
|
28
|
+
Add
|
|
29
|
+
</div>
|
|
30
|
+
</h2>
|
|
31
|
+
<form
|
|
32
|
+
class="ui form"
|
|
33
|
+
>
|
|
34
|
+
<div
|
|
35
|
+
class="required field"
|
|
36
|
+
>
|
|
37
|
+
<label
|
|
38
|
+
for="principal"
|
|
39
|
+
>
|
|
40
|
+
Member
|
|
41
|
+
</label>
|
|
42
|
+
<div
|
|
43
|
+
aria-expanded="false"
|
|
44
|
+
class="ui search selection dropdown"
|
|
45
|
+
required=""
|
|
46
|
+
role="combobox"
|
|
47
|
+
>
|
|
48
|
+
<input
|
|
49
|
+
aria-autocomplete="list"
|
|
50
|
+
autocomplete="off"
|
|
51
|
+
class="search"
|
|
52
|
+
tabindex="0"
|
|
53
|
+
type="text"
|
|
54
|
+
value=""
|
|
55
|
+
/>
|
|
56
|
+
<div
|
|
57
|
+
aria-atomic="true"
|
|
58
|
+
aria-live="polite"
|
|
59
|
+
class="divider default text"
|
|
60
|
+
role="alert"
|
|
61
|
+
>
|
|
62
|
+
Member
|
|
63
|
+
</div>
|
|
64
|
+
<i
|
|
65
|
+
aria-hidden="true"
|
|
66
|
+
class="dropdown icon"
|
|
67
|
+
/>
|
|
68
|
+
<div
|
|
69
|
+
class="menu transition"
|
|
70
|
+
role="listbox"
|
|
71
|
+
>
|
|
72
|
+
<div
|
|
73
|
+
class="message"
|
|
74
|
+
>
|
|
75
|
+
No results found.
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div
|
|
81
|
+
class="required field"
|
|
82
|
+
>
|
|
83
|
+
<label
|
|
84
|
+
for="role"
|
|
85
|
+
>
|
|
86
|
+
Role
|
|
87
|
+
</label>
|
|
88
|
+
<div
|
|
89
|
+
aria-expanded="false"
|
|
90
|
+
class="ui basic search selection dropdown"
|
|
91
|
+
required=""
|
|
92
|
+
role="combobox"
|
|
93
|
+
>
|
|
94
|
+
<input
|
|
95
|
+
aria-autocomplete="list"
|
|
96
|
+
autocomplete="off"
|
|
97
|
+
class="search"
|
|
98
|
+
id="role"
|
|
99
|
+
tabindex="0"
|
|
100
|
+
type="text"
|
|
101
|
+
value=""
|
|
102
|
+
/>
|
|
103
|
+
<div
|
|
104
|
+
aria-atomic="true"
|
|
105
|
+
aria-live="polite"
|
|
106
|
+
class="divider default text"
|
|
107
|
+
role="alert"
|
|
108
|
+
>
|
|
109
|
+
Role
|
|
110
|
+
</div>
|
|
111
|
+
<i
|
|
112
|
+
aria-hidden="true"
|
|
113
|
+
class="dropdown icon"
|
|
114
|
+
/>
|
|
115
|
+
<div
|
|
116
|
+
class="menu transition"
|
|
117
|
+
role="listbox"
|
|
118
|
+
>
|
|
119
|
+
<div
|
|
120
|
+
class="message"
|
|
121
|
+
>
|
|
122
|
+
No results found.
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
<div
|
|
128
|
+
class="field"
|
|
129
|
+
>
|
|
130
|
+
<label
|
|
131
|
+
for="description"
|
|
132
|
+
>
|
|
133
|
+
Description
|
|
134
|
+
</label>
|
|
135
|
+
<div
|
|
136
|
+
class="ui input"
|
|
137
|
+
>
|
|
138
|
+
<input
|
|
139
|
+
autocomplete="off"
|
|
140
|
+
id="description"
|
|
141
|
+
maxlength="120"
|
|
142
|
+
placeholder="Description"
|
|
143
|
+
type="text"
|
|
144
|
+
value=""
|
|
145
|
+
/>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
<div
|
|
149
|
+
class="actions"
|
|
150
|
+
>
|
|
151
|
+
<button
|
|
152
|
+
class="ui primary disabled right floated button"
|
|
153
|
+
disabled=""
|
|
154
|
+
tabindex="-1"
|
|
155
|
+
type="submit"
|
|
156
|
+
>
|
|
157
|
+
Add
|
|
158
|
+
</button>
|
|
159
|
+
<a
|
|
160
|
+
class="ui secondary button"
|
|
161
|
+
href="/"
|
|
162
|
+
role="button"
|
|
163
|
+
>
|
|
164
|
+
Cancel
|
|
165
|
+
</a>
|
|
166
|
+
</div>
|
|
167
|
+
</form>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
`;
|
|
@@ -1,118 +1,44 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<DomainMembers /> matches the latest snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
centered
|
|
7
|
-
columns={1}
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="ui centered one column grid"
|
|
8
7
|
>
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
<div
|
|
9
|
+
class="column"
|
|
10
|
+
>
|
|
11
|
+
<div
|
|
12
|
+
class="ui icon input"
|
|
13
|
+
>
|
|
14
|
+
<input
|
|
15
|
+
placeholder="user.search.placeholder"
|
|
16
|
+
type="text"
|
|
17
|
+
value=""
|
|
18
|
+
/>
|
|
19
|
+
<i
|
|
20
|
+
aria-hidden="true"
|
|
21
|
+
class="search link icon"
|
|
22
|
+
/>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
<div
|
|
27
|
+
class="ui icon message"
|
|
29
28
|
>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
key="card_group_0"
|
|
34
|
-
>
|
|
35
|
-
<Connect(DomainMember)
|
|
36
|
-
domain_id={1}
|
|
37
|
-
key="group_0.0"
|
|
38
|
-
principal={
|
|
39
|
-
{
|
|
40
|
-
"description": "aaa bbb cc d",
|
|
41
|
-
"id": 2,
|
|
42
|
-
"name": "grupo1 ",
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
principal_type="group"
|
|
46
|
-
role_id={2}
|
|
47
|
-
role_name="data_owner"
|
|
48
|
-
/>
|
|
49
|
-
<Connect(DomainMember)
|
|
50
|
-
domain_id={1}
|
|
51
|
-
key="group_0.1"
|
|
52
|
-
principal={
|
|
53
|
-
{
|
|
54
|
-
"email": "test@test.com",
|
|
55
|
-
"full_name": "Data Owner 2",
|
|
56
|
-
"id": 14,
|
|
57
|
-
"user_name": "data_owner2",
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
principal_type="user"
|
|
61
|
-
role_id={2}
|
|
62
|
-
role_name="data_owner"
|
|
63
|
-
/>
|
|
64
|
-
</CardGroup>
|
|
65
|
-
<Header
|
|
66
|
-
as="h3"
|
|
67
|
-
dividing={true}
|
|
68
|
-
key="group_1"
|
|
69
|
-
>
|
|
70
|
-
Datos A
|
|
71
|
-
</Header>
|
|
72
|
-
<CardGroup
|
|
73
|
-
key="card_group_1"
|
|
74
|
-
>
|
|
75
|
-
<Connect(DomainMember)
|
|
76
|
-
domain_id={1}
|
|
77
|
-
key="group_1.0"
|
|
78
|
-
principal={
|
|
79
|
-
{
|
|
80
|
-
"email": "test@test.com",
|
|
81
|
-
"full_name": "Datos A",
|
|
82
|
-
"id": 1,
|
|
83
|
-
"user_name": "datos_a",
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
principal_type="user"
|
|
87
|
-
role_id={3}
|
|
88
|
-
role_name="Datos A"
|
|
89
|
-
/>
|
|
90
|
-
</CardGroup>
|
|
91
|
-
<Header
|
|
92
|
-
as="h3"
|
|
93
|
-
dividing={true}
|
|
94
|
-
key="group_2"
|
|
95
|
-
>
|
|
96
|
-
Last R
|
|
97
|
-
</Header>
|
|
98
|
-
<CardGroup
|
|
99
|
-
key="card_group_2"
|
|
100
|
-
>
|
|
101
|
-
<Connect(DomainMember)
|
|
102
|
-
domain_id={1}
|
|
103
|
-
key="group_2.0"
|
|
104
|
-
principal={
|
|
105
|
-
{
|
|
106
|
-
"email": "test@test.com",
|
|
107
|
-
"full_name": "Last U",
|
|
108
|
-
"id": 1,
|
|
109
|
-
"user_name": "last_u",
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
principal_type="user"
|
|
113
|
-
role_id={6}
|
|
114
|
-
role_name="Last R"
|
|
29
|
+
<i
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
class="warning icon"
|
|
115
32
|
/>
|
|
116
|
-
|
|
117
|
-
|
|
33
|
+
<div
|
|
34
|
+
class="content"
|
|
35
|
+
>
|
|
36
|
+
<div
|
|
37
|
+
class="header"
|
|
38
|
+
>
|
|
39
|
+
domain.members.empty
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
118
44
|
`;
|