diff --git a/models/test-management/src/index.ts b/models/test-management/src/index.ts
index 6b3a4dac7c..57cabf7eab 100644
--- a/models/test-management/src/index.ts
+++ b/models/test-management/src/index.ts
@@ -119,7 +119,7 @@ function defineApplication (builder: Builder): void {
}
]
},
- navHeaderComponent: testManagement.component.NewTestCaseHeader
+ navHeaderComponent: testManagement.component.TestManagementSpaceHeader
},
testManagement.app.TestManagement
)
diff --git a/plugins/test-management-assets/assets/icons.svg b/plugins/test-management-assets/assets/icons.svg
index 961c3705a9..6fb417124a 100644
--- a/plugins/test-management-assets/assets/icons.svg
+++ b/plugins/test-management-assets/assets/icons.svg
@@ -49,4 +49,7 @@
+
+
+
diff --git a/plugins/test-management-assets/src/index.ts b/plugins/test-management-assets/src/index.ts
index 5498b02acc..8a50befa21 100644
--- a/plugins/test-management-assets/src/index.ts
+++ b/plugins/test-management-assets/src/index.ts
@@ -26,7 +26,7 @@ loadMetadata(testManagement.icon, {
Home: `${icons}#home`,
Estimation: `${icons}#testCase`,
TestSuite: `${icons}#testSuite`,
- TestProject: `${icons}#testCase`,
+ TestProject: `${icons}#project`,
TestSuites: `${icons}#testSuite`,
TestRuns: `${icons}#testRun`,
RedCircle: `${icons}#red-circle`,
diff --git a/plugins/test-management-resources/src/components/TestManagementSpaceHeader.svelte b/plugins/test-management-resources/src/components/TestManagementSpaceHeader.svelte
new file mode 100644
index 0000000000..92ff76cdd5
--- /dev/null
+++ b/plugins/test-management-resources/src/components/TestManagementSpaceHeader.svelte
@@ -0,0 +1,132 @@
+
+
+
+{#if loading}
+
+{:else}
+
+{/if}
diff --git a/plugins/test-management-resources/src/components/test-case/NewTestCaseHeader.svelte b/plugins/test-management-resources/src/components/test-case/NewTestCaseHeader.svelte
deleted file mode 100644
index 7730d978e3..0000000000
--- a/plugins/test-management-resources/src/components/test-case/NewTestCaseHeader.svelte
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
diff --git a/plugins/test-management-resources/src/index.ts b/plugins/test-management-resources/src/index.ts
index 46a23aec10..3776daf5b4 100644
--- a/plugins/test-management-resources/src/index.ts
+++ b/plugins/test-management-resources/src/index.ts
@@ -14,7 +14,7 @@
//
import { type Resources } from '@hcengineering/platform'
-import NewTestCaseHeader from './components/test-case/NewTestCaseHeader.svelte'
+import TestManagementSpaceHeader from './components/TestManagementSpaceHeader.svelte'
import CreateProject from './components/project/CreateProject.svelte'
import ProjectSpacePresenter from './components/project/ProjectSpacePresenter.svelte'
import CreateTestSuite from './components/test-suite/CreateTestSuite.svelte'
@@ -34,7 +34,7 @@ import { resolveLocation, getTestSuiteLink } from './navigation'
export default async (): Promise => ({
component: {
- NewTestCaseHeader,
+ TestManagementSpaceHeader,
CreateProject,
ProjectSpacePresenter,
CreateTestSuite,
diff --git a/plugins/test-management-resources/src/navigation.ts b/plugins/test-management-resources/src/navigation.ts
index 9ffc30c818..775011ce07 100644
--- a/plugins/test-management-resources/src/navigation.ts
+++ b/plugins/test-management-resources/src/navigation.ts
@@ -14,10 +14,18 @@
import testManagement, { testManagementId, type TestSuite, type TestProject } from '@hcengineering/test-management'
import { type Doc, type Ref } from '@hcengineering/core'
import { getClient } from '@hcengineering/presentation'
-import { getCurrentResolvedLocation, getPanelURI, type Location, type ResolvedLocation } from '@hcengineering/ui'
+import {
+ getCurrentResolvedLocation,
+ getLocation,
+ getPanelURI,
+ type Location,
+ type ResolvedLocation
+} from '@hcengineering/ui'
import view, { type ObjectPanel } from '@hcengineering/view'
import { accessDeniedStore } from '@hcengineering/view-resources'
+const SUITE_KEY = 'attachedTo'
+
export function getPanelFragment (object: Pick): string {
const hierarchy = getClient().getHierarchy()
const objectPanelMixin = hierarchy.classHierarchyMixin(object._class, view.mixin.ObjectPanel)
@@ -59,7 +67,7 @@ export function getTestSuiteLink (testSuite: Ref): Location {
testSuite === undefined
? undefined
: {
- attachedTo: testSuite
+ [SUITE_KEY]: testSuite
}
return loc
@@ -71,6 +79,11 @@ export function getTestSuiteIdFromFragment (fragment: string): Ref |
return props[6] != null ? (props[6] as Ref) : undefined
}
+export function getTestSuiteIdFromLocation (): Ref {
+ const location = getLocation()
+ return (location?.query?.[SUITE_KEY] as Ref) ?? testManagement.ids.NoParent
+}
+
export async function resolveLocation (loc: Location): Promise {
if (loc.path[2] !== testManagementId) {
return undefined
diff --git a/plugins/test-management-resources/src/utils.ts b/plugins/test-management-resources/src/utils.ts
index 8862576b0b..63fa18bb32 100644
--- a/plugins/test-management-resources/src/utils.ts
+++ b/plugins/test-management-resources/src/utils.ts
@@ -21,6 +21,8 @@ import { type TestProject, type TestCase, type TestSuite } from '@hcengineering/
import CreateTestSuiteComponent from './components/test-suite/CreateTestSuite.svelte'
import EditTestSuiteComponent from './components/test-suite/EditTestSuite.svelte'
+import CreateTestCase from './components/test-case/CreateTestCase.svelte'
+import CreateProject from './components/project/CreateProject.svelte'
export async function getPreviousAssignees (objectId: Ref | undefined): Promise>> {
if (objectId === undefined) {
@@ -62,6 +64,14 @@ export async function showEditTestSuitePopup (suite: Ref): Promise, testSuiteId: Ref): Promise {
+ showPopup(CreateTestCase, { space, testSuiteId }, 'top')
+}
+
+export async function showCreateProjectPopup (): Promise {
+ showPopup(CreateProject, {}, 'top')
+}
+
export async function CreateChildTestSuiteAction (doc: TestSuite): Promise {
await showCreateTestSuitePopup(doc.space, doc._id)
}
diff --git a/plugins/test-management/src/plugin.ts b/plugins/test-management/src/plugin.ts
index 6e7d69838c..e5104633ed 100644
--- a/plugins/test-management/src/plugin.ts
+++ b/plugins/test-management/src/plugin.ts
@@ -166,7 +166,7 @@ export const testManagementPlugin = plugin(testManagementId, {
TestCaseSearchIcon: '' as AnyComponent,
TestCases: '' as AnyComponent,
CreateProject: '' as AnyComponent,
- NewTestCaseHeader: '' as AnyComponent,
+ TestManagementSpaceHeader: '' as AnyComponent,
TestCaseStatusIcon: '' as AnyComponent,
PriorityIconPresenter: '' as AnyComponent,
TestCaseStatusPresenter: '' as AnyComponent,