[dw-free] Support system: allow users to receive copies of their own responses to requests.
[commit: http://hg.dwscoalition.org/dw-free/rev/ebea5b13e8a4]
http://bugs.dwscoalition.org/show_bug.cgi?id=3036
Add an option so that volunteers can opt into receiving their own responses.
Patch by
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=3036
Add an option so that volunteers can opt into receiving their own responses.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- bin/upgrading/proplists.dat
- cgi-bin/LJ/Support.pm
- htdocs/support/changenotify.bml
- htdocs/support/changenotify.bml.text
-------------------------------------------------------------------------------- diff -r 647800dfd8a1 -r ebea5b13e8a4 bin/upgrading/proplists.dat --- a/bin/upgrading/proplists.dat Fri Oct 01 23:28:36 2010 +0800 +++ b/bin/upgrading/proplists.dat Sat Oct 02 00:29:19 2010 +0800 @@ -653,6 +653,14 @@ userproplist.opt_getselfemail: indexed: 0 multihomed: 0 prettyname: Get Emails for Comments You Make + +userproplist.opt_getselfsupport: + cldversion: 4 + datatype: bool + des: If true, include user's own responses in support notifications. + indexed: 0 + multihomed: 0 + prettyname: Get Emails for Your Own Support Responses userproplist.opt_getting_started: cldversion: 4 diff -r 647800dfd8a1 -r ebea5b13e8a4 cgi-bin/LJ/Support.pm --- a/cgi-bin/LJ/Support.pm Fri Oct 01 23:28:36 2010 +0800 +++ b/cgi-bin/LJ/Support.pm Sat Oct 02 00:29:19 2010 +0800 @@ -355,6 +355,17 @@ sub can_read_screened sub can_read_screened { return LJ::Support::support_check_priv(@_, 'supportviewscreened'); +} + +sub can_read_response +{ + my ( $sp, $u, $rtype, $posterid ) = @_; + return 1 if $posterid == $u->id; + return 0 if $rtype eq 'screened' && + ! LJ::Support::can_read_screened( $sp, $u ); + return 0 if $rtype eq 'internal' && + ! LJ::Support::can_read_internal( $sp, $u ); + return 1; } sub can_perform_actions @@ -1081,11 +1092,9 @@ sub work { foreach my $u (values %$userids) { next unless $u->is_visible; next unless $u->{status} eq "A"; - next if $posterid == $u->id; - next if $rtype eq 'screened' && - !LJ::Support::can_read_screened($sp, $u); - next if $rtype eq 'internal' && - !LJ::Support::can_read_internal($sp, $u); + next unless LJ::Support::can_read_response( $sp, $u, $rtype, $posterid ); + next if $posterid == $u->id && + ! $u->prop( 'opt_getselfsupport' ); push @emails, $u->email_raw; } } diff -r 647800dfd8a1 -r ebea5b13e8a4 htdocs/support/changenotify.bml --- a/htdocs/support/changenotify.bml Fri Oct 01 23:28:36 2010 +0800 +++ b/htdocs/support/changenotify.bml Sat Oct 02 00:29:19 2010 +0800 @@ -78,6 +78,11 @@ body<= } $ret .= "</div>\n"; + $ret .= "<p><label for='opt_getselfsupport'>$ML{'.getownresponses'}</label> "; + $ret .= LJ::html_check( { type => 'check', name => 'opt_getselfsupport', + id => 'opt_getselfsupport', + selected => $remote->prop( 'opt_getselfsupport' ) } ); + $ret .= "</p>\n"; ### ending submit block $ret .= "<?h1 $ML{'.done.title'} h1?>"; @@ -90,6 +95,8 @@ body<= if ($mode eq "save") { + $remote->set_prop( 'opt_getselfsupport' => $FORM{opt_getselfsupport} ? 1 : 0 ); + my $dbh = LJ::get_db_writer(); $dbh->do("DELETE FROM supportnotify WHERE userid=$remote->{'userid'}"); my $sql; diff -r 647800dfd8a1 -r ebea5b13e8a4 htdocs/support/changenotify.bml.text --- a/htdocs/support/changenotify.bml.text Fri Oct 01 23:28:36 2010 +0800 +++ b/htdocs/support/changenotify.bml.text Sat Oct 02 00:29:19 2010 +0800 @@ -6,6 +6,8 @@ .done.text=When done, press the "Save Changes" button below... .done.title=Done? + +.getownresponses=Check here if you'd also like to include notifications for your own responses. .mustlogin=You must first <a href=[[login]]>login</a>. --------------------------------------------------------------------------------