]> git.evergreen-ils.org Git - Evergreen.git/commit
LP#1777207: have eg-grid generate DOM nodes only for visible columns
authorGalen Charlton <gmc@equinoxinitiative.org>
Tue, 9 Jul 2019 18:43:18 +0000 (14:43 -0400)
committerDan Wells <dbw2@calvin.edu>
Thu, 18 Jul 2019 16:39:28 +0000 (12:39 -0400)
commit144865c702e33534df1608ca34ad7e57b0cdfb33
tree9b8e8fae58bcd8ce5ca0f49fb138cc55b6bdd486
parentfc6447abab352f131c6c863c3f51d19cf5cd74c2
LP#1777207: have eg-grid generate DOM nodes only for visible columns

This patch changes an ng-show to an ng-if to generate DOM nodes
for grid cells only for visible columns. Prior to this patch, all
grid cells were generated, but the ones that corresponded to hidden
columns would simply be set as hidden.

By not generating the cells unless they're meant to be visible, grid
refreshes for wide grids (like the checkin table) render much more
quickly for a couple reasons:

- simply that there are fewer DOM nodes to process
- probably more importantly, fewer AngularJS watches get
  created

To test
-------
[1] In the checkin grid, check in a large number of items, then
    observe/profile timing as you change the number of visible rows.
[2] Apply the patch and repeat step 1. This time, the grid
    refreshe should be measurably (and visibly) faster.
[3] Test other AngularJS grids and verify that grid display and
    grid actions are normal.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/src/templates/staff/share/t_autogrid.tt2