Clean code to avoid duplicate js code

This commit is contained in:
ldestailleur
2025-05-05 13:24:11 +02:00
parent 995f68489d
commit 90ac6c0207
2 changed files with 38 additions and 32 deletions

View File

@@ -1485,12 +1485,12 @@ jQuery(document).ready(function() {
}
// Code to set tooltip on search field
jQuery('table.liste tr.liste_titre_filter td.liste_titre input[name^="search"][type=text]:not(".maxwidthdate")').attr('title', '<?php echo dol_escape_js($langs->transnoentities("SearchSyntaxTooltipForStringOrNum")) ?>');
});
jQuery(document).ready(function() {
// Code to toggle dropdown components
jQuery(document).on("click", ".butAction.dropdown-toggle", function(event) {
console.log("Click on .butAction.dropdown-toggle");
let parentHolder = jQuery(event.target).parent();
@@ -1514,23 +1514,24 @@ jQuery(document).ready(function() {
let viewportBottom = $(window).scrollTop() + $(window).height();
// Change dropdown Up/Down orientation if dropdown is close to bottom viewport
if(parentHolder.hasClass('open')
if (parentHolder.hasClass('open')
&& dropDownContentBottom > viewportBottom // Check bottom of dropdown is behind viewport
&& dropDownContentTop - dropDownContentHeight > 0 // check if set dropdown to --up will not go over the top of document
){
) {
parentHolder.addClass("--up");
}else{
} else {
parentHolder.removeClass("--up");
}
// Change dropdown left/right offset if dropdown is close to left viewport
if(parentHolder.hasClass('open') && dropDownContentLeft < 0){
if (parentHolder.hasClass('open') && dropDownContentLeft < 0) {
parentHolder.addClass("--left");
}else{
} else {
parentHolder.removeClass("--left");
}
});
// Close drop down
jQuery(document).on("click", function(event) {
// search if click was outside drop down
@@ -1543,9 +1544,39 @@ jQuery(document).ready(function() {
}
}
});
});
// Code to manage the js for combo list with dependencies (called by extrafields_view.tpl.php)
function showOptions(child_list, parent_list) {
var val = $("select[name="+parent_list+"]").val();
var parentVal = parent_list + ":" + val;
if(val > 0) {
$("select[name=\""+child_list+"\"] option[parent]").hide();
$("select[name=\""+child_list+"\"] option[parent=\""+parentVal+"\"]").show();
} else {
$("select[name=\""+child_list+"\"] option").show();
}
}
function setListDependencies() {
console.log("setListDependencies");
jQuery("select option[parent]").parent().each(function() {
var child_list = $(this).attr("name");
var parent = $(this).find("option[parent]:first").attr("parent");
var infos = parent.split(":");
var parent_list = infos[0];
showOptions(child_list, parent_list);
/* Activate the handler to call showOptions on each future change */
$("select[name=\""+parent_list+"\"]").change(function() {
showOptions(child_list, parent_list);
});
});
}
<?php
if (!getDolGlobalString('MAIN_DISABLE_SELECT2_FOCUS_PROTECTION') && !defined('DISABLE_SELECT2_FOCUS_PROTECTION')) {
?>