From b5ca790b985020e2c10962e5f1e0210c4738d2da Mon Sep 17 00:00:00 2001
From: Sarah Brittain
Date: Tue, 10 Jul 2012 03:22:27 -0400
Subject: [PATCH 1/7] issue 19
---
app/assets/images/accept.png | Bin 0 -> 781 bytes
app/assets/images/cross.png | Bin 0 -> 655 bytes
app/assets/stylesheets/quadbase.css | 52 +++++++++++++++++++
app/views/devise/registrations/new.html.erb | 54 ++++++++++++++++++--
4 files changed, 102 insertions(+), 4 deletions(-)
create mode 100644 app/assets/images/accept.png
create mode 100644 app/assets/images/cross.png
diff --git a/app/assets/images/accept.png b/app/assets/images/accept.png
new file mode 100644
index 0000000000000000000000000000000000000000..89c8129a490b329f3165f32fa0781701aab417ea
GIT binary patch
literal 781
zcmV+o1M>WdP)4-QibtN)VXQDpczE`xXAkUjh%RI>;okxb7K@0kpyQ1k_Y(|Oe7$m(^
zNYX>mI||sUbmn+c3<&FnE=4u#()KBS^SH8e)Qs5i!#lY=$-1gbH6VluzU=m=EP78&5vQ
z-?+fFP-G2l&l_QzYealK$;1Rl?FkzXR&Jv@fBPNjCr#AYRyJ7UJQ0v#?)7Ott=>3`#-pV!7>9}>Q1jL)H6h&gkP@3nI=+F3nA~M>u#(n*
z8T!#8oEw&-mED4!h4s!N@Jo3S7N&Q6%6l3}nlcd~X@>;uelvPsSkXIgg~e+^T1zSf
z3SNj(5%jK~i8@b;CuEoyT++I
zn$b9r%cFfhHe2K68PkBu*@^<$y+7xQ$wJ~;c5aBx$R=xq*41Wo
zhwQus_VOgm0hughj}MhOvs#{>Vg09Y8WxjWUJY5YW
zJ?&8eG!59Cz=|E%Ns@013KLWOLV)CObIIj_5{>{#k%TEAMs_GbdDV`x-iYsGH
z#=Z{USAQA>NY(}X7=3{K8#
Password
<%= f.password_field :password %>
+
+
Password must meet the following requirements:
+
+ At least one letter
+ At least one number
+ At least 8 characters
+
+
Password Confirmation
<%= f.password_field :password_confirmation %>
@@ -41,15 +49,53 @@
<%# JS to enable/disable the submit button dependent on if the agree checkbox is checked %>
<% content_for :javascript do %>
<%= javascript_tag do %>
+var len = false;
+var letter = false;
+var number = false;
$('#agreement_checkbox').live('click', function() {
- if ($('#agreement_checkbox').is(':checked')) {
- $('#register_submit').removeAttr('disabled');
- $('#register_submit').removeClass('ui-state-disabled');
- }
+ if ($('#agreement_checkbox').is(':checked') & (len == true)& (letter == true) & (number == true)){
+ $('#register_submit').removeAttr('disabled');
+ $('#register_submit').removeClass('ui-state-disabled');
+
+ }
else {
$('#register_submit').attr('disabled', 'disabled');
$('#register_submit').addClass('ui-state-disabled');
}
});
+$('input[type=password]').keyup(function(){
+ //set password variable
+ var pswd = $(this).val();
+
+ //validate the length
+ if (pswd.length < 8) {
+ $('#length').removeClass('valid').addClass('invalid');
+ len = false;
+ } else {
+ $('#length').removeClass('invalid').addClass('valid');
+ len = true;
+ }
+ //validate letter
+ if (pswd.match(/[A-z]/)){
+ $('#letter').removeClass('invalid').addClass('valid');
+ letter = true;
+ } else {
+ $('#letter').removeClass('valid').addClass('invalid');
+ letter = false;
+ }
+ //validate number
+ if (pswd.match(/\d/)){
+ $('#number').removeClass('invalid').addClass('valid');
+ number = true;
+ } else {
+ $('#number').removeClass('valid').addClass('invalid');
+ number = false;
+ }
+}).focus(function(){
+ $('#pswd_info').show();
+}).blur(function(){
+ $('#pswd_info').hide();
+});
<% end %>
<% end %>
+
From 1861b7e9fc5772cc675e2725b6f06f715d9b8afb Mon Sep 17 00:00:00 2001
From: Sarah Brittain
Date: Wed, 11 Jul 2012 15:18:30 -0400
Subject: [PATCH 2/7] fixed error where user could undo correct password
---
app/models/user.rb | 2 +-
app/views/devise/registrations/new.html.erb | 13 +++++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/app/models/user.rb b/app/models/user.rb
index 1ac0f1a..17419fe 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -37,7 +37,7 @@ class User < ActiveRecord::Base
validates_presence_of :first_name, :last_name, :username, :user_profile
validates_uniqueness_of :username, :case_sensitive => false
- validates_length_of :username, :in => 3..40
+ validates_length_of :username, :in => 8..40
validates_format_of :username, :with => /^[A-Za-z\d_]+$/ # alphanum + _
validate :validate_username_unchanged, :on => :update
diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb
index bdf1255..fbbd60c 100644
--- a/app/views/devise/registrations/new.html.erb
+++ b/app/views/devise/registrations/new.html.erb
@@ -63,6 +63,19 @@ $('#agreement_checkbox').live('click', function() {
$('#register_submit').addClass('ui-state-disabled');
}
});
+
+$('#password_field').focus(function(){
+ if ($('#agreement_checkbox').is(':checked') & (len == true)& (letter == true) & (number == true)){
+ $('#register_submit').removeAttr('disabled');
+ $('#register_submit').removeClass('ui-state-disabled');
+
+ }
+ else {
+ $('#register_submit').attr('disabled', 'disabled');
+ $('#register_submit').addClass('ui-state-disabled');
+ }
+});
+
$('input[type=password]').keyup(function(){
//set password variable
var pswd = $(this).val();
From e7a129d70ff42cdf0b8df8c5fa9e29ee1e5e3c73 Mon Sep 17 00:00:00 2001
From: Sarah Brittain
Date: Thu, 19 Jul 2012 06:08:49 -0400
Subject: [PATCH 3/7] fixed checkbox issue
---
app/views/devise/registrations/new.html.erb | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb
index fbbd60c..fccf93a 100644
--- a/app/views/devise/registrations/new.html.erb
+++ b/app/views/devise/registrations/new.html.erb
@@ -64,13 +64,17 @@ $('#agreement_checkbox').live('click', function() {
}
});
-$('#password_field').focus(function(){
+$('input[type=password]').keyup(function(){
if ($('#agreement_checkbox').is(':checked') & (len == true)& (letter == true) & (number == true)){
$('#register_submit').removeAttr('disabled');
$('#register_submit').removeClass('ui-state-disabled');
}
- else {
+ else if ($(len == false) | (letter == false) | (number == false)){
+ $('#register_submit').attr('disabled', 'disabled');
+ $('#register_submit').addClass('ui-state-disabled');
+ }
+ else {
$('#register_submit').attr('disabled', 'disabled');
$('#register_submit').addClass('ui-state-disabled');
}
From 24eee4c1af47c6e84c4e4e8759ff03938baa094c Mon Sep 17 00:00:00 2001
From: Sarah Brittain
Date: Thu, 19 Jul 2012 06:11:23 -0400
Subject: [PATCH 4/7] fixed username mistake in user.rb
---
app/models/user.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/models/user.rb b/app/models/user.rb
index 17419fe..1ac0f1a 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -37,7 +37,7 @@ class User < ActiveRecord::Base
validates_presence_of :first_name, :last_name, :username, :user_profile
validates_uniqueness_of :username, :case_sensitive => false
- validates_length_of :username, :in => 8..40
+ validates_length_of :username, :in => 3..40
validates_format_of :username, :with => /^[A-Za-z\d_]+$/ # alphanum + _
validate :validate_username_unchanged, :on => :update
From 26a337b7b768797323b0a4d37ebae5d0f21980c0 Mon Sep 17 00:00:00 2001
From: Sarah Brittain
Date: Tue, 24 Jul 2012 14:23:12 -0400
Subject: [PATCH 5/7] making code better
---
app/views/devise/registrations/new.html.erb | 41 ++++++++++-----------
1 file changed, 20 insertions(+), 21 deletions(-)
diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb
index fccf93a..a8e9802 100644
--- a/app/views/devise/registrations/new.html.erb
+++ b/app/views/devise/registrations/new.html.erb
@@ -52,32 +52,29 @@
var len = false;
var letter = false;
var number = false;
-$('#agreement_checkbox').live('click', function() {
- if ($('#agreement_checkbox').is(':checked') & (len == true)& (letter == true) & (number == true)){
- $('#register_submit').removeAttr('disabled');
- $('#register_submit').removeClass('ui-state-disabled');
+
+$.fn.check_password = function(){
+ if ($('#agreement_checkbox').is(':checked') & (len == true)& (letter == true) & (number == true)){
+ $('#register_submit').removeAttr('disabled');
+ $('#register_submit').removeClass('ui-state-disabled');
+ }
+ // else if ($(len == false) | (letter == false) | (number == false)){
+ $('#register_submit').attr('disabled', 'disabled');
+ $('#register_submit').addClass('ui-state-disabled');
}
- else {
- $('#register_submit').attr('disabled', 'disabled');
- $('#register_submit').addClass('ui-state-disabled');
- }
+ else {
+ $('#register_submit').attr('disabled', 'disabled');
+ $('#register_submit').addClass('ui-state-disabled');
+ }
+}
+
+$('#agreement_checkbox').click(function() {
+ $(this).check_password();
});
$('input[type=password]').keyup(function(){
- if ($('#agreement_checkbox').is(':checked') & (len == true)& (letter == true) & (number == true)){
- $('#register_submit').removeAttr('disabled');
- $('#register_submit').removeClass('ui-state-disabled');
-
- }
- else if ($(len == false) | (letter == false) | (number == false)){
- $('#register_submit').attr('disabled', 'disabled');
- $('#register_submit').addClass('ui-state-disabled');
- }
- else {
- $('#register_submit').attr('disabled', 'disabled');
- $('#register_submit').addClass('ui-state-disabled');
- }
+ $(this).check_password();
});
$('input[type=password]').keyup(function(){
@@ -108,6 +105,8 @@ $('input[type=password]').keyup(function(){
$('#number').removeClass('valid').addClass('invalid');
number = false;
}
+
+
}).focus(function(){
$('#pswd_info').show();
}).blur(function(){
From 40366516fe50ef81471e696f45d3cdf30f018539 Mon Sep 17 00:00:00 2001
From: Sarah Brittain
Date: Tue, 24 Jul 2012 18:36:29 -0400
Subject: [PATCH 6/7] abstracted function working but keyup not working the way
it should
---
app/views/devise/registrations/new.html.erb | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb
index a8e9802..3de0628 100644
--- a/app/views/devise/registrations/new.html.erb
+++ b/app/views/devise/registrations/new.html.erb
@@ -52,14 +52,15 @@
var len = false;
var letter = false;
var number = false;
+var confirm = false;
-$.fn.check_password = function(){
- if ($('#agreement_checkbox').is(':checked') & (len == true)& (letter == true) & (number == true)){
+jQuery.fn.check_password = function(){
+ if ($('#agreement_checkbox').is(':checked') &(len == true)& (letter == true) & (number == true)){
$('#register_submit').removeAttr('disabled');
$('#register_submit').removeClass('ui-state-disabled');
}
- // else if ($(len == false) | (letter == false) | (number == false)){
+ else if ($(len == false) | (letter == false) | (number == false)){
$('#register_submit').attr('disabled', 'disabled');
$('#register_submit').addClass('ui-state-disabled');
}
@@ -69,7 +70,7 @@ $.fn.check_password = function(){
}
}
-$('#agreement_checkbox').click(function() {
+$('#agreement_checkbox').click(function(){
$(this).check_password();
});
@@ -105,6 +106,7 @@ $('input[type=password]').keyup(function(){
$('#number').removeClass('valid').addClass('invalid');
number = false;
}
+
}).focus(function(){
From bea7a5e5158dcbcb078054101b6b429833f433c9 Mon Sep 17 00:00:00 2001
From: Sarah Brittain
Date: Wed, 25 Jul 2012 07:15:56 -0400
Subject: [PATCH 7/7] password works correctly and doesn't repeat code
---
app/views/devise/registrations/new.html.erb | 52 ++++++++++++---------
1 file changed, 31 insertions(+), 21 deletions(-)
diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb
index 3de0628..18ae022 100644
--- a/app/views/devise/registrations/new.html.erb
+++ b/app/views/devise/registrations/new.html.erb
@@ -18,7 +18,7 @@
Email
<%= f.email_field :email %>
Password
- <%= f.password_field :password %>
+ <%= f.password_field :password, :id => 'pswd' %>
Password must meet the following requirements:
@@ -28,7 +28,7 @@
Password Confirmation
- <%= f.password_field :password_confirmation %>
+ <%= f.password_field :password_confirmation, :id => 'confirm' %>
<% if @enable_recaptcha %>
<%= recaptcha_tags :ssl => true %>
@@ -55,7 +55,11 @@ var number = false;
var confirm = false;
jQuery.fn.check_password = function(){
- if ($('#agreement_checkbox').is(':checked') &(len == true)& (letter == true) & (number == true)){
+ if($('#confirm').val().length == 0){
+ $('#register_submit').attr('disabled', 'disabled');
+ $('#register_submit').addClass('ui-state-disabled');
+ }
+ else if ($('#agreement_checkbox').is(':checked') &(len == true)& (letter == true) & (number == true)){
$('#register_submit').removeAttr('disabled');
$('#register_submit').removeClass('ui-state-disabled');
@@ -70,20 +74,10 @@ jQuery.fn.check_password = function(){
}
}
-$('#agreement_checkbox').click(function(){
- $(this).check_password();
-});
-
-$('input[type=password]').keyup(function(){
- $(this).check_password();
-});
-
-$('input[type=password]').keyup(function(){
- //set password variable
- var pswd = $(this).val();
-
+jQuery.fn.validate_password = function(){
+ var password = $(this).val();
//validate the length
- if (pswd.length < 8) {
+ if (password.length < 8) {
$('#length').removeClass('valid').addClass('invalid');
len = false;
} else {
@@ -91,7 +85,7 @@ $('input[type=password]').keyup(function(){
len = true;
}
//validate letter
- if (pswd.match(/[A-z]/)){
+ if (password.match(/[A-z]/)){
$('#letter').removeClass('invalid').addClass('valid');
letter = true;
} else {
@@ -99,21 +93,37 @@ $('input[type=password]').keyup(function(){
letter = false;
}
//validate number
- if (pswd.match(/\d/)){
+ if (password.match(/\d/)){
$('#number').removeClass('invalid').addClass('valid');
number = true;
} else {
$('#number').removeClass('valid').addClass('invalid');
number = false;
- }
-
+ }
+}
-
+$('#agreement_checkbox').click(function(){
+ $(this).check_password();
+});
+
+$('#pswd').keyup(function(){
+ $(this).validate_password();
+ $(this).check_password();
+}).focus(function(){
+ $('#pswd_info').show();
+}).blur(function(){
+ $('#pswd_info').hide();
+});
+$('#confirm').keyup(function(){
+ $(this).validate_password();
+ $(this).check_password();
}).focus(function(){
$('#pswd_info').show();
}).blur(function(){
$('#pswd_info').hide();
});
+
+
<% end %>
<% end %>