diff --git a/app/controllers/budgets/investments_controller.rb b/app/controllers/budgets/investments_controller.rb
index c48ce7fc4..119040e74 100644
--- a/app/controllers/budgets/investments_controller.rb
+++ b/app/controllers/budgets/investments_controller.rb
@@ -147,6 +147,10 @@ module Budgets
TagCloud.new(Budget::Investment, params[:search])
end
+ def set_view
+ @view = (params[:view] == "minimal") ? "minimal" : "default"
+ end
+
def investments
if @current_order == 'random'
@investments.apply_filters_and_search(@budget, params, @current_filter)
diff --git a/app/views/budgets/investments/_view_mode.html.erb b/app/views/budgets/investments/_view_mode.html.erb
new file mode 100644
index 000000000..4ec42fc45
--- /dev/null
+++ b/app/views/budgets/investments/_view_mode.html.erb
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ <%= t("shared.view_mode.title") %>
+
+
+
+ <% if investments_default_view? %>
+ -
+ <%= t("shared.view_mode.cards") %>
+
+ -
+ <%= link_to t("shared.view_mode.list"), investments_minimal_view_path %>
+
+ <% else %>
+ -
+ <%= link_to t("shared.view_mode.cards"), investments_minimal_view_path %>
+
+ -
+ <%= t("shared.view_mode.list") %>
+
+ <% end %>
+
+
+
diff --git a/app/views/budgets/investments/index.html.erb b/app/views/budgets/investments/index.html.erb
index 258e2855e..a0b4c2ba9 100644
--- a/app/views/budgets/investments/index.html.erb
+++ b/app/views/budgets/investments/index.html.erb
@@ -50,6 +50,7 @@
<% elsif @heading.present? %>
+ <%= render "view_mode" %>
<% end %>
diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb
index 6257921dd..f4212b41f 100644
--- a/spec/features/budgets/investments_spec.rb
+++ b/spec/features/budgets/investments_spec.rb
@@ -43,6 +43,37 @@ feature 'Budget Investments' do
end
end
+ scenario 'Index view mode' do
+ investments = [create(:budget_investment, heading: heading),
+ create(:budget_investment, heading: heading),
+ create(:budget_investment, heading: heading)]
+
+ visit budget_path(budget)
+ click_link 'Health'
+
+ click_button 'View mode'
+
+ click_link 'List'
+
+ investments.each do |investment|
+ within('#budget-investments') do
+ expect(page).to have_link investment.title
+ expect(page).to_not have_content(investment.description)
+ end
+ end
+
+ click_button 'View mode'
+
+ click_link 'Cards'
+
+ investments.each do |investment|
+ within('#budget-investments') do
+ expect(page).to have_link investment.title
+ expect(page).to have_content(investment.description)
+ end
+ end
+ end
+
scenario 'Index should show investment descriptive image only when is defined' do
investment = create(:budget_investment, heading: heading)
investment_with_image = create(:budget_investment, heading: heading)