diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index 65f44bbfb..8aede0497 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -159,14 +159,6 @@ $table-header: #ecf1f6; right: 12px; } - .menu-icon { - - &::after { - background: #000; - box-shadow: 0 7px 0 #000, 0 14px 0 #000; - } - } - .notifications.unread-notifications::after { color: $admin-color; } diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index e4fd19f45..d94a1224b 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -667,16 +667,16 @@ body > header, } } +.menu-button { + border: 1px solid; + border-radius: $button-radius; + color: inherit; + padding: 0.6em; +} + .menu-icon { - - &.dark { - - &:hover::after, - &::after { - background: #fff; - box-shadow: 0 7px 0 #fff, 0 14px 0 #fff; - } - } + @include hamburger($color: currentcolor, $color-hover: currentcolor); + cursor: inherit; } .title-bar { diff --git a/app/views/layouts/_admin_header.html.erb b/app/views/layouts/_admin_header.html.erb index 1995fa7ff..73f93c602 100644 --- a/app/views/layouts/_admin_header.html.erb +++ b/app/views/layouts/_admin_header.html.erb @@ -11,8 +11,10 @@
- -
<%= t("application.menu") %>
+
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 346582e84..d11c57fe4 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -16,8 +16,10 @@
- - <%= t("application.menu") %> +

diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 9bff58db0..b24cd6902 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -98,6 +98,15 @@ RSpec.configure do |config| Delayed::Worker.delay_jobs = false end + config.before(:each, :small_window) do + @window_size = Capybara.current_window.size + Capybara.current_window.resize_to(639, 479) + end + + config.after(:each, :small_window) do + Capybara.current_window.resize_to(*@window_size) + end + config.before(:each, :remote_translations) do allow(RemoteTranslations::Microsoft::AvailableLocales) .to receive(:available_locales).and_return(I18n.available_locales.map(&:to_s)) diff --git a/spec/system/admin_spec.rb b/spec/system/admin_spec.rb index 3f115c7dc..88e8000da 100644 --- a/spec/system/admin_spec.rb +++ b/spec/system/admin_spec.rb @@ -104,4 +104,22 @@ describe "Admin" do expect(page).to have_link "Participatory budgets" end end + + describe "Menu button", :admin do + scenario "is not present on large screens" do + visit admin_root_path + + expect(page).not_to have_button "Menu" + end + + scenario "toggles the menu on small screens", :small_window do + visit admin_root_path + + expect(page).not_to have_link "My account" + + click_button "Menu" + + expect(page).to have_link "My account" + end + end end diff --git a/spec/system/debates_spec.rb b/spec/system/debates_spec.rb index b7714387c..217af3655 100644 --- a/spec/system/debates_spec.rb +++ b/spec/system/debates_spec.rb @@ -103,17 +103,7 @@ describe "Debates" do end end - context "On small devices" do - let!(:window_size) { Capybara.current_window.size } - - before do - Capybara.current_window.resize_to(639, 479) - end - - after do - Capybara.current_window.resize_to(*window_size) - end - + context "On small devices", :small_window do scenario "Shows links to share on telegram and whatsapp too" do visit debate_path(create(:debate)) diff --git a/spec/system/home_spec.rb b/spec/system/home_spec.rb index 0cacb822b..f1482e2d9 100644 --- a/spec/system/home_spec.rb +++ b/spec/system/home_spec.rb @@ -138,6 +138,24 @@ describe "Home" do end end + describe "Menu button" do + scenario "is not present on large screens" do + visit root_path + + expect(page).not_to have_button "Menu" + end + + scenario "toggles the menu on small screens", :small_window do + visit root_path + + expect(page).not_to have_link "Sign in" + + click_button "Menu" + + expect(page).to have_link "Sign in" + end + end + scenario "if there are cards, the 'featured' title will render" do create(:widget_card, title: "Card text", diff --git a/spec/system/proposals_spec.rb b/spec/system/proposals_spec.rb index 0b104ea8a..172adfe5d 100644 --- a/spec/system/proposals_spec.rb +++ b/spec/system/proposals_spec.rb @@ -148,17 +148,7 @@ describe "Proposals" do end end - context "On small devices" do - let!(:window_size) { Capybara.current_window.size } - - before do - Capybara.current_window.resize_to(639, 479) - end - - after do - Capybara.current_window.resize_to(*window_size) - end - + context "On small devices", :small_window do scenario "Shows links to share on telegram and whatsapp too" do visit proposal_path(create(:proposal)) @@ -253,17 +243,7 @@ describe "Proposals" do end end - describe "Show sticky support button on mobile screens" do - let!(:window_size) { Capybara.current_window.size } - - before do - Capybara.current_window.resize_to(640, 480) - end - - after do - Capybara.current_window.resize_to(*window_size) - end - + describe "Show sticky support button on small screens", :small_window do scenario "On a first visit" do proposal = create(:proposal) visit proposal_path(proposal)