Bug 5918 : Use the default messaging preferences if the user does not select any
Signed-off-by: Jesse Weaver <pianohacker@gmail.com> Signed-off-by: Ian Walls <ian.walls@bywatersolutions.com> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
parent
bbe37ed54f
commit
b8ccb80bb1
3 changed files with 23 additions and 10 deletions
|
@ -54,7 +54,7 @@ the same thing in staff and OPAC.
|
|||
|
||||
=head2 handle_form_action
|
||||
|
||||
C4::Form::MessagingPreferences::handle_form_action($input, { categorycode => 'CPL' }, $template);
|
||||
C4::Form::MessagingPreferences::handle_form_action($input, { categorycode => 'CPL' }, $template, $insert);
|
||||
|
||||
Processes CGI parameters and updates the target patron or patron category's
|
||||
preferences.
|
||||
|
@ -64,17 +64,16 @@ C<$input> is the CGI query object.
|
|||
C<$target_params> is a hashref containing either a C<categorycode> key or a C<borrowernumber> key
|
||||
identifying the patron or patron category whose messaging preferences are to be updated.
|
||||
|
||||
C<$template> is the HTML::Template::Pro object for the response; this routine
|
||||
C<$template> is the Template::Toolkit object for the response; this routine
|
||||
adds a settings_updated template variable.
|
||||
|
||||
=cut
|
||||
|
||||
sub handle_form_action {
|
||||
my ($query, $target_params, $template) = @_;
|
||||
my ($query, $target_params, $template, $insert, $categorycode) = @_;
|
||||
my $messaging_options = C4::Members::Messaging::GetMessagingOptions();
|
||||
|
||||
# TODO: If a "NONE" box and another are checked somehow (javascript failed), we should pay attention to the "NONE" box
|
||||
|
||||
my $prefs_set = 0;
|
||||
OPTION: foreach my $option ( @$messaging_options ) {
|
||||
my $updater = { %{ $target_params },
|
||||
message_attribute_id => $option->{'message_attribute_id'} };
|
||||
|
@ -96,8 +95,16 @@ sub handle_form_action {
|
|||
}
|
||||
|
||||
C4::Members::Messaging::SetMessagingPreference( $updater );
|
||||
}
|
||||
|
||||
if ($query->param( $option->{'message_attribute_id'})){
|
||||
$prefs_set = 1;
|
||||
}
|
||||
}
|
||||
if (! $prefs_set && $insert){
|
||||
# this is new borrower, and we have no preferences set, use the defaults
|
||||
$target_params->{categorycode} = $categorycode;
|
||||
C4::Members::Messaging::SetMessagingPreferencesFromDefaults( $target_params );
|
||||
}
|
||||
# show the success message
|
||||
$template->param( settings_updated => 1 );
|
||||
}
|
||||
|
@ -112,7 +119,7 @@ and fills the corresponding template variables.
|
|||
C<$target_params> is a hashref containing either a C<categorycode> key or a C<borrowernumber> key
|
||||
identifying the patron or patron category.
|
||||
|
||||
C<$template> is the HTML::Template::Pro object for the response.
|
||||
C<$template> is the Template::Toolkit object for the response.
|
||||
|
||||
=cut
|
||||
|
||||
|
|
|
@ -1072,6 +1072,9 @@
|
|||
[% END %]
|
||||
<input type="hidden" name="setting_messaging_prefs" value="1" />
|
||||
<legend>Patron messaging preferences</legend>
|
||||
[% IF type_only %]
|
||||
<i>If no preferences are selected, the default preferences for the category chosen will be applied on save, otherwise your selection here is saved</i>
|
||||
[% END %]
|
||||
[% INCLUDE 'messaging-preference-form.inc' %]
|
||||
[% IF ( SMSSendDriver ) %]
|
||||
<p><label for="SMSnumber">SMS number:</label>
|
||||
|
|
|
@ -105,7 +105,10 @@ $template->param( "duplicate" => 1 ) if ( $op eq 'duplicate' );
|
|||
$template->param( "checked" => 1 ) if ( defined($nodouble) && $nodouble eq 1 );
|
||||
( $borrower_data = GetMember( 'borrowernumber' => $borrowernumber ) ) if ( $op eq 'modify' or $op eq 'save' or $op eq 'duplicate' );
|
||||
my $categorycode = $input->param('categorycode') || $borrower_data->{'categorycode'};
|
||||
my $category_type = $input->param('category_type');
|
||||
my $category_type = $input->param('category_type') || '';
|
||||
if ($category_type){
|
||||
$template->{VARS}->{'type_only'} = 1;
|
||||
}
|
||||
my $new_c_type = $category_type; #if we have input param, then we've already chosen the cat_type.
|
||||
unless ($category_type or !($categorycode)){
|
||||
my $borrowercategory = GetBorrowercategory($categorycode);
|
||||
|
@ -334,7 +337,7 @@ if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){
|
|||
C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes);
|
||||
}
|
||||
if (C4::Context->preference('EnhancedMessagingPreferences') and $input->param('setting_messaging_prefs')) {
|
||||
C4::Form::MessagingPreferences::handle_form_action($input, { borrowernumber => $borrowernumber }, $template);
|
||||
C4::Form::MessagingPreferences::handle_form_action($input, { borrowernumber => $borrowernumber }, $template, 1, $newdata{'categorycode'});
|
||||
}
|
||||
} elsif ($op eq 'save'){
|
||||
if ($NoUpdateLogin) {
|
||||
|
|
Loading…
Reference in a new issue