If only one of them is blank, still show an error message, because it's 
more likely to be that they mistakenly left out a field)

        Patch by yvi. 

diffs (29 lines):

diff -r 81a0b4f1f303 -r c0339463c489 cgi-bin/DW/Setting/TxtMsgSetup.pm
--- a/cgi-bin/DW/Setting/TxtMsgSetup.pm Tue Oct 12 17:59:42 2010 +0800
+++ b/cgi-bin/DW/Setting/TxtMsgSetup.pm Tue Oct 12 18:05:10 2010 +0800
@@ -120,14 +120,18 @@ sub error_check {
     # only validate info if security is enforced
     my $number = $class->get_arg( $args, "txtmsg_number" );
     my $provider = $class->get_arg( $args, "txtmsg_provider" );
+
+    # only do further error checking if the user didn't delete both the number 
and the provider
     if ( $security && $security ne 'none' ) {
-        # check for something that looks like a phone number
-        $class->errors( txtmsg_number => $class->ml( 
'setting.txtmsgsetup.error.number' ) )
-            unless $number && $number =~ /^[-+0-9]{9,}$/;
-        # check for valid provider
-        my %valid = map { $_ => 1 } LJ::TextMessage::providers();
-        $class->errors( txtmsg_provider => $class->ml( 
'setting.txtmsgsetup.error.provider' ) )
-            unless $provider && $valid{$provider};
+        if ( $provider || $number ) {
+            # check for something that looks like a phone number
+            $class->errors( txtmsg_number => $class->ml( 
'setting.txtmsgsetup.error.number' ) )
+                    unless ( $number && $number =~ /^[-+0-9]{9,}$/ );
+            # check for valid provider
+            my %valid = map { $_ => 1 } LJ::TextMessage::providers();
+            $class->errors( txtmsg_provider => $class->ml( 
'setting.txtmsgsetup.error.provider' ) )
+                    unless ( $provider && $valid{$provider} );
+        }
     } else {  # warn them that new info won't be saved
         my $tminfo = LJ::TextMessage->tm_info( $u, remap_result => 1 );
         $class->errors( txtmsg_number => $class->ml( 
'setting.txtmsgsetup.error.notsecured' ) )
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to