[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 /** 2 * @package Joomla.Installation 3 * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> 4 * @license GNU General Public License version 2 or later; see LICENSE.txt 5 */ 6 7 /** 8 * Method to set the language for the installation UI via AJAX 9 * 10 * @return {Boolean} 11 */ 12 Joomla.setlanguage = function(form) { 13 var data = Joomla.serialiseForm(form); 14 Joomla.removeMessages(); 15 document.body.appendChild(document.createElement('joomla-core-loader')); 16 17 Joomla.request({ 18 url: Joomla.baseUrl, 19 method: 'POST', 20 data: data, 21 perform: true, 22 onSuccess: function(response, xhr){ 23 response = JSON.parse(response); 24 Joomla.replaceTokens(response.token); 25 var loaderElement = document.querySelector('joomla-core-loader'); 26 27 if (response.messages) { 28 Joomla.renderMessages(response.messages); 29 } 30 31 if (response.error) { 32 loaderElement.parentNode.removeChild(loaderElement); 33 Joomla.renderMessages({'error': [response.message]}); 34 } else { 35 loaderElement.parentNode.removeChild(loaderElement); 36 Joomla.goToPage(response.data.view, true); 37 } 38 }, 39 onError: function(xhr){ 40 var loaderElement = document.querySelector('joomla-core-loader'); 41 loaderElement.parentNode.removeChild(loaderElement); 42 try { 43 var r = JSON.parse(xhr.responseText); 44 Joomla.replaceTokens(r.token); 45 alert(r.message); 46 } catch (e) {} 47 } 48 }); 49 50 return false; 51 }; 52 53 Joomla.checkInputs = function() { 54 document.getElementById('jform_admin_password2').value = document.getElementById('jform_admin_password').value; 55 56 var inputs = [].slice.call(document.querySelectorAll('input[type="password"], input[type="text"], input[type="email"], select')), 57 state = true; 58 inputs.forEach(function(item) { 59 if (!item.valid) state = false; 60 }); 61 62 // Reveal everything 63 document.getElementById('installStep1').classList.add('active'); 64 document.getElementById('installStep2').classList.add('active'); 65 document.getElementById('installStep3').classList.add('active'); 66 67 68 if (Joomla.checkFormField(['#jform_site_name', '#jform_admin_user', '#jform_admin_email', '#jform_admin_password', '#jform_db_type', '#jform_db_host', '#jform_db_user', '#jform_db_name'])) { 69 Joomla.checkDbCredentials(); 70 } 71 }; 72 73 74 Joomla.checkDbCredentials = function() { 75 document.body.appendChild(document.createElement('joomla-core-loader')); 76 var form = document.getElementById('adminForm'), 77 data = Joomla.serialiseForm(form); 78 79 Joomla.request({ 80 method: "POST", 81 url : Joomla.installationBaseUrl + '?task=installation.dbcheck&format=json', 82 data: data, 83 perform: true, 84 headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 85 onSuccess: function(response, xhr){ 86 var loaderElement = document.querySelector('joomla-core-loader'); 87 try { 88 response = JSON.parse(response); 89 } catch (e) { 90 loaderElement.parentNode.removeChild(loaderElement); 91 console.error('Error in DB Check Endpoint'); 92 console.error(response); 93 Joomla.renderMessages({'error': [Joomla.Text._('INSTL_DATABASE_RESPONSE_ERROR')]}); 94 95 return false; 96 } 97 98 if (response.messages) { 99 Joomla.renderMessages(response.messages); 100 } 101 102 Joomla.replaceTokens(response.token); 103 loaderElement.parentNode.removeChild(loaderElement); 104 105 if (response.error) { 106 Joomla.renderMessages({'error': [response.message]}); 107 } else if (response.data && response.data.validated === true) { 108 // Run the installer - we let this handle the redirect for now 109 // @todo: Convert to promises 110 Joomla.install(['create', 'populate1', 'populate2', 'populate3', 'custom1', 'custom2', 'config'], form); 111 } 112 }, 113 onError: function(xhr){ 114 Joomla.renderMessages([['', Joomla.Text._('JLIB_DATABASE_ERROR_DATABASE_CONNECT', 'A Database error occurred.')]]); 115 //Install.goToPage('summary'); 116 var loaderElement = document.querySelector('joomla-core-loader'); 117 loaderElement.parentNode.removeChild(loaderElement); 118 119 try { 120 var r = JSON.parse(xhr.responseText); 121 Joomla.replaceTokens(r.token); 122 alert(r.message); 123 } catch (e) { 124 } 125 } 126 }); 127 }; 128 129 130 (function() { 131 // Merge options from the session storage 132 if (sessionStorage && sessionStorage.getItem('installation-data')) { 133 Joomla.extend(this.options, sessionStorage.getItem('installation-data')); 134 } 135 136 Joomla.pageInit(); 137 var el = document.querySelector('.nav-steps.hidden'); 138 if (el) { 139 el.classList.remove('hidden'); 140 } 141 142 // Focus to the next field 143 if (document.getElementById('jform_site_name')) { 144 document.getElementById('jform_site_name').focus(); 145 } 146 147 // Select language 148 var languageEl = document.getElementById('jform_language'); 149 150 if (languageEl) { 151 languageEl.addEventListener('change', function(e) { 152 var form = document.getElementById('languageForm'); 153 Joomla.setlanguage(form) 154 }) 155 } 156 157 if (document.getElementById('step1')) { 158 document.getElementById('step1').addEventListener('click', function(e) { 159 e.preventDefault(); 160 if (Joomla.checkFormField(['#jform_site_name'])) { 161 if (document.getElementById('languageForm')) { 162 document.getElementById('languageForm').classList.add('hidden'); 163 } 164 if (document.getElementById('installStep2')) { 165 document.getElementById('installStep2').classList.add('active'); 166 document.getElementById('installStep1').classList.remove('active'); 167 168 // Focus to the next field 169 if (document.getElementById('jform_admin_user')) { 170 document.getElementById('jform_admin_user').focus(); 171 } 172 } 173 } 174 }) 175 } 176 177 if (document.getElementById('step2')) { 178 document.getElementById('step2').addEventListener('click', function(e) { 179 e.preventDefault(); 180 if (Joomla.checkFormField(['#jform_admin_user', '#jform_admin_email', '#jform_admin_password'])) { 181 if (document.getElementById('installStep3')) { 182 document.getElementById('installStep3').classList.add('active'); 183 document.getElementById('installStep2').classList.remove('active'); 184 document.getElementById('setupButton').classList.remove('hidden'); 185 186 Joomla.makeRandomDbPrefix(); 187 188 // Focus to the next field 189 if (document.getElementById('jform_db_type')) { 190 document.getElementById('jform_db_type').focus(); 191 } 192 } 193 } 194 }); 195 196 document.getElementById('setupButton').addEventListener('click', function(e) { 197 e.preventDefault(); 198 e.stopPropagation(); 199 Joomla.checkInputs(); 200 }) 201 } 202 203 })();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |