Bug 33568: Do not embed library names
Performance for 1000 items from 30s to 22s It replaces the input in the column header filter with a dropdown list. Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Laurence Rault <laurence.rault@biblibre.com> Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov> Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
parent
b151bcf0e7
commit
5ced551cb7
2 changed files with 18 additions and 5 deletions
|
@ -1,5 +1,6 @@
|
|||
[% USE To %]
|
||||
[% USE Koha %]
|
||||
[% USE Branches %]
|
||||
[% USE AuthorisedValues %]
|
||||
[% USE raw %]
|
||||
|
||||
|
@ -164,6 +165,13 @@
|
|||
[% END %]
|
||||
|
||||
|
||||
const all_libraries = [% To.json(Branches.all) | $raw %];
|
||||
const libraries_filters = all_libraries.map(e => {
|
||||
e["_id"] = e["branchcode"];
|
||||
e["_str"] = e["branchname"];
|
||||
return e;
|
||||
});
|
||||
|
||||
const can_edit_items_from = [% To.json(can_edit_items_from || {}) | $raw %];
|
||||
const item_type_image_locations = [% To.json(item_type_image_locations) | $raw %];
|
||||
const av_loc = new Map([% To.json(AuthorisedValues.Get('LOC')) | $raw %].map( av => [av.authorised_value, av.lib]));
|
||||
|
@ -185,7 +193,6 @@
|
|||
[%# Do we need separate/new endpoints or do we hack the somewhere client-side? %]
|
||||
let item_table_url = "/api/v1/biblios/[% biblio.biblionumber | uri %]/items?";
|
||||
let embed = ["+strings,checkout,checkout.patron,transfer,transfer+strings,first_hold,first_hold+strings,first_hold.patron,first_hold.desk,item_type"];
|
||||
embed.push('home_library', 'holding_library');
|
||||
[% IF Koha.Preference('LocalCoverImages') %]
|
||||
embed.push('cover_image_ids');
|
||||
[% END %]
|
||||
|
@ -248,6 +255,11 @@
|
|||
if ( !items_selection.hasOwnProperty(tab_id) ){
|
||||
items_selection[tab_id] = [];
|
||||
}
|
||||
|
||||
let filters_options = {
|
||||
3: () => all_libraries,
|
||||
4: () => all_libraries,
|
||||
};
|
||||
var items_table = $("#" + tab_id + '_table').kohaTable({
|
||||
ajax: { url: item_table_url },
|
||||
order: [[ 0, "asc" ]],
|
||||
|
@ -320,7 +332,7 @@
|
|||
},
|
||||
[% END %]
|
||||
{
|
||||
data: "me.holding_library_id:holding_library.name",
|
||||
data: "me.holding_library_id",
|
||||
className: "location",
|
||||
searchable: true,
|
||||
orderable: true,
|
||||
|
@ -329,7 +341,7 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
data: "me.home_library_id:home_library.name",
|
||||
data: "me.home_library_id",
|
||||
className: "homebranch",
|
||||
searchable: true,
|
||||
orderable: true,
|
||||
|
@ -768,6 +780,7 @@
|
|||
items_table_settings[tab_id],
|
||||
add_filters,
|
||||
default_filters,
|
||||
filters_options,
|
||||
);
|
||||
|
||||
return items_table;
|
||||
|
|
|
@ -947,7 +947,7 @@ function _dt_add_delay(table_dt, table_node, delay_ms) {
|
|||
* @param {Object} default_filters Add a set of default search filters to apply at table initialisation
|
||||
* @return {Object} The dataTables instance
|
||||
*/
|
||||
$.fn.kohaTable = function(options, table_settings, add_filters, default_filters) {
|
||||
$.fn.kohaTable = function(options, table_settings, add_filters, default_filters, filters_options) {
|
||||
var settings = null;
|
||||
|
||||
if(options) {
|
||||
|
@ -998,7 +998,7 @@ function _dt_add_delay(table_dt, table_node, delay_ms) {
|
|||
|
||||
var table_dt = table.DataTable();
|
||||
if ( add_filters ) {
|
||||
_dt_add_filters(this, table_dt);
|
||||
_dt_add_filters(this, table_dt, filters_options);
|
||||
}
|
||||
|
||||
table.DataTable().on("column-visibility.dt", function(){_dt_on_visibility(add_filters, table, table_dt);})
|
||||
|
|
Loading…
Reference in a new issue