N°6765 Avoid behat scenario loading issues on portal modal (#569)

- New CombodoJsActivity API
- Replace existing calls in NiceWebPage (ready scripts)
- Add calls in ready block in portal object create template (used in both create and edit)
This commit is contained in:
Pierre Goiffon
2023-11-10 15:10:37 +01:00
committed by GitHub
parent 8a3d81c430
commit d725ba3d84
3 changed files with 34 additions and 2 deletions

View File

@@ -67,6 +67,8 @@
<script type="text/javascript">
$(document).ready(function(){
CombodoJsActivity.AddOngoingScript();
// Form field set declaration
var oFieldSet_{{ sFormIdSanitized }} = $('#{{ sFormId }} > .form_fields').field_set({{ form.fieldset|json_encode()|raw }});
// Form handler declaration
@@ -149,5 +151,7 @@
$('#{{ sFormId }}').closest('.modal').scrollTop(0);
$('#{{ sFormId }}').closest('.modal').find('.modal-footer').hide();
{% endif %}
CombodoJsActivity.RemoveOngoingScript();
});
</script>

View File

@@ -994,6 +994,34 @@ const CombodoJSConsole = {
}
}
/**
* Helper to reflect ongoing JS activity to other processes like BeHat
* @api
* @since 3.0.4 3.1.1 3.2.0 N°6765
*/
const CombodoJsActivity = {
BODY_DATA_ATTR_NAME_READY: "data-ready-scripts",
/**
* Counter so that we set the flag as done only on the last call
* @type number
*/
iOngoingScriptsCount: 0,
AddOngoingScript: function() {
this.iOngoingScriptsCount++;
$("body").attr(this.BODY_DATA_ATTR_NAME_READY, "start");
},
RemoveOngoingScript: function() {
this.iOngoingScriptsCount--;
if (this.iOngoingScriptsCount < 1) {
$("body").attr(this.BODY_DATA_ATTR_NAME_READY, "done");
}
}
}
/**
* Helper to Sanitize string
*

View File

@@ -255,14 +255,14 @@ EOF
protected function GetReadyScriptsStartedTrigger(): ?string
{
return <<<JS
$("body").attr("data-ready-scripts", "start");
CombodoJsActivity.AddOngoingScript();
JS;
}
protected function GetReadyScriptsFinishedTrigger(): ?string
{
return <<<JS
$("body").attr("data-ready-scripts", "done");
CombodoJsActivity.RemoveOngoingScript();
JS;
}
}