LP#1796945 Match new path_label/alias standard
authorDan Wells <dbw2@calvin.edu>
Thu, 15 Aug 2019 14:20:17 +0000 (10:20 -0400)
committerJason Boyer <jboyer@library.in.gov>
Thu, 22 Aug 2019 18:20:02 +0000 (14:20 -0400)
The old reporter used '::' as a path separator in some labels, while the
new version uses '->' in its place.  This would normally be just a
curiosity, except that the hashes used as join aliases are generated
from these path labels.  The end result is that while a report can be
cloned, if you add a field anywhere other than the top level, it
references a join alias which does not exist, and the report breaks.

Now, the method by which report templates are upgraded from v4 to v5
does not happen all in one pass, but rather a first pass is made
populate the interface, then the rest is done when the user saves the
clone.  Because of this, it actually seems adequate to only fix the
label, then allow the other steps to fill in the other bits upon saving
of the report.

Thank you to J. Boyer for helping track down the culprit.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Open-ILS/web/js/ui/default/staff/reporter/template/app.js

index c9f6c28..336a28b 100644 (file)
@@ -341,7 +341,7 @@ function($scope , $q , $routeParams , $location , $timeout , $window,  egCore ,
                                     transform : orig.transform,
                                     aggregate : (orig.aggregate == "undefined") ? undefined : orig.aggregate  // old structure sometimes has undefined as a quoted string
                                   },
-                    path_label  : rel.label
+                    path_label  : rel.label.replace('::', '->')
                 };
                 if (col_type == 'filter_cols') {
                     col['operator'] = {