Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. Following patches will prevent that by loading checkouts in the table by batches.
Created attachment 45018 [details] [review] Bug 15219: Load checkouts table incrementally Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by loading checkouts in the table by batches of 100. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds a global filter text input on all tables - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp)
Created attachment 45036 [details] [review] Bug 15219: Fix content of "Export" column
Created attachment 45054 [details] [review] Bug 15219: Fix column settings in table moremember/issues-table
Changed status to ASSIGNED, the patches still need some work.
Loading checkouts table incrementally takes more time to load all lines than to load them all at once, so I'll go with a classic paginated table.
Created attachment 48107 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3
Created attachment 50075 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3
Patch rebased on master
Sorry, doesn't apply...
Created attachment 60071 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3
Rebased on master
Sort by due date does not work, that was the point of the "due_date_unformatted" column.
(In reply to Jonathan Druart from comment #12) > Sort by due date does not work, that was the point of the > "due_date_unformatted" column. You're right, I thought mRender was only used for display and sorting was done using mData, but no, mRender is used for everything... The columns.render options from DataTables 1.10+ (https://datatables.net/reference/option/columns.render) allow to do that, so I'll rewrite this part
Created attachment 60642 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...)
Created attachment 61158 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3
Created attachment 61159 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...)
Patch tested with a sandbox, by Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 61545 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3 Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 61546 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...) Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
I plan to QA it, but on top of bug 15498 and bug 14224 (also modifying checkouts.js).
Created attachment 72905 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3 Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 72906 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...) Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Please rebase! Apply? [(y)es, (n)o, (i)nteractive] y Applying: Bug 15219: Server-side processing and pagination on checkouts tables Using index info to reconstruct a base tree... M admin/columns_settings.yml M installer/data/mysql/sysprefs.sql M koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc M koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref M koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt M koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt Falling back to patching base and 3-way merge... Auto-merging koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt CONFLICT (content): Merge conflict in koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt Auto-merging koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt CONFLICT (content): Merge conflict in koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt Auto-merging koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref Auto-merging koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc Auto-merging installer/data/mysql/sysprefs.sql Auto-merging admin/columns_settings.yml Failed to merge in the changes. Patch failed at 0001 Bug 15219: Server-side processing and pagination on checkouts tables The copy of the patch that failed is found in: /home/vagrant/kohaclone/.git/rebase-apply/patch When you have resolved this problem run "git bz apply --continue". If you would prefer to skip this patch, instead run "git bz apply --skip". To restore the original branch and stop patching run "git bz apply --abort". Patch left in /tmp/Bug-15219-Server-side-processing-and-pagination-on-niral1.patch
Created attachment 74224 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3 Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 74225 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...) Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Patches rebased on master
1) Releatives tab doesn't open. JavaScript error: Error: Syntax error, unrecognized expression: ##relatives-issues-table 2) I think most libraries will have a mix of large accounts and smaller ones. Could it make sense to use the server side processing when the patron has a certain number of checkouts (configurable)?
Created attachment 75911 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3 Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 75912 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...) Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 75913 [details] [review] Bug 15219: Fix relatives issues table
(In reply to Katrin Fischer from comment #27) > 1) Releatives tab doesn't open. JavaScript error: > Error: Syntax error, unrecognized expression: ##relatives-issues-table Fixed in the last patch > 2) I think most libraries will have a mix of large accounts and smaller > ones. Could it make sense to use the server side processing when the patron > has a certain number of checkouts (configurable)? It makes sense, but I think than can go in a separate bug. Do you agree ?
Tiny ergonomic issue when the export column is displayed: https://screenshots.firefox.com/0gdGrGVyEBanCz8n/pro.kohadev.org
(In reply to Jonathan Druart from comment #32) > Tiny ergonomic issue when the export column is displayed: > https://screenshots.firefox.com/0gdGrGVyEBanCz8n/pro.kohadev.org Hum, the export column should not be displayed actually, ExportCircHistory is off. But it is in the "column visibility" list
"Select all" only select visible rows. If it is expected it is confusing.
Created attachment 78555 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3 Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 78556 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...) Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 78557 [details] [review] Bug 15219: Fix relatives issues table
Created attachment 78558 [details] [review] Bug 15219: Do not call escapeHtml on null values
Created attachment 78559 [details] [review] Bug 15219: Reword "select all" links since they select only visible rows
(In reply to Jonathan Druart from comment #33) > (In reply to Jonathan Druart from comment #32) > > Tiny ergonomic issue when the export column is displayed: > > https://screenshots.firefox.com/0gdGrGVyEBanCz8n/pro.kohadev.org > > Hum, the export column should not be displayed actually, ExportCircHistory > is off. But it is in the "column visibility" list It looks like this has been partially fixed in master. When ExportCircHistory is off, the column is not there. But the footer problem is still there, and it's in master too. It should be fixed in another bug.
Created attachment 79195 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3 Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 79196 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...) Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 79197 [details] [review] Bug 15219: Fix relatives issues table
Created attachment 79198 [details] [review] Bug 15219: Do not call escapeHtml on null values
Created attachment 79199 [details] [review] Bug 15219: Reword "select all" links since they select only visible rows
A bug as been found on relatives checkouts Bug 22921. Thoses patches should be rebased after it.
(In reply to Fridolin SOMERS from comment #46) > A bug as been found on relatives checkouts Bug 22921. > > Thoses patches should be rebased after it. It turns out its a bug from this feature. == Test plan == 1. Have a patron with two guarantees 2. Have issues for the three of them 3. Go to the relatives issues view 4. You should only see the issues of one of them 5. Apply this patch 6. Force refresh the page (eg. ctrl-F5) 7. You should see the issues of the two relatives Needs a fix
Created attachment 92776 [details] [review] Bug 15219: Server-side processing and pagination on checkouts tables Some libraries have patrons with more than 1000 checkouts. Loading all of them at once can be very long, and sometimes can cause timeout errors. This patch prevent that by enabling server-side processing and pagination on checkouts tables. This affects patron's checkouts and patron's relatives' checkouts tables on pages circ/circulation.pl and members/moremember.pl. As server-side processing can be useless and cumbersome with small sets of data, a new system preference is introduced to control this behaviour (server-side processing is disabled by default). Additionally, this patch: - adds a switch to turn off and on row grouping (today's checkouts vs previous checkouts) (on by default) - adds "column settings" for relatives' checkouts tables - factorize some code that was duplicated across the two DataTables configurations (mDataProp) Test plan: 1. Find (or create) a patron that have at least 10 checkouts and where the relatives checkouts table contain at least 10 checkouts. 2. Go to the patron's detail page and check everything works fine in both tables (sorting, pagination, the data itself, ...) 3. Do the same on circulation page (circulation.pl) 4. Enable system preference ServerSideCheckoutsTable 5. Repeat steps 2 and 3 Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 92777 [details] [review] Bug 15219: Fix date sorting when server-side processing is disabled Use DataTables 'columns' option instead of 'aoColumns' This allow more control on what data is used for display, sorting, filtering, ... A large part of this patch is about rewording things to better match the DataTables documentation. The real change is that "mRender": renderingFunc becomes "render": { "display": renderingFunc } So the return value of renderingFunc is now only used for display (not for filtering, sorting, ...) Signed-off-by: Eric Gosselin <eric.gosselin@inlibro.com>
Created attachment 92778 [details] [review] Bug 15219: Fix relatives issues table
Created attachment 92779 [details] [review] Bug 15219: Do not call escapeHtml on null values
Created attachment 92780 [details] [review] Bug 15219: Reword "select all" links since they select only visible rows
Created attachment 92781 [details] [review] Bug 15219: Fix relatives checkouts Send all borrowernumbers to /svc/checkouts instead of only the last one
Patches rebased on master (In reply to Fridolin SOMERS from comment #47) > (In reply to Fridolin SOMERS from comment #46) > > A bug as been found on relatives checkouts Bug 22921. > > It turns out its a bug from this feature. > > Needs a fix Fix attached (attachment 92781 [details] [review])
Typo in : Bug 15219: Fix date sorting when server-side processing is disabled : - title += " - <span class='" + span_class + " item-note-public'>" + oObj.itemnotes.escapeHtml() + "</span>"; + title += " - <span class='" + span_class + " item-note-public'>" + row.itemnotes.escapeHtm() + "</span>"; escapeHtm() instead of escapeHtml()
Created attachment 93921 [details] [review] Bug 15219: Fix typo 'escapeHtm'
Julian, take a look here: https://gitlab.com/thekesolutions/Koha/commits/bug_20212_slowness_acq we already have an API for checkouts, so you should just use it. I'm submitting the code for acquisitions soon, and you will be able to reuse the datatables extension to use the API (native API pagination included).
(In reply to Tomás Cohen Arazi from comment #57) > Julian, take a look here: > > https://gitlab.com/thekesolutions/Koha/commits/bug_20212_slowness_acq > > we already have an API for checkouts, so you should just use it. I'm > submitting the code for acquisitions soon, and you will be able to reuse the > datatables extension to use the API (native API pagination included). Is the REST API for checkouts also capable of handling datatable filtering (for bug 15235) ? What about the grouping of "today's checkouts" vs "previous checkouts" ? I think that this feature would be complicated to make using the REST API.
(In reply to Julian Maurice from comment #58) > (In reply to Tomás Cohen Arazi from comment #57) > > Julian, take a look here: > > > > https://gitlab.com/thekesolutions/Koha/commits/bug_20212_slowness_acq > > > > we already have an API for checkouts, so you should just use it. I'm > > submitting the code for acquisitions soon, and you will be able to reuse the > > datatables extension to use the API (native API pagination included). > > Is the REST API for checkouts also capable of handling datatable filtering > (for bug 15235) ? > What about the grouping of "today's checkouts" vs "previous checkouts" ? I > think that this feature would be complicated to make using the REST API. @Tomas: can you help with these questions?