[dw-free] Checkboxes to retain relationships when renaming have disappeared
[commit: http://hg.dwscoalition.org/dw-free/rev/273093f01d01]
http://bugs.dwscoalition.org/show_bug.cgi?id=4102
Don't make rel_types part of formdata -- it doesn't change on post so it's
not really form data, just metadata about the form, which shouldn't be
transformed by Hash::MultiValue. (we'd need to do a: form.data.get_all(
"rel_types") which removes a level of abstraction otherwise)
Patch by
fu.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=4102
Don't make rel_types part of formdata -- it doesn't change on post so it's
not really form data, just metadata about the form, which shouldn't be
transformed by Hash::MultiValue. (we'd need to do a: form.data.get_all(
"rel_types") which removes a level of abstraction otherwise)
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- cgi-bin/DW/Controller/Rename.pm
- views/admin/rename_edit.tt
- views/rename.tt
-------------------------------------------------------------------------------- diff -r e6dbb490c1f2 -r 273093f01d01 cgi-bin/DW/Controller/Rename.pm --- a/cgi-bin/DW/Controller/Rename.pm Thu Dec 08 18:10:02 2011 +0800 +++ b/cgi-bin/DW/Controller/Rename.pm Thu Dec 08 19:06:21 2011 +0800 @@ -105,6 +105,8 @@ ? qw( trusted_by watched_by trusted watched communities ) : (); + $vars->{rel_types} = \@rel_types; + # initialize the form based on previous posts (in case of error) or with some default values $vars->{formdata} = { authas => $authas, @@ -114,13 +116,11 @@ token => $token->token, touser => $post_args->{touser} || $get_args->{to} || "", redirect => $post_args->{redirect} || "disconnect", - rel_types => \@rel_types, rel_options => %$post_args ? { map { $_ => 1 } $post_args->get_all( "rel_options" ) } : { map { $_ => 1 } @rel_types }, others => %$post_args ? { map { $_ => 1 } $post_args->get_all( "others" ) } : { email => 0 }, }; - } } @@ -295,25 +295,25 @@ my $token = DW::RenameToken->new( token => $get_args->{token} ); my $u = LJ::load_userid( $token->renuserid ); + my @rel_types = qw( trusted_by watched_by trusted watched communities ); my $form = { from => $token->fromuser, to => $token->touser, byuser => LJ::load_userid( $token->ownerid ), user => $u, journaltype => $u ? $u->journaltype : "P", - - rel_types => [ qw( trusted_by watched_by trusted watched communities ) ], }; # load up the old values my $token_details = $token->details; $form->{redirect} = $token_details->{redirect}->{username} ? "forward" : "disconnect"; - $form->{rel_options} = { map { $_ => ! $token_details->{del}->{$_} } @{$form->{rel_types}} }; + $form->{rel_options} = { map { $_ => ! $token_details->{del}->{$_} } @rel_types }; $form->{others}->{email} = $token_details->{redirect}->{email}; my $vars = { %$rv, formdata => $form, + rel_types => \@rel_types, token => $token, }; diff -r e6dbb490c1f2 -r 273093f01d01 views/admin/rename_edit.tt --- a/views/admin/rename_edit.tt Thu Dec 08 18:10:02 2011 +0800 +++ b/views/admin/rename_edit.tt Thu Dec 08 19:06:21 2011 +0800 @@ -55,12 +55,12 @@ </div> </fieldset> - [% IF form.data.rel_types.size > 0 %] + [% IF rel_types.size > 0 %] <fieldset class="relationships"> <legend>[% '.form.relationships.header' | ml %]</legend> <input type="checkbox" name="override_relationships" id="override_relationships" /><label for="override_relationships">Override</label> <p class="note">be careful when leaving these unchecked! We cannot recover the list once the relationships have been broken, so make sure you don't carry over old opts. Otherwise you may delete everyone the user has added since they renamed</p> - [% FOREACH rel IN form.data.rel_types %] + [% FOREACH rel IN rel_types %] <div class="formfield"> <input type="checkbox" name="rel_options" value="[% rel %]" id="rel_[% rel %]" [%- 'checked="checked"' IF form.data.rel_options.$rel -%] /><label for="rel_[% rel %]">[% ".form.relationships.$rel" | ml %]</label> </div> diff -r e6dbb490c1f2 -r 273093f01d01 views/rename.tt --- a/views/rename.tt Thu Dec 08 18:10:02 2011 +0800 +++ b/views/rename.tt Thu Dec 08 19:06:21 2011 +0800 @@ -61,11 +61,10 @@ </div> </fieldset> - - [% IF form.data.rel_types.size > 0 %] + [% IF rel_types.size > 0 %] <fieldset class="relationships"> <legend>[% '.form.relationships.header' | ml %]</legend> - [% FOREACH rel IN form.data.rel_types %] + [% FOREACH rel IN rel_types %] <div class="formfield"> <input type="checkbox" name="rel_options" value="[% rel %]" id="rel_[% rel %]" [%- 'checked="checked"' IF form.data.rel_options.$rel -%] /><label for="rel_[% rel %]">[% ".form.relationships.$rel" | ml %]</label> </div> --------------------------------------------------------------------------------