Change funtioning of showHide (wip)

This commit is contained in:
Julie Lenaerts 2024-07-23 16:20:27 +02:00
parent c33e4adeec
commit 1396304af5

View File

@ -14,60 +14,82 @@ window.addEventListener('DOMContentLoaded', function() {
transitionsContainer = document.querySelector('#transitions') transitionsContainer = document.querySelector('#transitions')
; ;
personSignatureField.style.display = 'none'; new ShowHide({
userSignatureField.style.display = 'none'; debug: false,
futureDestUsersContainer.style.display = 'none'; froms: [signatureTypeChoices],
signatureTypeChoices.style.display = 'none'; container: [personSignatureField],
test: function(froms, event) {
// console.log('froms', froms)
for (let container of froms) {
if (container.children.length === 0) {
console.log('im empty dont show person or user picker');
return false
} else {
return container.querySelector('input[value="person"]').checked;
}
}
return false;
},
});
// ShowHide instance for userSignatureField
new ShowHide({
debug: false,
froms: [signatureTypeChoices],
container: [userSignatureField],
test: function(froms, event) {
for (let container of froms) {
if (container.children.length === 0) {
console.log('im empty dont show person or user picker');
return false
} else {
return container.querySelector('input[value="person"]').checked;
}
}
return false;
},
});
// ShowHide instance for signatureTypeChoices // ShowHide instance for signatureTypeChoices
new ShowHide({ new ShowHide({
debug: true, debug: false,
load_event: null,
froms: [divTransitions], froms: [divTransitions],
container: [signatureTypeChoices], container: [signatureTypeChoices],
test: function(transitions) { test: function(froms, event) {
for (let transition of transitions) { for (let transition of froms) {
for (let input of transition.querySelectorAll('input')) { for (let input of transition.querySelectorAll('input')) {
if (input.checked) { if (input.checked) {
const inputData = JSON.parse(input.getAttribute('data-is-signature')) const inputData = JSON.parse(input.getAttribute('data-is-signature'))
return inputData.includes('person') || inputData.includes('user'); return inputData.includes('person') && inputData.includes('user');
} }
} }
} }
return true; return false;
} }
}); });
/* // Event listener for changes in signature type selection // ShowHide instance for future dest users
signatureTypeChoices.addEventListener('change', function() {
// ShowHide instance for personSignatureField and userSignatureField
new ShowHide({ new ShowHide({
debug: false,
load_event: null, load_event: null,
froms: [signatureTypeChoices], froms: [divTransitions],
container: [personSignatureField, userSignatureField], container: [futureDestUsersContainer],
test: function() { test: function(froms, event) {
const selectedSignatureType = document.querySelector('input[name="workflow_step[isPersonOrUserSignature]"]:checked'); for (let transition of froms) {
if (!selectedSignatureType) { for (let input of transition.querySelectorAll('input')) {
return false; // No signature type selected, hide both fields if (input.checked) {
const inputData = JSON.parse(input.getAttribute('data-is-signature'))
return !(inputData.includes('person') || inputData.includes('user'));
} }
if (selectedSignatureType.value === 'person') {
personSignatureField.style.display = '';
userSignatureField.style.display = 'none';
} else if (selectedSignatureType.value === 'user') {
personSignatureField.style.display = 'none';
userSignatureField.style.display = '';
} else {
personSignatureField.style.display = 'none';
userSignatureField.style.display = 'none';
} }
}
return true; // Always return true to ensure ShowHide manages visibility return false;
} }
}); });
});*/
/* if (null !== divTransitions) { if (null !== divTransitions) {
new ShowHide({ new ShowHide({
load_event: null, load_event: null,
froms: [divTransitions], froms: [divTransitions],
@ -88,7 +110,7 @@ window.addEventListener('DOMContentLoaded', function() {
return true; return true;
}, },
}); });
}*/ }
if (null !== transitionFilterContainer) { if (null !== transitionFilterContainer) {
transitionsContainer.querySelectorAll('.form-check').forEach(function(row) { transitionsContainer.querySelectorAll('.form-check').forEach(function(row) {