Bug 37748: In Bootstrap 5 "disabled" class must be on anchor tag, not list item

This patch revises the markup for disabled dropdown menu items to
conform to Bootstrap 5 requirements. The patch also revises many
instances of Bootstrap tooltips which were not working -- tooltips which
should be shown with many of the disable dropdown items.

In BS5, a tooltip can't be attached to a disabled link. Instead the
tooltip must be attached to the link's container. These changes also
include the addition of "aria-disabled='true'" to the disabled menu
items.

Sponsored-by: Athens County Public Libraries
Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Owen Leonard 2024-08-27 11:43:01 +00:00 committed by Katrin Fischer
parent 4c93ed758f
commit b57868b1e4
No known key found for this signature in database
GPG Key ID: 0EF6E2C03357A834
21 changed files with 139 additions and 99 deletions

View File

@ -1259,7 +1259,7 @@ $dropdown-divider-bg: $dropdown-border-color;
$dropdown-divider-margin-y: 0; // $spacer * .5;
$dropdown-box-shadow: 0 6px 12px rgba(0,0,0,0.3); // var(--#{$prefix}box-shadow);
$dropdown-link-color: $link-color; // var(--#{$prefix}body-color);
$dropdown-link-color: var(--#{$prefix}body-color);
$dropdown-link-hover-color: $dropdown-link-color;
$dropdown-link-hover-bg: $gray-300; // var(--#{$prefix}tertiary-bg);

View File

@ -95,16 +95,6 @@ $enable-dark-mode: false;
margin-top: -1px;
}
.btn-group {
.dropdown-item {
color: #000;
&:active {
color: #FFF;
}
}
}
.page-section {
@include card;

View File

@ -5,8 +5,8 @@
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/cgi-bin/koha/admin/aqbudgetperiods.pl?op=add_form">New budget</a></li>
[% IF ( budget_period_locked || !CAN_user_acquisition_budget_add_del ) %]
<li class="disabled">
<a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="The budget is locked" href="#">New fund for [% budget_period_description | html %]</a>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="The budget is locked">
<a class="dropdown-item disabled" aria-disabled="true" href="#">New fund for [% budget_period_description | html %]</a>
</li>
[% ELSE %]
<li>
@ -27,31 +27,34 @@
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Planning</button>
<ul class="dropdown-menu">
[% IF ( CAN_user_acquisition_planning_manage ) %]
<li>
[% ELSE %]
<li class="disabled">
[% END %]
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=MONTHS">Plan by months</a></li>
[% IF ( CAN_user_acquisition_planning_manage ) %]
<li>
[% ELSE %]
<li class="disabled">
[% END %]
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=BRANCHES">Plan by libraries</a></li>
[% IF ( CAN_user_acquisition_planning_manage ) %]
<li>
[% ELSE %]
<li class="disabled">
[% END %]
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=ITEMTYPES">Plan by item types</a></li>
[% FOREACH auth_cats_loo IN auth_cats_loop %]
[% IF ( CAN_user_acquisition_planning_manage ) %]
<li>
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=MONTHS">Plan by months</a>
[% ELSE %]
<li class="disabled">
<a class="dropdown-item disabled" aria-disabled="true" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=MONTHS">Plan by months</a>
[% END %]
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=[% auth_cats_loo | uri %]">Plan by [% auth_cats_loo | html %]</a>
</li>
<li>
[% IF ( CAN_user_acquisition_planning_manage ) %]
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=BRANCHES">Plan by libraries</a>
[% ELSE %]
<a class="dropdown-item disabled" aria-disabled="true" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=BRANCHES">Plan by libraries</a>
[% END %]
</li>
<li>
[% IF ( CAN_user_acquisition_planning_manage ) %]
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=ITEMTYPES">Plan by item types</a></li>
[% ELSE %]
<a class="dropdown-item disabled" aria-disabled="true" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=ITEMTYPES">Plan by item types</a>
[% END %]
</li>
[% FOREACH auth_cats_loo IN auth_cats_loop %]
<li>
[% IF ( CAN_user_acquisition_planning_manage ) %]
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=[% auth_cats_loo | uri %]">Plan by [% auth_cats_loo | html %]</a>
[% ELSE %]
<a class="dropdown-item disabled" aria-disabled="true" href="/cgi-bin/koha/admin/aqplan.pl?budget_period_id=[% budget_period_id | uri %]&amp;authcat=[% auth_cats_loo | uri %]">Plan by [% auth_cats_loo | html %]</a>
[% END %]
</li>
[% END %]
</ul>

View File

@ -43,7 +43,7 @@
[% IF biblio.can_be_edited(logged_in_user) %]
<li><a class="dropdown-item" id="editbiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumber | html %]">Edit record</a></li>
[% ELSE %]
<li><a class="dropdown-item disabled" aria-disabled="true" id="editbiblio" href="#" data-bs-toggle="tooltip" data-bs-placement="left" title="This record is locked">Edit record</a></li>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="This record is locked"><a class="dropdown-item disabled" aria-disabled="true" id="editbiblio" href="#">Edit record</a></li>
[% END %]
[% END %]
@ -75,8 +75,8 @@
</form>
</li>
[% ELSE %]
<li>
<a class="dropdown-item disabled" aria-disabled="true" id="batchedit-disabled" href="#" data-bs-toggle="tooltip" data-bs-placement="left" title="This record has no items">Edit items in batch</a>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="This record has no items">
<a class="dropdown-item disabled" aria-disabled="true" id="batchedit-disabled" href="#">Edit items in batch</a>
</li>
[% END %]
[% END %]
@ -94,8 +94,8 @@
</form>
</li>
[% ELSE %]
<li>
<a class="dropdown-item disabled" aria-disabled="true" id="batchdelete-disabled" href="#" data-bs-toggle="tooltip" data-bs-placement="left" title="This record has no items">Delete items in a batch</a>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="This record has no items">
<a class="dropdown-item disabled" aria-disabled="true" id="batchdelete-disabled" href="#">Delete items in a batch</a>
</li>
[% END %]
[% END %]
@ -130,12 +130,12 @@
[% IF CAN_user_editcatalogue_edit_catalogue or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) %]
[% IF ( count ) %]
<li>
<a class="dropdown-item disabled" aria-disabled="true" id="deletebiblio" data-bs-toggle="tooltip" data-bs-placement="left" title="[% count | html %] item(s) are attached to this record. You must delete all items before deleting this record." href="#">Delete record</a>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="[% count | html %] item(s) are attached to this record. You must delete all items before deleting this record">
<a class="dropdown-item disabled" aria-disabled="true" id="deletebiblio" href="#">Delete record</a>
</li>
[% ELSIF ( biblio.subscriptions.count ) %]
<li>
<a class="dropdown-item disabled" aria-disabled="true" id="deletebiblio" data-bs-toggle="tooltip" data-bs-placement="left" title="[% biblio.subscriptions.count | html %] subscription(s) are attached to this record. You must delete all subscriptions before deleting this record." href="#">Delete record</a>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="[% biblio.subscriptions.count | html %] subscription(s) are attached to this record. You must delete all subscriptions before deleting this record">
<a class="dropdown-item disabled" aria-disabled="true" id="deletebiblio" href="#">Delete record</a>
</li>
[% ELSE %]
<li>
@ -162,8 +162,8 @@
<a class="dropdown-item" href="#" id="deleteallitems">Delete all items</a>
</li>
[% ELSE %]
<li>
<a class="dropdown-item disabled" aria-disabled="true" href="#" id="deleteallitems-disabled" data-bs-toggle="tooltip" data-bs-placement="left" title="This record has no items">Delete all items</a>
<li id="deleteallitems-disabled" data-bs-toggle="tooltip" data-bs-placement="left" title="This record has no items">
<a class="dropdown-item disabled" aria-disabled="true" href="#">Delete all items</a>
</li>
[% END %]
[% END %]

View File

@ -83,8 +83,8 @@
</a>
</li>
[% ELSE %]
<li class="disabled">
<a class="dropdown-item" href="#" data-bs-toggle="tooltip" data-bs-placement="left" title="There are no enrollments for this club yet">
<li data-bs-toggle="tooltip" data-bs-placement="left" title="There are no enrollments for this club yet">
<a class="dropdown-item disabled" aria-disabled="true" href="#">
<i class="fa fa-list-ul"></i> Enrollments
</a>
</li>

View File

@ -201,7 +201,7 @@
<li>
<li>
[% IF Koha.Preference('UseCirculationDesks') && Koha.Preference('UseCashRegisters') %]
<a class="dropdown-item" href="/cgi-bin/koha/circ/set-library.pl">Set library, desk and register</a>
<a class="dropdown-item" href="/cgi-bin/koha/circ/set-library.pl">Set library, desk, and register</a>
[% ELSIF Koha.Preference('UseCirculationDesks') %]
<a class="dropdown-item" href="/cgi-bin/koha/circ/set-library.pl">Set library and desk</a>
[% ELSIF Koha.Preference('UseCashRegisters') %]

View File

@ -58,16 +58,23 @@
<button class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown">More <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-end">
[% IF CAN_user_borrowers_edit_borrowers %]
<li><a class="dropdown-item" id="renewpatron" href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | html %]&amp;destination=[% destination | html %]&amp;reregistration=y">Renew patron</a></li>
<li>
<a class="dropdown-item" id="renewpatron" href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | html %]&amp;destination=[% destination | html %]&amp;reregistration=y">Renew patron</a>
</li>
[% ELSE %]
<li class="disabled"><a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to renew patrons" id="renewpatron" href="#">Renew patron</a></li>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to renew patrons">
<a class="dropdown-item disabled" aria-disabled="true" id="renewpatron" href="#">Renew patron</a>
</li>
[% END %]
[% IF ( CAN_user_permissions ) %]
<li><a class="dropdown-item" id="patronflags" href="/cgi-bin/koha/members/member-flags.pl?member=[% patron.borrowernumber | html %]">Set permissions</a></li>
<li>
<a class="dropdown-item" id="patronflags" href="/cgi-bin/koha/members/member-flags.pl?member=[% patron.borrowernumber | html %]">Set permissions</a>
</li>
[% ELSE %]
<li class="disabled"><a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to set permissions" id="patronflags" href="#">Set permissions</a></li>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to set permissions">
<a class="dropdown-item disabled" aria-disabled="true" id="patronflags" href="#">Set permissions</a>
</li>
[% END %]
[% IF ( Koha.Preference('TwoFactorAuthentication') == 'enforced' || Koha.Preference('TwoFactorAuthentication') == 'enabled' ) && logged_in_user.borrowernumber == patron.borrowernumber %]
<li><a class="dropdown-item" id="twofa" href="/cgi-bin/koha/members/two_factor_auth.pl">Manage two-factor authentication</a></li>
[% END %]
@ -78,14 +85,20 @@
[% IF Koha.Preference('RESTOAuth2ClientCredentials') %]
[% IF CAN_user_superlibrarian OR loggedinusernumber == patron.borrowernumber %]
<li><a class="dropdown-item" id="apikeys" href="/cgi-bin/koha/members/apikeys.pl?patron_id=[% patron.borrowernumber | html %]">Manage API keys</a></li>
<li>
<a class="dropdown-item" id="apikeys" href="/cgi-bin/koha/members/apikeys.pl?patron_id=[% patron.borrowernumber | html %]">Manage API keys</a>
</li>
[% ELSE %]
<li class="disabled"><a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to manage API keys" id="apikeys" href="#">Manage API keys</a></li>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to manage API keys">
<a class="dropdown-item disabled" aria-disabled="true" id="apikeys" href="#">Manage API keys</a>
</li>
[% END %]
[% END %]
[% IF CAN_user_borrowers_edit_borrowers %]
<li><a class="dropdown-item" id="sendwelcome" href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]&op=send_welcome">Send welcome notice</a></li>
<li>
<a class="dropdown-item" id="sendwelcome" href="/cgi-bin/koha/members/notices.pl?borrowernumber=[% patron.borrowernumber | uri %]&op=send_welcome">Send welcome notice</a>
</li>
[% END %]
[% IF CAN_user_borrowers_edit_borrowers && patron.category.effective_reset_password %]
@ -94,26 +107,41 @@
[% IF CAN_user_borrowers_delete_borrowers %]
[% IF ( patron.protected == 1 ) %]
<li class="disabled"><a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="Patron is protected" id="deletepatron" href="#">Delete</a></li>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="Patron is protected">
<a class="dropdown-item disabled" aria-disabled="true" id="deletepatron" href="#">Delete</a>
</li>
[% ELSE %]
<li><a class="dropdown-item" id="deletepatron" href="#">Delete</a></li>
<li>
<a class="dropdown-item" id="deletepatron" href="#">Delete</a>
</li>
[% END %]
[% ELSE %]
<li class="disabled"><a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to delete patrons" id="deletepatron" href="#">Delete</a></li>
<li aria-disabled="true" data-bs-toggle="tooltip" data-bs-placement="left" title="You are not authorized to delete patrons">
<a class="dropdown-item disabled" id="deletepatron" href="#">Delete</a>
</li>
[% END %]
[% SET adult_categories = Categories.scalar.all(category_type => 'A') %]
[% IF adult_categories.count > 0 %]
[% IF patron.is_child %]
<li><a class="dropdown-item" id="updatechild" href="#">Update child to adult patron</a></li>
<li>
<a class="dropdown-item" id="updatechild" href="#">Update child to adult patron</a>
</li>
[% ELSE %]
<li class="disabled"><a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="Patron is an adult" id="updatechild" href="#">Update child to adult patron</a></li>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="Patron is an adult">
<a class="dropdown-item disabled" aria-disabled="true" id="updatechild" href="#">Update child to adult patron</a>
</li>
[% END %]
[% END %]
[% IF Koha.Preference('intranetreadinghistory') %]
[%IF ( privacy == 2 ) %]
<li class="disabled"><a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="Not allowed by patron's privacy settings" id="exportbarcodes" href="#">Export today's checked in barcodes</a></li>
[% IF ( privacy == 2 ) %]
<li data-bs-toggle="tooltip" data-bs-placement="left" title="Not allowed by patron's privacy settings">
<a class="dropdown-item disabled" aria-disabled="true" id="exportbarcodes" href="#">Export today's checked in barcodes</a>
</li>
[% ELSE %]
<li><a class="dropdown-item" id="exportcheckins" href="#">Export today's checked in barcodes</a></li>
<li>
<a class="dropdown-item" id="exportcheckins" href="#">Export today's checked in barcodes</a>
</li>
[% END %]
[% END %]
</ul>

View File

@ -85,9 +85,13 @@
[% IF Koha.Preference('Mana') == 1 and Koha.Preference('AutoShareWithMana').grep('subscription').size == 0 %]
[% IF one_language_enabled==0 or mana_id %]
<div class="btn-group"><a data-bs-toggle="modal" data-bs-toggle="tooltip" title="Share the subscription with other libraries. Your email address will be associated to your sharing." data-bs-target="#mana_share_modal" class="btn btn-default"><i class="fa fa-share-alt"></i> Share</a></div>
<div class="btn-group" data-bs-toggle="tooltip" title="Share the subscription with other libraries. Your email address will be associated to your sharing">
<a data-bs-toggle="modal" data-bs-target="#mana_share_modal" class="btn btn-default"><i class="fa fa-share-alt"></i> Share</a>
</div>
[% ELSE %]
<div class="btn-group" id="mana-subscription-share" data-bs-toggle="tooltip" title="Share the subscription with other libraries. Your email address will be associated to your sharing."><a class="btn btn-default"><i class="fa fa-share-alt"></i> Share</a></div>
<div class="btn-group" id="mana-subscription-share" data-bs-toggle="tooltip" title="Share the subscription with other libraries. Your email address will be associated to your sharing">
<a class="btn btn-default"><i class="fa fa-share-alt"></i> Share</a>
</div>
[% END %]
[% END %]

View File

@ -13,15 +13,15 @@
<li>
<a class="dropdown-item" href="[% script_name | url %]?op=add_form&amp;budget_period_id=[% block_budget.budget_period_id | uri %]"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</a>
</li>
[% IF block_budget.count %]
<li class="disabled">
<a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="[% block_budget.count | html %] fund(s) are attached to this budget. You must delete all attached funds before deleting this budget." href="#"><i class="fa fa-trash-can"></i> Delete</a>
</li>
[% ELSE %]
<li>
<a class="dropdown-item" href="[% script_name | url %]?op=delete_confirm&amp;budget_period_id=[% block_budget.budget_period_id | uri %]"><i class="fa fa-trash-can"></i> Delete</a>
</li>
[% END %]
[% IF block_budget.count %]
<li data-bs-toggle="tooltip" data-bs-placement="left" title="[% block_budget.count | html %] fund(s) are attached to this budget. You must delete all attached funds before deleting this budget.">
<a class="dropdown-item disabled" aria-disabled="true" href="#"><i class="fa fa-trash-can"></i> Delete</a>
</li>
[% ELSE %]
<li>
<a class="dropdown-item" href="[% script_name | url %]?op=delete_confirm&amp;budget_period_id=[% block_budget.budget_period_id | uri %]"><i class="fa fa-trash-can"></i> Delete</a>
</li>
[% END %]
<li>
<a class="dropdown-item" href="[% script_name | url %]?op=duplicate_form&amp;budget_period_id=[% block_budget.budget_period_id | uri %]"><i class="fa fa-copy"></i> Duplicate</a>
</li>
@ -29,8 +29,8 @@
<a class="dropdown-item" href="[% script_name | url %]?op=close_form&amp;budget_period_id=[% block_budget.budget_period_id | uri %]"><i class="fa fa-times-circle"></i> Close</a>
</li>
[% IF ( block_budget.budget_period_locked ) %]
<li class="disabled">
<a class="dropdown-item" data-bs-toggle="tooltip" data-bs-placement="left" title="Budget is locked" href="#"><i class="fa fa-plus"></i> Add fund</a>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="Budget is locked">
<a class="dropdown-item disabled" aria-disabled="true" href="#"><i class="fa fa-plus"></i> Add fund</a>
</li>
[% ELSE %]
<li>

View File

@ -254,9 +254,13 @@
<ul class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="budgetactions[% budget.budget_id | html %]_[% budget.budget_period_id | html %]">
<li><a class="dropdown-item" href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;budget_id=[% budget.budget_id | uri %]&amp;budget_period_id=[% budget.budget_period_id | uri %]"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</a></li>
[% IF budget.budget_has_children %]
<li class="disabled dropdown-item"><a href="#" class="deletefund-disabled" data-bs-toggle="tooltip" data-bs-placement="left" title="This fund has sub funds."><i class="fa fa-trash-can"></i> Delete</a></li>
<li data-bs-toggle="tooltip" data-bs-placement="left" title="This fund has sub funds">
<a href="#" class="deletefund-disabled dropdown-item disabled"><i class="fa fa-trash-can"></i> Delete</a>
</li>
[% ELSE %]
<li><a class="dropdown-item" href="/cgi-bin/koha/admin/aqbudgets.pl?op=delete_confirm&amp;budget_id=[% budget.budget_id | uri %]&amp;budget_period_id=[% budget.budget_period_id | uri %]"><i class="fa fa-trash-can"></i> Delete</a></li>
<li>
<a class="dropdown-item" href="/cgi-bin/koha/admin/aqbudgets.pl?op=delete_confirm&amp;budget_id=[% budget.budget_id | uri %]&amp;budget_period_id=[% budget.budget_period_id | uri %]"><i class="fa fa-trash-can"></i> Delete</a>
</li>
[% END %]
<li><a class="dropdown-item" href="/cgi-bin/koha/admin/aqbudgets.pl?op=add_form&amp;budget_parent_id=[% budget.budget_id | uri %]&amp;budget_period_id=[% budget.budget_period_id | uri %]"><i class="fa fa-plus"></i> Add sub fund</a></li>
</ul>
@ -756,7 +760,7 @@
oTable.fnAddFilters("filter", 750);
[% END %]
$(".deletefund-disabled").tooltip().on("click", function(e){
$(".deletefund-disabled").on("click", function(e){
e.preventDefault();
alert(_("This fund has sub funds. It cannot be deleted."));
});

View File

@ -544,6 +544,7 @@
$('#filter').val($filter_container.data('filter'));
}
$('[data-bs-toggle="tooltip"]').tooltip();
});
</script>
[% END %]

View File

@ -674,6 +674,7 @@
});
$('#results').on('draw.dt', function (e, settings) {
prepSelections();
$('[data-bs-toggle="tooltip"]').tooltip();
var Sticky = $("#searchheader");
Sticky.hcSticky({
stickTo: "#results-wrapper .page-section",

View File

@ -200,6 +200,9 @@
var club_id = $(this).data("id");
SearchToHold( club_id );
});
$('[data-bs-toggle="tooltip"]').on("click",function(e){
e.stopPropagation();
}).tooltip();
});
function ConfirmDeleteTemplate( id, name ) {

View File

@ -172,10 +172,18 @@
<option value="xml">XML</option>
[% IF csv_profiles %]
<option value="csv">CSV</option>
[% ELSE %]
<option value="csv" disabled data-bs-toggle="tooltip" data-bs-placement="left" title="You must create a CSV profile for MARC exports to use this option.">CSV</option>
[% END %]
</select>
[% UNLESS csv_profiles %]
<div class="hint">
There are no CSV profiles for MARC exports.
[% IF ( CAN_user_tools_manage_csv_profiles ) %]
<a href="/cgi-bin/koha/tools/csv-profiles.pl">Create a CSV profile to export a CSV file.</a>
[% ELSE %]
CSV export unavailable.
[% END %]
</div>
[% END %]
</li>
<li class="csv_profiles">
<label for="bibs_csv_profile">CSV profile: </label>

View File

@ -302,9 +302,9 @@
<ul id="sortable_stages" data-rota-id="[% rota.rota_id | html %]">
[% FOREACH stage IN existing_stages %]
<li id="stage_[% stage.stage_id | html %]">
<span data-bs-toggle="tooltip" title="Drag and drop to move this stage to another position" data-bs-placement="right" class="stagename">
<span class="stagename">
[% IF existing_stages.size > 1 %]
<i class="drag_handle fa-solid fa-fw fa-grip-vertical" aria-hidden="true"></i>
<i class="drag_handle fa-solid fa-fw fa-grip-vertical" data-bs-toggle="tooltip" title="Drag and drop to move this stage to another position" data-bs-placement="top" aria-hidden="true"></i>
[% END %]
[% Branches.GetName(stage.branchcode_id) | html %]
</span>

View File

@ -218,7 +218,7 @@
[% IF !plugin %]
<td>
[% IF record.public %]
<a href="[% Koha.Preference('OPACBaseURL') | url %]/cgi-bin/koha/opac-retrieve-file.pl?id=[% record.hashvalue | uri %]" class="get-file" data-bs-toggle="tooltip"><i class="fa fa-link" aria-hidden="true"></i> Yes</a>
<a href="[% Koha.Preference('OPACBaseURL') | url %]/cgi-bin/koha/opac-retrieve-file.pl?id=[% record.hashvalue | uri %]" class="get-file" data-bs-toggle="tooltip" data-bs-title="Copy link to this file"><i class="fa fa-link" aria-hidden="true"></i> Yes</a>
[% ELSE %]
No
[% END %]
@ -528,18 +528,16 @@
});
if ( window.isSecureContext ) {
$('[data-bs-toggle="tooltip"]').tooltip();
$(".get-file").on("click", function(e){
e.preventDefault();
if( navigator.clipboard && navigator.clipboard.writeText){
navigator.clipboard.writeText( $(this).attr("href") );
$(this).attr("data-original-title", _( "Link copied to the clipboard" ) )
.tooltip("show");
$(this).tooltip("dispose").attr('data-bs-title', _( "Link copied to the clipboard" )).tooltip("show");
}
});
$(".get-file").tooltip({
delay: { "show": 100, "hide": 500 }
}).on("hidden.bs.tooltip", function(){
$(this).attr("data-original-title", _( "Copy link to this file" ) );
$(".get-file").tooltip().on("hidden.bs.tooltip", function(){
$(this).tooltip("dispose").attr("data-bs-title", _( "Copy link to this file" ) ).tooltip();
});
}
});

View File

@ -117,12 +117,10 @@ $(document).ready(function() {
return false;
});
$("#export").remove(); // Hide embedded export form if JS menus available
$("#deletebiblio").tooltip();
$("#batchedit-disabled,#batchdelete-disabled,#deleteallitems-disabled")
.on("click",function(e){
e.stopPropagation();
})
.tooltip();
$('[data-bs-toggle="tooltip"]').on("click",function(e){
e.stopPropagation();
}).tooltip();
$(".addtolist").on("click", function (e) {
e.preventDefault();

View File

@ -79,5 +79,5 @@ $(document).ready(function(){
toggle_digest(Number($(this).attr("id").replace("phone", "")));
});
// $('#memberentry_messaging_prefs [data-bs-toggle="tooltip"][disabled]').tooltip();
$('#memberentry_messaging_prefs [data-bs-toggle="tooltip"][disabled]').tooltip();
});

View File

@ -85,4 +85,5 @@ $(document).ready(function() {
"autoWidth": false,
}, stock_rotation_table_settings);
$('[data-bs-toggle="tooltip"]').tooltip();
});

View File

@ -21,4 +21,5 @@ function popup(subscriptionid) {
$("#mana-subscription-share").click(function() {
window.location="subscription-detail.pl?subscriptionid=" + subscriptionid + "&op=share";
});
$('[data-bs-toggle="tooltip"]').tooltip();
});

View File

@ -78,7 +78,7 @@
<a class="dropdown-item listmenulink" href="/cgi-bin/koha/opac-shelves.pl?op=list&amp;public=0" tabindex="-1" role="menuitem">View all</a>
[% END %]
[% ELSE %]
<a class="dropdown-item disabled" href="#" tabindex="-1" role="menuitem">No private lists</a>
<a class="dropdown-item disabled" aria-disabled="true" href="#" tabindex="-1" role="menuitem">No private lists</a>
[% END %]
<a class="dropdown-item listmenulink" href="/cgi-bin/koha/opac-shelves.pl?op=add_form" tabindex="-1" role="menuitem">New list</a>
[% ELSE %]