jQuery(function () { jQuery('.mainwp-field-tab-connect input[name=tab_connect]').change(function () { const tab_active = this.value; if (tab_active !== '') { jQuery('#mainwp-qsw-connect-site-form').fadeIn(500); jQuery('#mainwp_managesites_add').show(); jQuery('#mainwp-qsw-toggle-verify-mainwp-child-active').show(); jQuery('#mainwp_addsite_continue_button').hide(); jQuery('.menu-connect-first-site .item').tab('change tab', tab_active); } }); jQuery('#mainwp-qsw-verify-mainwp-child-active').on('change', function () { if (jQuery(this).is(':checked')) { jQuery('#mainwp_managesites_add').attr("disabled", false); jQuery('#mainwp_managesites_add_import').attr("disabled", false); } else { jQuery('#mainwp_managesites_add').attr("disabled", true); jQuery('#mainwp_managesites_add_import').attr("disabled", true); } }); // Handle submit import file CVS. jQuery(document).on('click', '#mainwp_managesites_add_import', function () { let error_messages = mainwp_managesites_import_handle_form_before_submit(); // If there is an error, prevent submission and display the error if (error_messages.length > 0) { feedback('mainwp-message-zone', error_messages.join("
"), "red"); } else { jQuery('#mainwp_connect_first_site_form').trigger('submit'); } return false; }); jQuery('#mainwp_qsw_client_name_field').on('keyup', function () { if (jQuery(this).val()) { jQuery('#bulk_add_createclient').show(); jQuery('#mainwp_qsw_add_client_continue_button').hide(); } else { jQuery('#bulk_add_createclient').hide(); jQuery('#mainwp_qsw_add_client_continue_button').show(); } }); jQuery('#mainwp-toggle-optional-settings').on('click', function () { jQuery('#mainwp-qsw-optional-settings-form').toggle(300); return false; }); jQuery('.ui.checkbox:not(.not-auto-init)').checkbox(); jQuery('.ui.dropdown:not(.not-auto-init)').dropdown(); jQuery('.mainwp-checkbox-showhide-elements').on('click', function () { let hiel = jQuery(this).attr('hide-parent'); // if semantic ui checkbox is checked. if (jQuery(this).find('input').is(':checked')) { jQuery('[hide-element=' + hiel + ']').fadeIn(500); } else { jQuery('[hide-element=' + hiel + ']').fadeOut(500); } }); jQuery(document).on('click', '#mainwp_managesites_add', function () { mainwp_setup_managesites_add(); }); jQuery(document).on('change', '#mainwp_managesites_add_wpurl', function () { let url = jQuery('#mainwp_managesites_add_wpurl').val().trim(); let protocol = jQuery('#mainwp_managesites_add_wpurl_protocol').val(); if (url.lastIndexOf('http://') === 0) { protocol = 'http'; url = url.substring(7); } else if (url.lastIndexOf('https://') === 0) { protocol = 'https'; url = url.substring(8); } if (jQuery('#mainwp_managesites_add_wpname').val() == '') { jQuery('#mainwp_managesites_add_wpname').val(url); } jQuery('#mainwp_managesites_add_wpurl').val(url); jQuery('#mainwp_managesites_add_wpurl_protocol').val(protocol).trigger("change"); }); }); // Handle tab onvisible. const mainwp_menu_connect_first_site_onvisible_callback = function (objItem) { const tab = jQuery(objItem).attr("data-tab"); jQuery('.mainwp-field-tab-connect input[name=tab_connect]').filter(`[value="${tab}"]`).parent().trigger('click'); // set checked class ui checkbox if (tab === 'multiple-site') { jQuery('#mainwp_managesites_add_import').show(); jQuery('#mainwp_managesites_add').hide(); } else if (tab === 'single-site') { jQuery('#mainwp_managesites_add').show(); jQuery('#mainwp_managesites_add_import').hide(); } } // Connect a new website let mainwp_setup_managesites_add = function () { mainwp_set_message_zone('#mainwp-message-zone'); let errors = []; if (jQuery('#mainwp_managesites_add_wpname').val().trim() == '') { errors.push('Please enter a title for the website.'); } if (jQuery('#mainwp_managesites_add_wpurl').val().trim() == '') { errors.push('Please enter a valid URL for the site.'); } else { let url = jQuery('#mainwp_managesites_add_wpurl').val().trim(); if (!url.endsWith('/')) { url += '/'; } jQuery('#mainwp_managesites_add_wpurl').val(url); if (!isUrl(jQuery('#mainwp_managesites_add_wpurl_protocol').val() + '://' + jQuery('#mainwp_managesites_add_wpurl').val())) { errors.push('Please enter a valid URL for the site.'); } } if (jQuery('#mainwp_managesites_add_wpadmin').val().trim() == '') { errors.push('Please enter a username of the website administrator.'); } if (errors.length > 0) { mainwp_set_message_zone('#mainwp-message-zone', errors.join('
'), 'yellow'); } else { mainwp_set_message_zone('#mainwp-message-zone', 'Adding the site to your MainWP Dashboard. Please wait...', ''); jQuery('#mainwp_managesites_add').attr('disabled', 'true'); //disable button to add.. let url = jQuery('#mainwp_managesites_add_wpurl_protocol').val() + '://' + jQuery('#mainwp_managesites_add_wpurl').val().trim(); if (!url.endsWith('/')) { url += '/'; } let name = jQuery('#mainwp_managesites_add_wpname').val().trim(); name = name.replace(/"/g, '"'); let data = mainwp_setup_secure_data({ action: 'mainwp_checkwp', name: name, url: url, admin: jQuery('#mainwp_managesites_add_wpadmin').val().trim(), }); jQuery.post(ajaxurl, data, function (res_things) { let response = res_things.response; response = response.trim(); let url = jQuery('#mainwp_managesites_add_wpurl_protocol').val() + '://' + jQuery('#mainwp_managesites_add_wpurl').val().trim(); if (!url.endsWith('/')) { url += '/'; } url = url.replace(/"/g, '"'); if (response == 'HTTPERROR') { errors.push('This site can not be reached! Please use the Test Connection feature and see if the positive response will be returned. For additional help, please review MainWP Knowledgebase, and if you still have issues, please let us know in the MainWP Community.'); // NOSONAR - noopener - open safe. } else if (response == 'NOMAINWP') { errors.push(mainwp_js_get_error_not_detected_connect()); } else if (response.substring(0, 5) == 'ERROR') { if (response.length == 5) { errors.push('Undefined error occurred. Please try again. If the issue does not resolve, please review MainWP Knowledgebase, and if you still have issues, please let us know in the MainWP Community.'); // NOSONAR - noopener - open safe. } else { let error = response.substring(6); let err = mainwp_js_get_error_not_detected_connect(error, 'html_msg', false, true); // return text error. if (false === err) { errors.push(error); // it is not json string error. } else if (true !== err && '' != err) { errors.push(err); // decoded error. } } } else if (response == 'OK') { jQuery('#mainwp_managesites_add').attr('disabled', 'true'); let name = jQuery('#mainwp_managesites_add_wpname').val(); name = name.replace(/"/g, '"'); let group_ids = ''; let data = mainwp_setup_secure_data({ action: 'mainwp_addwp', managesites_add_wpname: name, managesites_add_wpurl: url, managesites_add_wpadmin: jQuery('#mainwp_managesites_add_wpadmin').val(), managesites_add_adminpwd: encodeURIComponent(jQuery('#mainwp_managesites_add_admin_pwd').val()), managesites_add_uniqueId: jQuery('#mainwp_managesites_add_uniqueId').val(), groupids: group_ids, qsw_page: true, }); // to support add client reports tokens values jQuery("input[name^='creport_token_']").each(function () { let tname = jQuery(this).attr('name'); let tvalue = jQuery(this).val(); data[tname] = tvalue; }); // support hooks fields jQuery(".mainwp_addition_fields_addsite input").each(function () { let tname = jQuery(this).attr('name'); let tvalue = jQuery(this).val(); data[tname] = tvalue; }); jQuery.post(ajaxurl, data, function (res_things) { if (res_things.error) { response = res_things.error; } else { response = res_things.response; } response = response.trim(); mainwp_set_message_zone('#mainwp-message-zone'); jQuery('#mainwp-info-zone').hide(); if (response.substring(0, 5) == 'ERROR') { mainwp_set_message_zone('#mainwp-message-zone', response.substring(6), 'red'); } else { //Message the WP was added mainwp_set_message_zone('#mainwp-message-zone', response, 'green'); //Reset fields jQuery('#mainwp_managesites_add_wpname').val(''); jQuery('#mainwp_managesites_add_wpurl').val(''); jQuery('#mainwp_managesites_add_wpurl_protocol').val('https'); jQuery('#mainwp_managesites_add_wpadmin').val(''); jQuery('#mainwp_managesites_add_admin_pwd').val(''); jQuery('#mainwp_managesites_add_uniqueId').val(''); jQuery("input[name^='creport_token_']").each(function () { jQuery(this).val(''); }); // support hooks fields jQuery(".mainwp_addition_fields_addsite input").each(function () { jQuery(this).val(''); }); setTimeout(function () { window.location.href = 'admin.php?page=mainwp-setup&step=add_client'; }, 3000); } jQuery('#mainwp_managesites_add').prop("disabled", false); }, 'json'); } if (errors.length > 0) { mainwp_set_message_zone('#mainwp-message-zone', errors.join('
'), 'red'); jQuery('#mainwp_managesites_add').prop("disabled", false); } }, 'json'); } }; // Check if the URL field is valid value function isUrl(url) { try { new URL(url); return true; } catch (e) { console.log(e); } return false; } let mainwp_setup_secure_data = function (data) { if (data['action'] == undefined) return data; data['security'] = jQuery('#nonce_secure_data').attr(data['action']); return data; };