diff --git a/docs/release-notes/14-2-0/README.md b/docs/release-notes/14-2-0/README.md index faeaaf6b7229..36e0af1a62ae 100644 --- a/docs/release-notes/14-2-0/README.md +++ b/docs/release-notes/14-2-0/README.md @@ -81,10 +81,8 @@ With OpenProject 14.2, [embedded attributes within a work package description](h - Bugfix: Some buttons are missing on mobile screens on iOS Safari \[[#50724](https://community.openproject.org/wp/50724)\] - Bugfix: Different headings in permission report and role form \[[#51447](https://community.openproject.org/wp/51447)\] - Bugfix: Main menu resizer handle misplaced on hover \[[#52670](https://community.openproject.org/wp/52670)\] -- Bugfix: Error when sorting projects list by "latest activity at" \[[#53315](https://community.openproject.org/wp/53315)\] - Bugfix: Query lost when sorting the project table quickly \[[#53329](https://community.openproject.org/wp/53329)\] - Bugfix: Seeded demo project "Project plan" view should be in Gantt charts section \[[#53624](https://community.openproject.org/wp/53624)\] -- Bugfix: The label for "Spent time" is still visible after deactiving the module "Time and costs" \[[#53772](https://community.openproject.org/wp/53772)\] - Bugfix: Text editor is partially out of view on mobile \[[#54128](https://community.openproject.org/wp/54128)\] - Bugfix: Health e-mail showing storage host URL but unexpectedly linking OP \[[#55137](https://community.openproject.org/wp/55137)\] - Bugfix: Meetings participants toggle has the wrong color \[[#55169](https://community.openproject.org/wp/55169)\] @@ -94,10 +92,18 @@ With OpenProject 14.2, [embedded attributes within a work package description](h - Bugfix: New section option not i18n-ed \[[#55275](https://community.openproject.org/wp/55275)\] - Bugfix: Can't update from 13.1 - main language pt-BR \[[#55318](https://community.openproject.org/wp/55318)\] - Bugfix: Progress units: Display Work and Remaining work in days and hours \[[#55466](https://community.openproject.org/wp/55466)\] -- Bugfix: Focus ripped from work/remaining work preemptively disrupting input \[[#55515](https://community.openproject.org/wp/55515)\] +- Bugfix: Do not save access token in cookies \[[#55472](https://community.openproject.org/wp/55472)\] +- Bugfix: Project custom field of type link not listed in project settings \[[#55483](https://community.openproject.org/wp/55483)\] +- Bugfix: Vertical alignment fix was global and broke other pages \[[#55583](https://community.openproject.org/wp/55583)\] +- Bugfix: Password reset token not invalidated when user changes email \[[#55585](https://community.openproject.org/wp/55585)\] +- Bugfix: "Shared with me" notification setting not enabled by default \[[#55586](https://community.openproject.org/wp/55586)\] +- Bugfix: No longer able to see group memberships for user \[[#55602](https://community.openproject.org/wp/55602)\] +- Bugfix: Direct login provider setting accepting empty value \[[#55631](https://community.openproject.org/wp/55631)\] +- Bugfix: Missing custom action strategy for custom fields with field format link (URL) \[[#55651](https://community.openproject.org/wp/55651)\] +- Bugfix: Remove default archived projects view from project list for non-admins \[[#55661](https://community.openproject.org/wp/55661)\] - Feature: Exclude by status some work packages from the calculation of totals for % Complete and work estimates \[[#49409](https://community.openproject.org/wp/49409)\] - Feature: Avoid redundant emails in case of @mentions and email reminder \[[#50140](https://community.openproject.org/wp/50140)\] -- Feature: Record work and remaining work in different units (hours, days, weeks, ...) \[[#50954](https://community.openproject.org/wp/50954)\] +- Feature: Record and display work and remaining work in hours and days \[[#50954](https://community.openproject.org/wp/50954)\] - Feature: Allow renaming persisted project lists \[[#51673](https://community.openproject.org/wp/51673)\] - Feature: Change default view for meetings module to upcoming invitations \[[#53669](https://community.openproject.org/wp/53669)\] - Feature: Create a sub-header component in Primer \[[#54043](https://community.openproject.org/wp/54043)\] diff --git a/docs/release-notes/README.md b/docs/release-notes/README.md index e458586215a9..fa07625dde59 100644 --- a/docs/release-notes/README.md +++ b/docs/release-notes/README.md @@ -13,6 +13,13 @@ Stay up to date and get an overview of the new features included in the releases +## 14.2.0 + +Release date: 2024-06-19 + +[Release Notes](14-2-0/) + + ## 14.1.1 Release date: 2024-06-04 diff --git a/frontend/src/app/core/apiv3/endpoints/relations/apiv3-relations-paths.ts b/frontend/src/app/core/apiv3/endpoints/relations/apiv3-relations-paths.ts index cc2956e0b9ff..2aa1dd9a8e0b 100644 --- a/frontend/src/app/core/apiv3/endpoints/relations/apiv3-relations-paths.ts +++ b/frontend/src/app/core/apiv3/endpoints/relations/apiv3-relations-paths.ts @@ -28,12 +28,14 @@ import { ApiV3GettableResource, ApiV3ResourceCollection } from 'core-app/core/apiv3/paths/apiv3-resource'; import { ApiV3Service } from 'core-app/core/apiv3/api-v3.service'; -import { from, Observable } from 'rxjs'; +import { forkJoin, from, Observable } from 'rxjs'; import { CollectionResource } from 'core-app/features/hal/resources/collection-resource'; import { RelationResource } from 'core-app/features/hal/resources/relation-resource'; import { map } from 'rxjs/operators'; import { ApiV3Filter } from 'core-app/shared/helpers/api-v3/api-v3-filter-builder'; +export const MAGIC_RELATION_SIZE = 100; + export class ApiV3RelationsPaths extends ApiV3ResourceCollection> { constructor(protected apiRoot:ApiV3Service, protected basePath:string) { @@ -50,6 +52,14 @@ export class ApiV3RelationsPaths extends ApiV3ResourceCollection { + if (workPackageIds.length > MAGIC_RELATION_SIZE) { + const chunks = _.chunk(workPackageIds, MAGIC_RELATION_SIZE); + return forkJoin(chunks.map((chunk) => this.loadInvolved(chunk))) + .pipe( + map((results) => _.flatten(results)), + ); + } + const validIds = _.filter(workPackageIds, (id) => /\d+/.test(id)); if (validIds.length === 0) {