[dw-free] Add optional "reason I am deleting my journal"
[commit: http://hg.dwscoalition.org/dw-free/rev/56167fd880c4]
http://bugs.dwscoalition.org/show_bug.cgi?id=480
Can input reason when deleting; reason will be displayed on the profile page
and on the journal.
Patch by
denise.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=480
Can input reason when deleting; reason will be displayed on the profile page
and on the journal.
Patch by
![[staff profile]](https://www.dreamwidth.org/img/silk/identity/user_staff.png)
Files modified:
- bin/upgrading/en.dat
- bin/upgrading/proplists.dat
- cgi-bin/LJ/User.pm
- htdocs/accountstatus.bml
- htdocs/accountstatus.bml.text
- htdocs/userinfo.bml
-------------------------------------------------------------------------------- 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; --------------------------------------------------------------------------------