mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 01:08:26 +00:00 
			
		
		
		
	Fix functioning of show hide
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user