Don't show disabled form elements when you can't use them; instead, 
display an informative error message stating that this isn't available for your 
account level.

        Patch by denise 

diffs (101 lines):

diff -r a89bc1edcff9 -r 56e73178fde7 bin/upgrading/en.dat
--- a/bin/upgrading/en.dat      Wed Jun 02 12:00:17 2010 +0800
+++ b/bin/upgrading/en.dat      Wed Jun 02 12:27:54 2010 +0800
@@ -2583,6 +2583,10 @@ setting.emailposting.error.pin.invalidac
 
 setting.emailposting.label=Email Posting
 
+setting.emailposting.notavailable=Your account level does not permit you to 
use this feature.
+
+setting.emailposting.notavailable.upgrade=Would you like to <a 
[[aopts]]>upgrade your account?</a>
+
 setting.emailposting.option=Post to your journal by sending an email from one 
of your defined email addresses to username+...@[[domain]]. View more <a 
[[aopts]]>posting instructions</a>.
 
 setting.emailposting.option.addr=Email Address:
diff -r a89bc1edcff9 -r 56e73178fde7 cgi-bin/LJ/Setting/EmailPosting.pm
--- a/cgi-bin/LJ/Setting/EmailPosting.pm        Wed Jun 02 12:00:17 2010 +0800
+++ b/cgi-bin/LJ/Setting/EmailPosting.pm        Wed Jun 02 12:27:54 2010 +0800
@@ -50,46 +50,48 @@ sub option {
 
     $ret .= "<table class='setting_table' cellspacing='5' cellpadding='0'>";
 
-    foreach my $i (0..2) {
-        $ret .= "<tr><td class='setting_label'><label 
for='${key}emailposting_addr$i'>" . 
$class->ml('setting.emailposting.option.addr') . "</label></td>";
+    if ( $can_emailpost ) {
+        foreach my $i (0..2) {
+            $ret .= "<tr><td class='setting_label'><label 
for='${key}emailposting_addr$i'>" . 
$class->ml('setting.emailposting.option.addr') . "</label></td>";
+            $ret .= "<td>" . LJ::html_text({
+                name => "${key}emailposting_addr$i",
+                id => "${key}emailposting_addr$i",
+                value => $class->get_arg($args, "emailposting_addr$i") || 
$addresses[$i] || "",
+                size => 40,
+                maxlength => 80,
+            });
+            $ret .= " <label for='${key}emailposting_senderrors$i' 
style='color: #000;'>" . $class->ml('setting.emailposting.option.senderrors') . 
"</label>";
+            $ret .= " " . LJ::html_check({
+                name => "${key}emailposting_senderrors$i",
+                id => "${key}emailposting_senderrors$i",
+                value => 1,
+                selected => $class->get_arg($args, 
"emailposting_senderrors$i") || ($addresses[$i] && $addrlist->{$addresses[$i]} 
&& $addrlist->{$addresses[$i]}->{get_errors}) ? 1 : 0,
+            });
+            my $addr_errdiv = $class->errdiv($errs, "emailposting_addr$i");
+            $ret .= "<br />$addr_errdiv" if $addr_errdiv;
+            $ret .= "</td></tr>";
+        }
+
+        $ret .= "<tr><td class='setting_label'><label 
for='${key}emailposting_pin'>" . $class->ml('setting.emailposting.option.pin') 
. "</label></td>";
         $ret .= "<td>" . LJ::html_text({
-            name => "${key}emailposting_addr$i",
-            id => "${key}emailposting_addr$i",
-            value => $class->get_arg($args, "emailposting_addr$i") || 
$addresses[$i] || "",
-            disabled => $can_emailpost ? 0 : 1,
-            size => 40,
-            maxlength => 80,
-        });
-        $ret .= " <label for='${key}emailposting_senderrors$i' style='color: 
#000;'>" . $class->ml('setting.emailposting.option.senderrors') . "</label>";
-        $ret .= " " . LJ::html_check({
-            name => "${key}emailposting_senderrors$i",
-            id => "${key}emailposting_senderrors$i",
-            value => 1,
-            selected => $class->get_arg($args, "emailposting_senderrors$i") || 
($addresses[$i] && $addrlist->{$addresses[$i]} && 
$addrlist->{$addresses[$i]}->{get_errors}) ? 1 : 0,
-            disabled => $can_emailpost ? 0 : 1,
-        });
-        my $addr_errdiv = $class->errdiv($errs, "emailposting_addr$i");
-        $ret .= "<br />$addr_errdiv" if $addr_errdiv;
+            name => "${key}emailposting_pin",
+            id => "${key}emailposting_pin",
+            type => "password",
+            value => $pin || "",
+            size => 10,
+           maxlength => 20,
+        }) . " <span class='smaller'>" . 
$class->ml('setting.emailposting.option.pin.note') . "</span>";
+        my $pin_errdiv = $class->errdiv($errs, "emailposting_pin");
+        $ret .= "<br />$pin_errdiv" if $pin_errdiv;
         $ret .= "</td></tr>";
-    }
 
-    $ret .= "<tr><td class='setting_label'><label 
for='${key}emailposting_pin'>" . $class->ml('setting.emailposting.option.pin') 
. "</label></td>";
-    $ret .= "<td>" . LJ::html_text({
-        name => "${key}emailposting_pin",
-        id => "${key}emailposting_pin",
-        type => "password",
-        value => $pin || "",
-        disabled => $can_emailpost ? 0 : 1,
-        size => 10,
-        maxlength => 20,
-    }) . " <span class='smaller'>" . 
$class->ml('setting.emailposting.option.pin.note') . "</span>";
-    my $pin_errdiv = $class->errdiv($errs, "emailposting_pin");
-    $ret .= "<br />$pin_errdiv" if $pin_errdiv;
-    $ret .= "</td></tr>";
-
-    if ($can_emailpost) {
         $ret .= "<tr><td>&nbsp;</td>";
         $ret .= "<td><a href='$LJ::SITEROOT/manage/emailpost'>" . 
$class->ml('setting.emailposting.option.advanced') . "</a></td></tr>";
+
+    } else {
+        $ret .= $class->ml( 'setting.emailposting.notavailable' );
+        $ret .= " " . $class->ml( 'setting.emailposting.notavailable.upgrade', 
{ aopts => "href='$LJ::SITEROOT/shop'" } )
+            if LJ::is_enabled( 'payments' );
     }
 
     $ret .= "</table>";
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to