mirror of
https://github.com/ansible/awx.git
synced 2026-03-01 16:58:46 -03:30
Move status icon into separate directory
* Remove ButtonGroup export
This commit is contained in:
@@ -4,7 +4,7 @@ import { Button, Split, SplitItem } from '@patternfly/react-core';
|
|||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { yamlToJson, jsonToYaml, isJson } from '@util/yaml';
|
import { yamlToJson, jsonToYaml, isJson } from '@util/yaml';
|
||||||
import CodeMirrorInput from './CodeMirrorInput';
|
import CodeMirrorInput from './CodeMirrorInput';
|
||||||
import { ButtonGroup } from '.';
|
import ButtonGroup from './ButtonGroup';
|
||||||
import { JSON_MODE, YAML_MODE } from './constants';
|
import { JSON_MODE, YAML_MODE } from './constants';
|
||||||
|
|
||||||
function formatJson(jsonString) {
|
function formatJson(jsonString) {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import { oneOf, func } from 'prop-types';
|
import { oneOf, func } from 'prop-types';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { Button } from '@patternfly/react-core';
|
import { Button } from '@patternfly/react-core';
|
||||||
import { ButtonGroup } from '.';
|
import ButtonGroup from './ButtonGroup';
|
||||||
|
|
||||||
const SmallButton = styled(Button)`
|
const SmallButton = styled(Button)`
|
||||||
padding: 3px 8px;
|
padding: 3px 8px;
|
||||||
|
|||||||
@@ -4,4 +4,3 @@ export default CodeMirrorInput;
|
|||||||
export { default as VariablesDetail } from './VariablesDetail';
|
export { default as VariablesDetail } from './VariablesDetail';
|
||||||
export { default as VariablesInput } from './VariablesInput';
|
export { default as VariablesInput } from './VariablesInput';
|
||||||
export { default as VariablesField } from './VariablesField';
|
export { default as VariablesField } from './VariablesField';
|
||||||
export { default as ButtonGroup } from './ButtonGroup';
|
|
||||||
|
|||||||
@@ -184,9 +184,7 @@ class ToolbarDeleteButton extends React.Component {
|
|||||||
</Button>,
|
</Button>,
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<div css="margin-bottom: 16px;">
|
<div>{i18n._(t`This action will delete the following:`)}</div>
|
||||||
{i18n._(t`This action will delete the following:`)}
|
|
||||||
</div>
|
|
||||||
{itemsToDelete.map(item => (
|
{itemsToDelete.map(item => (
|
||||||
<span key={item.id}>
|
<span key={item.id}>
|
||||||
<strong>{item.name || item.username}</strong>
|
<strong>{item.name || item.username}</strong>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import React, { Fragment } from 'react';
|
|||||||
import { arrayOf, object } from 'prop-types';
|
import { arrayOf, object } from 'prop-types';
|
||||||
import { withI18n } from '@lingui/react';
|
import { withI18n } from '@lingui/react';
|
||||||
import { Link as _Link } from 'react-router-dom';
|
import { Link as _Link } from 'react-router-dom';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
import { Tooltip } from '@patternfly/react-core';
|
import { Tooltip } from '@patternfly/react-core';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
export { default as Sparkline } from './Sparkline';
|
export { default } from './Sparkline';
|
||||||
export { default as StatusIcon } from './StatusIcon';
|
|
||||||
|
|||||||
@@ -12,8 +12,12 @@ const Pulse = keyframes`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
const Wrapper = styled.div`
|
const Wrapper = styled.div`
|
||||||
width: 14px;
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
height: 14px;
|
height: 14px;
|
||||||
|
margin: 5px 0;
|
||||||
|
width: 14px;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const WhiteTop = styled.div`
|
const WhiteTop = styled.div`
|
||||||
1
awx/ui_next/src/components/StatusIcon/index.js
Normal file
1
awx/ui_next/src/components/StatusIcon/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export { default } from './StatusIcon';
|
||||||
@@ -4,7 +4,7 @@ import WorkflowActionTooltipItem from './WorkflowActionTooltipItem';
|
|||||||
|
|
||||||
describe('WorkflowActionTooltipItem', () => {
|
describe('WorkflowActionTooltipItem', () => {
|
||||||
test('successfully mounts', () => {
|
test('successfully mounts', () => {
|
||||||
const wrapper = mount(<WorkflowActionTooltipItem />);
|
const wrapper = mount(<WorkflowActionTooltipItem id="node" />);
|
||||||
expect(wrapper).toHaveLength(1);
|
expect(wrapper).toHaveLength(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import AlertModal from '@components/AlertModal';
|
|||||||
import ErrorDetail from '@components/ErrorDetail';
|
import ErrorDetail from '@components/ErrorDetail';
|
||||||
import { DetailList, Detail, UserDateDetail } from '@components/DetailList';
|
import { DetailList, Detail, UserDateDetail } from '@components/DetailList';
|
||||||
import { VariablesDetail } from '@components/CodeMirrorInput';
|
import { VariablesDetail } from '@components/CodeMirrorInput';
|
||||||
import { Sparkline } from '@components/Sparkline';
|
import Sparkline from '@components/Sparkline';
|
||||||
import DeleteButton from '@components/DeleteButton';
|
import DeleteButton from '@components/DeleteButton';
|
||||||
import { HostsAPI } from '@api';
|
import { HostsAPI } from '@api';
|
||||||
|
|
||||||
@@ -107,7 +107,6 @@ function HostDetail({ host, i18n, onUpdateHost }) {
|
|||||||
<DetailList gutter="sm">
|
<DetailList gutter="sm">
|
||||||
<Detail label={i18n._(t`Name`)} value={name} />
|
<Detail label={i18n._(t`Name`)} value={name} />
|
||||||
<Detail
|
<Detail
|
||||||
css="display: flex; flex: 1;"
|
|
||||||
value={<Sparkline jobs={recentPlaybookJobs} />}
|
value={<Sparkline jobs={recentPlaybookJobs} />}
|
||||||
label={i18n._(t`Activity`)}
|
label={i18n._(t`Activity`)}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import {
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import { PencilAltIcon } from '@patternfly/react-icons';
|
import { PencilAltIcon } from '@patternfly/react-icons';
|
||||||
|
|
||||||
import { Sparkline } from '@components/Sparkline';
|
import Sparkline from '@components/Sparkline';
|
||||||
import { Host } from '@types';
|
import { Host } from '@types';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import {
|
|||||||
} from '@patternfly/react-core';
|
} from '@patternfly/react-core';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import { PencilAltIcon } from '@patternfly/react-icons';
|
import { PencilAltIcon } from '@patternfly/react-icons';
|
||||||
import { Sparkline } from '@components/Sparkline';
|
import Sparkline from '@components/Sparkline';
|
||||||
import { Host } from '@types';
|
import { Host } from '@types';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ const InventoryGroupsDeleteModal = ({
|
|||||||
return <ListItem key={group.id}>{group.name}</ListItem>;
|
return <ListItem key={group.id}>{group.name}</ListItem>;
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
<div css="padding-left: 1px;">
|
<div>
|
||||||
<Radio
|
<Radio
|
||||||
id="radio-delete"
|
id="radio-delete"
|
||||||
key="radio-delete"
|
key="radio-delete"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { VariablesInput as _VariablesInput } from '@components/CodeMirrorInput';
|
|||||||
import DeleteButton from '@components/DeleteButton';
|
import DeleteButton from '@components/DeleteButton';
|
||||||
import ErrorDetail from '@components/ErrorDetail';
|
import ErrorDetail from '@components/ErrorDetail';
|
||||||
import LaunchButton from '@components/LaunchButton';
|
import LaunchButton from '@components/LaunchButton';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
import { toTitleCase } from '@util/strings';
|
import { toTitleCase } from '@util/strings';
|
||||||
import { formatDateString } from '@util/dates';
|
import { formatDateString } from '@util/dates';
|
||||||
import { Job } from '@types';
|
import { Job } from '@types';
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import styled from 'styled-components';
|
|
||||||
import { withI18n } from '@lingui/react';
|
import { withI18n } from '@lingui/react';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
import {
|
import {
|
||||||
@@ -15,15 +14,11 @@ import {
|
|||||||
} from '@patternfly/react-core';
|
} from '@patternfly/react-core';
|
||||||
import { RocketIcon } from '@patternfly/react-icons';
|
import { RocketIcon } from '@patternfly/react-icons';
|
||||||
import LaunchButton from '@components/LaunchButton';
|
import LaunchButton from '@components/LaunchButton';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
import { toTitleCase } from '@util/strings';
|
import { toTitleCase } from '@util/strings';
|
||||||
import { formatDateString } from '@util/dates';
|
import { formatDateString } from '@util/dates';
|
||||||
import { JOB_TYPE_URL_SEGMENTS } from '@constants';
|
import { JOB_TYPE_URL_SEGMENTS } from '@constants';
|
||||||
|
|
||||||
const PaddedIcon = styled(StatusIcon)`
|
|
||||||
margin: 6px 20px 0 0;
|
|
||||||
`;
|
|
||||||
|
|
||||||
class JobListItem extends Component {
|
class JobListItem extends Component {
|
||||||
render() {
|
render() {
|
||||||
const { i18n, job, isSelected, onSelect } = this.props;
|
const { i18n, job, isSelected, onSelect } = this.props;
|
||||||
@@ -40,8 +35,10 @@ class JobListItem extends Component {
|
|||||||
/>
|
/>
|
||||||
<DataListItemCells
|
<DataListItemCells
|
||||||
dataListCells={[
|
dataListCells={[
|
||||||
|
<DataListCell key="status" isFilled={false}>
|
||||||
|
{job.status && <StatusIcon status={job.status} />}
|
||||||
|
</DataListCell>,
|
||||||
<DataListCell key="name" css="display: inline-flex;">
|
<DataListCell key="name" css="display: inline-flex;">
|
||||||
{job.status && <PaddedIcon status={job.status} />}
|
|
||||||
<span>
|
<span>
|
||||||
<Link
|
<Link
|
||||||
to={`/jobs/${JOB_TYPE_URL_SEGMENTS[job.type]}/${job.id}`}
|
to={`/jobs/${JOB_TYPE_URL_SEGMENTS[job.type]}/${job.id}`}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import CodeMirrorInput from '@components/CodeMirrorInput';
|
|||||||
import ContentEmpty from '@components/ContentEmpty';
|
import ContentEmpty from '@components/ContentEmpty';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { DetailList, Detail } from '@components/DetailList';
|
import { DetailList, Detail } from '@components/DetailList';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
import { withI18n } from '@lingui/react';
|
import { withI18n } from '@lingui/react';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import { CardBody } from '@components/Card';
|
|||||||
import ContentError from '@components/ContentError';
|
import ContentError from '@components/ContentError';
|
||||||
import ContentLoading from '@components/ContentLoading';
|
import ContentLoading from '@components/ContentLoading';
|
||||||
import ErrorDetail from '@components/ErrorDetail';
|
import ErrorDetail from '@components/ErrorDetail';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
|
|
||||||
import JobEvent from './JobEvent';
|
import JobEvent from './JobEvent';
|
||||||
import JobEventSkeleton from './JobEventSkeleton';
|
import JobEventSkeleton from './JobEventSkeleton';
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { withI18n } from '@lingui/react';
|
|||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { func, shape } from 'prop-types';
|
import { func, shape } from 'prop-types';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
import { WorkflowNodeTypeLetter } from '@components/Workflow';
|
import { WorkflowNodeTypeLetter } from '@components/Workflow';
|
||||||
import { secondsToHHMMSS } from '@util/dates';
|
import { secondsToHHMMSS } from '@util/dates';
|
||||||
import { constants as wfConstants } from '@components/Workflow/WorkflowUtils';
|
import { constants as wfConstants } from '@components/Workflow/WorkflowUtils';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { t } from '@lingui/macro';
|
|||||||
import { shape } from 'prop-types';
|
import { shape } from 'prop-types';
|
||||||
import { Badge as PFBadge, Button, Tooltip } from '@patternfly/react-core';
|
import { Badge as PFBadge, Button, Tooltip } from '@patternfly/react-core';
|
||||||
import { CompassIcon, WrenchIcon } from '@patternfly/react-icons';
|
import { CompassIcon, WrenchIcon } from '@patternfly/react-icons';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
|
||||||
const Toolbar = styled.div`
|
const Toolbar = styled.div`
|
||||||
|
|||||||
@@ -18,14 +18,10 @@ import styled from 'styled-components';
|
|||||||
|
|
||||||
import ClipboardCopyButton from '@components/ClipboardCopyButton';
|
import ClipboardCopyButton from '@components/ClipboardCopyButton';
|
||||||
import ProjectSyncButton from '../shared/ProjectSyncButton';
|
import ProjectSyncButton from '../shared/ProjectSyncButton';
|
||||||
import { StatusIcon } from '@components/Sparkline';
|
import StatusIcon from '@components/StatusIcon';
|
||||||
import { toTitleCase } from '@util/strings';
|
import { toTitleCase } from '@util/strings';
|
||||||
import { Project } from '@types';
|
import { Project } from '@types';
|
||||||
|
|
||||||
const PaddedIcon = styled(StatusIcon)`
|
|
||||||
margin: 6px 20px 0 0;
|
|
||||||
`;
|
|
||||||
|
|
||||||
const DataListAction = styled(_DataListAction)`
|
const DataListAction = styled(_DataListAction)`
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: grid;
|
display: grid;
|
||||||
@@ -84,7 +80,7 @@ class ProjectListItem extends React.Component {
|
|||||||
/>
|
/>
|
||||||
<DataListItemCells
|
<DataListItemCells
|
||||||
dataListCells={[
|
dataListCells={[
|
||||||
<DataListCell key="name" css="display: inline-flex">
|
<DataListCell key="status" isFilled={false}>
|
||||||
{project.summary_fields.last_job && (
|
{project.summary_fields.last_job && (
|
||||||
<Tooltip
|
<Tooltip
|
||||||
position="top"
|
position="top"
|
||||||
@@ -96,12 +92,14 @@ class ProjectListItem extends React.Component {
|
|||||||
<Link
|
<Link
|
||||||
to={`/jobs/project/${project.summary_fields.last_job.id}`}
|
to={`/jobs/project/${project.summary_fields.last_job.id}`}
|
||||||
>
|
>
|
||||||
<PaddedIcon
|
<StatusIcon
|
||||||
status={project.summary_fields.last_job.status}
|
status={project.summary_fields.last_job.status}
|
||||||
/>
|
/>
|
||||||
</Link>
|
</Link>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
)}
|
)}
|
||||||
|
</DataListCell>,
|
||||||
|
<DataListCell key="name">
|
||||||
<Link id={labelId} to={`${detailUrl}`}>
|
<Link id={labelId} to={`${detailUrl}`}>
|
||||||
<b>{project.name}</b>
|
<b>{project.name}</b>
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import {
|
|||||||
} from '@patternfly/react-icons';
|
} from '@patternfly/react-icons';
|
||||||
|
|
||||||
import LaunchButton from '@components/LaunchButton';
|
import LaunchButton from '@components/LaunchButton';
|
||||||
import { Sparkline } from '@components/Sparkline';
|
import Sparkline from '@components/Sparkline';
|
||||||
import { toTitleCase } from '@util/strings';
|
import { toTitleCase } from '@util/strings';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import React, { useState } from 'react';
|
|||||||
import { Link, useHistory } from 'react-router-dom';
|
import { Link, useHistory } from 'react-router-dom';
|
||||||
import { withI18n } from '@lingui/react';
|
import { withI18n } from '@lingui/react';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
|
import { WorkflowJobTemplatesAPI } from '@api';
|
||||||
import {
|
import {
|
||||||
Chip,
|
Chip,
|
||||||
ChipGroup,
|
ChipGroup,
|
||||||
@@ -13,17 +14,16 @@ import {
|
|||||||
Label,
|
Label,
|
||||||
} from '@patternfly/react-core';
|
} from '@patternfly/react-core';
|
||||||
|
|
||||||
import { CardBody, CardActionsRow } from '@components/Card';
|
|
||||||
import ContentLoading from '@components/ContentLoading';
|
|
||||||
import { WorkflowJobTemplatesAPI } from '@api';
|
|
||||||
import AlertModal from '@components/AlertModal';
|
import AlertModal from '@components/AlertModal';
|
||||||
import ErrorDetail from '@components/ErrorDetail';
|
import { CardBody, CardActionsRow } from '@components/Card';
|
||||||
import { DetailList, Detail, UserDateDetail } from '@components/DetailList';
|
|
||||||
import { VariablesDetail } from '@components/CodeMirrorInput';
|
import { VariablesDetail } from '@components/CodeMirrorInput';
|
||||||
import LaunchButton from '@components/LaunchButton';
|
import ContentLoading from '@components/ContentLoading';
|
||||||
import DeleteButton from '@components/DeleteButton';
|
import DeleteButton from '@components/DeleteButton';
|
||||||
|
import { DetailList, Detail, UserDateDetail } from '@components/DetailList';
|
||||||
|
import ErrorDetail from '@components/ErrorDetail';
|
||||||
|
import LaunchButton from '@components/LaunchButton';
|
||||||
|
import Sparkline from '@components/Sparkline';
|
||||||
import { toTitleCase } from '@util/strings';
|
import { toTitleCase } from '@util/strings';
|
||||||
import { Sparkline } from '@components/Sparkline';
|
|
||||||
|
|
||||||
function WorkflowJobTemplateDetail({ template, i18n, webHookKey }) {
|
function WorkflowJobTemplateDetail({ template, i18n, webHookKey }) {
|
||||||
const {
|
const {
|
||||||
@@ -104,7 +104,6 @@ function WorkflowJobTemplateDetail({ template, i18n, webHookKey }) {
|
|||||||
<Detail label={i18n._(t`Description`)} value={description} />
|
<Detail label={i18n._(t`Description`)} value={description} />
|
||||||
{summary_fields.recent_jobs?.length > 0 && (
|
{summary_fields.recent_jobs?.length > 0 && (
|
||||||
<Detail
|
<Detail
|
||||||
css="display: flex; flex: 1;"
|
|
||||||
value={<Sparkline jobs={recentPlaybookJobs} />}
|
value={<Sparkline jobs={recentPlaybookJobs} />}
|
||||||
label={i18n._(t`Activity`)}
|
label={i18n._(t`Activity`)}
|
||||||
/>
|
/>
|
||||||
@@ -223,7 +222,7 @@ function WorkflowJobTemplateDetail({ template, i18n, webHookKey }) {
|
|||||||
{deletionError && (
|
{deletionError && (
|
||||||
<AlertModal
|
<AlertModal
|
||||||
isOpen={deletionError}
|
isOpen={deletionError}
|
||||||
variant="danger"
|
variant="error"
|
||||||
title={i18n._(t`Error!`)}
|
title={i18n._(t`Error!`)}
|
||||||
onClose={() => setDeletionError(null)}
|
onClose={() => setDeletionError(null)}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -12,13 +12,6 @@ import JobTemplatesList from './JobTemplatesList';
|
|||||||
import ProjectsList from './ProjectsList';
|
import ProjectsList from './ProjectsList';
|
||||||
import WorkflowJobTemplatesList from './WorkflowJobTemplatesList';
|
import WorkflowJobTemplatesList from './WorkflowJobTemplatesList';
|
||||||
|
|
||||||
const Divider = styled.div`
|
|
||||||
height: 1px;
|
|
||||||
background-color: var(--pf-global--Color--light-300);
|
|
||||||
border: 0;
|
|
||||||
flex-shrink: 0;
|
|
||||||
`;
|
|
||||||
|
|
||||||
const TimeoutInput = styled(TextInput)`
|
const TimeoutInput = styled(TextInput)`
|
||||||
width: 200px;
|
width: 200px;
|
||||||
:not(:first-of-type) {
|
:not(:first-of-type) {
|
||||||
@@ -91,7 +84,6 @@ function NodeTypeStep({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Divider component="div" />
|
|
||||||
{nodeType === 'job_template' && (
|
{nodeType === 'job_template' && (
|
||||||
<JobTemplatesList
|
<JobTemplatesList
|
||||||
nodeResource={nodeResource}
|
nodeResource={nodeResource}
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ function VisualizerGraph({ i18n, readOnly }) {
|
|||||||
{linkHelp && <WorkflowLinkHelp link={linkHelp} />}
|
{linkHelp && <WorkflowLinkHelp link={linkHelp} />}
|
||||||
</WorkflowHelp>
|
</WorkflowHelp>
|
||||||
)}
|
)}
|
||||||
<WorkflowSVG id="workflow-svg" ref={svgRef} css="">
|
<WorkflowSVG id="workflow-svg" ref={svgRef}>
|
||||||
<defs>
|
<defs>
|
||||||
<marker
|
<marker
|
||||||
className="WorkflowChart-noPointerEvents"
|
className="WorkflowChart-noPointerEvents"
|
||||||
|
|||||||
@@ -80,11 +80,7 @@ function UserForm({ user, handleCancel, handleSubmit, submitError, i18n }) {
|
|||||||
onSubmit={handleValidateAndSubmit}
|
onSubmit={handleValidateAndSubmit}
|
||||||
>
|
>
|
||||||
{formik => (
|
{formik => (
|
||||||
<Form
|
<Form autoComplete="off" onSubmit={formik.handleSubmit}>
|
||||||
autoComplete="off"
|
|
||||||
onSubmit={formik.handleSubmit}
|
|
||||||
css="padding: 0 24px"
|
|
||||||
>
|
|
||||||
<FormRow>
|
<FormRow>
|
||||||
<FormField
|
<FormField
|
||||||
id="user-username"
|
id="user-username"
|
||||||
|
|||||||
Reference in New Issue
Block a user