@@ -, +, @@ information - opacuserlogin - EnhancedMessagingPreferences - EnhancedMessagingPreferencesOPAC - SMSSendDriver ---- GENERAL ---- ---- PREREQUISITES ---- ---- OPAC ---- "Cannot select SMS notifications" preferences table. and observe the SMS checkboxes are now clickable. in the messaging preferences table are clickable. ---- INTRANET ---- "Modify patron" view. --- C4/Form/MessagingPreferences.pm | 20 ++++++++++++++++++- .../en/includes/messaging-preference-form.inc | 8 ++++---- .../prog/en/modules/members/memberentrygen.tt | 12 +++++++++++ .../bootstrap/en/modules/opac-messaging.tt | 20 +++++++++++++++---- 4 files changed, 51 insertions(+), 9 deletions(-) --- a/C4/Form/MessagingPreferences.pm +++ a/C4/Form/MessagingPreferences.pm @@ -142,6 +142,11 @@ sub set_form_values { my ($target_params, $template) = @_; # walk through the options and update them with these borrower_preferences my $messaging_options = Koha::Patron::Message::Preferences->get_options; + my $patron; + if ($target_params->{borrowernumber}) { + $patron = Koha::Patrons->find($target_params->{borrowernumber}); + } + PREF: foreach my $option ( @$messaging_options ) { my $pref = Koha::Patron::Message::Preferences->find( { %{ $target_params }, message_attribute_id => $option->{'message_attribute_id'} } ); $option->{ $option->{'message_name'} } = 1; @@ -154,9 +159,22 @@ sub set_form_values { selected => $_ == $days_in_advance } } ( 0..MAX_DAYS_IN_ADVANCE ); } + + if ($patron && $option->{'transport_email'} and !$patron->email) { + $option->{'transports_email'} = 0; + $option->{'transports_email_disabled'} = 1; + } + if ($patron && $option->{'transport_sms'} and !$patron->smsalertnumber) { + $option->{'transports_sms'} = 0; + $option->{'transports_sms_disabled'} = 1; + } + next unless $pref; foreach my $transport ( keys %{$pref->message_transport_types} ) { - $option->{'transports_'.$transport} = 1; + if (!$option->{'transports_'.$transport.'_disabled'}) { + $option->{'transports_'.$transport.'_disabled'} = 0; + $option->{'transports_'.$transport} = 1; + } } $option->{'digest'} = 1 if $pref->wants_digest; } --- a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc @@ -60,7 +60,7 @@ value="sms" disabled="disabled" /> [% END %] [% ELSE %] - [% IF ( messaging_preference.transports_sms ) %] + [% IF ( messaging_preference.transports_sms and !messaging_preference.transports_sms_disabled ) %] + value="sms" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]"[% IF messaging_preference.transports_sms_disabled %] disabled="disabled"[% END %] /> [% END %] [% END %] @@ -159,7 +159,7 @@ value="email" disabled="disabled" /> [% END %] [% ELSE %] - [% IF ( messaging_preference.transports_email ) %] + [% IF ( messaging_preference.transports_email and !messaging_preference.transports_email_disabled ) %] + value="email" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]"[% IF messaging_preference.transports_email_disabled %] disabled="disabled"[% END %] /> [% END %] [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -1410,6 +1410,18 @@ legend:hover { + [% IF patron && !patron.email %] +
+

Patron is missing email address

+

Because of this you will be unable to select email messaging preferences. Please modify patron and set primary email address.

+
+ [% END %] + [% IF patron && SMSSendDriver and !SMSnumber %] +
+

Patron is missing SMS number

+

Because of this you will be unable to select SMS messaging preferences. Please provide patron's SMS number first.

+
+ [% END %] [% INCLUDE 'messaging-preference-form.inc' %] [% IF ( SMSSendDriver ) %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt @@ -34,6 +34,18 @@ [% IF Koha.Preference( 'EnhancedMessagingPreferencesOPAC' ) %]

Your messaging settings

+ [% IF !logged_in_user.email %] +
+

Cannot select email notifications

+

Your email address is missing. We cannot send you emails before you provide your email address. Please go to your personal details to set primary email address.

+
+ [% END %] + [% IF SMSSendDriver and !SMSnumber %] +
+

Cannot select SMS notifications

+

Your SMS number is missing. We cannot send you SMS messages before you provide your SMS number. Please see the bottom of this page to set SMS number.

+
+ [% END %] [% IF ( settings_updated ) %]

Settings updated

[% END %] @@ -84,10 +96,10 @@ [% IF ( SMSSendDriver ) %] [% IF ( messaging_preference.transport_sms ) %] - [% IF ( messaging_preference.transports_sms ) %] + [% IF ( messaging_preference.transports_sms and !messaging_preference.transports_sms_disabled ) %] [% ELSE %] - + [% END %] [% ELSE %] @@ -135,10 +147,10 @@ [% IF ( messaging_preference.transport_email ) %] - [% IF ( messaging_preference.transports_email ) %] + [% IF ( messaging_preference.transports_email and !messaging_preference.transports_email_disabled ) %] [% ELSE %] - + [% END %] [% ELSE %] --