void
let labels: TagElement[] = []
+ let canSave = getTitle(newIssue.title ?? '').length > 0
+ $: canSave = getTitle(newIssue.title ?? '').length > 0
const labelsQuery = createQuery()
@@ -72,20 +74,25 @@
}
}
- function resetToDefaults () {
+ function resetToDefaults (): void {
newIssue = getIssueDefaults()
+ labels = []
focusIssueTitle?.()
}
- function getTitle (value: string) {
+ function getTitle (value: string): string {
return value.trim()
}
- function close () {
+ function close (): void {
dispatch('close')
}
- async function createIssue () {
+ function onDelete (): void {
+ dispatch('close', ['delete', newIssue])
+ }
+
+ function createIssue (): void {
if (!canSave) {
return
}
@@ -99,7 +106,7 @@
if (childIssue === undefined) {
dispatch('create', value)
} else {
- dispatch('close', value)
+ dispatch('close', ['update', value])
}
resetToDefaults()
@@ -121,8 +128,7 @@
)
let currentProject: Project | undefined = undefined
- $: thisRef && thisRef.scrollIntoView({ behavior: 'smooth' })
- $: canSave = getTitle(newIssue.title ?? '').length > 0
+ $: thisRef !== undefined && thisRef.scrollIntoView({ behavior: 'smooth' })
$: labelRefs = labels.map((it) => ({ ...(it as unknown as TagReference), _id: generateId(), tag: it._id }))
@@ -200,6 +206,9 @@
/>
+ {#if childIssue !== undefined}
+
+ {/if}
diff --git a/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte b/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte
index beaa5843be..0499c1b9f6 100644
--- a/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte
+++ b/plugins/tracker-resources/src/components/templates/TemplateControlPanel.svelte
@@ -14,8 +14,10 @@
-->
+
+
+
+
{
+ if (evt.detail !== undefined) {
+ await client.update(issue, { kind: evt.detail })
+ }
+ }}
+ />
-
+
diff --git a/tests/sanity/tests/model/tracker/template-details-page.ts b/tests/sanity/tests/model/tracker/template-details-page.ts
index eb44b9bc75..478aa35278 100644
--- a/tests/sanity/tests/model/tracker/template-details-page.ts
+++ b/tests/sanity/tests/model/tracker/template-details-page.ts
@@ -6,13 +6,13 @@ import { convertEstimation } from '../../tracker/tracker.utils'
export class TemplateDetailsPage extends CommonTrackerPage {
inputTitle = (): Locator => this.page.locator('div.popupPanel-body input[type="text"]')
inputDescription = (): Locator => this.page.locator('div.popupPanel-body div.textInput p')
- buttonPriority = (): Locator => this.page.locator('//span[text()="Priority"]/../button[1]//span')
- buttonAssignee = (): Locator => this.page.locator('(//span[text()="Assignee"]/../div/button)[1]')
+ buttonPriority = (): Locator => this.page.locator('//span[text()="Priority"]/following-sibling::button[1]//span')
+ buttonAssignee = (): Locator => this.page.locator('//span[text()="Assignee"]/following-sibling::div[1]/button/span')
textLabels = (dataLabels: string): Locator => this.page.locator('div.menu-group span', { hasText: dataLabels })
- buttonAddLabel = (): Locator => this.page.locator('//span[text()="Labels"]/../button[2]//span')
- buttonComponent = (): Locator => this.page.locator('//span[text()="Component"]/../div/div/button')
- buttonEstimation = (): Locator => this.page.locator('(//span[text()="Estimation"]/../div/button)[3]')
- buttonDueDate = (): Locator => this.page.locator('(//span[text()="Due date"]/../div/button)[2]')
+ buttonAddLabel = (): Locator => this.page.locator('//span[text()="Labels"]/following-sibling::button[1]//span')
+ buttonComponent = (): Locator => this.page.locator('//span[text()="Component"]/following-sibling::div[1]/div/button')
+ buttonEstimation = (): Locator => this.page.locator('//span[text()="Estimation"]/following-sibling::div[1]/button')
+ buttonDueDate = (): Locator => this.page.locator('//span[text()="Due date"]/following-sibling::div[1]/button')
buttonSaveDueDate = (): Locator => this.page.locator('div.footer > button')
activityContent = (): Locator => this.page.locator('div.grid div.content')
buttonDelete = (): Locator => this.page.locator('button[class*="menuItem"] > span', { hasText: 'Delete' })