Bug 29530: Fix handling of NumSavedReports preference in reports table
This patch updates the way the NumSavedReports preference value is used
on the saved reports page so that the setting is correctly incorporated
into the DataTable.
The patch also expands the description of the NumSavedReports preference
in order to clarify the expected behavior when no value is saved.
To test, apply the patch and go to Administration -> System
preferences and note the value of NumSavedReports.
- Go to Reports -> Use saved.
- Confirm that the first page of saved reports shows the number
specified in NumSavedReports.
- In the "Show" dropdown menu, confirm that the number from
NumSavedReports is preselected by default.
- Expand the dropdown menu to confirm that the NumSavedReports number
is positioned sequentially with the default values. For example, if
NumSavedReports = "78," the menu options should be
"10, 20, 50, 78, 100, All".
- Test with various values of NumSavedReports. A blank value should
result in the "All" option being selected. A non-numeric or
non-positive value should result in the default set of options being
used ("10, 20, 50, 100, All").
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
parent
edff2287c2
commit
3c8a197484
|
|
@ -55,4 +55,4 @@ Tools:
|
|||
- By default, show
|
||||
- pref: NumSavedReports
|
||||
class: integer
|
||||
- reports on the saved reports page.
|
||||
- reports on the saved reports page. A value of 20 is recommended. If empty, all reports will be shown.
|
||||
|
|
|
|||
|
|
@ -1586,6 +1586,53 @@
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Process the value of the NumSavedReports system preference for use as
|
||||
a DataTable pageLenth option
|
||||
* @param {string} pageLength - The value of the NumSavedReports system
|
||||
preference, passed via the template during table initiation
|
||||
* @return {number} - The number of results to show by default in the
|
||||
DataTable (-1 for "all")
|
||||
*/
|
||||
function getPageLength( pageLength ){
|
||||
if( pageLength !== "" ){
|
||||
if( Number( pageLength ) > 0 ){
|
||||
return Number( pageLength );
|
||||
} else {
|
||||
return 20; /* Negative or non-numeric value passed. Use default 20 */
|
||||
}
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rebuild the DataTable's lengthMenu array, adding the value of the NumSavedReports
|
||||
system preference
|
||||
* @param {string} pageLength - The value of the NumSavedReports system
|
||||
preference, passed via the template during table initiation
|
||||
* @return {Array} - An array of two arrays: 1. The numeric values for
|
||||
options in the pageLenth <select>; 2. The text values for options in
|
||||
the pageLength <select>;
|
||||
*/
|
||||
function buildLengthMenu( num ){
|
||||
var lengthMenu = dataTablesDefaults.lengthMenu;
|
||||
var pageLength = getPageLength( num );
|
||||
if( !lengthMenu[0].includes( pageLength ) ){
|
||||
/* extend lengthMenu with custom value */
|
||||
lengthMenu.forEach( function( item ){
|
||||
item.pop(); /* Remove the last entry, "all" */
|
||||
item.push( Number( pageLength ) ); /* Add the value from NumSavedReports */
|
||||
item.sort(function( a, b ){ /* Re-sort the values */
|
||||
return a - b;
|
||||
});
|
||||
});
|
||||
lengthMenu[0].push(-1); /* Add the numeric "all" option */
|
||||
lengthMenu[1].push( _("All") ); /* Add the textual "all" option */
|
||||
}
|
||||
return lengthMenu;
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
var activeTab = localStorage.getItem("sql_reports_activetab");
|
||||
|
|
@ -1761,13 +1808,14 @@
|
|||
|
||||
[% IF (saved1) %]
|
||||
var rtable = KohaTable("table_reports", {
|
||||
'pageLength': [% Koha.Preference('NumSavedReports') | html %],
|
||||
"pageLength": getPageLength( "[% Koha.Preference('NumSavedReports') | html %]" ),
|
||||
"lengthMenu": buildLengthMenu( "[% Koha.Preference('NumSavedReports') | html %]" ),
|
||||
'bAutoWidth': false,
|
||||
'sPaginationType': 'full',
|
||||
'aaSorting': [[ 1, "asc" ]],
|
||||
'oLanguage': {
|
||||
'sZeroRecords': _("No matching reports found")
|
||||
},
|
||||
}
|
||||
}, columns_settings);
|
||||
|
||||
var rtabs = $("#tabs").tabs({
|
||||
|
|
|
|||
Loading…
Reference in New Issue