From 330efe5a418e81dc19d56a054ab718e462ebddd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sat, 19 Dec 2020 20:31:11 +0100 Subject: [PATCH] Extract components for feeds --- app/assets/stylesheets/application.scss | 1 + app/assets/stylesheets/layout.scss | 20 ------- .../stylesheets/widgets/feeds/proposals.scss | 22 ++++++++ .../widgets/feeds/debates_component.html.erb | 14 +++++ .../widgets/feeds/debates_component.rb | 8 +++ .../feeds/participation_component.html.erb | 11 ++++ .../widgets/feeds/participation_component.rb | 17 ++++++ .../feeds/processes_component.html.erb | 21 ++++++++ .../widgets/feeds/processes_component.rb | 7 +++ .../feeds/proposals_component.html.erb | 26 ++++++++++ .../widgets/feeds/proposals_component.rb | 8 +++ app/helpers/feeds_helper.rb | 8 --- app/views/welcome/_feeds.html.erb | 52 +------------------ app/views/welcome/_processes.html.erb | 24 +-------- 14 files changed, 137 insertions(+), 102 deletions(-) create mode 100644 app/assets/stylesheets/widgets/feeds/proposals.scss create mode 100644 app/components/widgets/feeds/debates_component.html.erb create mode 100644 app/components/widgets/feeds/debates_component.rb create mode 100644 app/components/widgets/feeds/participation_component.html.erb create mode 100644 app/components/widgets/feeds/participation_component.rb create mode 100644 app/components/widgets/feeds/processes_component.html.erb create mode 100644 app/components/widgets/feeds/processes_component.rb create mode 100644 app/components/widgets/feeds/proposals_component.html.erb create mode 100644 app/components/widgets/feeds/proposals_component.rb diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 54c96e0d5..38c4185fc 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -30,3 +30,4 @@ @import "admin/*"; @import "sdg/**/*"; @import "sdg_management/*"; +@import "widgets/**/*"; diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index fae431c76..ad3f3ec75 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -2889,10 +2889,6 @@ table { .feeds-list { - .proposal { - clear: both; - } - a { &.see-all { @@ -2906,22 +2902,6 @@ table { } } -.feed-image { - display: inline-block; - height: rem-calc(120); - overflow: hidden; - width: 100%; - - @include breakpoint(medium) { - height: rem-calc(96); - } - - img { - max-width: none; - width: 100%; - } -} - .feed-description { p { diff --git a/app/assets/stylesheets/widgets/feeds/proposals.scss b/app/assets/stylesheets/widgets/feeds/proposals.scss new file mode 100644 index 000000000..863a45174 --- /dev/null +++ b/app/assets/stylesheets/widgets/feeds/proposals.scss @@ -0,0 +1,22 @@ +.feed-proposals { + + .proposal { + clear: both; + + .feed-image { + display: inline-block; + height: rem-calc(120); + overflow: hidden; + width: 100%; + + @include breakpoint(medium) { + height: rem-calc(96); + } + + img { + max-width: none; + width: 100%; + } + } + } +} diff --git a/app/components/widgets/feeds/debates_component.html.erb b/app/components/widgets/feeds/debates_component.html.erb new file mode 100644 index 000000000..2f8ad552f --- /dev/null +++ b/app/components/widgets/feeds/debates_component.html.erb @@ -0,0 +1,14 @@ +
"> +
+

<%= t("welcome.feed.most_active.#{feed.kind}") %>

+ + <% feed.items.each do |item| %> +
"> + <%= link_to item.title, url_for(item) %> +
+ <% end %> +
+ + <%= link_to t("welcome.feed.see_all_debates"), debates_path, class: "see-all" %> +
diff --git a/app/components/widgets/feeds/debates_component.rb b/app/components/widgets/feeds/debates_component.rb new file mode 100644 index 000000000..fd3bcd18b --- /dev/null +++ b/app/components/widgets/feeds/debates_component.rb @@ -0,0 +1,8 @@ +class Widgets::Feeds::DebatesComponent < ApplicationComponent + include FeedsHelper + attr_reader :feed + + def initialize(feed) + @feed = feed + end +end diff --git a/app/components/widgets/feeds/participation_component.html.erb b/app/components/widgets/feeds/participation_component.html.erb new file mode 100644 index 000000000..a4a9f9051 --- /dev/null +++ b/app/components/widgets/feeds/participation_component.html.erb @@ -0,0 +1,11 @@ +
+ <% feeds.each do |feed| %> + <% if feed_proposals?(feed) %> + <%= render Widgets::Feeds::ProposalsComponent.new(feed) %> + <% end %> + + <% if feed_debates?(feed) %> + <%= render Widgets::Feeds::DebatesComponent.new(feed) %> + <% end %> + <% end %> +
diff --git a/app/components/widgets/feeds/participation_component.rb b/app/components/widgets/feeds/participation_component.rb new file mode 100644 index 000000000..f90b731c3 --- /dev/null +++ b/app/components/widgets/feeds/participation_component.rb @@ -0,0 +1,17 @@ +class Widgets::Feeds::ParticipationComponent < ApplicationComponent + attr_reader :feeds + + def initialize(feeds) + @feeds = feeds + end + + private + + def feed_debates?(feed) + feed.kind == "debates" + end + + def feed_proposals?(feed) + feed.kind == "proposals" + end +end diff --git a/app/components/widgets/feeds/processes_component.html.erb b/app/components/widgets/feeds/processes_component.html.erb new file mode 100644 index 000000000..e492713d7 --- /dev/null +++ b/app/components/widgets/feeds/processes_component.html.erb @@ -0,0 +1,21 @@ +
+
+

<%= t("welcome.feed.most_active.#{feed.kind}") %>

+ + <% feed.items.each do |item| %> + <%= link_to url_for(item) do %> +
"> + <%= image_tag("welcome_process.png", alt: "") %> +
+ <%= t("welcome.feed.process_label") %>
+

<%= item.title %>

+
+
+

<%= item.summary %>

+

<%= t("welcome.feed.see_process") %>

+ <% end %> + <% end %> + + <%= link_to t("welcome.feed.see_all_processes"), legislation_processes_path, class: "float-right see-all" %> +
+
diff --git a/app/components/widgets/feeds/processes_component.rb b/app/components/widgets/feeds/processes_component.rb new file mode 100644 index 000000000..00780a38b --- /dev/null +++ b/app/components/widgets/feeds/processes_component.rb @@ -0,0 +1,7 @@ +class Widgets::Feeds::ProcessesComponent < ApplicationComponent + attr_reader :feed + + def initialize(feed) + @feed = feed + end +end diff --git a/app/components/widgets/feeds/proposals_component.html.erb b/app/components/widgets/feeds/proposals_component.html.erb new file mode 100644 index 000000000..18fba01e0 --- /dev/null +++ b/app/components/widgets/feeds/proposals_component.html.erb @@ -0,0 +1,26 @@ +
"> +
+

<%= t("welcome.feed.most_active.#{feed.kind}") %>

+ + <% feed.items.each do |item| %> +
row"> +
"> + <%= link_to item.title, url_for(item) %>
+

<%= item.summary %>

+
+ <% if item.image.present? %> +
+
+ <%= image_tag item.image_url(:thumb), + alt: item.image.title.unicode_normalize %> +
+
+ <% end %> +
+ <% end %> +
+ + <%= link_to t("welcome.feed.see_all_proposals"), proposals_path, class: "see-all" %> +
diff --git a/app/components/widgets/feeds/proposals_component.rb b/app/components/widgets/feeds/proposals_component.rb new file mode 100644 index 000000000..47f806b5f --- /dev/null +++ b/app/components/widgets/feeds/proposals_component.rb @@ -0,0 +1,8 @@ +class Widgets::Feeds::ProposalsComponent < ApplicationComponent + include FeedsHelper + attr_reader :feed + + def initialize(feed) + @feed = feed + end +end diff --git a/app/helpers/feeds_helper.rb b/app/helpers/feeds_helper.rb index b5882e22f..b5bf5a0c1 100644 --- a/app/helpers/feeds_helper.rb +++ b/app/helpers/feeds_helper.rb @@ -1,12 +1,4 @@ module FeedsHelper - def feed_debates?(feed) - feed.kind == "debates" - end - - def feed_proposals?(feed) - feed.kind == "proposals" - end - def feed_processes?(feed) feed.kind == "processes" end diff --git a/app/views/welcome/_feeds.html.erb b/app/views/welcome/_feeds.html.erb index 37f21df18..e200d2c42 100644 --- a/app/views/welcome/_feeds.html.erb +++ b/app/views/welcome/_feeds.html.erb @@ -1,51 +1 @@ -
- <% @feeds.each do |feed| %> - - <% if feed_proposals?(feed) %> -
"> -
-

<%= t("welcome.feed.most_active.#{feed.kind}") %>

- - <% feed.items.each do |item| %> -
row"> -
"> - <%= link_to item.title, url_for(item) %>
-

<%= item.summary %>

-
- <% if item.image.present? %> -
-
- <%= image_tag item.image_url(:thumb), - alt: item.image.title.unicode_normalize %> -
-
- <% end %> -
- <% end %> -
- - <%= link_to t("welcome.feed.see_all_proposals"), proposals_path, class: "see-all" %> -
- <% end %> - - <% if feed_debates?(feed) %> -
"> -
-

<%= t("welcome.feed.most_active.#{feed.kind}") %>

- - <% feed.items.each do |item| %> -
"> - <%= link_to item.title, url_for(item) %> -
- <% end %> -
- - <%= link_to t("welcome.feed.see_all_debates"), debates_path, class: "see-all" %> -
- <% end %> - - <% end %> -
+<%= render Widgets::Feeds::ParticipationComponent.new(@feeds) %> diff --git a/app/views/welcome/_processes.html.erb b/app/views/welcome/_processes.html.erb index 556c6e066..d859703d8 100644 --- a/app/views/welcome/_processes.html.erb +++ b/app/views/welcome/_processes.html.erb @@ -1,29 +1,7 @@
<% @feeds.each do |feed| %> - <% if feed_processes?(feed) %> -
-
-

<%= t("welcome.feed.most_active.#{feed.kind}") %>

- - <% feed.items.each do |item| %> - <%= link_to url_for(item) do %> -
"> - <%= image_tag("welcome_process.png", alt: "") %> -
- <%= t("welcome.feed.process_label") %>
-

<%= item.title %>

-
-
-

<%= item.summary %>

-

<%= t("welcome.feed.see_process") %>

- <% end %> - <% end %> - - <%= link_to t("welcome.feed.see_all_processes"), legislation_processes_path, class: "float-right see-all" %> -
-
+ <%= render Widgets::Feeds::ProcessesComponent.new(feed) %> <% end %> - <% end %>