diff --git a/.github/workflows/full.yml b/.github/workflows/full.yml index e0917eae..58a8a39d 100644 --- a/.github/workflows/full.yml +++ b/.github/workflows/full.yml @@ -286,7 +286,7 @@ jobs: specs: ['actions_tasks', 'actions_tasks2', 'actions_tasks3', 'actions_objects', 'actions_objects2', 'actions_users', 'actions_projects_models', 'actions_organizations', 'canvas3d_functionality', - 'canvas3d_functionality_2', 'issues_prs', 'issues_prs2'] + 'canvas3d_functionality_2', 'issues_prs', 'issues_prs2', 'masks', 'skeletons'] steps: - uses: actions/checkout@v3 with: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a53f41f3..5f96bd6b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -252,7 +252,7 @@ jobs: specs: ['actions_tasks', 'actions_tasks2', 'actions_tasks3', 'actions_objects', 'actions_objects2', 'actions_users', 'actions_projects_models', 'actions_organizations', 'canvas3d_functionality', - 'canvas3d_functionality_2', 'issues_prs', 'issues_prs2'] + 'canvas3d_functionality_2', 'issues_prs', 'issues_prs2', 'masks', 'skeletons'] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/schedule.yml b/.github/workflows/schedule.yml index 058827fe..5f007491 100644 --- a/.github/workflows/schedule.yml +++ b/.github/workflows/schedule.yml @@ -274,7 +274,7 @@ jobs: specs: ['actions_tasks', 'actions_tasks2', 'actions_tasks3', 'actions_objects', 'actions_objects2', 'actions_users', 'actions_projects_models', 'actions_organizations', 'canvas3d_functionality', - 'canvas3d_functionality_2', 'issues_prs', 'issues_prs2'] + 'canvas3d_functionality_2', 'issues_prs', 'issues_prs2', 'masks', 'skeletons'] steps: - uses: actions/checkout@v3 diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-mask-control.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-mask-control.tsx index 1fba8150..ff2a8190 100644 --- a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-mask-control.tsx +++ b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-mask-control.tsx @@ -8,8 +8,9 @@ import Icon from '@ant-design/icons'; import { Canvas } from 'cvat-canvas-wrapper'; import { BrushIcon } from 'icons'; +import { ShapeType } from 'reducers'; -import DrawShapePopoverContainer from 'containers/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover'; +import DrawShapePopoverContainer from 'containers/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover'; import withVisibilityHandling from './handle-popover-visibility'; export interface Props { @@ -43,7 +44,7 @@ function DrawPointsControl(props: Props): JSX.Element { {...dynamicPopoverProps} overlayClassName='cvat-draw-shape-popover' placement='right' - content={} + content={} > diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover.tsx deleted file mode 100644 index 504f236f..00000000 --- a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover.tsx +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2022 CVAT.ai Corporation -// -// SPDX-License-Identifier: MIT - -import React from 'react'; -import { Row, Col } from 'antd/lib/grid'; -import Button from 'antd/lib/button'; -import Text from 'antd/lib/typography/Text'; - -import LabelSelector from 'components/label-selector/label-selector'; -import CVATTooltip from 'components/common/cvat-tooltip'; - -interface Props { - labels: any[]; - selectedLabelID: number; - repeatShapeShortcut: string; - onChangeLabel(value: string): void; - onDraw(labelID: number): void; -} - -function DrawMaskPopover(props: Props): JSX.Element { - const { - labels, selectedLabelID, repeatShapeShortcut, onChangeLabel, onDraw, - } = props; - - return ( -
- - - - Draw new mask - - - - - - Label - - - - - - - - - - - - - - -
- ); -} - -export default React.memo(DrawMaskPopover); diff --git a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx index 274f4012..5677cc3d 100644 --- a/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx +++ b/cvat-ui/src/components/annotation-page/standard-workspace/controls-side-bar/draw-shape-popover.tsx @@ -1,4 +1,5 @@ // Copyright (C) 2020-2022 Intel Corporation +// Copyright (C) 2022 CVAT.ai Corporation // // SPDX-License-Identifier: MIT @@ -14,7 +15,7 @@ import { DimensionType, ShapeType } from 'reducers'; import { clamp } from 'utils/math'; import LabelSelector from 'components/label-selector/label-selector'; import CVATTooltip from 'components/common/cvat-tooltip'; -import { Label } from 'components/labels-editor/common'; +import { Label } from 'cvat-core-wrapper'; interface Props { shapeType: ShapeType; @@ -154,7 +155,7 @@ function DrawShapePopoverComponent(props: Props): JSX.Element { - {is2D && ( + {is2D && shapeType !== ShapeType.MASK && ( diff --git a/cvat-ui/src/containers/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover.tsx b/cvat-ui/src/containers/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover.tsx deleted file mode 100644 index 5f15588c..00000000 --- a/cvat-ui/src/containers/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover.tsx +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (C) 2022 CVAT.ai Corporation -// -// SPDX-License-Identifier: MIT - -import React from 'react'; -import { connect } from 'react-redux'; - -import DrawMaskPopoverComponent from 'components/annotation-page/standard-workspace/controls-side-bar/draw-mask-popover'; -import { rememberObject } from 'actions/annotation-actions'; -import { CombinedState, ShapeType, ObjectType } from 'reducers'; -import { Canvas } from 'cvat-canvas-wrapper'; - -interface DispatchToProps { - onDrawStart( - shapeType: ShapeType, - labelID: number, - objectType: ObjectType, - ): void; -} - -interface StateToProps { - normalizedKeyMap: Record; - canvasInstance: Canvas; - labels: any[]; -} - -function mapDispatchToProps(dispatch: any): DispatchToProps { - return { - onDrawStart( - shapeType: ShapeType, - labelID: number, - objectType: ObjectType, - ): void { - dispatch( - rememberObject({ - activeObjectType: objectType, - activeShapeType: shapeType, - activeLabelID: labelID, - }), - ); - }, - }; -} - -function mapStateToProps(state: CombinedState): StateToProps { - const { - annotation: { - canvas: { instance: canvasInstance }, - job: { labels }, - }, - shortcuts: { normalizedKeyMap }, - } = state; - - return { - canvasInstance: canvasInstance as Canvas, - normalizedKeyMap, - labels, - }; -} - -type Props = StateToProps & DispatchToProps; - -interface State { - selectedLabelID: number; -} - -class DrawShapePopoverContainer extends React.PureComponent { - constructor(props: Props) { - super(props); - const defaultLabelID = props.labels.length ? props.labels[0].id : null; - this.state = { selectedLabelID: defaultLabelID }; - } - - private onDraw = (): void => { - const { canvasInstance, onDrawStart } = this.props; - const { selectedLabelID } = this.state; - - canvasInstance.cancel(); - canvasInstance.draw({ - enabled: true, - shapeType: ShapeType.MASK, - crosshair: false, - }); - - onDrawStart(ShapeType.MASK, selectedLabelID, ObjectType.SHAPE); - }; - - private onChangeLabel = (value: any): void => { - this.setState({ selectedLabelID: value.id }); - }; - - public render(): JSX.Element { - const { selectedLabelID } = this.state; - const { normalizedKeyMap, labels } = this.props; - - return ( - - ); - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(DrawShapePopoverContainer); diff --git a/tests/cypress.json b/tests/cypress.json index 93cb1bcc..e7f43a6f 100644 --- a/tests/cypress.json +++ b/tests/cypress.json @@ -12,7 +12,7 @@ }, "testFiles": [ "auth_page.js", - "skeletons_pipeline.js", + "skeletons/*.js", "webhooks.js", "masks/*.js", "actions_tasks/**/*.js", diff --git a/tests/cypress/integration/skeletons_pipeline.js b/tests/cypress/integration/skeletons/skeletons_pipeline.js similarity index 100% rename from tests/cypress/integration/skeletons_pipeline.js rename to tests/cypress/integration/skeletons/skeletons_pipeline.js