mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-17 15:01:26 +01:00
FIX extra-field list depend on parent extra-filed list on direct edit (#35803)
This commit is contained in:
committed by
GitHub
parent
50afc9682b
commit
5de1fcca2f
@@ -1173,4 +1173,39 @@ $(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 parentInput = $("select[name="+parent_list+"]");
|
||||||
|
if (parentInput.length === 0) { // when parent extra-field is in view mode and the child is edited directly on card (on line edit)
|
||||||
|
parentInput = $("input[name="+parent_list+"]");
|
||||||
|
}
|
||||||
|
if (parentInput.length > 0) {
|
||||||
|
var val = parentInput.val();
|
||||||
|
var parentVal = parent_list + ":" + val;
|
||||||
|
if (val > 0) {
|
||||||
|
$("select[name=\""+child_list+"\"] option[parent]").prop("disabled", true).hide(); // hide not work with select2 element so disabled it
|
||||||
|
$("select[name=\""+child_list+"\"] option[parent=\""+parentVal+"\"]").prop('disabled', false).show(); // show not work with select2 element so enabled it
|
||||||
|
} else {
|
||||||
|
$("select[name=\""+child_list+"\"] option").prop("disabled", false).show(); // show not work with select2 element so enabled it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// End of lib_head.js.php
|
// End of lib_head.js.php
|
||||||
|
|||||||
@@ -257,6 +257,7 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l
|
|||||||
} else {
|
} else {
|
||||||
//var_dump($tmpkeyextra.'-'.$value.'-'.$object->table_element);
|
//var_dump($tmpkeyextra.'-'.$value.'-'.$object->table_element);
|
||||||
print $extrafields->showOutputField($tmpkeyextra, $value, '', $object->table_element);
|
print $extrafields->showOutputField($tmpkeyextra, $value, '', $object->table_element);
|
||||||
|
print '<input type="hidden" value="' . $value . '" name="options_' . $tmpkeyextra . '" id="options_' . $tmpkeyextra . '"/>'; // it's needed when to get parent value when extra-field list depend on parent extra-field list
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@@ -271,31 +272,6 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l
|
|||||||
print '
|
print '
|
||||||
<script>
|
<script>
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
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() {
|
|
||||||
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);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
setListDependencies();
|
setListDependencies();
|
||||||
});
|
});
|
||||||
</script>'."\n";
|
</script>'."\n";
|
||||||
|
|||||||
Reference in New Issue
Block a user