Can input reason when deleting; reason will be displayed on the profile 
page and on the journal.

        Patch by denise. 

diffs (122 lines):

diff -r 49b1b53b9bea -r 56167fd880c4 bin/upgrading/en.dat
--- a/bin/upgrading/en.dat      Sun Jul 05 14:46:47 2009 +0000
+++ b/bin/upgrading/en.dat      Sun Jul 05 15:02:05 2009 +0000
@@ -1267,6 +1267,8 @@ error.deleted.name=Deleted
 error.deleted.name=Deleted
 
 error.deleted.text=This journal has been deleted.  If you are [[user]], you 
have a period of 30 days from the deletion time to undelete the journal.  After 
30 days we will delete all content permanently from our servers.
+
+error.deleted.text.withreason=This journal has been deleted by [[user]], with 
a reason of: "[[reason]]".  If you are [[user]], you have a period of 30 days 
from the deletion time to undelete the journal.  After 30 days we will delete 
all content permanently from our servers.
 
 error.deleted.title=Deleted Account
 
diff -r 49b1b53b9bea -r 56167fd880c4 bin/upgrading/proplists.dat
--- a/bin/upgrading/proplists.dat       Sun Jul 05 14:46:47 2009 +0000
+++ b/bin/upgrading/proplists.dat       Sun Jul 05 15:02:05 2009 +0000
@@ -125,6 +125,14 @@ userproplist.crosspost_footer_text:
   indexed: 0
   multihomed: 0
   prettyname: Custom footer for crossposted entries
+
+userproplist.delete_reason:
+  cldversion: 4
+  datatype: char
+  des: Reason why user is deleting journal
+  indexed: 0
+  multihomed: 0
+  prettyname: The reason why you're deleting your journal
 
 userproplist.delicious:
   cldversion: 4
diff -r 49b1b53b9bea -r 56167fd880c4 cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm        Sun Jul 05 14:46:47 2009 +0000
+++ b/cgi-bin/LJ/User.pm        Sun Jul 05 15:02:05 2009 +0000
@@ -8585,7 +8585,14 @@ sub make_journal
     unless ($geta->{'viewall'} && LJ::check_priv($remote, "canview", 
"suspended") ||
             $opts->{'pathextra'} =~ m!/(\d+)/stylesheet$!) { # don't check 
style sheets
         if ( $u->is_deleted ) {
-            my $warning = BML::ml( 'error.deleted.text', { user => 
$u->display_name } );
+            my $warning;
+
+            if ( $u->prop( 'delete_reason' ) ) {
+                $warning = BML::ml( 'error.deleted.text.withreason', { user => 
$u->display_name, reason => $u->prop( 'delete_reason' ) } );
+            } else {
+                $warning = BML::ml( 'error.deleted.text', { user => 
$u->display_name } );
+            }
+
             return $error->( $warning, "404 Not Found", BML::ml( 
'error.deleted.name' ) );
         }
         if ( $u->is_suspended ) {
diff -r 49b1b53b9bea -r 56167fd880c4 htdocs/accountstatus.bml
--- a/htdocs/accountstatus.bml  Sun Jul 05 14:46:47 2009 +0000
+++ b/htdocs/accountstatus.bml  Sun Jul 05 15:02:05 2009 +0000
@@ -64,6 +64,8 @@ body<=
         if ($POST{'statusvis'} eq 'D') {
             
             $res = $u->set_deleted;
+
+            $u->set_prop( delete_reason => $POST{'reason'} ? $POST{'reason'} : 
"" );
             
             if($res) {
                 # sending ESN status was changed
@@ -76,6 +78,8 @@ body<=
         } elsif ($POST{'statusvis'} eq 'V') {
             
             $res = $u->set_visible;
+
+            $u->set_prop( delete_reason => "" );
             
             if($res) {
                 LJ::Event::SecurityAttributeChanged->new($u ,  { 
@@ -153,7 +157,17 @@ body<=
     $ret .= "<div style='margin-left: 
30px'>$ML{'.journalstatus.select.head'}\n";
     $ret .= LJ::html_select({ 'name' => 'statusvis', 'selected' => 
$u->statusvis },
                               map { $_, $statusvis{$_} }
-                              reverse sort keys %statusvis) . "\n";
+                              reverse sort keys %statusvis) . "<br /><br />\n";
+
+    $ret .= "$ML{'.reason.head'} " . LJ::html_text({ 
+                            name => 'reason', 
+                            id => 'reason', 
+                            class => 'text', 
+                            value => $u->prop( 'delete_reason' ),
+                            size => 50,
+                            maxlength => 255,
+                         }) . "<br />";
+    $ret .= "<span style='font-size:smaller; 
font-style:italic;'>$ML{'.reason.about'}<br /><br />\n";
 
     $ret .= LJ::html_submit(undef, $ML{'.btn.status'},
                             { 'disabled' => $u->is_suspended }) . "\n";
diff -r 49b1b53b9bea -r 56167fd880c4 htdocs/accountstatus.bml.text
--- a/htdocs/accountstatus.bml.text     Sun Jul 05 14:46:47 2009 +0000
+++ b/htdocs/accountstatus.bml.text     Sun Jul 05 15:02:05 2009 +0000
@@ -33,5 +33,9 @@
 
 .message.noothermaintainer=You are about to leave the following without an 
active maintainer: [[commlist]] If you want to appoint an additional maintainer 
now, visit the <a [[aopts]]>[[pagetitle]]</a> page.
 
+.reason.head=Reason:
+
+.reason.about=The reason you're deleting your journal, to display on your 
deleted journal (optional)
+
 .title=Account Status
 
diff -r 49b1b53b9bea -r 56167fd880c4 htdocs/userinfo.bml
--- a/htdocs/userinfo.bml       Sun Jul 05 14:46:47 2009 +0000
+++ b/htdocs/userinfo.bml       Sun Jul 05 15:02:05 2009 +0000
@@ -135,7 +135,15 @@ body<=
         if ( $u->is_deleted ) {
             BML::set_status(404); # 404 Not Found
             $title = $ML{'error.deleted.title'};
-            my $del_body = "<?h1 $ML{'error.deleted.name'} h1?><?p " . 
BML::ml( 'error.deleted.text', { user => $u->display_name } ) . " p?>";
+            my $del_body = "<?p ";
+
+            if ( $u->prop( 'delete_reason' ) ) {
+                $del_body .= BML::ml( 'error.deleted.text.withreason', { user 
=> $u->display_name, reason => $u->prop( 'delete_reason' ) } );
+            } else {
+                $del_body .= BML::ml( 'error.deleted.text', { user => 
$u->display_name } );
+            }            
+
+            $del_body .= " p?>";
             $del_body .= BML::ml( '.error.deleted.purgenotification', { aopts 
=> "href='$LJ::SITEROOT/manage/subscriptions/user.bml?journal=" . $u->user . 
"'" } )
                 unless LJ::User->is_protected_username( $u->user );
             return $del_body;
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to