USERS: '/users',
API_CLIENT_AUTHORIZATIONS: `/api_client_authorizations`,
GROUPS: '/groups',
+ GROUP_DETAILS: `/group/:id(${RESOURCE_UUID_PATTERN})`,
};
export const getResourceUrl = (uuid: string) => {
export const getProcessLogUrl = (uuid: string) => `/process-logs/${uuid}`;
+export const getGroupUrl = (uuid: string) => `/group/${uuid}`;
+
export interface ResourceRouteParams {
id: string;
}
export const matchGroupsRoute = (route: string) =>
matchPath(route, { path: Routes.GROUPS });
+
+export const matchGroupDetailsRoute = (route: string) =>
+ matchPath<ResourceRouteParams>(route, { path: Routes.GROUP_DETAILS });
import { getCollectionUrl } from "~/models/collection";
import { getProjectUrl } from "~/models/project";
import { SidePanelTreeCategory } from '../side-panel-tree/side-panel-tree-actions';
-import { Routes, getProcessUrl, getProcessLogUrl } from '~/routes/routes';
+import { Routes, getProcessUrl, getProcessLogUrl, getGroupUrl } from '~/routes/routes';
import { RootState } from '~/store/store';
import { ServiceRepository } from '~/services/services';
export const navigateToApiClientAuthorizations = push(Routes.API_CLIENT_AUTHORIZATIONS);
export const navigateToGroups = push(Routes.GROUPS);
+
+export const navigateToGroupDetails = compose(push, getGroupUrl);
import { openContextMenu } from '~/store/context-menu/context-menu-actions';
import { ResourceKind } from '~/models/resource';
import { LinkClass, LinkResource } from '~/models/link';
+import { navigateToGroupDetails } from '~/store/navigation/navigation-action';
export enum GroupsPanelColumnNames {
GROUP = "Name",
};
};
-const mapDispatchToProps = (dispatch: Dispatch) => ({
- onContextMenu: (event: React.MouseEvent<HTMLElement>, item: any) => dispatch<any>(openContextMenu(event, item)),
- onNewGroup: () => dispatch<any>(openCreateGroupDialog()),
-});
+const mapDispatchToProps = {
+ onContextMenu: openContextMenu,
+ onRowDoubleClick: navigateToGroupDetails,
+ onNewGroup: openCreateGroupDialog,
+};
export interface GroupsPanelProps {
onNewGroup: () => void;
onContextMenu: (event: React.MouseEvent<HTMLElement>, item: any) => void;
+ onRowDoubleClick: (item: string) => void;
resources: ResourcesState;
}
<DataExplorer
id={GROUPS_PANEL_ID}
onRowClick={noop}
- onRowDoubleClick={noop}
+ onRowDoubleClick={this.props.onRowDoubleClick}
onContextMenu={this.handleContextMenu}
contextMenuColumn={true}
hideColumnSelector
<Route path={Routes.API_CLIENT_AUTHORIZATIONS} component={ApiClientAuthorizationPanel} />
<Route path={Routes.MY_ACCOUNT} component={MyAccountPanel} />
<Route path={Routes.GROUPS} component={GroupsPanel} />
+ <Route path={Routes.GROUP_DETAILS} render={() => <h1>Group details</h1>} />
</Switch>
</Grid>
</Grid>