Bugzilla – Attachment 191571 Details for
Bug 41653
Stores for permissions and sysprefs should be under the Koha namespace
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41653: Move addPrefs and addPermissions under the Koha namespace
dcee0c2.patch (text/plain), 60.42 KB, created by
Jonathan Druart
on 2026-01-16 15:38:16 UTC
(
hide
)
Description:
Bug 41653: Move addPrefs and addPermissions under the Koha namespace
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2026-01-16 15:38:16 UTC
Size:
60.42 KB
patch
obsolete
>From dcee0c20a979d4093d4895dfaf827d85eb9951b9 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Fri, 16 Jan 2026 16:16:46 +0100 >Subject: [PATCH] Bug 41653: Move addPrefs and addPermissions under the Koha > namespace > >--- > .../tables/items/catalogue_detail.inc | 46 +++++++-------- > .../prog/en/modules/acqui/invoice.tt | 4 +- > .../prog/en/modules/acqui/orderreceive.tt | 18 +++--- > .../prog/en/modules/acqui/parcel.tt | 6 +- > .../prog/en/modules/bookings/list.tt | 6 +- > .../prog/en/modules/catalogue/detail.tt | 12 ++-- > .../prog/en/modules/catalogue/itemsearch.tt | 8 +-- > .../prog/en/modules/circ/returns.tt | 4 +- > .../prog/en/modules/ill/ill-requests.tt | 4 +- > .../prog/en/modules/members/boraccount.tt | 4 +- > .../prog/en/modules/members/pay.tt | 4 +- > .../modules/patron_lists/patron-lists-tab.tt | 4 +- > .../prog/en/modules/patroncards/edit-batch.tt | 10 ++-- > .../intranet-tmpl/prog/en/modules/pos/pay.tt | 4 +- > .../prog/en/modules/reserve/request.tt | 6 +- > .../prog/en/modules/suggestion/suggestion.tt | 8 +-- > .../en/modules/tools/manage-marc-import.tt | 2 +- > .../prog/en/modules/tools/modborrowers.tt | 6 +- > .../prog/en/modules/tools/upload.tt | 4 +- > .../prog/en/modules/virtualshelves/shelves.tt | 6 +- > koha-tmpl/intranet-tmpl/prog/js/stores.js | 12 ++-- > .../bootstrap/en/modules/opac-detail.tt | 56 +++++++++---------- > .../bootstrap/en/modules/opac-messaging.tt | 4 +- > .../en/modules/opac-readingrecord.tt | 4 +- > .../bootstrap/en/modules/opac-user.tt | 10 ++-- > .../bootstrap/en/modules/sco/sco-main.tt | 6 +- > koha-tmpl/opac-tmpl/bootstrap/js/stores.js | 12 ++-- > 27 files changed, 133 insertions(+), 137 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc >index 375ef0f37f1..38082c4713f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/html_helpers/tables/items/catalogue_detail.inc >@@ -132,7 +132,7 @@ > const analyze = [% analyze ? 1 : 0 | html %]; > const hidden_count = [% hidden_count ? 1 : 0 | html %]; > const bundlesEnabled = [% bundlesEnabled ? 1 : 0 | html %]; >- addPrefs({ >+ Koha.addPrefs({ > LocalCoverImages: [% Koha.Preference('LocalCoverImages') ? 1 : 0 | html %], > OPACLocalCoverImages: [% Koha.Preference('OPACLocalCoverImages') ? 1 : 0 | html %], > EnableItemGroups: [% Koha.Preference('EnableItemGroups') ? 1 : 0 | html %], >@@ -148,7 +148,7 @@ > canreservefromotherbranches: [% Koha.Preference('canreservefromotherbranches') ? 1 : 0 | html %], > SpineLabelShowPrintOnBibDetails: [% Koha.Preference('SpineLabelShowPrintOnBibDetails') ? 1 : 0 | html %], > }); >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_editcatalogue_edit_items: [% CAN_user_editcatalogue_edit_items ? 1 : 0 | html %], > }); > const logged_in_branchcode = '[% Branches.GetLoggedInBranchcode() | html %]'; >@@ -306,27 +306,27 @@ > // Do we need separate/new endpoints or do we hack the somewhere client-side? > let item_table_url = `/api/v1/biblios/${biblionumber}/items?`; > let embed = ["+strings,_status,home_library,holding_library,checkout,checkout.patron,transfer,transfer+strings,first_hold,first_hold+strings,first_hold.patron,first_hold.desk"]; >- if (prefs.LocalCoverImages) { >+ if (Koha.prefs.LocalCoverImages) { > embed.push("cover_image_ids"); > } >- if (prefs.EnableItemGroups) { >+ if (Koha.prefs.EnableItemGroups) { > embed.push("item_group_item.item_group.description"); > } > if (is_serial) { > embed.push("serial_item.serial"); > } >- if (prefs.UseRecalls) { >+ if (Koha.prefs.UseRecalls) { > embed.push("recall", "recall+strings", "recall.patron"); > } > embed.push("in_bundle", "bundle_host", "bundle_host.biblio", "bundle_items_lost+count", "bundle_items_not_lost+count"); >- if (prefs.UseCourseReserves) { >+ if (Koha.prefs.UseCourseReserves) { > embed.push("course_item.course_reserves.course"); > } >- if (prefs.ClaimReturnedLostValue) { >+ if (Koha.prefs.ClaimReturnedLostValue) { > embed.push("return_claims"); > } > >- if (prefs.EasyAnalyticalRecords) { >+ if (Koha.prefs.EasyAnalyticalRecords) { > // For host records > embed.push("biblio.title"); > } >@@ -350,8 +350,8 @@ > user_colvis[tab_id] = user_colvis_bak; > } > let default_filters = {}; >- if (prefs.SeparateHoldings) { >- let branch = prefs.SeparateHoldingsBranch == "homebranch" ? "me.home_library_id" : "me.holding_library_id"; >+ if (Koha.prefs.SeparateHoldings) { >+ let branch = Koha.prefs.SeparateHoldingsBranch == "homebranch" ? "me.home_library_id" : "me.holding_library_id"; > if (tab_id == "holdings") { > default_filters[branch] = logged_in_branchcode; > } else { >@@ -387,7 +387,7 @@ > } > }, > }, >- ...(prefs.LocalCoverImages >+ ...(Koha.prefs.LocalCoverImages > ? [ > { > data: "", >@@ -419,7 +419,7 @@ > }, > ] > : []), >- ...(prefs.item_level_itypes >+ ...(Koha.prefs.item_level_itypes > ? [ > { > data: "me.item_type_id", // FIXME Cannot filter by biblioitem.itemtype >@@ -431,7 +431,7 @@ > render: function (data, type, row, meta) { > let node = ""; > let item_type_description = row._strings.item_type_id ? row._strings.item_type_id.str : row.item_type_id; >- if (prefs.noItemTypeImages) { >+ if (Koha.prefs.noItemTypeImages) { > let image_location = item_type_image_locations[row.item_type_id]; > node += image_location ? '<img class="itemtype-image" src="%s" alt="" /> '.format(escape_str(image_location), escape_str(item_type_description), escape_str(item_type_description)) : ""; > } >@@ -493,7 +493,7 @@ > return escape_str(row._strings.collection_code ? row._strings.collection_code.str : row.collection_code); > }, > }, >- ...(prefs.EnableItemGroups >+ ...(Koha.prefs.EnableItemGroups > ? [ > { > data: "item_group_item.item_group.description", >@@ -539,7 +539,7 @@ > } else if (serial && serial.serialseq) { > nodes += '<span class="serialseq">%s</span>'.format(escape_str(serial.serialseq)); > } >- if (prefs.DisplayPublishedDate) { >+ if (Koha.prefs.DisplayPublishedDate) { > if (serial && serial.publisheddate) { > nodes += ' <span class="pubdate">(%s)</span>'.format($date(serial.publisheddate)); > } >@@ -619,7 +619,7 @@ > } else { > nodes += '<span class="waitingat">%s</span>'.format(_("Waiting at %s since %s.".format(row.first_hold._strings.pickup_library_id.str, $date(row.first_hold.waiting_date)))); > } >- if (prefs.canreservefromotherbranches) { >+ if (Koha.prefs.canreservefromotherbranches) { > if (row.first_hold.waiting_date || row.first_hold.priority == 1) { > // Hacky for patron_to_html in case we simply want to display the patron's library name > row.first_hold.patron.library = { name: libraries_names.get(row.first_hold.patron.library_id) }; >@@ -633,7 +633,7 @@ > } > } > >- if (prefs.UseRecalls) { >+ if (Koha.prefs.UseRecalls) { > if (row.recall && row.item_id === row.recall.item_id) { > if (row.recall.waiting_date) { > nodes += '<span class="holding_status recallwaiting">%s</span>'.format( >@@ -806,7 +806,7 @@ > return escape_str(row.internal_notes); > }, > }, >- ...(prefs.EasyAnalyticalRecords >+ ...(Koha.prefs.EasyAnalyticalRecords > ? [ > { > data: "biblio.title", >@@ -840,7 +840,7 @@ > }, > ] > : []), >- ...(prefs.UseCourseReserves >+ ...(Koha.prefs.UseCourseReserves > ? [ > { > data: "course_item.course_reserves.course.course_name", >@@ -868,7 +868,7 @@ > }, > ] > : []), >- ...(prefs.SpineLabelShowPrintOnBibDetails >+ ...(Koha.prefs.SpineLabelShowPrintOnBibDetails > ? [ > { > data: "", >@@ -880,13 +880,13 @@ > }, > ] > : []), >- ...(permissions.CAN_user_editcatalogue_edit_items >+ ...(Koha.permissions.CAN_user_editcatalogue_edit_items > ? [ > { > data: function (row, type, val, meta) { > let nodes = ""; > if (can_edit_items_from.includes(row.home_library_id) || !can_edit_items_from.length) { >- if (prefs.LocalCoverImages || prefs.OPACLocalCoverImages) { >+ if (Koha.prefs.LocalCoverImages || prefs.OPACLocalCoverImages) { > nodes += '<div class="btn-group dropup">'; > nodes += > ' <a class="btn btn-default btn-xs" href="/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=%s&itemnumber=%s#edititem"><i class="fa-solid fa-pencil"></i> %s</a><a class="btn btn-default btn-xs dropdown-toggle" data-bs-toggle="dropdown"><span class="caret"></span></a>'.format( >@@ -963,7 +963,7 @@ > container.find(".bottom.pager").remove(); > } > >- if (prefs.SpineLabelShowPrintOnBibDetails) { >+ if (Koha.prefs.SpineLabelShowPrintOnBibDetails) { > $(".print-label").on("click", function (e) { > e.preventDefault(); > link = $(this).attr("href"); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt >index ae09cbc0a6f..ab85377de7f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt >@@ -577,7 +577,7 @@ > [% INCLUDE 'datatables.inc' %] > [% Asset.js("js/modals/edifact-modal.js") | $raw %] > <script> >- addPrefs({ >+ Koha.addPrefs({ > AcqEnableFiles: [% Koha.Preference('AcqEnableFiles') ? 1 : 0 | html %], > }); > const invoiceincgst = [% invoiceincgst ? 1 : 0 | html %]; >@@ -603,7 +603,7 @@ > searching: false, > dom: "t", > }); >- if (prefs.AcqEnableFiles && has_files) { >+ if (Koha.prefs.AcqEnableFiles && has_files) { > $("#invoice_files_table").kohaTable({ > info: false, > paging: false, >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >index ce3e5b400a7..c36662cb219 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >@@ -460,11 +460,11 @@ > var invoice_id = "[% invoiceid | html %]"; > const multiple_orders = "[% multiple_orders | html %]"; > const only_one_order = [% only_one_order ? 1 : 0 | html %]; >- addPrefs({ >+ Koha.addPrefs({ > AcqCreateItem: [% Koha.Preference('AcqCreateItem') ? 1 : 0 | html %], > UniqueItemFields: [% Koha.Preference('UniqueItemFields') ? 1 : 0 | html %], > }); >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_acquisition: [% CAN_user_acquisition ? 1 : 0 | html %], > }); > </script> >@@ -726,7 +726,7 @@ > params["quantity"] = row.quantity; > params["quantityrec"] = row.quantity_received; > params["origquantityrec"] = origrec; >- var effective_create_items = row.basket.create_items || prefs.AcqCreateItem; >+ var effective_create_items = row.basket.create_items || Koha.prefs.AcqCreateItem; > params["tax_rate"] = effective_create_items == "receiving" ? row.tax_rate_on_receiving : row.tax_rate_on_ordering; > params["replacementprice"] = row.replacement_price; > params["unitprice"] = invoiceincgst == "1" ? row.unit_price_tax_included || row.ecost_tax_included : row.unit_price_tax_excluded || row.ecost_tax_excluded; >@@ -924,7 +924,7 @@ > if (val === null) $(this).val($("option:first-child", this).attr("value")); > val = $(this).val(); > var row = $("#order_edit").data("row"); >- var effective_create_items = row.basket.create_items || prefs.AcqCreateItem; >+ var effective_create_items = row.basket.create_items || Koha.prefs.AcqCreateItem; > if (effective_create_items == "receiving") { > row.tax_rate_on_receiving = val; > } else { >@@ -1051,7 +1051,7 @@ > orderable: false, > data: function (row, type, val, meta) { > if (row.invoice) { >- if (permissions.CAN_user_acquisition) { >+ if (Koha.permissions.CAN_user_acquisition) { > return '<a href="/cgi-bin/koha/acqui/invoice.pl?invoiceid=' + row.invoice_id + '" title="Invoice detail page">' + row.invoice.invoice_number + "</a>"; > } > return row.invoice.invoice_number; >@@ -1123,7 +1123,7 @@ > var set_editor = function () { > var modal = $("#order_edit"); > var row = modal.data("row"); >- var effective_create_items = row.basket.create_items || prefs.AcqCreateItem; >+ var effective_create_items = row.basket.create_items || Koha.prefs.AcqCreateItem; > var origrec = $("#order_edit").data("origrec") || {}; > if (!origrec.hasOwnProperty(row.order_id)) { > origrec[row.order_id] = row.quantity_received; >@@ -1262,7 +1262,7 @@ > $("#acq-create-ordering").hide(); > if (row.items && row.items.length) { > row.items.forEach(function (item, index) { >- cloneItemBlock(index, prefs.UniqueItemFields, function (block_id) { >+ cloneItemBlock(index, Koha.prefs.UniqueItemFields, function (block_id) { > var block = $("#" + block_id).hide(); > Object.keys(item).forEach(function (key) { > block >@@ -1271,14 +1271,14 @@ > .find("*[name=field_value]") > .val(item[key].field_value); > }); >- addItemInList(block_id, prefs.UniqueItemFields); >+ addItemInList(block_id, Koha.prefs.UniqueItemFields); > block.find("input[name='buttonPlus']").val(window.MSG_ADDITEM_JS_UPDATEITEM); > block.find("input[name='buttonPlusMulti']").remove(); > block.find("input[name='multiValue']").remove(); > }); > }); > } >- cloneItemBlock((row.items && row.items.length) || 0, prefs.UniqueItemFields); >+ cloneItemBlock((row.items && row.items.length) || 0, Koha.prefs.UniqueItemFields); > } else if (effective_create_items == "ordering") { > $("#acq-create-receiving").hide(); > $("#acq-create-ordering").show(); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >index 83f64eda165..048cef09325 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >@@ -356,12 +356,12 @@ > } > </style> > <script> >- addPrefs({ >+ Koha.addPrefs({ > marcflavour: "[% Koha.Preference('marcflavour') | html %]", > }); > > let summary_fields = "biblio.title:biblio.author:biblio.isbn:biblio.publisher:me.internal_note:me.vendor_note"; >- if (prefs.marcflavour == 'UNIMARC'){ >+ if (Koha.prefs.marcflavour == 'UNIMARC'){ > summary_fields += ":biblio.ean"; > } > const vendor_id = [% booksellerid | html %]; >@@ -471,7 +471,7 @@ > result += _(" by ") + escape_str(row.biblio.author); > if ( row.biblio.isbn != null ) > result += " – " + escape_str(row.biblio.isbn); >- if (prefs.marcflavour == 'UNIMARC' && row.biblio.ean != null ) { >+ if (Koha.prefs.marcflavour == 'UNIMARC' && row.biblio.ean != null ) { > result += " – EAN:" + escape_str(row.biblio.ean); > } > if ( row.biblio.publisher != null ) { >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt >index d1d14b38cb7..0b9b93a3923 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt >@@ -72,7 +72,7 @@ > var bookings_table; > var timeline; > let biblionumber = "[% biblionumber | uri %]"; >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_circulate_manage_bookings: [% CAN_user_circulate_manage_bookings ? 1 : 0 | html %], > }); > </script> >@@ -121,7 +121,7 @@ > end: dayjs(booking.end_date).toDate(), > content: !isActive ? `<s>${patronContent}</s>` : patronContent, > className: booking.status === "cancelled" ? "cancelled" : "", >- ...(permissions.CAN_user_circulate_manage_bookings ? { editable: !["cancelled", "completed"].includes(booking.status) ? { remove: true, updateTime: true } : false } : { editable: false }), >+ ...(Koha.permissions.CAN_user_circulate_manage_bookings ? { editable: !["cancelled", "completed"].includes(booking.status) ? { remove: true, updateTime: true } : false } : { editable: false }), > type: "range", > group: booking.item_id ?? 0, > }); >@@ -371,7 +371,7 @@ > render: function (data, type, row, meta) { > let result = ""; > const is_readonly = ["cancelled", "completed"].includes(row.status); >- if (permissions.CAN_user_circulate_manage_bookings && !is_readonly) { >+ if (Koha.permissions.CAN_user_circulate_manage_bookings && !is_readonly) { > result += ` > <button type="button" class="btn btn-default btn-xs edit-action" > data-bs-toggle="modal" >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index 8688a85a3ff..57d628e655c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -1757,13 +1757,13 @@ > var bundle_settings = [% TablesSettings.GetTableSettings('catalogue', 'detail','bundle_tables','json') | $raw %]; > [% END %] > >- addPrefs({ >+ Koha.addPrefs({ > AlwaysShowHoldingsTableFilters: [% Koha.Preference('AlwaysShowHoldingsTableFilters') ? 1 : 0 | html %], > bundlesEnabled: [% Koha.Preference('bundlesEnabled') ? 1 : 0 | html %], > BundleLostValue: "[% Koha.Preference('BundleLostValue') | html %]", > }); > >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_editcatalogue_manage_item_groups: [% CAN_user_editcatalogue_manage_item_groups ? 1 : 0 | html %], > }); > </script> >@@ -1772,13 +1772,13 @@ > items_tab_ids.forEach(function (tab_id, index) { > // Early return if the tab is not shown (ie. no table) > if (!$("#%s_table".format(tab_id)).length) return; >- if (prefs.AlwaysShowHoldingsTableFilters) { >+ if (Koha.prefs.AlwaysShowHoldingsTableFilters) { > build_items_table(tab_id, true, {}, build_items_table_drawncallback); > } else { > build_items_table(tab_id, false, {}, build_items_table_drawncallback); > } > >- if (prefs.bundlesEnabled) { >+ if (Koha.prefs.bundlesEnabled) { > // Add event listener for opening and closing bundle details > $("#" + tab_id + "_table tbody").on("click", "button.details-control", function () { > var button = $(this); >@@ -1884,7 +1884,7 @@ > searchable: false, > orderable: false, > render: function (data, type, row, meta) { >- if (row.lost_status == prefs.BundleLostValue) { >+ if (row.lost_status == Koha.prefs.BundleLostValue) { > let out = '<span class="lost">' + _("Last seen") + ": " + $date(row.last_seen_date) + "</span>"; > if (row.return_claim) { > out = out + '<span class="claims_return">' + _("Claims returned by") + ": " + $patron_to_html(row.return_claim.patron, { display_cardnumber: false, url: true }) + "</span>"; >@@ -2203,7 +2203,7 @@ > }, > { > data: function (oObj) { >- if (permissions.CAN_user_editcatalogue_manage_item_groups) { >+ if (Koha.permissions.CAN_user_editcatalogue_manage_item_groups) { > return ( > `<button class='item-group-edit btn btn-default btn-xs' data-item-group-id='${oObj.item_group_id}'> > <i class="fa-solid fa-pencil" aria-hidden="true"></i> ${_("Edit")} >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt >index 76d7b16d9b6..c44bbd270b0 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch.tt >@@ -390,7 +390,7 @@ > <script> > var authorised_values = [% authorised_values_json | $raw %]; > var table_settings = [% TablesSettings.GetTableSettings( 'catalogue', 'itemsearch', 'results', 'json' ) | $raw %]; >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_tools_items_batchmod: [% CAN_user_tools_items_batchmod ? 1 : 0 | html %], > CAN_user_tools_items_batchdel: [% CAN_user_tools_items_batchdel ? 1 : 0 | html %], > }); >@@ -642,14 +642,14 @@ > "</a></li>" + > " </ul>" + > " </div>"; >- if (permissions.CAN_user_tools_items_batchmod || permissions.CAN_user_tools_items_batchdel) { >+ if (Koha.permissions.CAN_user_tools_items_batchmod || Koha.permissions.CAN_user_tools_items_batchdel) { > table += > "" + > ' <div class="btn-group"><button class="btn btn-default btn-sm dropdown-toggle disabled" disabled="disabled" type="button" id="batch_mod_menu"data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> ' + > _("Batch operations") + > " </button>" + > ' <ul class="dropdown-menu" aria-labelledby="batch_mod_menu">'; >- if (permissions.CAN_user_tools_items_batchmod) { >+ if (Koha.permissions.CAN_user_tools_items_batchmod) { > table += > "" + > ' <li> <a class="dropdown-item batch_op send_to_item_mod" href="#" data-submit="batch_item_modification" data-bs-toggle="tooltip" data-bs-placement="right" title="' + >@@ -658,7 +658,7 @@ > _("Batch item modification") + > "</a> </li>"; > } >- if (permissions.CAN_user_tools_items_batchdel) { >+ if (Koha.permissions.CAN_user_tools_items_batchdel) { > table += > "" + > ' <li> <a class="dropdown-item batch_op send_to_item_del"" href="#" data-submit="batch_item_deletion" data-bs-toggle="tooltip" data-bs-placement="right" title="' + >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >index 0f1bb5009fc..4a4631b9928 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >@@ -1517,7 +1517,7 @@ > const overduecharges = [% overduecharges ? 1 : 0 | html %]; > const was_transferred = [% transfer ? 1 : 0 | html %]; > >- addPrefs({ >+ Koha.addPrefs({ > TransfersBlockCirc: [% Koha.Preference('TransfersBlockCirc') ? 1 : 0 | html %], > AutomaticConfirmTransfer: [% Koha.Preference('AutomaticConfirmTransfer') ? 1 : 0 | html %], > }); >@@ -1770,7 +1770,7 @@ > ], > }); > >- if (!prefs.TransfersBlockCirc && prefs.AutomaticConfirmTransfer) { >+ if (!Koha.prefs.TransfersBlockCirc && Koha.prefs.AutomaticConfirmTransfer) { > $("#wrong-transfer-modal").on("hidden.bs.modal", function () { > $("#wrongtransferform").submit(); > }); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt >index f579fe8aec8..1313278a54e 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt >@@ -518,7 +518,7 @@ > Edit request > </a> > [% FOREACH action IN request.available_actions %] >- [% needs_prefs = action.needs_prefs.size ? action.needs_prefs : [] %] >+ [% needs_prefs = action.needs_Koha.prefs.size ? action.needs_prefs : [] %] > [% needs_perms = action.needs_perms.size ? action.needs_perms : [] %] > [% needs_all = action.needs_all.size ? action.needs_all : [] %] > [% has_prefs_count = 0 %] >@@ -540,7 +540,7 @@ > [% has_all_count = has_all_count + 1 %] > [% END %] > [% END %] >- [% NEXT IF has_prefs_count < needs_prefs.size || has_perms_count < needs_perms.size || has_all_count < needs_all.size %] >+ [% NEXT IF has_prefs_count < needs_Koha.prefs.size || has_perms_count < needs_perms.size || has_all_count < needs_all.size %] > [% IF action.method == 'migrate' %] > [% IF Koha.Preference('AutoILLBackendPriority') && backends.size > 1 %] > <a >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >index bf2045bc894..c7fd0e2f8cf 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt >@@ -579,7 +579,7 @@ > [% Asset.js("js/members-menu.js") | $raw %] > <script> > var table_settings = [% TablesSettings.GetTableSettings('members', 'fines', 'account-fines', 'json') | $raw %]; >- addPrefs({ >+ Koha.addPrefs({ > FinePaymentAutoPopup: [% Koha.Preference('FinePaymentAutoPopup') ? 1 : 0 | html %], > }); > const change_given = "[% change_given | html %]"; >@@ -587,7 +587,7 @@ > </script> > <script> > $(document).ready(function () { >- if (payment_id && prefs.FinePaymentAutoPopup) { >+ if (payment_id && Koha.prefs.FinePaymentAutoPopup) { > window.open(`/cgi-bin/koha/members/printfeercpt.pl?action=print&change_given=${change_given}&accountlines_id=${payment_id}`, "_blank"); > } > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >index 432ae48893f..05288f23874 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt >@@ -239,7 +239,7 @@ > const change_given = "[% change_given | html %]"; > const total = "[% total | $Price %]"; > const patron_id = "[% patron.borrowernumber | html %]"; >- addPrefs({ >+ Koha.addPrefs({ > FinePaymentAutoPopup: [% Koha.Preference('FinePaymentAutoPopup') ? 1 : 0 | html %], > }); > </script> >@@ -254,7 +254,7 @@ > } > } > $(document).ready(function () { >- if (payment_id && prefs.FinePaymentAutoPopup) { >+ if (payment_id && Koha.prefs.FinePaymentAutoPopup) { > window.open(`/cgi-bin/koha/members/printfeercpt.pl?action=print&accountlines_id=${payment_id}&change_given=${change_given}&borrowernumber=${patron_id}`, "_blank"); > } > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/patron_lists/patron-lists-tab.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/patron_lists/patron-lists-tab.tt >index 1f0ce7c3a18..a03e72444b2 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/patron_lists/patron-lists-tab.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/patron_lists/patron-lists-tab.tt >@@ -123,7 +123,7 @@ > <script> > const patron_id = "[% borrowernumber | html %]"; > const cardnumber = "[% cardnumber | html %]"; >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_tools_manage_patron_lists: [% CAN_user_tools_manage_patron_lists ? 1 : 0 | html %], > }); > </script> >@@ -134,7 +134,7 @@ > $("#table_listnopatron").kohaTable(patron_lists_dt_params); > $("#table_inlists").kohaTable(patron_lists_dt_params); > >- if (permissions.CAN_user_tools_manage_patron_lists){ >+ if (Koha.permissions.CAN_user_tools_manage_patron_lists){ > function addToList() { > var list_id = $("#add_to_patron_list_id_select").val(); > $('#pat_lists_panel').text(_("Loading...")); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt >index 75a853704ee..12f34a34952 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt >@@ -177,7 +177,7 @@ > [% Asset.js("js/tools-menu.js") | $raw %] > <script> > const batch_id = "[% batch_id | html %]"; >- addPrefs({ >+ Koha.addPrefs({ > PatronsPerPage: "[% Koha.Preference('PatronsPerPage') | html %]", > }); > const has_entries = [% table_loop ? 1 : 0 | html %]; >@@ -299,12 +299,12 @@ > var aLengthMenu = [10, 20, 50, 100, -1]; > var aLengthMenuLabel = [10, 20, 50, 100, _("All")]; > for ( var i = 0; i < aLengthMenu.length; i++ ) { >- if ( aLengthMenu[i] == prefs.PatronsPerPage ) { >+ if ( aLengthMenu[i] == Koha.prefs.PatronsPerPage ) { > break; > } >- if ( aLengthMenu[i] > prefs.PatronsPerPage || aLengthMenu[i] == -1 ) { >- aLengthMenu.splice(i, 0, prefs.PatronsPerPage); >- aLengthMenuLabel.splice(i, 0, prefs.PatronsPerPage); >+ if ( aLengthMenu[i] > Koha.prefs.PatronsPerPage || aLengthMenu[i] == -1 ) { >+ aLengthMenu.splice(i, 0, Koha.prefs.PatronsPerPage); >+ aLengthMenuLabel.splice(i, 0, Koha.prefs.PatronsPerPage); > break; > } > } >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt >index 694e845e0f8..a784cc05290 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt >@@ -254,7 +254,7 @@ > const payment_id = "[% payment_id | html %]"; > const tendered = "[% tendered | html %]"; > const change = "[% change | html %]"; >- addPrefs({ >+ Koha.addPrefs({ > FinePaymentAutoPopup: [% Koha.Preference('FinePaymentAutoPopup') ? 1 : 0 | html %], > }); > </script> >@@ -526,7 +526,7 @@ > } > }); > >- if (payment_id && prefs.FinePaymentAutoPopup) { >+ if (payment_id && Koha.prefs.FinePaymentAutoPopup) { > $("#printReceipt").click(function () { > var win = window.open(`/cgi-bin/koha/pos/printreceipt.pl?action=print&accountlines_id=${payment_id}&tendered=${tendered}&change=${change}`, "_blank"); > win.focus(); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >index 6ebaa75185b..0d0ab32ef96 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >@@ -1592,7 +1592,7 @@ > > const active_tab = [% clubs ? 1 : 0 | html %]; > >- addPrefs({ >+ Koha.addPrefs({ > UseBranchTransferLimits: [% Koha.Preference('UseBranchTransferLimits') ? 1 : 0 | html %], > EnableItemGroupHolds: [% Koha.Preference('EnableItemGroupHolds') ? 1 : 0 | html %], > }); >@@ -1656,7 +1656,7 @@ > ToggleHoldsToPlace(); > }); > >- if (prefs.UseBranchTransferLimits) { >+ if (Koha.prefs.UseBranchTransferLimits) { > $("#pickup,#pickup-next-avail,#pickup-item-group").on("change", function () { > var pickup = $(this).val(); > var url = "?pickup=" + pickup; >@@ -1980,7 +1980,7 @@ > patron_autocomplete($(".search_patron_filter"), { "link-to": "reserve", "url-params": url_biblio_params }); > } > >- if (prefs.EnableItemGroupHolds) { >+ if (Koha.prefs.EnableItemGroupHolds) { > $(':radio[name="item_group_id"]').change(function () { > $('input[name="checkitem"]').prop("checked", false); > }); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt >index b71cac719ed..c2703314675 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt >@@ -1323,7 +1323,7 @@ > const has_suggestions = [% suggestions.size ? 1 : 0 | html %]; > let suggestionData = [% To.json(suggestions) | $raw %]; > var suggestions_table_settings = [% TablesSettings.GetTableSettings( 'acqui', 'suggestions', 'suggestions', 'json' ) | $raw %] >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_suggestions_suggestions_manage: [% CAN_user_suggestions_suggestions_manage ? 1 : 0 | html %], > CAN_user_suggestions_suggestions_delete: [% CAN_user_suggestions_suggestions_delete ? 1 : 0 | html %], > }); >@@ -1517,7 +1517,7 @@ > searchable: false, > orderable: false, > render: function (data, type, row, meta) { >- if (permissions.CAN_user_suggestions_suggestions_manage) { >+ if (Koha.permissions.CAN_user_suggestions_suggestions_manage) { > let node = '<div class="btn-group dropup">'; > node += '<a class="btn btn-default btn-xs" role="button" href="suggestion.pl?suggestionid=%s&op=edit_form"><i class="fa-solid fa-pencil" aria-hidden="true"></i> %s</a>'.format( > row.suggestion_id, >@@ -1525,7 +1525,7 @@ > ); > node += '<a class="btn btn-default btn-xs dropdown-toggle" id="more_actions_%s" role="button" data-bs-toggle="dropdown" href="#"><b class="caret"></b></a>'.format(row.suggestion_id); > node += '<ul class="dropdown-menu" role="menu" aria-labelledby="more_actions_%s">'.format(row.suggestion_id); >- if (permissions.CAN_user_suggestions_suggestions_delete) { >+ if (Koha.permissions.CAN_user_suggestions_suggestions_delete) { > node += '<li><a href="#" data-op="cud-delete" data-suggestionid="%s" class="dropdown-item trigger_action">%s</a></li>'.format(row.suggestion_id, _("Delete")); > } > if (!row.archived) { >@@ -1535,7 +1535,7 @@ > } > node += "</ul></div>"; > return node; >- } else if (permissions.CAN_user_suggestions_suggestions_delete) { >+ } else if (Koha.permissions.CAN_user_suggestions_suggestions_delete) { > return '<button data-op="cud-delete" data-suggestionid="%s" class="btn btn-xs btn-default trigger_action"><i class="fa fa-trash-can"></i> %s</button>'.format(row.suggestion_id, _("Delete")); > } > }, >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >index 472d5d80ac7..48d8a0b6deb 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt >@@ -462,7 +462,7 @@ > const theme = "[% theme | html %]"; > const import_batch_id = "[% import_batch_id | html %]"; > const record_type = "[% record_type | html %]"; >- addPermissions({ >+ Koha.addPermissions({ > CAN_user_editcatalogue_edit_catalogue: [% CAN_user_editcatalogue_edit_catalogue ? 1 : 0 | html %], > }); > </script> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/modborrowers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/modborrowers.tt >index 5cca9f84fed..42d4957c99d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/modborrowers.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/modborrowers.tt >@@ -494,7 +494,7 @@ > > const has_patrons = [% borrowers ? 1 : 0 | html %] > const op = "[% op | html %]"; >- addPermissions({ >+ Koha.addPermissions({ > CanUpdatePasswordExpiration: [% CanUpdatePasswordExpiration ? 1 : 0 | html %], > CanUpdateProtectPatron: [% CanUpdateProtectPatron ? 1 : 0 | html %], > }); >@@ -526,7 +526,7 @@ > selections_column.is_hidden = 1; > } > >- if (!permissions.CanUpdatePasswordExpiration) { >+ if (!Koha.permissions.CanUpdatePasswordExpiration) { > let password_expiration_date_column = table_settings.columns.find(c => c.columnname == "batch_patron_edit_password_expiration_date"); > password_expiration_date_column.is_hidden = 1; > password_expiration_date_column.cannot_be_modified = 1; >@@ -534,7 +534,7 @@ > password_expiration_date_column.force_visibility = 1; > } > >- if (!permissions.CanUpdateProtectPatron) { >+ if (!Koha.permissions.CanUpdateProtectPatron) { > let protected_column = table_settings.columns.find(c => c.columnname == "batch_patron_edit_protected"); > protected_column.is_hidden = 1; > protected_column.cannot_be_modified = 1; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt >index 2f12b0d95e4..4734fe43ff6 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload.tt >@@ -370,7 +370,7 @@ > table_settings['columns'].splice(5, 1); > } > >- addPrefs({ >+ Koha.addPrefs({ > OPACBaseURL: "[% Koha.Preference('OPACBaseURL') | html %]", > }); > const msg_alert = "[% msg | html %]"; >@@ -490,7 +490,7 @@ > } > } > function Choose(hashval) { >- var res = prefs.OPACBaseURL; >+ var res = Koha.prefs.OPACBaseURL; > res = res.replace(/\/$/, ""); > res = res + "/cgi-bin/koha/opac-retrieve-file.pl?id=" + hashval; > var index = plugin_index; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt >index 22d9a88bc8b..b7d4c68dd17 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt >@@ -718,17 +718,17 @@ > > [% IF shelf AND op == 'view' %] > <script> >- addPrefs({ >+ Koha.addPrefs({ > intranetbookbag: [% Koha.Preference("intranetbookbag") ? 1 : 0 | html %], > virtualshelves: [% Koha.Preference("virtualshelves") ? 1 : 0 | html %], > }); > > function build_dropdown(){ > var param1 = "| <label for=\"addto\">"+_("Add to:")+"<\/label><select name=\"addto\" id=\"addto\"><option value=\"\"><\/option>"; >- if (prefs.intranetbookbag){ >+ if (Koha.prefs.intranetbookbag){ > param1 += "<option value=\"addtocart\">"+_("Cart")+"<\/option>"; > } >- if (prefs.virtualshelves){ >+ if (Koha.prefs.virtualshelves){ > [% IF add_to_some_private_shelves.count %] > param1 += "<optgroup label=\""+_("Your lists:")+"\">"; > [% SET number_of_private_shelves = 0 %] >diff --git a/koha-tmpl/intranet-tmpl/prog/js/stores.js b/koha-tmpl/intranet-tmpl/prog/js/stores.js >index 77f53e556df..942b5853ea7 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/stores.js >+++ b/koha-tmpl/intranet-tmpl/prog/js/stores.js >@@ -1,19 +1,17 @@ > (function () { >- const permissions = (window.permissions = window.permissions || {}); >+ const app = (window.Koha ??= {}); > >- window.addPermissions = function (perms) { >+ const permissions = (app.permissions ??= {}); >+ app.addPermissions = function (perms) { > for (const key in perms) { > if (Object.prototype.hasOwnProperty.call(perms, key)) { > permissions[key] = perms[key]; > } > } > }; >-})(); >- >-(function () { >- const prefs = (window.prefs = window.prefs || {}); > >- window.addPrefs = function (sysprefs) { >+ const prefs = (app.prefs = app.prefs || {}); >+ app.addPrefs = function (sysprefs) { > for (const key in sysprefs) { > if (Object.prototype.hasOwnProperty.call(sysprefs, key)) { > prefs[key] = sysprefs[key]; >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >index 136440f33bc..12617164265 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >@@ -1645,7 +1645,7 @@ > [% END %] > <script> > const interface = "[% interface | html %]"; >- addPrefs({ >+ Koha.addPrefs({ > OpacHighlightedWords: "[% Koha.Preference('OpacHighlightedWords') | html %]", > NotHighlightedWords: "[% Koha.Preference('NotHighlightedWords') | html %]", > GoogleJackets: [% Koha.Preference('GoogleJackets') ? 1 : 0 | html %], >@@ -1705,7 +1705,7 @@ > }); > window.emojiPicker.discover(); > >- if (prefs.OpacHighlightedWords){ >+ if (Koha.prefs.OpacHighlightedWords){ > var q_array = new Array(); // holds search terms if available > > function highlightOff() { >@@ -1718,7 +1718,7 @@ > if ( q_array[x].length > 0 ) { > q_array[x] = q_array[x].replace(/\w*:([\w])/, "$1"); > q_array[x] = q_array[x].toLowerCase(); >- var myStopwords = prefs.NotHighlightedWords.toLowerCase().split('|'); >+ var myStopwords = Koha.prefs.NotHighlightedWords.toLowerCase().split('|'); > if( $.inArray(q_array[x], myStopwords) == -1 ) { > $("#marcnotes").highlight(q_array[x]); > $(".title").highlight(q_array[x]); >@@ -1871,19 +1871,19 @@ > var loaded = 1; > counter_wait++; > >- if (prefs.GoogleJackets){ >+ if (Koha.prefs.GoogleJackets){ > if ( loaded ) { > loaded = KOHA.Google.done; > } > } > >- if (prefs.OpenLibraryCovers){ >+ if (Koha.prefs.OpenLibraryCovers){ > if ( loaded ) { > loaded = KOHA.OpenLibrary.done; > } > } > >- if (prefs.OpacCoce && prefs.CoceProviders){ >+ if (Koha.prefs.OpacCoce && Koha.prefs.CoceProviders){ > if ( loaded ) { > loaded = KOHA.coce.done; > } >@@ -1905,7 +1905,7 @@ > > $(document).ready(function() { > >- if (prefs.OPACDetailQRCode){ >+ if (Koha.prefs.OPACDetailQRCode){ > > var link_canonical = document.querySelector("link[rel=canonical]"); > >@@ -1953,7 +1953,7 @@ > } > } > >- if (prefs.OpacBrowseResults && busc){ >+ if (Koha.prefs.OpacBrowseResults && busc){ > $(".l_Results").show(); > $("#a_listResults").on("click", function(e){ > e.preventDefault(); >@@ -2004,7 +2004,7 @@ > dTables.DataTable().responsive.recalc(); > } ); > >- if (prefs.TagsInputEnabled && loggedinusername){ >+ if (Koha.prefs.TagsInputEnabled && loggedinusername){ > $(".tag_add").click(function(){ > var thisid = $(this).attr("id"); > thisid = thisid.replace("tag_add",""); >@@ -2036,7 +2036,7 @@ > } > > if (query_desc !==""){ >- if (prefs.OpacHighlightedWords){ >+ if (Koha.prefs.OpacHighlightedWords){ > var query_desc_replaced = query_desc.replace("'", "\'").replace('\n', '\\n').replace('\r', '\\r'); > q_array = query_desc_replaced.split(" "); > q_array = q_array.filter(function(n){ return n }); // Remove empty strings >@@ -2046,19 +2046,19 @@ > } > } > >- if (prefs.GoogleJackets){ >- KOHA.Google.GetCoverFromIsbn(prefs.OPACURLOpenInNewWindow); >+ if (Koha.prefs.GoogleJackets){ >+ KOHA.Google.GetCoverFromIsbn(Koha.prefs.OPACURLOpenInNewWindow); > } > >- if (prefs.OpacCoce && prefs.CoceProviders){ >- KOHA.coce.getURL(prefs.CoceHost, prefs.CoceProviders, $('#biblio-cover-slider') ); >+ if (Koha.prefs.OpacCoce && Koha.prefs.CoceProviders){ >+ KOHA.coce.getURL(Koha.prefs.CoceHost, Koha.prefs.CoceProviders, $('#biblio-cover-slider') ); > } > >- if (prefs.OpenLibraryCovers){ >+ if (Koha.prefs.OpenLibraryCovers){ > KOHA.OpenLibrary.GetCoverFromIsbn(); > } > >- if (prefs.OPACShelfBrowser){ >+ if (Koha.prefs.OPACShelfBrowser){ > // Focus on shelf browser if present > var shelfbrowser = $("#shelfbrowser"); > if (shelfbrowser.length > 0) { >@@ -2084,13 +2084,13 @@ > }, > success: function(data){ > $("#shelfbrowser").replaceWith(data); >- if (prefs.GoogleJackets){ >- KOHA.Google.GetCoverFromIsbn(prefs.OPACURLOpenInNewWindow); >+ if (Koha.prefs.GoogleJackets){ >+ KOHA.Google.GetCoverFromIsbn(Koha.prefs.OPACURLOpenInNewWindow); > } >- if (prefs.OpacCoce && prefs.CoceProviders){ >- KOHA.coce.getURL(prefs.CoceHost, prefs.CoceProviders, $("#bibliodescriptions")); >+ if (Koha.prefs.OpacCoce && Koha.prefs.CoceProviders){ >+ KOHA.coce.getURL(Koha.prefs.CoceHost, Koha.prefs.CoceProviders, $("#bibliodescriptions")); > } >- if (prefs.OpenLibraryCovers){ >+ if (Koha.prefs.OpenLibraryCovers){ > KOHA.OpenLibrary.GetCoverFromIsbn(); > } > if (OPACLocalCoverImages){ >@@ -2109,16 +2109,16 @@ > }, > success: function(data){ > $("#shelfbrowser").replaceWith(data); >- if (prefs.GoogleJackets){ >- KOHA.Google.GetCoverFromIsbn(prefs.OPACURLOpenInNewWindow); >+ if (Koha.prefs.GoogleJackets){ >+ KOHA.Google.GetCoverFromIsbn(Koha.prefs.OPACURLOpenInNewWindow); > } >- if (prefs.OpacCoce && prefs.CoceProviders){ >- KOHA.coce.getURL(prefs.CoceHost, prefs.CoceProviders, $("#bibliodescriptions")); >+ if (Koha.prefs.OpacCoce && Koha.prefs.CoceProviders){ >+ KOHA.coce.getURL(Koha.prefs.CoceHost, Koha.prefs.CoceProviders, $("#bibliodescriptions")); > } >- if (prefs.OpenLibraryCovers){ >+ if (Koha.prefs.OpenLibraryCovers){ > KOHA.OpenLibrary.GetCoverFromIsbn(); > } >- if (prefs.OPACLocalCoverImages){ >+ if (Koha.prefs.OPACLocalCoverImages){ > KOHA.LocalCover.GetCoverFromBibnumber(true); > } > } >@@ -2134,7 +2134,7 @@ > }); > > $(document).ready(function() { >- if( prefs.OPACPopupAuthorsSearch ){ >+ if( Koha.prefs.OPACPopupAuthorsSearch ){ > var terms = { > contributors : { > "label" : "author", >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >index 849dec3afe3..ed54be2fb18 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >@@ -362,7 +362,7 @@ > [% BLOCK jsinclude %] > [% INCLUDE 'datatables.inc' %] > <script> >- addPrefs({ >+ Koha.addPrefs({ > PhoneNotification: [% Koha.Preference('PhoneNotification') ? 1 : 0 | html %], > TalkingTechItivaPhoneNotification: [% Koha.Preference('TalkingTechItivaPhoneNotification') ? 1 : 0 | html %], > }); >@@ -370,7 +370,7 @@ > <script> > $(document).ready(function () { > function toggle_digest(id) { >- let phone_checked = prefs.TalkingTechItivaPhoneNotification ? false : prefs.PhoneNotification ? $("#phone" + id).prop("checked") : false; >+ let phone_checked = Koha.prefs.TalkingTechItivaPhoneNotification ? false : Koha.prefs.PhoneNotification ? $("#phone" + id).prop("checked") : false; > > if ($("#email" + id).prop("checked") || $("#sms" + id).prop("checked") || phone_checked) { > $("#digest" + id) >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt >index 2d8ad2fdc24..89b13d75155 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt >@@ -229,13 +229,13 @@ > [% BLOCK jsinclude %] > [% INCLUDE 'datatables.inc' %] > <script> >- addPrefs({ >+ Koha.addPrefs({ > GoogleJackets: [% Koha.Preference('GoogleJackets') ? 1 : 0 | html %], > }); > </script> > <script> > $(document).ready(function () { >- if (prefs.GoogleJackets) { >+ if (Koha.prefs.GoogleJackets) { > KOHA.Google.GetCoverFromIsbn(); > } > $("#order").change(function () { >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >index 4a50018150f..6e62b92a2da 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >@@ -1053,7 +1053,7 @@ > <script> > const tab = "[% tab | html %]"; > const logged_in_user_borrowernumber = "[% borrowernumber | html %]"; >- addPrefs({ >+ Koha.addPrefs({ > OpacRenewalAllowed: [% Koha.Preference('OpacRenewalAllowed') ? 1 : 0 | html %], > GoogleJackets: [% Koha.Preference('GoogleJackets') ? 1 : 0 | html %], > AllowCheckoutNotes: [% Koha.Preference('AllowCheckoutNotes') ? 1 : 0 | html %], >@@ -1068,7 +1068,7 @@ > function tableInit(tableId) { > if (tableId == "checkoutst") { > $(".dt-buttons").append('<button type="button" class="dt-button buttons-ical" id="buttons-ics">iCal</button> '); >- if (prefs.OpacRenewalAllowed && can_renew && !is_debarred) { >+ if (Koha.prefs.OpacRenewalAllowed && can_renew && !is_debarred) { > $(".dt-buttons").append( > '<button id="renewselected_link" class="dt-button buttons-renew"><i class="fa fa-check" aria-hidden="true"></i> ' + > _("Renew selected") + >@@ -1254,10 +1254,10 @@ > location.href = "/cgi-bin/koha/opac-ics.pl"; > }); > >- if (prefs.GoogleJackets) { >+ if (Koha.prefs.GoogleJackets) { > KOHA.Google.GetCoverFromIsbn(); > } >- if (prefs.OpacRenewalAllowed && can_renew && !is_debarred) { >+ if (Koha.prefs.OpacRenewalAllowed && can_renew && !is_debarred) { > $("#renewselected").submit(function () { > valid = false; > $("input[type=checkbox]").each(function () { >@@ -1280,7 +1280,7 @@ > }); > } > >- if (prefs.AllowCheckoutNotes) { >+ if (Koha.prefs.AllowCheckoutNotes) { > /* If JS enabled, show button, otherwise show link to redirect to a page where note can be submitted */ > $(".nonjs_submitnote").hide(); > >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt >index 259b7dd7c04..ce9d2e9809a 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt >@@ -406,7 +406,7 @@ > [% BLOCK jsinclude %] > [% INCLUDE 'datatables.inc' %] > <script> >- addPrefs({ >+ Koha.addPrefs({ > SelfCheckTimeout: "[% Koha.Preference('SelfCheckTimeout') | html %]", > SelfCheckReceiptPrompt: [% Koha.Preference('SelfCheckReceiptPrompt') ? 1 : 0 | html %], > }); >@@ -445,7 +445,7 @@ > function sco_init() { > mainTimeout = setTimeout(function () { > location.href = "/cgi-bin/koha/sco/sco-main.pl?op=logout"; >- }, prefs.SelfCheckTimeout); >+ }, Koha.prefs.SelfCheckTimeout); > } > function dofocus() { > // named function req'd for body onload event by some FF and IE7 security models >@@ -518,7 +518,7 @@ > $("#logout_form").on("click", function (e) { > e.preventDefault(e); > clearTimeout(mainTimeout); >- if (prefs.SelfCheckReceiptPrompt) { >+ if (Koha.prefs.SelfCheckReceiptPrompt) { > confirmModal("", _("Would you like to print a receipt?"), _("Print receipt and end session"), _("End session"), function (result) { > if (result) { > var win = window.open("/cgi-bin/koha/sco/printslip.pl?print=qslip"); >diff --git a/koha-tmpl/opac-tmpl/bootstrap/js/stores.js b/koha-tmpl/opac-tmpl/bootstrap/js/stores.js >index 77f53e556df..942b5853ea7 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/js/stores.js >+++ b/koha-tmpl/opac-tmpl/bootstrap/js/stores.js >@@ -1,19 +1,17 @@ > (function () { >- const permissions = (window.permissions = window.permissions || {}); >+ const app = (window.Koha ??= {}); > >- window.addPermissions = function (perms) { >+ const permissions = (app.permissions ??= {}); >+ app.addPermissions = function (perms) { > for (const key in perms) { > if (Object.prototype.hasOwnProperty.call(perms, key)) { > permissions[key] = perms[key]; > } > } > }; >-})(); >- >-(function () { >- const prefs = (window.prefs = window.prefs || {}); > >- window.addPrefs = function (sysprefs) { >+ const prefs = (app.prefs = app.prefs || {}); >+ app.addPrefs = function (sysprefs) { > for (const key in sysprefs) { > if (Object.prototype.hasOwnProperty.call(sysprefs, key)) { > prefs[key] = sysprefs[key]; >-- >2.43.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 41653
:
191570
| 191571