Bug 24043: Fix retrieval of of status name
authorAndrew Isherwood <andrew.isherwood@ptfs-europe.com>
Mon, 13 Jan 2020 10:18:19 +0000 (10:18 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 1 May 2020 07:10:26 +0000 (08:10 +0100)
This patch modifies the way in which a request's status name is
retrieved. I think the previous way it was done (which can never have
worked properly) must have come from a time when we weren't embedding
the request's backend capabilities in each request. So now we can just use
the current row.

Test plan:

1. *Before applying the patch*:
2. Ensure you have at least two requests, from two different backends.
One of the backends you are using must have a possible status that
doesn't exist in the other. For example, the BLDSS backend has a status
of STAT, that doesn't not exist in any other backends.
3. Ensure that the request who's backend has the unique status is *not*
the first request in the returned list.
4. Load the "View ILL requests" page
5. Observe that the page JS fails with a "Cannot read property 'name' of
undefined" error
6. Apply the patch
7. Reload the page (maybe doing a hard reload to ensure the JS is not
cached)
8. TEST: Observe that the error no longer occurs and the requests all
have their statuses displayed correctly.

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js

index 877d5f1..a6ec83c 100644 (file)
@@ -220,15 +220,8 @@ $(document).ready(function() {
                 ? row.status_alias.lib
                 : row.status_alias.authorised_value;
         } else {
-            var origData = meta.settings.oInit.originalData;
-            if (origData.length > 0) {
-                var status_name = meta.settings.oInit.originalData[0].capabilities[
-                    row.status
-                ].name;
-                return getStatusName(status_name, row);
-            } else {
-                return '';
-            }
+            var status_name = row.capabilities[row.status].name;
+            return getStatusName(status_name, row);
         }
     };