@@ -, +, @@ not always validate user input e.g. "Copy All field(s) 200$a to field 600$a". Add a condition ("if" or "unless") but leave the relevant field and subfield textboxes empty. Add "matches" or "doesn't match" as a comparison operator. Check the "RegEx" checkbox, leave the regex textbox empty. Also notice the extra space in the Action column RegEx. before the conditional RegEx. a new one). Try leaving the textboxes mentioned above empty and then submit your changes. You should get pop-up windows informing you about missing fields. Update your action. In the Action column, there should be no spaces between the delimiters of the matching operator and the value you just entered. expression and the "/" after it are now showing correctly. --- .../en/modules/tools/marc_modification_templates.tt | 8 +++++--- .../prog/js/marc_modification_templates.js | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/marc_modification_templates.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/marc_modification_templates.tt @@ -157,9 +157,7 @@ [% IF ( ActionsLoo.conditional_comparison_equals ) %] matches [% END %] [% IF ( ActionsLoo.conditional_comparison_not_equals ) %] does not match [% END %] - [% IF ( ActionsLoo.conditional_regex ) %] RegEx m/[% END %] - [% ActionsLoo.conditional_value | html %] - [% IF ( ActionsLoo.conditional_regex ) %]/[% END %] + [% IF ( ActionsLoo.conditional_regex ) %] RegEx m/[% END %][% ActionsLoo.conditional_value | html %][% IF ( ActionsLoo.conditional_regex ) %]/[% END %] [% END %] [% ActionsLoo.description | html %] @@ -356,6 +354,10 @@ var MSG_MMT_CONFIRM_DEL_TEMPLATE_ACTION = _("Are you sure you wish to delete this template action?"); var MSG_MMT_EDIT_ACTION = _("Edit action %s"); var MSG_MMT_UPDATE_ACTION = _("Update action"); + var MSG_MMT_CONDITIONAL_FIELD_REQUIRED = _("The conditional field should be filled."); + var MSG_MMT_CONDITIONAL_COMPARISON_REQUIRED = _("The conditional comparison operator should be filled."); + var MSG_MMT_CONDITIONAL_VALUE_REQUIRED = _("The conditional value should be filled."); + var MSG_MMT_CONDITIONAL_VALUE_REGEX_REQUIRED = _("The conditional regular expression should be filled."); [% Asset.js("js/marc_modification_templates.js") | $raw %] [% END %] --- a/koha-tmpl/intranet-tmpl/prog/js/marc_modification_templates.js +++ a/koha-tmpl/intranet-tmpl/prog/js/marc_modification_templates.js @@ -41,6 +41,26 @@ $(document).ready(function() { alert( MSG_MMT_SOURCE_FIELD ); return false; } + if ( $("#conditional").val() == 'if' || $("#conditional").val() == 'unless' ) { + if ( $("#conditional_field").val() == '' ) { + alert( MSG_MMT_CONDITIONAL_FIELD_REQUIRED ); + return false; + } + if ( $("#conditional_comparison").val() == '' ) { + alert( MSG_MMT_CONDITIONAL_COMPARISON_REQUIRED ); + return false + } + if ( $("#conditional_value").val() == '' && + ( $("#conditional_comparison").val() == 'equals' || $("#conditional_comparison").val() == 'not_equals' ) ) { + if ( document.getElementById('conditional_regex').checked == true ) { + alert( MSG_MMT_CONDITIONAL_VALUE_REGEX_REQUIRED ); + return false; + } else { + alert( MSG_MMT_CONDITIONAL_VALUE_REQUIRED ); + return false; + } + } + } }); $("#conditional_field,#from_field").change(function(){ @@ -278,6 +298,7 @@ function editAction( mmta_id, ordering, action, field_number, from_field, from_s document.getElementById('conditional_value').value = conditional_value; document.getElementById('conditional_regex').checked = parseInt( conditional_regex ); + document.getElementById('conditional_regex').onchange(); document.getElementById('description').value = description; --