fix issue with nested .xhtml includes user/gmcharlt/nested_reports_includes
authorGalen Charlton <gmc@equinoxinitiative.org>
Mon, 23 Sep 2019 21:15:16 +0000 (17:15 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Mon, 23 Sep 2019 21:15:16 +0000 (17:15 -0400)
This WIP patch fixes an issue where oils_rpt.xhtml fails to
get completely loaded due to an XML parsing error thrown
by mod_xmlent.

The problem appears to be that oils_rpt_param_editor.xhtml
gets included via mod_include and processed by mod_xmlent...
in the context of an overall chain of mod_include and mod_xmlent
that is filtering the overall request for oils_rpt.xhtml.

However, if the same Apache backend processes both the main
request and a sub-request to fetch the included file, the
fact that the Expat parser is shared by all invocations of
mod_xmlent for a given Apache backend is somehow leading
to chunks of oils_rpt.xhtml and the files it's bringing
via mod_include getting processed out of order.

Renaming oils_rpt_param_editor.xhtml to /oils_rpt_param_editor.txt
means that the sub-request to include that file does _not_
pass it through mod_xmlent, avoiding this problem.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/web/reports/oils_rpt_editor.xhtml
Open-ILS/web/reports/oils_rpt_param_editor.txt [new file with mode: 0644]
Open-ILS/web/reports/oils_rpt_param_editor.xhtml [deleted file]

index c0e4449..ce87872 100644 (file)
@@ -76,7 +76,7 @@
                        -->
                        <tr>
                                <td colspan='2' style='padding: 10px;'>
-                                       <!--#include virtual="oils_rpt_param_editor.xhtml"-->
+                                       <!--#include virtual="oils_rpt_param_editor.txt"-->
                                </td>
                        </tr>
                        <!--
diff --git a/Open-ILS/web/reports/oils_rpt_param_editor.txt b/Open-ILS/web/reports/oils_rpt_param_editor.txt
new file mode 100644 (file)
index 0000000..3e5bf19
--- /dev/null
@@ -0,0 +1,134 @@
+<div id='oils_rpt_param_editor_div'>
+       <div>
+               <b id='oils_rpt_param_editor_report_name'> </b>
+       </div>
+
+       <!--
+       <table id='oils_rpt_recur_editor_table'>
+               <tbody>
+                       <tr>
+                               <th>Recurring Report</th>
+                               <td><input type="checkbox" name="oils_rpt_recur" value="t"/></td>
+                       </tr>
+                       <tr>
+                               <th>Recurrence Interval</th>
+                               <td>
+                                       <select name="oils_rpt_recur_count">
+                                               <option value='1'>1</option>
+                                               <option value='2'>2</option>
+                                               <option value='3'>3</option>
+                                               <option value='4'>4</option>
+                                               <option value='5'>5</option>
+                                               <option value='6'>6</option>
+                                               <option value='7'>7</option>
+                                               <option value='8'>8</option>
+                                               <option value='9'>9</option>
+                                               <option value='10'>10</option>
+                                               <option value='11'>11</option>
+                                               <option value='12'>12</option>
+                                               <option value='13'>13</option>
+                                               <option value='14'>14</option>
+                                               <option value='15'>15</option>
+                                               <option value='16'>16</option>
+                                               <option value='17'>17</option>
+                                               <option value='18'>18</option>
+                                               <option value='19'>19</option>
+                                               <option value='20'>20</option>
+                                               <option value='21'>21</option>
+                                               <option value='22'>22</option>
+                                               <option value='23'>23</option>
+                                               <option value='24'>24</option>
+                                       </select>
+                                       <select name="oils_rpt_recur_interval_type">
+                                               <option value="days">Day(s)</option>
+                                               <option value="weeks">Week(s)</option>
+                                               <option value="months">Month(s)</option>
+                                       </select>
+                               </td>
+                       </tr>
+               </tbody>
+       </table>
+       -->
+
+       <table id='oils_rpt_param_editor_table'>
+               <thead>
+                       <tr>
+                               <!--
+                               <td>Object</td>
+                               -->
+                               <td>&reports.oils_rpt_param_editor.column;</td>
+                               <td>&reports.oils_rpt_param_editor.transform;</td>
+                               <td>&reports.oils_rpt_param_editor.action;</td>
+                               <td>&reports.oils_rpt_param_editor.user_params;</td>
+                       </tr>
+               </thead>
+               <tbody id='oils_rpt_param_editor_tbody'>
+                       <tr name='tr'>
+                               <!--
+                               <td name='object'/>
+                               -->
+                               <td name='column'/>
+                               <td name='transform'/>
+                               <td name='action'/>
+                               <td>
+                                       <div>
+                                               <span name='hint'></span>
+                                               <span name='widget'></span>
+                                       </div>
+                                       <div name='reldate_div'  style='margin-top: 5px;' class='hide_me'>
+                                               <div><b> - &reports.oils_rpt_param_editor.or; - </b></div>
+                                               <input type='checkbox' name='choose_rel'/> &reports.oils_rpt_param_editor.use_relative_date;
+                                               <div name='reldate'></div>
+                                       </div>
+                               </td>
+                       </tr>
+               </tbody>
+       </table>
+
+       <div class='hide_me' id='oils_rpt_relative_date_picker'>
+               <table>
+                       <tbody>
+                               <tr>
+                                       <td>
+                                               <select name="count">
+                                                       <option value='1'>1</option>
+                                                       <option value='2'>2</option>
+                                                       <option value='3'>3</option>
+                                                       <option value='4'>4</option>
+                                                       <option value='5'>5</option>
+                                                       <option value='6'>6</option>
+                                                       <option value='7'>7</option>
+                                                       <option value='8'>8</option>
+                                                       <option value='9'>9</option>
+                                                       <option value='10'>10</option>
+                                                       <option value='11'>11</option>
+                                                       <option value='12'>12</option>
+                                                       <option value='13'>13</option>
+                                                       <option value='14'>14</option>
+                                                       <option value='15'>15</option>
+                                                       <option value='16'>16</option>
+                                                       <option value='17'>17</option>
+                                                       <option value='18'>18</option>
+                                                       <option value='19'>19</option>
+                                                       <option value='20'>20</option>
+                                                       <option value='21'>21</option>
+                                                       <option value='22'>22</option>
+                                                       <option value='23'>23</option>
+                                                       <option value='24'>24</option>
+                                               </select>
+                                               <select name="type">
+                                                       <option value="days">&reports.oils_rpt_param_editor.days;</option>
+                                                       <option value="weeks">&reports.oils_rpt_param_editor.weeks;</option>
+                                                       <option value="months">&reports.oils_rpt_param_editor.months;</option>
+                                               </select>
+                                               <span>&reports.oils_rpt_param_editor.ago;</span>
+                                       </td>
+                               </tr>
+                       </tbody>
+               </table>
+       </div>
+
+</div>
+
+
+
diff --git a/Open-ILS/web/reports/oils_rpt_param_editor.xhtml b/Open-ILS/web/reports/oils_rpt_param_editor.xhtml
deleted file mode 100644 (file)
index 3e5bf19..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-<div id='oils_rpt_param_editor_div'>
-       <div>
-               <b id='oils_rpt_param_editor_report_name'> </b>
-       </div>
-
-       <!--
-       <table id='oils_rpt_recur_editor_table'>
-               <tbody>
-                       <tr>
-                               <th>Recurring Report</th>
-                               <td><input type="checkbox" name="oils_rpt_recur" value="t"/></td>
-                       </tr>
-                       <tr>
-                               <th>Recurrence Interval</th>
-                               <td>
-                                       <select name="oils_rpt_recur_count">
-                                               <option value='1'>1</option>
-                                               <option value='2'>2</option>
-                                               <option value='3'>3</option>
-                                               <option value='4'>4</option>
-                                               <option value='5'>5</option>
-                                               <option value='6'>6</option>
-                                               <option value='7'>7</option>
-                                               <option value='8'>8</option>
-                                               <option value='9'>9</option>
-                                               <option value='10'>10</option>
-                                               <option value='11'>11</option>
-                                               <option value='12'>12</option>
-                                               <option value='13'>13</option>
-                                               <option value='14'>14</option>
-                                               <option value='15'>15</option>
-                                               <option value='16'>16</option>
-                                               <option value='17'>17</option>
-                                               <option value='18'>18</option>
-                                               <option value='19'>19</option>
-                                               <option value='20'>20</option>
-                                               <option value='21'>21</option>
-                                               <option value='22'>22</option>
-                                               <option value='23'>23</option>
-                                               <option value='24'>24</option>
-                                       </select>
-                                       <select name="oils_rpt_recur_interval_type">
-                                               <option value="days">Day(s)</option>
-                                               <option value="weeks">Week(s)</option>
-                                               <option value="months">Month(s)</option>
-                                       </select>
-                               </td>
-                       </tr>
-               </tbody>
-       </table>
-       -->
-
-       <table id='oils_rpt_param_editor_table'>
-               <thead>
-                       <tr>
-                               <!--
-                               <td>Object</td>
-                               -->
-                               <td>&reports.oils_rpt_param_editor.column;</td>
-                               <td>&reports.oils_rpt_param_editor.transform;</td>
-                               <td>&reports.oils_rpt_param_editor.action;</td>
-                               <td>&reports.oils_rpt_param_editor.user_params;</td>
-                       </tr>
-               </thead>
-               <tbody id='oils_rpt_param_editor_tbody'>
-                       <tr name='tr'>
-                               <!--
-                               <td name='object'/>
-                               -->
-                               <td name='column'/>
-                               <td name='transform'/>
-                               <td name='action'/>
-                               <td>
-                                       <div>
-                                               <span name='hint'></span>
-                                               <span name='widget'></span>
-                                       </div>
-                                       <div name='reldate_div'  style='margin-top: 5px;' class='hide_me'>
-                                               <div><b> - &reports.oils_rpt_param_editor.or; - </b></div>
-                                               <input type='checkbox' name='choose_rel'/> &reports.oils_rpt_param_editor.use_relative_date;
-                                               <div name='reldate'></div>
-                                       </div>
-                               </td>
-                       </tr>
-               </tbody>
-       </table>
-
-       <div class='hide_me' id='oils_rpt_relative_date_picker'>
-               <table>
-                       <tbody>
-                               <tr>
-                                       <td>
-                                               <select name="count">
-                                                       <option value='1'>1</option>
-                                                       <option value='2'>2</option>
-                                                       <option value='3'>3</option>
-                                                       <option value='4'>4</option>
-                                                       <option value='5'>5</option>
-                                                       <option value='6'>6</option>
-                                                       <option value='7'>7</option>
-                                                       <option value='8'>8</option>
-                                                       <option value='9'>9</option>
-                                                       <option value='10'>10</option>
-                                                       <option value='11'>11</option>
-                                                       <option value='12'>12</option>
-                                                       <option value='13'>13</option>
-                                                       <option value='14'>14</option>
-                                                       <option value='15'>15</option>
-                                                       <option value='16'>16</option>
-                                                       <option value='17'>17</option>
-                                                       <option value='18'>18</option>
-                                                       <option value='19'>19</option>
-                                                       <option value='20'>20</option>
-                                                       <option value='21'>21</option>
-                                                       <option value='22'>22</option>
-                                                       <option value='23'>23</option>
-                                                       <option value='24'>24</option>
-                                               </select>
-                                               <select name="type">
-                                                       <option value="days">&reports.oils_rpt_param_editor.days;</option>
-                                                       <option value="weeks">&reports.oils_rpt_param_editor.weeks;</option>
-                                                       <option value="months">&reports.oils_rpt_param_editor.months;</option>
-                                               </select>
-                                               <span>&reports.oils_rpt_param_editor.ago;</span>
-                                       </td>
-                               </tr>
-                       </tbody>
-               </table>
-       </div>
-
-</div>
-
-
-