Bug 13613: Don't allow digest to be selected without a digest-able transport selected

By default, only the email transport is enabled. This gives the
messaging preferences the look of having email and digest and two
options. I.E. to some users it appears that you check email for single
emails, *or* you check digest for a digest email.

To help remove this possible confusion, the digest mode checkbox should
be disabled if no digest-able transports are checked for a given notice.

Test Plan:
1) Apply this patch
2) For both the staff interface and the opac, note that the digest
   checkbox is disabled any time that no digest enabled transport (
   email, sms if enabled ) is checked for the patron editor.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Kyle M Hall 2015-01-22 12:36:31 -05:00 committed by Jonathan Druart
parent 2da36e3f17
commit e95ffe8da3
3 changed files with 82 additions and 16 deletions

View File

@ -56,24 +56,24 @@
<input type="checkbox"
id="sms[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="sms" checked="checked" disabled="disabled" />
value="sms" class="sms" checked="checked" disabled="disabled" />
[% ELSE %]
<input type="checkbox"
id="sms[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="sms" disabled="disabled" />
value="sms" class="sms" disabled="disabled" />
[% END %]
[% ELSE %]
[% IF ( messaging_preference.transports_sms ) %]
<input type="checkbox"
id="sms[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="sms" checked="checked" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
value="sms" checked="checked" class="sms active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% ELSE %]
<input type="checkbox"
id="sms[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="sms" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
value="sms" class="sms active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% END %]
[% END %]
</td>
@ -155,24 +155,24 @@
<input type="checkbox"
id="email[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="email" checked="checked" disabled="disabled" />
value="email" class="email" checked="checked" disabled="disabled" />
[% ELSE %]
<input type="checkbox"
id="email[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="email" disabled="disabled" />
value="email" class="email" disabled="disabled" />
[% END %]
[% ELSE %]
[% IF ( messaging_preference.transports_email ) %]
<input type="checkbox"
id="email[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="email" checked="checked" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
value="email" checked="checked" class="email active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% ELSE %]
<input type="checkbox"
id="email[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="email" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
value="email" class="email active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% END %]
[% END %]
</td>
@ -187,24 +187,24 @@
<input type="checkbox"
id="digest[% messaging_preference.message_attribute_id | html %]"
value="[% messaging_preference.message_attribute_id | html %]"
name="digest" checked="checked" disabled="disabled" />
name="digest" class="digest" checked="checked" disabled="disabled" />
[% ELSE %]
<input type="checkbox"
id="digest[% messaging_preference.message_attribute_id | html %]"
value="[% messaging_preference.message_attribute_id | html %]"
name="digest" disabled="disabled" />
name="digest" class="digest" disabled="disabled" />
[% END %]
[% ELSE %]
[% IF ( messaging_preference.digest ) %]
<input type="checkbox"
id="digest[% messaging_preference.message_attribute_id | html %]"
value="[% messaging_preference.message_attribute_id | html %]"
name="digest" checked="checked" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
name="digest" checked="checked" class="digest active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% ELSE %]
<input type="checkbox"
id="digest[% messaging_preference.message_attribute_id | html %]"
value="[% messaging_preference.message_attribute_id | html %]"
name="digest" class="active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
name="digest" class="digest active_notify" data-attr-id="[% messaging_preference.message_attribute_id | html %]" />
[% END %]
[% END %]
</td>

View File

@ -47,4 +47,35 @@ $(document).ready(function(){
});
});
}
// At load time, we want digest disabled if no digest using transport is enabled
$("#memberentry_messaging_prefs .email").each(function(){
var rowid = $(this).attr("id");
id = Number(rowid.replace("email",""));
if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
$("#digest"+id).attr("disabled", false);
} else {
$("#digest"+id).attr("disabled", true).prop("checked",false);
}
});
// If user clears all digest using transports for a notice, disable digest checkbox
$(".email").click(function(){
var rowid = $(this).attr("id");
id = Number(rowid.replace("email",""));
if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
$("#digest"+id).attr("disabled", false);
} else {
$("#digest"+id).attr("disabled", true);
}
});
$(".sms").click(function(){
var rowid = $(this).attr("id");
id = Number(rowid.replace("sms",""));
if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
$("#digest"+id).attr("disabled", false);
} else {
$("#digest"+id).attr("disabled", true).prop("checked",false);
}
});
});

View File

@ -89,9 +89,9 @@
[% IF ( messaging_preference.transport_sms ) %]
<td class="selectcol">
[% IF ( messaging_preference.transports_sms ) %]
<input type="checkbox" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" checked="checked" />
<input type="checkbox" class="sms" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" checked="checked" />
[% ELSE %]
<input type="checkbox" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" />
<input type="checkbox" class="sms" id="sms[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="sms" />
[% END %]
</td>
[% ELSE %]
@ -103,11 +103,13 @@
<td class="selectcol">
[% IF ( messaging_preference.transports_phone ) %]
<input type="checkbox"
class="phone"
id="phone[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="phone" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
[% ELSE %]
<input type="checkbox"
class="phone"
id="phone[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="phone" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
@ -122,11 +124,13 @@
<td class="selectcol">
[% IF ( messaging_preference.transports_itiva ) %]
<input type="checkbox"
class="itiva"
id="itiva[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="itiva" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
[% ELSE %]
<input type="checkbox"
class="itiva"
id="itiva[% messaging_preference.message_attribute_id | html %]"
name="[% messaging_preference.message_attribute_id | html %]"
value="itiva" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
@ -140,9 +144,9 @@
[% IF ( messaging_preference.transport_email ) %]
<td class="selectcol">
[% IF ( messaging_preference.transports_email ) %]
<input type="checkbox" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
<input type="checkbox" class="email" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" checked="checked" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
[% ELSE %]
<input type="checkbox" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
<input type="checkbox" class="email" id="email[% messaging_preference.message_attribute_id | html %]" name="[% messaging_preference.message_attribute_id | html %]" value="email" onclick = "document.opacmessaging.none[% messaging_preference.message_attribute_id | html %].checked=false;" />
[% END %]
</td>
[% ELSE %]
@ -255,6 +259,37 @@
}
});
$("#info_digests").tooltip();
// At load time, we want digest disabled if no digest using transport is enabled
$(".email").each(function(){
var rowid = $(this).attr("id");
id = Number(rowid.replace("email",""));
if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
$("#digest"+id).attr("disabled", false);
} else {
$("#digest"+id).attr("disabled", true);
}
});
// If user clears all digest using transports for a notice, disable digest checkbox
$(".email").click(function(){
var rowid = $(this).attr("id");
id = Number(rowid.replace("email",""));
if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
$("#digest"+id).attr("disabled", false);
} else {
$("#digest"+id).attr("disabled", true).prop("checked",false);
}
});
$(".sms").click(function(){
var rowid = $(this).attr("id");
id = Number(rowid.replace("sms",""));
if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
$("#digest"+id).attr("disabled", false);
} else {
$("#digest"+id).attr("disabled", true).prop("checked",false);
}
});
});
function normalizeSMS(value){