PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 5.1.1
MainWP Dashboard: Self-hosted WordPress Management for Agencies v5.1.1
6.2.2 6.2.1 6.2 6.1.8 6.1.7 6.1.6 6.1.5 6.1.4 6.1.3 6.1.2 6.1.1 6.1 6.0.12 6.0.11 4.6.0.1 5.0 5.0.1 5.0.2 5.0.3 5.0.3.1 5.0.3.2 5.1 5.1.1 5.2 5.2.1 All 155 releases
mainwp / assets / js / mainwp-setup.js

mainwp-setup.js in MainWP Dashboard: Self-hosted WordPress Management for Agencies 5.1.1, at assets/js/mainwp-setup.js

244 lines 8.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 jQuery(function () {
2 jQuery('#mainwp-qsw-verify-mainwp-child-active').on('change', function () {
3 if (jQuery(this).is(':checked')) {
4 jQuery('#mainwp-qsw-connect-site-form').fadeIn(500);
5 jQuery('#mainwp_managesites_add').show();
6 jQuery('#mainwp_addsite_continue_button').hide();
7 } else {
8 jQuery('#mainwp-qsw-connect-site-form').fadeOut(500);
9 jQuery('#mainwp_managesites_add').hide();
10 jQuery('#mainwp_addsite_continue_button').show();
11 }
12 });
13
14 jQuery('#mainwp_qsw_client_name_field').on('keyup', function () {
15 if (jQuery(this).val()) {
16 jQuery('#bulk_add_createclient').show();
17 jQuery('#mainwp_qsw_add_client_continue_button').hide();
18 } else {
19 jQuery('#bulk_add_createclient').hide();
20 jQuery('#mainwp_qsw_add_client_continue_button').show();
21 }
22 });
23
24 jQuery('#mainwp-toggle-optional-settings').on('click', function () {
25 jQuery('#mainwp-qsw-optional-settings-form').toggle(300);
26 return false;
27 });
28
29 jQuery('.ui.checkbox:not(.not-auto-init)').checkbox();
30 jQuery('.ui.dropdown:not(.not-auto-init)').dropdown();
31
32 jQuery('.mainwp-checkbox-showhide-elements').on('click', function () {
33 let hiel = jQuery(this).attr('hide-parent');
34 // if semantic ui checkbox is checked.
35 if (jQuery(this).find('input').is(':checked')) {
36 jQuery('[hide-element=' + hiel + ']').fadeIn(500);
37 } else {
38 jQuery('[hide-element=' + hiel + ']').fadeOut(500);
39 }
40 });
41
42 jQuery(document).on('click', '#mainwp_managesites_add', function () {
43 mainwp_setup_managesites_add();
44 });
45
46 jQuery(document).on('change', '#mainwp_managesites_add_wpurl', function () {
47 let url = jQuery('#mainwp_managesites_add_wpurl').val().trim();
48 let protocol = jQuery('#mainwp_managesites_add_wpurl_protocol').val();
49
50 if (url.lastIndexOf('http://') === 0) {
51 protocol = 'http';
52 url = url.substring(7);
53 } else if (url.lastIndexOf('https://') === 0) {
54 protocol = 'https';
55 url = url.substring(8);
56 }
57
58 if (jQuery('#mainwp_managesites_add_wpname').val() == '') {
59 jQuery('#mainwp_managesites_add_wpname').val(url);
60 }
61
62 jQuery('#mainwp_managesites_add_wpurl').val(url);
63 jQuery('#mainwp_managesites_add_wpurl_protocol').val(protocol).trigger("change");
64 });
65
66 });
67
68 // Connect a new website
69 let mainwp_setup_managesites_add = function () {
70 mainwp_set_message_zone('#mainwp-message-zone');
71 let errors = [];
72
73 if (jQuery('#mainwp_managesites_add_wpname').val().trim() == '') {
74 errors.push('Please enter a title for the website.');
75 }
76
77 if (jQuery('#mainwp_managesites_add_wpurl').val().trim() == '') {
78 errors.push('Please enter a valid URL for the site.');
79 } else {
80 let url = jQuery('#mainwp_managesites_add_wpurl').val().trim();
81 if (!url.endsWith('/')) {
82 url += '/';
83 }
84
85 jQuery('#mainwp_managesites_add_wpurl').val(url);
86
87 if (!isUrl(jQuery('#mainwp_managesites_add_wpurl_protocol').val() + '://' + jQuery('#mainwp_managesites_add_wpurl').val())) {
88 errors.push('Please enter a valid URL for the site.');
89 }
90 }
91
92 if (jQuery('#mainwp_managesites_add_wpadmin').val().trim() == '') {
93 errors.push('Please enter a username of the website administrator.');
94 }
95
96 if (errors.length > 0) {
97 mainwp_set_message_zone('#mainwp-message-zone', errors.join('<br />'), 'yellow');
98 } else {
99 mainwp_set_message_zone('#mainwp-message-zone', 'Adding the site to your MainWP Dashboard. Please wait...', '');
100 jQuery('#mainwp_managesites_add').attr('disabled', 'true'); //disable button to add..
101
102 let url = jQuery('#mainwp_managesites_add_wpurl_protocol').val() + '://' + jQuery('#mainwp_managesites_add_wpurl').val().trim();
103
104 if (!url.endsWith('/')) {
105 url += '/';
106 }
107
108 let name = jQuery('#mainwp_managesites_add_wpname').val().trim();
109 name = name.replace(/"/g, '&quot;');
110
111 let data = mainwp_setup_secure_data({
112 action: 'mainwp_checkwp',
113 name: name,
114 url: url,
115 admin: jQuery('#mainwp_managesites_add_wpadmin').val().trim(),
116 });
117
118 jQuery.post(ajaxurl, data, function (res_things) {
119 let response = res_things.response;
120 response = response.trim();
121
122 let url = jQuery('#mainwp_managesites_add_wpurl_protocol').val() + '://' + jQuery('#mainwp_managesites_add_wpurl').val().trim();
123 if (!url.endsWith('/')) {
124 url += '/';
125 }
126
127 url = url.replace(/"/g, '&quot;');
128
129 if (response == 'HTTPERROR') {
130 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 <a href="https://kb.mainwp.com/">MainWP Knowledgebase</a>, and if you still have issues, please let us know in the <a href="https://managers.mainwp.com/c/community-support/5">MainWP Community</a>.'); // NOSONAR - noopener - open safe.
131 } else if (response == 'NOMAINWP') {
132 errors.push(mainwp_js_get_error_not_detected_connect());
133 } else if (response.substring(0, 5) == 'ERROR') {
134 if (response.length == 5) {
135 errors.push('Undefined error occurred. Please try again. If the issue does not resolve, please review <a href="https://kb.mainwp.com/">MainWP Knowledgebase</a>, and if you still have issues, please let us know in the <a href="https://managers.mainwp.com/c/community-support/5">MainWP Community</a>.'); // NOSONAR - noopener - open safe.
136 } else {
137 let error = response.substring(6);
138 let err = mainwp_js_get_error_not_detected_connect(error, 'html_msg', false, true); // return text error.
139 if (false === err) {
140 errors.push(error); // it is not json string error.
141 } else if (true !== err && '' != err) {
142 errors.push(err); // decoded error.
143 }
144 }
145 } else if (response == 'OK') {
146 jQuery('#mainwp_managesites_add').attr('disabled', 'true');
147
148 let name = jQuery('#mainwp_managesites_add_wpname').val();
149 name = name.replace(/"/g, '&quot;');
150 let group_ids = '';
151 let data = mainwp_setup_secure_data({
152 action: 'mainwp_addwp',
153 managesites_add_wpname: name,
154 managesites_add_wpurl: url,
155 managesites_add_wpadmin: jQuery('#mainwp_managesites_add_wpadmin').val(),
156 managesites_add_uniqueId: jQuery('#mainwp_managesites_add_uniqueId').val(),
157 groupids: group_ids,
158 qsw_page: true,
159 });
160
161 // to support add client reports tokens values
162 jQuery("input[name^='creport_token_']").each(function () {
163 let tname = jQuery(this).attr('name');
164 let tvalue = jQuery(this).val();
165 data[tname] = tvalue;
166 });
167
168 // support hooks fields
169 jQuery(".mainwp_addition_fields_addsite input").each(function () {
170 let tname = jQuery(this).attr('name');
171 let tvalue = jQuery(this).val();
172 data[tname] = tvalue;
173 });
174
175 jQuery.post(ajaxurl, data, function (res_things) {
176
177 if (res_things.error) {
178 response = res_things.error;
179 } else {
180 response = res_things.response;
181 }
182
183 response = response.trim();
184
185 mainwp_set_message_zone('#mainwp-message-zone');
186 jQuery('#mainwp-info-zone').hide();
187
188 if (response.substring(0, 5) == 'ERROR') {
189 mainwp_set_message_zone('#mainwp-message-zone', response.substring(6), 'red');
190 } else {
191 //Message the WP was added
192 mainwp_set_message_zone('#mainwp-message-zone', response, 'green');
193
194 //Reset fields
195 jQuery('#mainwp_managesites_add_wpname').val('');
196 jQuery('#mainwp_managesites_add_wpurl').val('');
197 jQuery('#mainwp_managesites_add_wpurl_protocol').val('https');
198 jQuery('#mainwp_managesites_add_wpadmin').val('');
199 jQuery('#mainwp_managesites_add_uniqueId').val('');
200
201 jQuery("input[name^='creport_token_']").each(function () {
202 jQuery(this).val('');
203 });
204
205 // support hooks fields
206 jQuery(".mainwp_addition_fields_addsite input").each(function () {
207 jQuery(this).val('');
208 });
209
210 setTimeout(function () {
211 window.location.href = 'admin.php?page=mainwp-setup&step=connect_first_site';
212 }, 1000);
213 }
214
215 jQuery('#mainwp_managesites_add').prop("disabled", false);
216 }, 'json');
217 }
218 if (errors.length > 0) {
219 mainwp_set_message_zone('#mainwp-message-zone', errors.join('<br />'), 'red');
220 jQuery('#mainwp_managesites_add').prop("disabled", false);
221 }
222 }, 'json');
223 }
224 };
225
226 // Check if the URL field is valid value
227 function isUrl(url) {
228 try {
229 new URL(url);
230 return true;
231 } catch (e) {
232 return false;
233 }
234 }
235
236 let mainwp_setup_secure_data = function (data) {
237 if (data['action'] == undefined)
238 return data;
239
240 data['security'] = jQuery('#nonce_secure_data').attr(data['action']);
241
242 return data;
243 };
244