primo commit
This commit is contained in:
		
							
								
								
									
										70
									
								
								media/com_cpanel/js/admin-add_module.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								media/com_cpanel/js/admin-add_module.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | ||||
| /** | ||||
|  * @copyright  (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> | ||||
|  * @license    GNU General Public License version 2 or later; see LICENSE.txt | ||||
|  */ | ||||
| (document => { | ||||
|  | ||||
|   document.addEventListener('DOMContentLoaded', () => { | ||||
|     window.jSelectModuleType = () => { | ||||
|       const elements = document.querySelectorAll('#moduleDashboardAddModal .modal-footer .btn.hidden'); | ||||
|       if (elements.length) { | ||||
|         setTimeout(() => { | ||||
|           elements.forEach(button => { | ||||
|             button.classList.remove('hidden'); | ||||
|           }); | ||||
|         }, 1000); | ||||
|       } | ||||
|     }; | ||||
|     const buttons = document.querySelectorAll('#moduleDashboardAddModal .modal-footer .btn'); | ||||
|     const hideButtons = []; | ||||
|     let isSaving = false; | ||||
|     if (buttons.length) { | ||||
|       buttons.forEach(button => { | ||||
|         if (button.classList.contains('hidden')) { | ||||
|           hideButtons.push(button); | ||||
|         } | ||||
|         button.addEventListener('click', event => { | ||||
|           let elem = event.currentTarget; | ||||
|  | ||||
|           // There is some bug with events in iframe where currentTarget is "null" | ||||
|           // => prevent this here by bubble up | ||||
|           if (!elem) { | ||||
|             elem = event.target; | ||||
|           } | ||||
|           if (elem) { | ||||
|             const clickTarget = elem.dataset.bsTarget; | ||||
|  | ||||
|             // We remember to be in the saving process | ||||
|             isSaving = clickTarget === '#saveBtn'; | ||||
|  | ||||
|             // Reset saving process, if e.g. the validation of the form fails | ||||
|             setTimeout(() => { | ||||
|               isSaving = false; | ||||
|             }, 1500); | ||||
|             const iframe = document.querySelector('#moduleDashboardAddModal iframe'); | ||||
|             const content = iframe.contentDocument || iframe.contentWindow.document; | ||||
|             const targetBtn = content.querySelector(clickTarget); | ||||
|             if (targetBtn) { | ||||
|               targetBtn.click(); | ||||
|             } | ||||
|           } | ||||
|         }); | ||||
|       }); | ||||
|     } | ||||
|     const elementH = document.querySelector('#moduleDashboardAddModal'); | ||||
|     if (elementH) { | ||||
|       elementH.addEventListener('hide.bs.modal', () => { | ||||
|         hideButtons.forEach(button => { | ||||
|           button.classList.add('hidden'); | ||||
|         }); | ||||
|       }); | ||||
|       elementH.addEventListener('hidden.bs.modal', () => { | ||||
|         if (isSaving) { | ||||
|           setTimeout(() => { | ||||
|             window.parent.location.reload(); | ||||
|           }, 1000); | ||||
|         } | ||||
|       }); | ||||
|     } | ||||
|   }); | ||||
| })(document); | ||||
		Reference in New Issue
	
	Block a user