diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts index 9295c22f1e..d789cb11ba 100644 --- a/models/tracker/src/index.ts +++ b/models/tracker/src/index.ts @@ -361,6 +361,9 @@ export class TSprint extends TDoc implements Sprint { targetDate!: Timestamp declare space: Ref + + @Prop(TypeNumber(), tracker.string.Capacity) + capacity!: number } @UX(core.string.Number) diff --git a/plugins/tracker-assets/lang/en.json b/plugins/tracker-assets/lang/en.json index df20131055..ec2a802e47 100644 --- a/plugins/tracker-assets/lang/en.json +++ b/plugins/tracker-assets/lang/en.json @@ -210,7 +210,9 @@ "TimeSpendValue": "{value}d", "SprintPassed": "{from}d/{to}d", "ChildEstimation": "Subissues Estimation", - "ChildReportedTime": "Subissues Time" + "ChildReportedTime": "Subissues Time", + "Capacity": "Capacity", + "CapacityValue": "of {value}d" }, "status": {} } diff --git a/plugins/tracker-assets/lang/ru.json b/plugins/tracker-assets/lang/ru.json index 2e2c7adb7b..5187fcc375 100644 --- a/plugins/tracker-assets/lang/ru.json +++ b/plugins/tracker-assets/lang/ru.json @@ -209,8 +209,10 @@ "TimeSpendReportDescription": "Описание", "TimeSpendValue": "{value}d", "SprintPassed": "{from}d/{to}d", - "ChildEstimation": "Subissues Estimation", - "ChildReportedTime": "Subissues Time" + "ChildEstimation": "Оценка подзадач", + "ChildReportedTime": "Время водзадач", + "Capacity": "Вместимость", + "CapacityValue": "из {value}d" }, "status": {} } diff --git a/plugins/tracker-resources/src/components/issues/IssuesList.svelte b/plugins/tracker-resources/src/components/issues/IssuesList.svelte index 4c964cd838..334d7149a0 100644 --- a/plugins/tracker-resources/src/components/issues/IssuesList.svelte +++ b/plugins/tracker-resources/src/components/issues/IssuesList.svelte @@ -75,7 +75,19 @@ let personPresenter: AttributeModel - $: isCollapsedMap = Object.fromEntries(categories.map((category) => [category, false])) + const isCollapsedMap: Record = {} + + $: { + const exkeys = new Set(Object.keys(isCollapsedMap)) + for (const c of categories) { + if (!exkeys.delete(c)) { + isCollapsedMap[c] = false + } + } + for (const k of exkeys) { + delete isCollapsedMap[k] + } + } $: combinedGroupedIssues = Object.values(groupedIssues).flat(1) $: options = { ...baseOptions, sort: { [orderBy]: issuesSortOrderMap[orderBy] } } as FindOptions $: headerComponent = groupByKey === undefined || groupByKey === 'assignee' ? null : issuesGroupEditorMap[groupByKey] diff --git a/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte b/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte index f8b5852a96..1c15c47f3d 100644 --- a/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte +++ b/plugins/tracker-resources/src/components/issues/timereport/EstimationPopup.svelte @@ -75,6 +75,7 @@