From 701b5d3a5dab1787dabc44de73cfa2ca8b98ee98 Mon Sep 17 00:00:00 2001 From: Henriette Darge Date: Thu, 7 May 2026 11:29:21 +0200 Subject: [PATCH] Use quick filter slot for meetings filter --- Gemfile | 2 +- Gemfile.lock | 6 +-- frontend/package-lock.json | 28 +++++------ frontend/package.json | 4 +- .../index_sub_header_component.html.erb | 18 +++++-- ...eeting_filter_container_component.html.erb | 48 ------------------- .../meeting_filter_container_component.rb | 39 --------------- 7 files changed, 34 insertions(+), 111 deletions(-) delete mode 100644 modules/meeting/app/components/meetings/meeting_filter_container_component.html.erb delete mode 100644 modules/meeting/app/components/meetings/meeting_filter_container_component.rb diff --git a/Gemfile b/Gemfile index b4ed7d0ca82..02a55f91d09 100644 --- a/Gemfile +++ b/Gemfile @@ -430,4 +430,4 @@ end gem "openproject-octicons", "~>19.34.0" gem "openproject-octicons_helper", "~>19.34.0" -gem "openproject-primer_view_components", "~>0.84.5" +gem "openproject-primer_view_components", "~>0.85.0" diff --git a/Gemfile.lock b/Gemfile.lock index 30c01e5739a..f6b77d443c1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -911,7 +911,7 @@ GEM actionview openproject-octicons (= 19.34.0) railties - openproject-primer_view_components (0.84.5) + openproject-primer_view_components (0.85.0) actionview (>= 7.2.0) activesupport (>= 7.2.0) openproject-octicons (>= 19.34.0) @@ -1689,7 +1689,7 @@ DEPENDENCIES openproject-octicons (~> 19.34.0) openproject-octicons_helper (~> 19.34.0) openproject-openid_connect! - openproject-primer_view_components (~> 0.84.5) + openproject-primer_view_components (~> 0.85.0) openproject-recaptcha! openproject-reporting! openproject-resource_management! @@ -2071,7 +2071,7 @@ CHECKSUMS openproject-octicons (19.34.0) sha256=4efe8a58a2d8051b79c94b37e9a7f04fd242a4da12b50f027c3c7f441a042adc openproject-octicons_helper (19.34.0) sha256=12eb7af2214e21631369c76464ebaa30de788e1074c4b3bd0fcef7e74cb9edb4 openproject-openid_connect (1.0.0) - openproject-primer_view_components (0.84.5) sha256=307ad2135cfb283b2d1da354e545bd3e3f1dda43158f020c89ff4641e441fe86 + openproject-primer_view_components (0.85.0) sha256=16bc8358ef600f0465488a2e3c86991a9c69ed84580bd450c2dbec6f268eeaca openproject-recaptcha (1.0.0) openproject-reporting (1.0.0) openproject-resource_management (1.0.0) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 900e972c001..829c9114bd0 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -57,12 +57,12 @@ "@ng-select/ng-select": "^21.8.0", "@ngneat/content-loader": "^7.0.0", "@openproject/octicons-angular": "^19.34.0", - "@openproject/primer-view-components": "^0.84.5", + "@openproject/primer-view-components": "^0.85.0", "@openproject/reactivestates": "^3.0.1", "@primer/css": "^22.1.0", "@primer/live-region-element": "^0.8.0", "@primer/primitives": "^11.5.1", - "@primer/view-components": "npm:@openproject/primer-view-components@^0.84.5", + "@primer/view-components": "npm:@openproject/primer-view-components@^0.85.0", "@rails/request.js": "^0.0.13", "@stimulus-components/auto-submit": "^6.0.0", "@stimulus-components/reveal": "^5.0.0", @@ -7494,9 +7494,9 @@ } }, "node_modules/@openproject/primer-view-components": { - "version": "0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "license": "MIT", "dependencies": { "@github/auto-check-element": "^6.0.0", @@ -8045,9 +8045,9 @@ }, "node_modules/@primer/view-components": { "name": "@openproject/primer-view-components", - "version": "0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "license": "MIT", "dependencies": { "@github/auto-check-element": "^6.0.0", @@ -30526,9 +30526,9 @@ } }, "@openproject/primer-view-components": { - "version": "0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "requires": { "@github/auto-check-element": "^6.0.0", "@github/auto-complete-element": "^3.8.0", @@ -30866,9 +30866,9 @@ "integrity": "sha512-NB9uYfJ01FVY6zp+33EoUbJ0paS3JrWY+PqdHPebTvyRtQgL3sX8//3jWqjt3/jL81UMEulJRM2A0hPj0/vFpQ==" }, "@primer/view-components": { - "version": "npm:@openproject/primer-view-components@0.84.5", - "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.84.5.tgz", - "integrity": "sha512-Q2rliK0PC37nku6blaRvlqGuh3WJS5hr7sqdHDvdzUUBoerigRHrNsg3kNy4tUEduAcEaRpsGRGkF1z0LLo2Gw==", + "version": "npm:@openproject/primer-view-components@0.85.0", + "resolved": "https://registry.npmjs.org/@openproject/primer-view-components/-/primer-view-components-0.85.0.tgz", + "integrity": "sha512-W/MUtfOQnkYzPMF6unyVJ6U53epCfpXwP2DcEc3YVzEK6XIaPCSS9a86dK714Na8ysOSL6j9OGgsThyfvToJKw==", "requires": { "@github/auto-check-element": "^6.0.0", "@github/auto-complete-element": "^3.8.0", diff --git a/frontend/package.json b/frontend/package.json index 6eeb38022c2..7d427d1a872 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -112,12 +112,12 @@ "@ng-select/ng-select": "^21.8.0", "@ngneat/content-loader": "^7.0.0", "@openproject/octicons-angular": "^19.34.0", - "@openproject/primer-view-components": "^0.84.5", + "@openproject/primer-view-components": "^0.85.0", "@openproject/reactivestates": "^3.0.1", "@primer/css": "^22.1.0", "@primer/live-region-element": "^0.8.0", "@primer/primitives": "^11.5.1", - "@primer/view-components": "npm:@openproject/primer-view-components@^0.84.5", + "@primer/view-components": "npm:@openproject/primer-view-components@^0.85.0", "@rails/request.js": "^0.0.13", "@stimulus-components/auto-submit": "^6.0.0", "@stimulus-components/reveal": "^5.0.0", diff --git a/modules/meeting/app/components/meetings/index_sub_header_component.html.erb b/modules/meeting/app/components/meetings/index_sub_header_component.html.erb index e890fbc197b..54339876c0d 100644 --- a/modules/meeting/app/components/meetings/index_sub_header_component.html.erb +++ b/modules/meeting/app/components/meetings/index_sub_header_component.html.erb @@ -8,13 +8,23 @@ } ) ) do |subheader| - subheader.with_filter_component do + subheader.with_quick_filter do render( - Meetings::MeetingFilterContainerComponent.new( + OpPrimer::QuickFilter::SegmentedComponent.new( + name: I18n.t(:label_meeting_date_time), query: @query, - project: @project + filter_key: :time, + orders: { "future" => { start_time: :asc }, "past" => { start_time: :desc } }, + path_args: [@project, :meetings] ) - ) + ) do |component| + component.with_item(label: I18n.t(:label_upcoming_meetings_short), value: "future") + component.with_item(label: I18n.t(:label_past_meetings_short), value: "past") + end + end + + subheader.with_filter_component do + render(Meetings::MeetingFilterButtonComponent.new(query: @query, project: @project)) end if render_create_button? diff --git a/modules/meeting/app/components/meetings/meeting_filter_container_component.html.erb b/modules/meeting/app/components/meetings/meeting_filter_container_component.html.erb deleted file mode 100644 index 8acf1111fb3..00000000000 --- a/modules/meeting/app/components/meetings/meeting_filter_container_component.html.erb +++ /dev/null @@ -1,48 +0,0 @@ -<%#-- copyright -OpenProject is an open source project management software. -Copyright (C) the OpenProject GmbH - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License version 3. - -OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -Copyright (C) 2006-2013 Jean-Philippe Lang -Copyright (C) 2010-2013 the ChiliProject Team - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -See COPYRIGHT and LICENSE files for more details. - -++#%> - -<%= render(Primer::OpenProject::FlexLayout.new(align_items: :center)) do |flex| %> - <% flex.with_column(mr: 2) do %> - <%= render(Meetings::MeetingFilterButtonComponent.new(query: @query, project: @project)) %> - <% end %> - <% flex.with_column do %> - <%= render( - OpPrimer::QuickFilter::SegmentedComponent.new( - name: I18n.t(:label_meeting_date_time), - query: @query, - filter_key: :time, - orders: { "future" => { start_time: :asc }, "past" => { start_time: :desc } }, - path_args: [@project, :meetings] - ) - ) do |component| - component.with_item(label: I18n.t(:label_upcoming_meetings_short), value: "future") - component.with_item(label: I18n.t(:label_past_meetings_short), value: "past") - end %> - <% end %> -<% end %> diff --git a/modules/meeting/app/components/meetings/meeting_filter_container_component.rb b/modules/meeting/app/components/meetings/meeting_filter_container_component.rb deleted file mode 100644 index 5129d9359dd..00000000000 --- a/modules/meeting/app/components/meetings/meeting_filter_container_component.rb +++ /dev/null @@ -1,39 +0,0 @@ -# frozen_string_literal: true - -# -- copyright -# OpenProject is an open source project management software. -# Copyright (C) the OpenProject GmbH -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License version 3. -# -# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: -# Copyright (C) 2006-2013 Jean-Philippe Lang -# Copyright (C) 2010-2013 the ChiliProject Team -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# See COPYRIGHT and LICENSE files for more details. -# ++ - -module Meetings - class MeetingFilterContainerComponent < ApplicationComponent - def initialize(query:, project: nil) - super - @query = query - @project = project - end - end -end