Details
Description
As per ICE-6717, when disabling Ajax for a form:
<f:ajax disabled="true">
<h:form id="disabledForm">
<h:panelGrid columns="2">
...
the intent was to prevent the captureSubmit script that we automatically add to forms from being rendered and thus reverting to "stock" form submission (i.e. non-Ajax requests). What I am seeing is that the script is still being rendered but that the form also includes a list of disabled elements which indicates that the bridge should do a "normal" form submission rather than use our form submission code. So the current output looks something like this:
<form action="/fajax/disabledForm.jsf" enctype="application/x-www-form-urlencoded" id="disabledForm" method="post" name="disabledForm">
....
<script id="disabledForm:disabledForm_captureSubmit" type="text/javascript">ice.captureSubmit('disabledForm',false);ice.captureEnterKey('disabledForm');</script>
....
<input disabled="true" id="disabledForm:ajaxDisabled" type="hidden" value=" disabledForm:cbaDisabledForm disabledForm:cblDisabledForm ">
....
</form>
The difference is subtle. What we want is for our script not to be rendered so that submits are done in a typical, non-Ajax fashion. What is happening is that our script is being rendered but includes a list of disabled components which indicate the components that should not trigger an Ajax request. The trick is that the final behaviour may look identical (a non-Ajax form submission).
So it's possible that this may not actually be a regression. Instead, the issue may not have been detected in testing because we simply saw the non-Ajax request and weren't actively checking for the script being rendered.
<f:ajax disabled="true">
<h:form id="disabledForm">
<h:panelGrid columns="2">
...
the intent was to prevent the captureSubmit script that we automatically add to forms from being rendered and thus reverting to "stock" form submission (i.e. non-Ajax requests). What I am seeing is that the script is still being rendered but that the form also includes a list of disabled elements which indicates that the bridge should do a "normal" form submission rather than use our form submission code. So the current output looks something like this:
<form action="/fajax/disabledForm.jsf" enctype="application/x-www-form-urlencoded" id="disabledForm" method="post" name="disabledForm">
....
<script id="disabledForm:disabledForm_captureSubmit" type="text/javascript">ice.captureSubmit('disabledForm',false);ice.captureEnterKey('disabledForm');</script>
....
<input disabled="true" id="disabledForm:ajaxDisabled" type="hidden" value=" disabledForm:cbaDisabledForm disabledForm:cblDisabledForm ">
....
</form>
The difference is subtle. What we want is for our script not to be rendered so that submits are done in a typical, non-Ajax fashion. What is happening is that our script is being rendered but includes a list of disabled components which indicate the components that should not trigger an Ajax request. The trick is that the final behaviour may look identical (a non-Ajax form submission).
So it's possible that this may not actually be a regression. Instead, the issue may not have been detected in testing because we simply saw the non-Ajax request and weren't actively checking for the script being rendered.
Assigning to Ted for the moment as he worked on the initial problem.