57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @package     Joomla.Site
 | |
|  * @subpackage  Templates.Cassiopeia
 | |
|  * @copyright   (C) 2017 Open Source Matters, Inc. <https://www.joomla.org>
 | |
|  * @license     GNU General Public License version 2 or later; see LICENSE.txt
 | |
|  * @since       4.0.0
 | |
|  */
 | |
| 
 | |
| Joomla = window.Joomla || {};
 | |
| ((Joomla, document) => {
 | |
| 
 | |
|   function initTemplate(event) {
 | |
|     const target = event && event.target ? event.target : document;
 | |
| 
 | |
|     /**
 | |
|      * Prevent clicks on buttons within a disabled fieldset
 | |
|      */
 | |
|     target.querySelectorAll('fieldset.btn-group').forEach(fieldset => {
 | |
|       if (fieldset.getAttribute('disabled') === true) {
 | |
|         fieldset.style.pointerEvents = 'none';
 | |
|         fieldset.querySelectorAll('.btn').forEach(btn => btn.classList.add('disabled'));
 | |
|       }
 | |
|     });
 | |
|   }
 | |
|   document.addEventListener('DOMContentLoaded', event => {
 | |
|     initTemplate(event);
 | |
| 
 | |
|     /**
 | |
|      * Back to top
 | |
|      */
 | |
|     const backToTop = document.getElementById('back-top');
 | |
|     function checkScrollPos() {
 | |
|       if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
 | |
|         backToTop.classList.add('visible');
 | |
|       } else {
 | |
|         backToTop.classList.remove('visible');
 | |
|       }
 | |
|     }
 | |
|     if (backToTop) {
 | |
|       checkScrollPos();
 | |
|       window.addEventListener('scroll', checkScrollPos);
 | |
|       backToTop.addEventListener('click', ev => {
 | |
|         ev.preventDefault();
 | |
|         window.scrollTo(0, 0);
 | |
|       });
 | |
|     }
 | |
|     document.head.querySelectorAll('link[rel="lazy-stylesheet"]').forEach($link => {
 | |
|       $link.rel = 'stylesheet';
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   /**
 | |
|    * Initialize when a part of the page was updated
 | |
|    */
 | |
|   document.addEventListener('joomla:updated', initTemplate);
 | |
| })(Joomla, document);
 |