273 Commits

Author SHA1 Message Date
Mir Bhatia aed94f1522 Update quick filter lookbook docs 2026-06-12 12:43:22 +02:00
Mir Bhatia 81304f093d Update docs 2026-06-09 08:51:19 +02:00
Mir Bhatia addc37c0ff Rename QuickFilter::SegmentedControlComponent 2026-06-09 08:51:17 +02:00
Alexander Brandon Coles 8572a3c7be [OP-19415] Primer patterns in FilterFormComponent
Uses `ConditionalWrapper` to eliminate template duplication in the
`wrap_with_controller` branch, and `merge_data` from
`Primer::AttributesHelper` for Stimulus data attributes.

https://community.openproject.org/wp/OP-19415
2026-06-02 18:51:05 +02:00
Alexander Brandon Coles e7a01b741f [OP-19415] Convert FilterForm to ViewComponent
Replaces `Filters::FilterForm` (an `ApplicationForm` subclass) with
`Filters::FilterFormComponent` (an `ApplicationComponent`). The old form
overrode `:nodoc:` Primer hooks (`before_render`, `perform_render`) and
read semi-public ivars (`@builder`, `@view_context`). The new component
receives the builder as an explicit keyword arg and uses a standard ERB
template, reducing Primer internal coupling from five semi-public APIs
to one (`FormList`).

https://community.openproject.org/wp/OP-19415
2026-06-02 18:50:35 +02:00
OpenProject Actions CI 523ef39065 Merge branch 'release/17.5' into dev 2026-06-01 14:42:29 +00:00
Henriette Darge acfaf0fc5c Add truncation rules for WPCard component 2026-05-29 15:09:09 +02:00
Klaus Zanders 78abead8b4 Fix interaction between Filters::FilterForm and the WorkPackage Query 2026-05-29 13:40:58 +02:00
Klaus Zanders cda0ad9616 Add comment about rendered content in lookbook 2026-05-29 09:28:07 +02:00
Klaus Zanders d726484b7b Add Lookbook for Filter Forms 2026-05-29 09:28:03 +02:00
Klaus Zanders 0fe1f31822 Get rid of CSS styling on #add_filter_block and #add_filter_select.
Instead make it CSS classes and put it on the old instances
2026-05-29 09:28:01 +02:00
Behrokh Satarnejad bfa2588bf4 [74198] Remove newest projects in project widget on homepage (#23136)
* Add footer component for widget box

* Add footer component to the widget box as a slot

* Change projects widget to show the favorite projects

* Fix failing test

* Change the subitems widget

* Change the costs and budgets widgets

* Change the meeting widget

* Change the WPs widget in version

* Change memebers widget in project overview

* Change the favorite projects widget in my page

# Conflicts:
#	frontend/src/app/shared/components/grids/widgets/project-favorites/widget-project-favorites.component.ts

* Add the widget box to the lookbook

* Add footer for members widget in dashboard

* Fix members widget capability check

* Add feature spec for favorites projects in my page

* Remove committed demo project gitlink

* Remove temporary body variables from the costs and budgets widget templates

* Remove the scroll for favorites widget

* Remove scrollbar for members and favorite projects widgets

* Change projects block to favorite projects

* Refine feature specs

* Fix the widget footer styles globally

* Rename the component name from project favorites to favorite projects

* Rename the test selector for project name

* Move widget content inside the body

* grid widgets stretch their content area so widget footers stay pinned to the bottom

* Ensure frontend-rendered grid widgets keep their turbo-loaded content in the widget flex layout so server-rendered footers stay pinned to the bottom
2026-05-29 08:37:17 +02:00
David F fd32b7b765 Add some documentation for advanced filters. wp/74380 2026-05-26 08:14:56 +02:00
Alexander Brandon Coles ff22ca77b9 Note Blankslate in empty state docs, show 3 WPs
Mentions that `with_empty_state` renders a `Primer::Beta::Blankslate`
and accepts `title:`, `description:`, and `icon:` keywords. Bumps the
work-package preview from 2 to 3 items for visual consistency with the
other preview scenarios.
2026-05-21 12:28:35 +02:00
Alexander Brandon Coles d3547a1ff0 [#75029] Document Border Box List in Lookbook
Updates Border Box references to point to higher-level Border Box List
component. Also removes old Border Box examples.

https://community.openproject.org/wp/75029
2026-05-21 12:28:34 +02:00
Alexander Brandon Coles 5db6e2b591 [#72945] Add configurable header padding
Allow BorderBoxList headers to override their vertical padding while
keeping row padding inherited from the underlying BorderBox.

Use spacious header padding for Backlogs lists that keep condensed rows,
and expose the option in Lookbook previews for review.

https://community.openproject.org/wp/72945
2026-05-19 14:41:49 +02:00
Alexander Brandon Coles 078cbb78e1 Show description: in Border Box List previews 2026-05-19 14:41:49 +02:00
Alexander Brandon Coles ee714851ee Show padding: param in Border Box List previews 2026-05-19 14:41:49 +02:00
Alexander Brandon Coles e372dc089b [#72945] Add BorderBoxList transparent scheme
Adds `scheme: :transparent` to BorderBoxListComponent with CSS overrides
for transparent header background and no separator line. Backlogs
callers adopt the transparent scheme.

https://community.openproject.org/wp/72945
2026-05-19 14:41:48 +02:00
Henriette Darge e0523a54ca Merge remote-tracking branch 'origin/dev' into feature/73089-restyled-work-package-card-in-backlogs-and-sprints-view 2026-05-19 09:37:17 +02:00
Henriette Darge 7dc866dfca Avoid that the status scheme is always set and status specific highlighting is ignored.
Include some further review feedback
2026-05-18 13:41:09 +02:00
Alexander Brandon Coles be4ef3360d Add BorderBoxList collapsible header option
Render plain BorderBoxList headers by default while keeping the
CollapsibleHeader toggle available behind an explicit option. Align the
plain header branch with CollapsibleHeader markup so later Backlogs
header restyling can reuse the same structure.
2026-05-16 22:03:04 +02:00
Alexander Brandon Coles 4fb691df59 Make list announcements opt-in
Add interactive mode for dynamic BorderBox lists and enable it for
Backlogs lists. Generic lists stay quiet by default while Backlogs
updates remain announced.
2026-05-16 21:30:28 +02:00
Alexander Brandon Coles 20a4783d96 [#72945] Default action button scheme in Header
Adds `DEFAULT_ACTION_SCHEME` (`:default`) to `Header` so callers
no longer need to pass `scheme:` for standard header buttons.
Updates Lookbook preview and Backlogs sprint component to use the
new default.

https://community.openproject.org/wp/72945
2026-05-14 17:02:39 +02:00
Alexander Brandon Coles 8f2cdab609 [#74684] Extract BorderBoxListComponent
Introduces a shared BorderBox-backed list component and moves the
Backlogs-specific work package card list into the Backlogs module.

Wires Backlogs callers to the new component API, keeps specialized
card rendering behind an item factory hook, and replaces old OpPrimer
work-package card list coverage with focused component specs.

https://community.openproject.org/wp/74684
2026-05-14 16:06:00 +02:00
Henriette Darge 91de3310bd Extend the WorkPackageCardComponent with new optionss 2026-05-13 08:51:35 +02:00
Alexander Brandon Coles 7ef28be11b [#74779] Rename WorkPackageCardListComponent
https://community.openproject.org/wp/74779
2026-05-10 19:20:02 +02:00
Mir Bhatia 16c0d021cc Merge pull request #23014 from opf/feature/74577-build-primer-quickfilter
[#74577] Build segmented control quickfilter
2026-05-06 16:20:33 +02:00
Mir Bhatia 29ee672061 Add docs 2026-05-06 10:53:57 +02:00
Alexander Brandon Coles 199dea98a4 Fix WorkPackageCardComponent metric preview
Removes dependency on Backlogs-specific `StoryPointsComponent`.
2026-05-05 13:37:51 +01:00
Alexander Brandon Coles cad8f4b688 Merge branch 'dev' into code-maintenance/74088-backlog-sprints-component-renaming 2026-05-05 09:50:50 +01:00
Alexander Brandon Coles 83573af155 Merge dev into release merge branch
Resolve Backlogs sprint conflicts by porting the release assignability
changes onto the renamed Sprint model.
2026-05-05 08:51:13 +01:00
Alexander Brandon Coles 617dbd1554 [#73968] Move show-more out of common box
The common card box now exposes a generic `item` slot via `with_item`
for manually composed rows. Automatic rendering still only builds
work package items from the `work_packages:` argument.

The Backlogs inbox now owns the truncate-middle show-more row, its
route, Turbo frame, and draggable marker.

https://community.openproject.org/wp/73968
2026-05-01 22:36:50 +02:00
Alexander Brandon Coles 6c1a72dda1 [#73968] Add card menu slot
Expose a top-level menu slot on the common work package card so card
and card-box callers can configure action menus in the same style. Keep
menu_src as a compatibility shortcut for existing deferred Backlogs
menus while allowing inline non-deferred menu items through the slot.

https://community.openproject.org/wp/73968
2026-05-01 21:41:24 +02:00
Alexander Brandon Coles 15ac6ebcec Merge branch 'dev' into code-maintenance/74088-backlog-sprints-component-renaming
# Conflicts:
#	modules/backlogs/app/components/backlogs/backlog_bucket_item_component.rb
#	modules/backlogs/app/components/backlogs/inbox_item_component.rb
#	modules/backlogs/app/components/backlogs/sprint_component.rb
#	modules/backlogs/spec/components/backlogs/backlog_bucket_item_component_spec.rb
#	modules/backlogs/spec/components/backlogs/inbox_item_component_spec.rb
#	modules/backlogs/spec/components/backlogs/sprint_component_spec.rb
2026-05-01 20:23:58 +02:00
Alexander Brandon Coles 35d3fc8e8b [#73968] Move card metrics to Backlogs
Remove the story-points display from the shared work package card and
expose a generic metric slot instead. Backlogs now opts into that slot
with a small story-points component when rendering sprint, bucket, and
inbox cards.

https://community.openproject.org/wp/73968
2026-05-01 19:48:20 +02:00
Alexander Brandon Coles 60bb8e1ea9 [#73968] Add card box item bridge
Extracts the BorderBox row arguments into a row-bridge object
(`WorkPackageCardBoxComponent::Item`) so the box can build rows without
forcing the visual card to render row-level concerns. The visual
`WorkPackageCardComponent` constructor narrows to
`(work_package:, menu_src:)`; in-repo callers updated.

Adds a polymorphic slot API (`with_work_package_item`,
`with_empty_item`) modeled on `Primer::Alpha::FileTreeView`, plus a
public `#build_item` for off-box callers. Renames the URL pass-through
to a generic `params:` kwarg, leaving Backlogs all-state handling at the
call sites.

https://community.openproject.org/wp/73968
2026-05-01 19:11:09 +02:00
Alexander Brandon Coles 0794eb4497 [#73968] Add card box truncate-middle pagination
Teaches `WorkPackageCardBoxComponent` an optional
`with_show_more(truncate_middle:, text:)` slot. When set, the box
truncates `work_packages` to the first `truncate_middle` rows plus
a derived tail (20% of first page, min 1) and emits a
`Box-row scheme: :neutral` between them advertising the omitted
middle. The slot is also the toggle — leaving it unset means no
truncation, preserving sprint and bucket behaviour.

Default copy is sourced from the new
`work_package_card_box_component.show_more` locale key with
`one`/`other` plurals; consumers can override via `text:` (with a
`%{count}` placeholder). Adds a Lookbook preview for the slot.

https://community.openproject.org/wp/73968
2026-04-30 16:47:08 +02:00
Alexander Brandon Coles 393bd42741 [#73968] Extract work package card primitives
Adds the shared `WorkPackageCardBoxComponent` (with nested `Header`)
and `WorkPackageCardComponent` (with nested `Menu`), so
`SprintComponent`, `BucketComponent`, and the inbox can converge on
a single Primer `BorderBox` + card-row rendering path.

The box derives its DOM id, list id, drop-target id, and per-card URLs
from a single `container:` argument (`Sprint`, `BacklogBucket`, or
`nil` for the inbox). It exposes `header`, `empty_state`, and
`footer` slots; the header exposes `description`, `actions` (typed
`:button` slot), and `menu`.

Adds component specs for all four classes plus Lookbook previews for
the two top-level primitives. Consumers are migrated in follow-up
commits.

https://community.openproject.org/wp/73968
2026-04-30 16:46:19 +02:00
David F 68f3d335fa Add optional hidden sentinel field for Primer’s checkbox groups. wp/74398 2026-04-30 11:10:28 +02:00
Mir Bhatia 156bcb8320 Add SelectPanel components docs 2026-04-30 08:32:50 +02:00
David. 070c9d41f8 Merge branch 'dev' into feature/72383-workflows-ux-improvement-apply-workflow-setting-from-role-to-role 2026-04-21 13:51:06 +02:00
Henriette Darge fb2d0f336c Extend lookbook preview for WpInfoLine 2026-04-19 21:10:42 +02:00
Jan Sandbrink b5b95dd935 Add a component for inline macros
This is intended to become a replacement for the angular-based
<opce-macro-wp-quickinfo> component.

However, the new component should be more generic, so that it can
also be used for other cases, such as rich links to wiki pages.
2026-04-15 13:23:40 +02:00
David F 4690be175e Improve contextual information and navigation for workflow copy. wp/72383 2026-03-27 17:18:21 +01:00
Wieland Lindenthal 60e63674e8 [#70191] Allow searching for work package types and status when selecting work package for time entries (#21522) 2026-03-25 19:31:09 +01:00
Behrokh Satarnejad 7014e13d3e Merge pull request #22475 from opf/71063-create-a-pagination-component-based-on-the-primer-specification
[71063] Update PVC with new Pagination component and Banner styles
2026-03-25 14:02:04 +01:00
Mir Bhatia 465d7a1418 Merge branch 'feature/72234-workflows-ux-improvement-show-workflows-by-type' into feature/72239-workflows-ux-improvement-select-relevant-statuses 2026-03-18 13:08:56 +01:00
David F a22e03d578 Filter types on admin workflow index. 2026-03-16 08:59:35 +01:00
OpenProject Actions CI 0648468fd7 Merge branch 'release/17.2' into dev 2026-03-04 21:52:20 +00:00