/* global __ */ $(document).ready(function() { window.modaction_legend_innerhtml = $("#modaction_legend").text(); window.action_submit_value = $("#action_submit").val(); $('#select_template').find("input:submit").hide(); $('#select_template').change(function() { $('#select_template').submit(); }); $("span.match_regex_prefix" ).hide(); $("span.match_regex_suffix" ).hide(); $("#add_action").submit(function(){ var action = $("#action").val(); if ( action == 'move_field' || action == 'copy_field' || action == 'copy_and_replace_field') { if ( $("#from_subfield").val().length != $("#to_subfield").val().length ) { alert( __("Both subfield values should be filled or empty.") ); return false; } if ( $("#to_field").val().length <= 0 ) { alert( __("The destination should be filled.") ); return false; } if ( ( $("#to_field").val() < 10 && $("#to_subfield").val().length > 0 ) || ( $("#from_field").val() < 10 && $("#from_subfield").val().length > 0 ) ) { alert( __("If the field is a control field, the subfield should be empty") ); return false; } if ( ( $("#from_field").val() < 10 && $("#to_field").val() >= 10 ) || ( $("#to_field").val() < 10 && $("#from_field").val() >= 10 ) ) { alert( __("A control field cannot be used with a regular field.") ); return false; } } if ( action == 'update_field' ) { if ( $("#from_subfield").val().length <= 0 ) { alert( __("The source subfield should be filled for update.") ); return false; } } if ( $("#from_field").val().length <= 0 ) { alert( __("The source field should be filled.") ); return false; } if ( $("#conditional").val() == 'if' || $("#conditional").val() == 'unless' ) { if ( $("#conditional_field").val() == '' ) { alert( __("The conditional field should be filled.") ); return false; } if ( $("#conditional_comparison").val() == '' ) { alert( __("The conditional comparison operator should be filled.") ); return false } if ( $("#conditional_value").val() == '' && ( $("#conditional_comparison").val() == 'equals' || $("#conditional_comparison").val() == 'not_equals' ) ) { if ( document.getElementById('conditional_regex').checked == true ) { alert( __("The conditional regular expression should be filled.") ); return false; } else { alert( __("The conditional value should be filled.") ); return false; } } } }); $("#conditional_field,#from_field").change(function(){ updateAllEvery(); }); $("#new_action").on("click",function(e){ e.preventDefault(); cancelEditAction(); $("#add_action").show(); $("#action").focus(); }); $(".duplicate_template").on("click",function(e){ e.preventDefault(); var template_id = $(this).data("template_id"); $("#duplicate_a_template").val(template_id); $("#duplicate_current_template").val(1); }); $('#createTemplate').on('shown.bs.modal', function (e) { e.preventDefault(); $("#template_name").focus(); }); $("#duplicate_a_template").on("change",function(e){ e.preventDefault(); if( this.value === '' ){ $("#duplicate_current_template").val(""); } else { $("#duplicate_current_template").val(1); } }); $(".delete_template").on("click",function(){ return confirmDelete(); }); $(".edit_action").on("click", function(){ var mmta_id = $(this).data("mmta_id"); var mmta = $.grep(mmtas, function(elt, id) { return elt['mmta_id'] == mmta_id; }); editAction( mmta[0] ); updateAllEvery(); }); }); function updateAllEvery(){ if ( $("#conditional_field").is(":visible") ) { if ( $("#conditional_field").val() == $("#from_field").val() && $("#from_field").val().length > 0 ) { $("#field_number option[value='0']").html( __("Every") ); } else { $("#field_number option[value='0']").html( __("All") ); } } } function onActionChange(selectObj) { // get the index of the selected option var idx = selectObj.selectedIndex; // get the value of the selected option var action = selectObj.options[idx].value; switch( action ) { case 'delete_field': show('field_number_block'); hide('with_value_block'); hide('to_field_block'); break; case 'add_field': hide('field_number_block'); show('with_value_block'); hide('to_field_block'); break; case 'update_field': hide('field_number_block'); show('with_value_block'); hide('to_field_block'); break; case 'move_field': show('field_number_block'); hide('with_value_block'); show('to_field_block'); break; case 'copy_field': show('field_number_block'); hide('with_value_block'); show('to_field_block'); break; case 'copy_and_replace_field': show('field_number_block'); hide('with_value_block'); show('to_field_block'); break; } } function onConditionalChange(selectObj) { // get the index of the selected option var idx = selectObj.selectedIndex; // get the value of the selected option var action = selectObj.options[idx].value; switch( action ) { case '': hide('conditional_block'); break; case 'if': case 'unless': show('conditional_block'); break; } } function onConditionalComparisonChange(selectObj) { // get the index of the selected option var idx = selectObj.selectedIndex; // get the value of the selected option var action = selectObj.options[idx].value; switch( action ) { case 'equals': case 'not_equals': show('conditional_comparison_block'); break; default: hide('conditional_comparison_block'); break; } } function onToFieldRegexChange( checkboxObj ) { if ( checkboxObj.checked ) { show('to_field_regex_value_block'); } else { hide('to_field_regex_value_block'); } } function onConditionalRegexChange( checkboxObj ) { if ( checkboxObj.checked ) { $("span.match_regex_prefix" ).show(); $("span.match_regex_suffix" ).show(); } else { $("span.match_regex_prefix" ).hide(); $("span.match_regex_suffix" ).hide(); } } function show(eltId) { elt = document.getElementById( eltId ); elt.style.display='inline'; } function hide(eltId) { clearFormElements( eltId ); elt = document.getElementById( eltId ); elt.style.display='none'; } function clearFormElements(divId) { myBlock = document.getElementById( divId ); var inputElements = myBlock.getElementsByTagName( "input" ); for (var i = 0; i < inputElements.length; i++) { switch( inputElements[i].type ) { case "text": inputElements[i].value = ''; break; case "checkbox": inputElements[i].checked = false; break; } } var selectElements = myBlock.getElementsByTagName( "select" ); for (var i = 0; i < selectElements.length; i++) { selectElements[i].selectedIndex = 0; } } function confirmDeleteAction() { return confirm( __("Are you sure you wish to delete this template action?") ); } function confirmDelete() { return confirm( __("Are you sure you wish to delete this template?") ); } var modaction_legend_innerhtml; var action_submit_value; function editAction( mmta ) { $("#add_action").show(); document.getElementById('mmta_id').value = mmta['mmta_id']; setSelectByValue( 'action', mmta['action'] ); $('#action').change(); setSelectByValue( 'field_number', mmta['field_number'] ); document.getElementById('from_field').value = mmta['from_field']; document.getElementById('from_subfield').value = mmta['from_subfield']; document.getElementById('field_value').value = mmta['field_value']; document.getElementById('to_field').value = mmta['to_field']; document.getElementById('to_subfield').value = mmta['to_subfield']; if ( mmta['regex_search'] == '' && mmta['to_regex_replace'] == '' && mmta['to_regex_modifiers'] == '' ) { $('#to_field_regex').prop('checked', false).change(); } else { $('#to_field_regex').prop('checked', true).change(); $("#to_regex_search").val(mmta['to_regex_search']); $("#to_regex_replace").val(mmta['to_regex_replace']); $("#to_regex_modifiers").val(mmta['to_regex_modifiers']); } setSelectByValue( 'conditional', mmta['conditional'] ); $('#conditional').change(); document.getElementById('conditional_field').value = mmta['conditional_field']; document.getElementById('conditional_subfield').value = mmta['conditional_subfield']; setSelectByValue( 'conditional_comparison', mmta['conditional_comparison'] ); $('#conditional_comparison').change(); document.getElementById('conditional_value').value = mmta['conditional_value']; document.getElementById('conditional_regex').checked = parseInt( mmta['conditional_regex'] ); $('#conditional_regex').change(); document.getElementById('description').value = mmta['description']; window.modaction_legend_innerhtml = document.getElementById('modaction_legend').innerHTML; document.getElementById('modaction_legend').innerHTML = __("Edit action %s").format(mmta['ordering']); window.action_submit_value = document.getElementById('action_submit').value; document.getElementById('action_submit').value = __("Update action"); } function cancelEditAction() { document.getElementById('mmta_id').value = ''; setSelectByValue( 'action', 'delete_field' ); $('#action').change(); document.getElementById('from_field').value = ''; document.getElementById('from_subfield').value = ''; document.getElementById('field_value').value = ''; document.getElementById('to_field').value = ''; document.getElementById('to_subfield').value = ''; $("#to_regex_search").val(""); $("#to_regex_replace").val(""); $("#to_regex_modifiers").val(""); $("#description").val(""); $('#to_field_regex').prop('checked', false).change(); setSelectByValue( 'conditional', '' ); $('#conditional').change(); document.getElementById('conditional_field').value = ''; document.getElementById('conditional_subfield').value = ''; setSelectByValue( 'conditional_comparison', '' ); $('#conditional_comparison').change(); document.getElementById('conditional_value').value = ''; document.getElementById('conditional_regex').checked = false; document.getElementById('modaction_legend').innerHTML = window.modaction_legend_innerhtml; document.getElementById('action_submit').value = window.action_submit_value; $("#add_action").hide(); } function setSelectByValue( selectId, value ) { s = document.getElementById( selectId ); for ( i = 0; i < s.options.length; i++ ) { if ( s.options[i].value == value ) { s.selectedIndex = i; } } }