From cf5863b29fbb77c3cac24565cea3cfde22c89226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sun, 23 Feb 2025 14:49:20 +0100 Subject: [PATCH] Move admin proposals index view to a component This way we can use the `header` method to simplify it a bit. --- .../admin/proposals/index_component.html.erb | 39 +++++++++++++++++ .../admin/proposals/index_component.rb | 12 ++++++ app/views/admin/proposals/index.html.erb | 42 +------------------ 3 files changed, 52 insertions(+), 41 deletions(-) create mode 100644 app/components/admin/proposals/index_component.html.erb create mode 100644 app/components/admin/proposals/index_component.rb diff --git a/app/components/admin/proposals/index_component.html.erb b/app/components/admin/proposals/index_component.html.erb new file mode 100644 index 000000000..d1637739d --- /dev/null +++ b/app/components/admin/proposals/index_component.html.erb @@ -0,0 +1,39 @@ +<% provide :main_class, "admin-proposals-index" %> + +<%= header %> + +<% if proposals.any? %> + <%= render Admin::SearchComponent.new(label: t("admin.shared.search.label.proposals")) %> + +

<%= page_entries_info proposals %>

+ + + + + + + + + + + + + + <% proposals.each do |proposal| %> + + + + + + + + <% end %> + +
<%= t("admin.proposals.index.id") %><%= Proposal.human_attribute_name(:title) %><%= t("admin.proposals.index.author") %><%= t("admin.proposals.index.milestones") %><%= t("admin.proposals.index.selected") %>
<%= proposal.id %><%= link_to proposal.title, admin_proposal_path(proposal) %><%= proposal.author.username %><%= proposal.milestones.count %><%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %>
+ + <%= paginate proposals %> +<% else %> +
+ <%= t("admin.proposals.index.no_proposals") %> +
+<% end %> diff --git a/app/components/admin/proposals/index_component.rb b/app/components/admin/proposals/index_component.rb new file mode 100644 index 000000000..ba35ee196 --- /dev/null +++ b/app/components/admin/proposals/index_component.rb @@ -0,0 +1,12 @@ +class Admin::Proposals::IndexComponent < ApplicationComponent + include Header + attr_reader :proposals + + def initialize(proposals) + @proposals = proposals + end + + def title + t("admin.proposals.index.title") + end +end diff --git a/app/views/admin/proposals/index.html.erb b/app/views/admin/proposals/index.html.erb index 27964da5b..06d6de765 100644 --- a/app/views/admin/proposals/index.html.erb +++ b/app/views/admin/proposals/index.html.erb @@ -1,41 +1 @@ -<% provide(:title) do %> - <%= t("admin.header.title") %> - <%= t("admin.proposals.index.title") %> -<% end %> - -

<%= t("admin.proposals.index.title") %>

- -<% if @proposals.any? %> - <%= render Admin::SearchComponent.new(label: t("admin.shared.search.label.proposals")) %> - -

<%= page_entries_info @proposals %>

- - - - - - - - - - - - - - <% @proposals.each do |proposal| %> - - - - - - - - <% end %> - -
<%= t("admin.proposals.index.id") %><%= Proposal.human_attribute_name(:title) %><%= t("admin.proposals.index.author") %><%= t("admin.proposals.index.milestones") %><%= t("admin.proposals.index.selected") %>
<%= proposal.id %><%= link_to proposal.title, admin_proposal_path(proposal) %><%= proposal.author.username %><%= proposal.milestones.count %><%= render Admin::Proposals::ToggleSelectionComponent.new(proposal) %>
- - <%= paginate @proposals %> -<% else %> -
- <%= t("admin.proposals.index.no_proposals") %> -
-<% end %> +<%= render Admin::Proposals::IndexComponent.new(@proposals) %>