| Lines 20-25
          package C4::Form::MessagingPreferences;
      
      
        Link Here | 
        
          | 20 | use strict; | 20 | use strict; | 
        
          | 21 | use warnings; | 21 | use warnings; | 
        
          | 22 |  | 22 |  | 
            
              |  |  | 23 | use Data::Dumper; | 
        
          | 23 | use CGI qw ( -utf8 ); | 24 | use CGI qw ( -utf8 ); | 
        
          | 24 | use C4::Context; | 25 | use C4::Context; | 
        
          | 25 | use C4::Members::Messaging; | 26 | use C4::Members::Messaging; | 
  
    | Lines 76-88
          sub handle_form_action {
      
      
        Link Here | 
        
          | 76 |     my $messaging_options = C4::Members::Messaging::GetMessagingOptions(); | 77 |     my $messaging_options = C4::Members::Messaging::GetMessagingOptions(); | 
        
          | 77 |     # TODO: If a "NONE" box and another are checked somehow (javascript failed), we should pay attention to the "NONE" box | 78 |     # TODO: If a "NONE" box and another are checked somehow (javascript failed), we should pay attention to the "NONE" box | 
        
          | 78 |     my $prefs_set = 0; | 79 |     my $prefs_set = 0; | 
            
              |  |  | 80 |     my $borrowernumber; | 
            
              | 81 |     my $logEntries = []; | 
        
          | 79 |     OPTION: foreach my $option ( @$messaging_options ) { | 82 |     OPTION: foreach my $option ( @$messaging_options ) { | 
        
          | 80 |         my $updater = { %{ $target_params },  | 83 |         my $updater = { %{ $target_params },  | 
        
          | 81 |                         message_attribute_id    => $option->{'message_attribute_id'} }; | 84 |                         message_attribute_id    => $option->{'message_attribute_id'} }; | 
            
              |  |  | 85 |         $borrowernumber = $option->{borrowernumber} unless $borrowernumber; | 
        
          | 82 |          | 86 |          | 
        
          | 83 |         # find the desired transports | 87 |         # find the desired transports | 
        
          | 84 |         @{$updater->{'message_transport_types'}} = $query->param( $option->{'message_attribute_id'} ); | 88 |         @{$updater->{'message_transport_types'}} = $query->param( $option->{'message_attribute_id'} ); | 
          
            
              | 85 |         next OPTION unless $updater->{'message_transport_types'}; | 89 |         next OPTION unless $updater->{'message_transport_types'}; #Shouldn't this be "unless scalar(@{$updater->{'message_transport_types'}});" however this would never let existing message_preferences to be deleted :) | 
        
          | 86 |  | 90 |  | 
        
          | 87 |         if ( $option->{'has_digest'} ) { | 91 |         if ( $option->{'has_digest'} ) { | 
        
          | 88 |             if ( List::Util::first { $_ == $option->{'message_attribute_id'} } $query->param( 'digest' ) ) { | 92 |             if ( List::Util::first { $_ == $option->{'message_attribute_id'} } $query->param( 'digest' ) ) { | 
  
    | Lines 98-103
          sub handle_form_action {
      
      
        Link Here | 
        
          | 98 |  | 102 |  | 
        
          | 99 |         C4::Members::Messaging::SetMessagingPreference( $updater ); | 103 |         C4::Members::Messaging::SetMessagingPreference( $updater ); | 
        
          | 100 |  | 104 |  | 
            
              |  |  | 105 |         _pushToActionLogBuffer($logEntries, $origPrefs, $updater, $option); | 
            
              | 106 |  | 
        
          | 101 | 	if ($query->param( $option->{'message_attribute_id'})){ | 107 | 	if ($query->param( $option->{'message_attribute_id'})){ | 
        
          | 102 | 	    $prefs_set = 1; | 108 | 	    $prefs_set = 1; | 
        
          | 103 | 	} | 109 | 	} | 
  
    | Lines 109-114
          sub handle_form_action {
      
      
        Link Here | 
        
          | 109 |     } | 115 |     } | 
        
          | 110 |     # show the success message | 116 |     # show the success message | 
        
          | 111 |     $template->param( settings_updated => 1 ); | 117 |     $template->param( settings_updated => 1 ); | 
            
              |  |  | 118 |  | 
            
              | 119 |     _writeActionLogBuffer($logEntries, $borrowernumber); | 
        
          | 112 | } | 120 | } | 
        
          | 113 |  | 121 |  | 
        
          | 114 | =head2 set_form_values | 122 | =head2 set_form_values | 
  
    | Lines 149-154
          sub set_form_values {
      
      
        Link Here | 
        
          | 149 |     $template->param(messaging_preferences => $messaging_options); | 157 |     $template->param(messaging_preferences => $messaging_options); | 
        
          | 150 | } | 158 | } | 
        
          | 151 |  | 159 |  | 
            
              |  |  | 160 | sub _pushToActionLogBuffer { | 
            
              | 161 |     return unless C4::Context->preference("BorrowersLog"); | 
            
              | 162 |     my ($logEntries, $origPrefs, $updater, $option) = @_; | 
            
              | 163 |  | 
            
              | 164 |     if ($updater->{message_transport_types} && scalar(@{$updater->{message_transport_types}})) { | 
            
              | 165 |         my $entry = {}; | 
            
              | 166 |         $entry->{cc}   = $updater->{categorycode}    if $updater->{categorycode}; | 
            
              | 167 |         $entry->{dig}  = $updater->{wants_digest}    if $updater->{wants_digest}; | 
            
              | 168 |         $entry->{da}   = $updater->{days_in_advance} if $updater->{days_in_advance}; | 
            
              | 169 |         $entry->{mtt}  = $updater->{message_transport_types}; | 
            
              | 170 |         $entry->{_name} = $option->{message_name}; | 
            
              | 171 |         push(@$logEntries, $entry); | 
            
              | 172 |     } | 
            
              | 173 | } | 
            
              | 174 |  | 
            
              | 175 | sub _writeActionLogBuffer { | 
            
              | 176 |     return unless C4::Context->preference("BorrowersLog"); | 
            
              | 177 |     my ($logEntries, $borrowernumber) = @_; | 
            
              | 178 |  | 
            
              | 179 |     if (scalar(@$logEntries)) { | 
            
              | 180 |         my $d = Data::Dumper->new([$logEntries]); | 
            
              | 181 |         $d->Indent(0); | 
            
              | 182 |         $d->Purity(0); | 
            
              | 183 |         $d->Terse(1); | 
            
              | 184 |         C4::Log::logaction('MEMBERS', 'MOD MTT', $borrowernumber, $d->Dump($logEntries)); | 
            
              | 185 |     } | 
            
              | 186 |     else { | 
            
              | 187 |         C4::Log::logaction('MEMBERS', 'MOD MTT', $borrowernumber, 'All message_transports removed') | 
            
              | 188 |     } | 
            
              | 189 | } | 
            
              | 190 |  | 
        
          | 152 | =head1 TODO | 191 | =head1 TODO | 
        
          | 153 |  | 192 |  | 
        
          | 154 | =over 4 | 193 | =over 4 | 
            
              | 155 | -  |  |  |