133 lines
6.0 KiB
JavaScript
133 lines
6.0 KiB
JavaScript
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
import * as React from "../../../keycloak.v2/web_modules/react.js";
|
|
import { Checkbox, DataList, DataListItem, DataListItemRow, DataListCell, DataListItemCells } from "../../../keycloak.v2/web_modules/@patternfly/react-core.js";
|
|
import { ContentPage } from "../ContentPage.js";
|
|
import { AccountServiceContext } from "../../account-service/AccountServiceContext.js";
|
|
import { Msg } from "../../widgets/Msg.js";
|
|
export class GroupsPage extends React.Component {
|
|
constructor(props, context) {
|
|
super(props);
|
|
_defineProperty(this, "context", void 0);
|
|
_defineProperty(this, "changeDirectMembership", (checked, event) => {
|
|
this.setState({
|
|
isDirectMembership: checked
|
|
});
|
|
});
|
|
this.context = context;
|
|
this.state = {
|
|
groups: [],
|
|
directGroups: [],
|
|
isDirectMembership: false
|
|
};
|
|
this.fetchGroups();
|
|
}
|
|
fetchGroups() {
|
|
this.context.doGet("/groups").then(response => {
|
|
const directGroups = response.data || [];
|
|
const groups = [...directGroups];
|
|
const groupsPaths = directGroups.map(s => s.path);
|
|
directGroups.forEach(el => this.getParents(el, groups, groupsPaths));
|
|
this.setState({
|
|
groups: groups,
|
|
directGroups: directGroups
|
|
});
|
|
});
|
|
}
|
|
getParents(el, groups, groupsPaths) {
|
|
const parentPath = el.path.slice(0, el.path.lastIndexOf('/'));
|
|
if (parentPath && groupsPaths.indexOf(parentPath) === -1) {
|
|
el = {
|
|
name: parentPath.slice(parentPath.lastIndexOf('/') + 1),
|
|
path: parentPath
|
|
};
|
|
groups.push(el);
|
|
groupsPaths.push(parentPath);
|
|
this.getParents(el, groups, groupsPaths);
|
|
}
|
|
}
|
|
emptyGroup() {
|
|
return /*#__PURE__*/React.createElement(DataListItem, {
|
|
key: "emptyItem",
|
|
"aria-labelledby": "empty-item"
|
|
}, /*#__PURE__*/React.createElement(DataListItemRow, {
|
|
key: "emptyRow"
|
|
}, /*#__PURE__*/React.createElement(DataListItemCells, {
|
|
dataListCells: [/*#__PURE__*/React.createElement(DataListCell, {
|
|
key: "empty"
|
|
}, /*#__PURE__*/React.createElement("strong", null, /*#__PURE__*/React.createElement(Msg, {
|
|
msgKey: "noGroupsText"
|
|
})))]
|
|
})));
|
|
}
|
|
renderGroupList(group, appIndex) {
|
|
return /*#__PURE__*/React.createElement(DataListItem, {
|
|
id: `${appIndex}-group`,
|
|
key: 'group-' + appIndex,
|
|
"aria-labelledby": "groups-list"
|
|
}, /*#__PURE__*/React.createElement(DataListItemRow, null, /*#__PURE__*/React.createElement(DataListItemCells, {
|
|
dataListCells: [/*#__PURE__*/React.createElement(DataListCell, {
|
|
id: `${appIndex}-group-name`,
|
|
width: 2,
|
|
key: 'name-' + appIndex
|
|
}, group.name), /*#__PURE__*/React.createElement(DataListCell, {
|
|
id: `${appIndex}-group-path`,
|
|
width: 2,
|
|
key: 'path-' + appIndex
|
|
}, group.path), /*#__PURE__*/React.createElement(DataListCell, {
|
|
id: `${appIndex}-group-directMembership`,
|
|
width: 2,
|
|
key: 'directMembership-' + appIndex
|
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
id: `${appIndex}-checkbox-directMembership`,
|
|
isChecked: group.id != null,
|
|
isDisabled: true
|
|
}))]
|
|
})));
|
|
}
|
|
render() {
|
|
return /*#__PURE__*/React.createElement(ContentPage, {
|
|
title: Msg.localize('groupLabel')
|
|
}, /*#__PURE__*/React.createElement(DataList, {
|
|
id: "groups-list",
|
|
"aria-label": Msg.localize('groupLabel'),
|
|
isCompact: true
|
|
}, /*#__PURE__*/React.createElement(DataListItem, {
|
|
id: "groups-list-header",
|
|
"aria-labelledby": "Columns names"
|
|
}, /*#__PURE__*/React.createElement(DataListItemRow, null, /*#__PURE__*/React.createElement(DataListItemCells, {
|
|
dataListCells: [/*#__PURE__*/React.createElement(DataListCell, {
|
|
key: "directMembership-header"
|
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
label: Msg.localize('directMembership'),
|
|
id: "directMembership-checkbox",
|
|
isChecked: this.state.isDirectMembership,
|
|
onChange: this.changeDirectMembership
|
|
}))]
|
|
}))), /*#__PURE__*/React.createElement(DataListItem, {
|
|
id: "groups-list-header",
|
|
"aria-labelledby": "Columns names"
|
|
}, /*#__PURE__*/React.createElement(DataListItemRow, null, /*#__PURE__*/React.createElement(DataListItemCells, {
|
|
dataListCells: [/*#__PURE__*/React.createElement(DataListCell, {
|
|
key: "group-name-header",
|
|
width: 2
|
|
}, /*#__PURE__*/React.createElement("strong", null, /*#__PURE__*/React.createElement(Msg, {
|
|
msgKey: "Name"
|
|
}))), /*#__PURE__*/React.createElement(DataListCell, {
|
|
key: "group-path-header",
|
|
width: 2
|
|
}, /*#__PURE__*/React.createElement("strong", null, /*#__PURE__*/React.createElement(Msg, {
|
|
msgKey: "path"
|
|
}))), /*#__PURE__*/React.createElement(DataListCell, {
|
|
key: "group-direct-membership-header",
|
|
width: 2
|
|
}, /*#__PURE__*/React.createElement("strong", null, /*#__PURE__*/React.createElement(Msg, {
|
|
msgKey: "directMembership"
|
|
})))]
|
|
}))), this.state.groups.length === 0 ? this.emptyGroup() : this.state.isDirectMembership ? this.state.directGroups.map((group, appIndex) => this.renderGroupList(group, appIndex)) : this.state.groups.map((group, appIndex) => this.renderGroupList(group, appIndex))));
|
|
}
|
|
}
|
|
_defineProperty(GroupsPage, "contextType", AccountServiceContext);
|
|
;
|
|
//# sourceMappingURL=GroupsPage.js.map
|