diff --git a/models/test-management/src/index.ts b/models/test-management/src/index.ts index 9923a45917..1d334eeeaf 100644 --- a/models/test-management/src/index.ts +++ b/models/test-management/src/index.ts @@ -24,6 +24,7 @@ import workbench from '@hcengineering/model-workbench' import print from '@hcengineering/model-print' import tracker from '@hcengineering/model-tracker' import { type ViewOptionsModel } from '@hcengineering/view' +import contact from '@hcengineering/contact' import { testManagementId, type TestPlanItem, type TestResult } from '@hcengineering/test-management' @@ -336,6 +337,25 @@ function defineTestSuite (builder: Builder): void { }, testManagement.action.RunSelectedTests ) + + createAction( + builder, + { + action: testManagement.actionImpl.EditProject, + label: testManagement.string.EditProject, + icon: contact.icon.Edit, + input: 'focus', + category: testManagement.category.TestProject, + target: testManagement.class.TestProject, + visibilityTester: view.function.CanEditSpace, + query: {}, + context: { + mode: ['context', 'browser'], + group: 'edit' + } + }, + testManagement.action.EditProject + ) } function defineTestCase (builder: Builder): void { diff --git a/models/test-management/src/plugin.ts b/models/test-management/src/plugin.ts index cf1a2fa2f1..7a4335ff90 100644 --- a/models/test-management/src/plugin.ts +++ b/models/test-management/src/plugin.ts @@ -24,7 +24,8 @@ export default mergeIds(testManagementId, testManganement, { category: { TestSuite: '' as Ref, TestCase: '' as Ref, - TestResult: '' as Ref + TestResult: '' as Ref, + TestProject: '' as Ref }, component: { CreateTestCase: '' as AnyComponent, diff --git a/plugins/test-management-resources/src/components/project/CreateProject.svelte b/plugins/test-management-resources/src/components/project/CreateProject.svelte index 488f393ab0..dd37948078 100644 --- a/plugins/test-management-resources/src/components/project/CreateProject.svelte +++ b/plugins/test-management-resources/src/components/project/CreateProject.svelte @@ -114,6 +114,7 @@ description, private: isPrivate, icon, + color, members, owners, archived: false @@ -139,6 +140,9 @@ if (data.icon !== project?.icon) { update.icon = data.icon } + if (data.color !== project?.color && isColorSelected) { + update.color = data.color + } if (data.members.length !== project?.members.length) { update.members = data.members } else { diff --git a/plugins/test-management-resources/src/index.ts b/plugins/test-management-resources/src/index.ts index 9869fef11e..35302e5ee1 100644 --- a/plugins/test-management-resources/src/index.ts +++ b/plugins/test-management-resources/src/index.ts @@ -45,7 +45,7 @@ import TestPlanItemPresenter from './components/test-plan/TestPlanItemPresenter. import CreateTestRunButton from './components/test-run/CreateTestRunButton.svelte' import RunTestPlanButton from './components/test-plan/RunTestPlanButton.svelte' -import { CreateChildTestSuiteAction, EditTestSuiteAction, RunSelectedTestsAction } from './utils' +import { CreateChildTestSuiteAction, EditTestSuiteAction, RunSelectedTestsAction, EditProjectAction } from './utils' import { resolveLocation, getAttachedObjectLink } from './navigation' export default async (): Promise => ({ @@ -92,6 +92,7 @@ export default async (): Promise => ({ actionImpl: { CreateChildTestSuite: CreateChildTestSuiteAction, EditTestSuite: EditTestSuiteAction, - RunSelectedTests: RunSelectedTestsAction + RunSelectedTests: RunSelectedTestsAction, + EditProject: EditProjectAction } }) diff --git a/plugins/test-management-resources/src/utils.ts b/plugins/test-management-resources/src/utils.ts index 7a5035dc36..fc70efff9c 100644 --- a/plugins/test-management-resources/src/utils.ts +++ b/plugins/test-management-resources/src/utils.ts @@ -128,3 +128,9 @@ export async function RunSelectedTestsAction (docs: TestCase[] | TestCase): Prom console.error('No test cases selected') } } + +export async function EditProjectAction (project: TestProject | undefined): Promise { + if (project !== undefined) { + showPopup(CreateProject, { project }) + } +} diff --git a/plugins/test-management/src/plugin.ts b/plugins/test-management/src/plugin.ts index d306c4279e..cef9cf7d4a 100644 --- a/plugins/test-management/src/plugin.ts +++ b/plugins/test-management/src/plugin.ts @@ -55,12 +55,14 @@ export const testManagementPlugin = plugin(testManagementId, { DeleteTestCase: '' as Ref>, CreateChildTestSuite: '' as Ref, EditTestSuite: '' as Ref, - RunSelectedTests: '' as Ref + RunSelectedTests: '' as Ref, + EditProject: '' as Ref }, actionImpl: { CreateChildTestSuite: '' as ViewAction, EditTestSuite: '' as ViewAction, - RunSelectedTests: '' as ViewAction + RunSelectedTests: '' as ViewAction, + EditProject: '' as ViewAction }, icon: { TestManagement: '' as Asset,