mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Fix functioning of show hide
This commit is contained in:
parent
50bd9f32c3
commit
0a6f3a99da
@ -141,23 +141,25 @@ class WorkflowStepType extends AbstractType
|
||||
'mapped' => false,
|
||||
'multiple' => false,
|
||||
'expanded' => true,
|
||||
'label' => 'workflow.Type of signature',
|
||||
'label' => 'workflow.signature_zone.type of signature',
|
||||
'choices' => [
|
||||
'person' => 'person',
|
||||
'user' => 'user',
|
||||
'workflow.signature_zone.persons' => 'person',
|
||||
'workflow.signature_zone.user' => 'user',
|
||||
],
|
||||
])
|
||||
->add('futurePersonSignatures', PickPersonDynamicType::class, [
|
||||
'label' => 'workflow.person signatures',
|
||||
'label' => 'workflow.signature_zone.person signatures',
|
||||
'multiple' => true,
|
||||
'data' => []
|
||||
])
|
||||
->add('futureUserSignature', PickUserDynamicType::class, [
|
||||
'label' => 'workflow.user signatures',
|
||||
'label' => 'workflow.signature_zone.user signature',
|
||||
'multiple' => false,
|
||||
])
|
||||
->add('futureDestUsers', PickUserDynamicType::class, [
|
||||
'label' => 'workflow.dest for next steps',
|
||||
'multiple' => true,
|
||||
'data' => [],
|
||||
'suggested' => $options['suggested_users'],
|
||||
])
|
||||
->add('futureCcUsers', PickUserDynamicType::class, [
|
||||
|
@ -7,69 +7,20 @@ window.addEventListener('DOMContentLoaded', function() {
|
||||
personSignatureField = document.querySelector('#person-signature-field');
|
||||
userSignatureField = document.querySelector('#user-signature-field');
|
||||
signatureTypeChoices = document.querySelector('#signature-type-choice');
|
||||
;
|
||||
personChoice = document.querySelector('#workflow_step_isPersonOrUserSignature_0');
|
||||
userChoice = document.querySelector('#workflow_step_isPersonOrUserSignature_1');
|
||||
signatureZone = document.querySelector('#signature-zone');
|
||||
;
|
||||
|
||||
let
|
||||
transitionFilterContainer = document.querySelector('#transitionFilter'),
|
||||
transitionsContainer = document.querySelector('#transitions')
|
||||
;
|
||||
|
||||
// ShowHide instance for personSignatureField
|
||||
new ShowHide({
|
||||
debug: false,
|
||||
froms: [signatureTypeChoices],
|
||||
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 signatureTypeChoices. This should always be present in the DOM and we toggle visibility.
|
||||
// The field is not mapped and so not submitted with the form. Without it's presence upon DOM loading other show hides do not function well.
|
||||
signatureTypeChoices.style.display = 'none';
|
||||
|
||||
// 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
|
||||
new ShowHide({
|
||||
debug: false,
|
||||
load_event: null,
|
||||
froms: [divTransitions],
|
||||
container: [signatureTypeChoices],
|
||||
test: function(froms, event) {
|
||||
for (let transition of froms) {
|
||||
for (let input of transition.querySelectorAll('input')) {
|
||||
if (input.checked) {
|
||||
const inputData = JSON.parse(input.getAttribute('data-is-signature'))
|
||||
return inputData.includes('person') && inputData.includes('user');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// ShowHide instance for future dest users
|
||||
new ShowHide({
|
||||
@ -82,7 +33,16 @@ window.addEventListener('DOMContentLoaded', function() {
|
||||
for (let input of transition.querySelectorAll('input')) {
|
||||
if (input.checked) {
|
||||
const inputData = JSON.parse(input.getAttribute('data-is-signature'))
|
||||
return !(inputData.includes('person') || inputData.includes('user'));
|
||||
if (inputData.includes('person') || inputData.includes('user')) {
|
||||
signatureTypeChoices.style.display = '';
|
||||
return false;
|
||||
} else {
|
||||
personChoice.checked = false
|
||||
userChoice.checked = false
|
||||
|
||||
signatureTypeChoices.style.display = 'none';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -90,6 +50,53 @@ window.addEventListener('DOMContentLoaded', function() {
|
||||
}
|
||||
});
|
||||
|
||||
// ShowHide signature zone
|
||||
new ShowHide({
|
||||
debug: false,
|
||||
load_event: null,
|
||||
froms: [divTransitions],
|
||||
container: [signatureZone],
|
||||
test: function(froms, event) {
|
||||
for (let transition of froms) {
|
||||
for (let input of transition.querySelectorAll('input')) {
|
||||
if (input.checked) {
|
||||
const inputData = JSON.parse(input.getAttribute('data-is-signature'))
|
||||
if (inputData.includes('person') || inputData.includes('user')) {
|
||||
signatureTypeChoices.style.display = '';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// ShowHides for personSignatureField or userSignatureField within signature zone
|
||||
new ShowHide({
|
||||
debug: false,
|
||||
froms: [signatureTypeChoices],
|
||||
container: [personSignatureField],
|
||||
test: function(froms, event) {
|
||||
for (let container of froms) {
|
||||
return personChoice.checked;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
});
|
||||
|
||||
new ShowHide({
|
||||
debug: false,
|
||||
froms: [signatureTypeChoices],
|
||||
container: [userSignatureField],
|
||||
test: function(froms, event) {
|
||||
for (let container of froms) {
|
||||
return userChoice.checked;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
});
|
||||
|
||||
if (null !== divTransitions) {
|
||||
new ShowHide({
|
||||
load_event: null,
|
||||
|
@ -58,7 +58,7 @@
|
||||
{{ form_row(transition_form.transition) }}
|
||||
</div>
|
||||
|
||||
<div id="futureSignatures">
|
||||
<div id="signature-zone">
|
||||
<div id="signature-type-choice">
|
||||
{{ form_row(transition_form.isPersonOrUserSignature) }}
|
||||
{{ form_errors(transition_form.isPersonOrUserSignature) }}
|
||||
|
@ -536,6 +536,11 @@ workflow:
|
||||
docType: Type de document
|
||||
docNumber: Numéro de document
|
||||
docExpiration: Date d'expiration
|
||||
type of signature: Type de signature
|
||||
person signatures: Selectionner usagers pour signer
|
||||
user signature: Selectionner utilisateur pour signer
|
||||
persons: Usagers
|
||||
user: Utilisateur
|
||||
|
||||
|
||||
Subscribe final: Recevoir une notification à l'étape finale
|
||||
|
Loading…
x
Reference in New Issue
Block a user