Skip to content
Snippets Groups Projects
Commit 726244f1 authored by azul's avatar azul
Browse files

Merge pull request #156 from azul/bugfix/5548-hide-signup-forms-without-js

hide srp forms when no js is available
parents cf6aa0a6 616313b4
No related branches found
No related tags found
No related merge requests found
...@@ -160,6 +160,8 @@ ...@@ -160,6 +160,8 @@
// //
$(document).ready(function() { $(document).ready(function() {
$('.hidden.js-show').removeClass('hidden');
$('.js-show').show();
$('#new_user').submit(prevent_default); $('#new_user').submit(prevent_default);
$('#new_user').submit(clear_field_errors); $('#new_user').submit(clear_field_errors);
$('#new_user').submit(validate_password_length); $('#new_user').submit(validate_password_length);
......
module UsersHelper module UsersHelper
def user_form_class(*classes) def user_form_class(*classes)
(classes + ['user', 'form', (@user.new_record? ? 'new' : 'edit')]).compact.join(' ') (classes + ['user', 'hidden', 'js-show', (@user.new_record? ? 'new' : 'edit')]).compact.join(' ')
end end
def wrapped(item, options = {}) def wrapped(item, options = {})
......
.span1 .span1
.span9 .span9
= render :partial => 'users/warnings'
%h2=t :login %h2=t :login
.lead=t :login_info .lead=t :login_info
= simple_form_for [:api, @session], :validate => true, :html => { :id => :new_session, :class => 'form-horizontal' } do |f| = render :partial => 'users/warnings'
= simple_form_for [:api, @session], validate: true, html: { id: :new_session, class: 'form-horizontal hidden js-show', style: "display:none;" } do |f|
= f.input :login, :required => false, :label => t(:username), :input_html => { :id => :srp_username } = f.input :login, :required => false, :label => t(:username), :input_html => { :id => :srp_username }
= f.input :password, :required => false, :input_html => { :id => :srp_password } = f.input :password, :required => false, :input_html => { :id => :srp_password }
= f.button :wrapped, value: t(:login), cancel: home_path = f.button :wrapped, value: t(:login), cancel: home_path
-# -#
-# This form is handled entirely by javascript, so take care when changing element ids. -# This form is handled entirely by javascript
-# Please take care when changing element ids.
-#
-# The form is hidden when no js is available
-# to prevent submission in the clear.
-# -#
- form_options = {:url => '/not-used', :html => {:id => 'new_user', :class => user_form_class('form-horizontal')}, :validate => true} - form_options = {url: '/not-used', html: {id: 'new_user', class: user_form_class('form-horizontal'), style: 'display:none'}, validate: true}
.span1 .span1
.span9 .span9
= render :partial => 'warnings'
%h2=t :signup %h2=t :signup
.lead=t :signup_info .lead=t :signup_info
= render :partial => 'warnings'
= simple_form_for(@user, form_options) do |f| = simple_form_for(@user, form_options) do |f|
= f.input :login, :label => t(:username), :required => false, :input_html => { :id => :srp_username } = f.input :login, :label => t(:username), :required => false, :input_html => { :id => :srp_username }
= f.input :password, :required => false, :validate => true, :input_html => { :id => :srp_password } = f.input :password, :required => false, :validate => true, :input_html => { :id => :srp_password }
......
...@@ -123,6 +123,20 @@ class AccountTest < BrowserIntegrationTest ...@@ -123,6 +123,20 @@ class AccountTest < BrowserIntegrationTest
assert page.has_content?("server failed") assert page.has_content?("server failed")
end end
test "does not render signup form without js" do
Capybara.current_driver = :rack_test # no js
visit '/signup'
assert page.has_no_content?("Username")
assert page.has_no_content?("Password")
end
test "does not render login form without js" do
Capybara.current_driver = :rack_test # no js
visit '/login'
assert page.has_no_content?("Username")
assert page.has_no_content?("Password")
end
def attempt_login(username, password) def attempt_login(username, password)
click_on 'Log In' click_on 'Log In'
fill_in 'Username', with: username fill_in 'Username', with: username
......
...@@ -60,7 +60,6 @@ class BrowserIntegrationTest < ActionDispatch::IntegrationTest ...@@ -60,7 +60,6 @@ class BrowserIntegrationTest < ActionDispatch::IntegrationTest
end end
def save_state def save_state
page.save_screenshot screenshot_path
File.open(logfile_path, 'w') do |test_log| File.open(logfile_path, 'w') do |test_log|
test_log.puts self.class.name test_log.puts self.class.name
test_log.puts "=========================" test_log.puts "========================="
...@@ -76,6 +75,9 @@ class BrowserIntegrationTest < ActionDispatch::IntegrationTest ...@@ -76,6 +75,9 @@ class BrowserIntegrationTest < ActionDispatch::IntegrationTest
test_log.puts "------------------------" test_log.puts "------------------------"
test_log.puts `tail log/test.log -n 200` test_log.puts `tail log/test.log -n 200`
end end
page.save_screenshot screenshot_path
# some drivers do not support screenshots
rescue Capybara::NotSupportedByDriverError
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment