PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 5.0
MainWP Dashboard: Self-hosted WordPress Management for Agencies v5.0
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 5.2.2 5.3 All 153 releases
mainwp / assets / js / mainwp-setup.js

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

240 lines 9.5 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 var 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 ( event ) {
43 mainwp_setup_managesites_add( event );
44 } );
45
46 jQuery( document ).on( 'change', '#mainwp_managesites_add_wpurl', function() {
47 var url = jQuery( '#mainwp_managesites_add_wpurl' ).val().trim();
48 var 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 mainwp_setup_managesites_add = function () {
70
71 jQuery( '#mainwp-message-zone' ).hide();
72
73 var errors = [ ];
74
75 if ( jQuery( '#mainwp_managesites_add_wpname' ).val().trim() == '' ) {
76 errors.push( 'Please enter a title for the website.' );
77 }
78
79 if ( jQuery( '#mainwp_managesites_add_wpurl' ).val().trim() == '' ) {
80 errors.push( 'Please enter a valid URL for the site.' );
81 } else {
82 var url = jQuery( '#mainwp_managesites_add_wpurl' ).val().trim();
83 if ( url.substr( -1 ) != '/' ) {
84 url += '/';
85 }
86
87 jQuery( '#mainwp_managesites_add_wpurl' ).val( url );
88
89 if ( !isUrl( jQuery( '#mainwp_managesites_add_wpurl_protocol' ).val() + '://' + jQuery( '#mainwp_managesites_add_wpurl' ).val() ) ) {
90 errors.push( 'Please enter a valid URL for the site.' );
91 }
92 }
93
94 if ( jQuery( '#mainwp_managesites_add_wpadmin' ).val().trim() == '' ) {
95 errors.push( 'Please enter a username of the website administrator.' );
96 }
97
98 if ( errors.length > 0 ) {
99 jQuery( '#mainwp-message-zone' ).html( errors.join( '<br />' ) ).addClass( 'yellow' ).show();
100 } else {
101 jQuery( '#mainwp-message-zone' ).html( 'Adding the site to your MainWP Dashboard. Please wait...' ).removeClass( 'green red yellow' ).show();
102 jQuery( '#mainwp_managesites_add' ).attr( 'disabled', 'true' ); //disable button to add..
103
104 var url = jQuery( '#mainwp_managesites_add_wpurl_protocol' ).val() + '://' + jQuery( '#mainwp_managesites_add_wpurl' ).val().trim();
105
106 if ( url.substr( -1 ) != '/' ) {
107 url += '/';
108 }
109
110 var name = jQuery( '#mainwp_managesites_add_wpname' ).val().trim();
111 name = name.replace( /"/g, '&quot;' );
112
113 var data = mainwp_setup_secure_data( {
114 action: 'mainwp_checkwp',
115 name: name,
116 url: url,
117 admin: jQuery( '#mainwp_managesites_add_wpadmin' ).val().trim(),
118 } );
119
120 jQuery.post( ajaxurl, data, function ( res_things ) {
121 response = res_things.response;
122 response = response.trim();
123
124 var url = jQuery( '#mainwp_managesites_add_wpurl_protocol' ).val() + '://' + jQuery( '#mainwp_managesites_add_wpurl' ).val().trim();
125 if ( url.substr( -1 ) != '/' ) {
126 url += '/';
127 }
128
129 url = url.replace( /"/g, '&quot;' );
130
131 if ( response == 'HTTPERROR' ) {
132 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>.' );
133 } else if ( response == 'NOMAINWP' ) {
134 errors.push( 'MainWP Child plugin not detected or could not be reached! Ensure the MainWP Child plugin is installed and activated on the child site, and there are no security rules blocking requests. If you continue experiencing this issue, check the <a href="https://managers.mainwp.com/c/community-support/5">MainWP Community</a> for help.' );
135 } else if ( response.substr( 0, 5 ) == 'ERROR' ) {
136 if ( response.length == 5 ) {
137 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>.' );
138 } else {
139 errors.push( response.substr( 6 ) );
140 }
141 } else if ( response == 'OK' ) {
142 jQuery( '#mainwp_managesites_add' ).attr( 'disabled', 'true' );
143
144 var name = jQuery( '#mainwp_managesites_add_wpname' ).val();
145 name = name.replace( /"/g, '&quot;' );
146 var group_ids = '';
147 var data = mainwp_setup_secure_data( {
148 action: 'mainwp_addwp',
149 managesites_add_wpname: name,
150 managesites_add_wpurl: url,
151 managesites_add_wpadmin: jQuery( '#mainwp_managesites_add_wpadmin' ).val(),
152 managesites_add_uniqueId: jQuery( '#mainwp_managesites_add_uniqueId' ).val(),
153 groupids: group_ids,
154 qsw_page: true,
155 } );
156
157 // to support add client reports tokens values
158 jQuery( "input[name^='creport_token_']" ).each( function(){
159 var tname = jQuery( this ).attr( 'name' );
160 var tvalue = jQuery( this ).val();
161 data[tname] = tvalue;
162 } );
163
164 // support hooks fields
165 jQuery( ".mainwp_addition_fields_addsite input" ).each( function() {
166 var tname = jQuery( this ).attr( 'name' );
167 var tvalue = jQuery( this ).val();
168 data[tname] = tvalue;
169 } );
170
171 jQuery.post( ajaxurl, data, function ( res_things ) {
172
173 if ( res_things.error ) {
174 response = res_things.error;
175 } else {
176 response = res_things.response;
177 }
178
179 response = response.trim();
180
181 jQuery( '#mainwp-message-zone' ).hide();
182 jQuery( '#mainwp-info-zone' ).hide();
183
184 if ( response.substr( 0, 5 ) == 'ERROR' ) {
185 jQuery( '#mainwp-message-zone' ).removeClass( 'green yellow green' );
186 jQuery( '#mainwp-message-zone' ).html( response.substr( 6 ) ).addClass( 'red' ).show();
187 } else {
188 //Message the WP was added
189 jQuery( '#mainwp-message-zone' ).removeClass( 'green yellow green' );
190 jQuery( '#mainwp-message-zone' ).html( response ).addClass( 'green' ).show();
191
192 //Reset fields
193 jQuery( '#mainwp_managesites_add_wpname' ).val( '' );
194 jQuery( '#mainwp_managesites_add_wpurl' ).val( '' );
195 jQuery( '#mainwp_managesites_add_wpurl_protocol' ).val( 'https' );
196 jQuery( '#mainwp_managesites_add_wpadmin' ).val( '' );
197 jQuery( '#mainwp_managesites_add_uniqueId' ).val( '' );
198
199 jQuery( "input[name^='creport_token_']" ).each( function() {
200 jQuery( this ).val( '' );
201 } );
202
203 // support hooks fields
204 jQuery( ".mainwp_addition_fields_addsite input" ).each( function() {
205 jQuery( this ).val('');
206 } );
207
208 setTimeout(function () {
209 window.location.href = 'admin.php?page=mainwp-setup&step=connect_first_site';
210 }, 1000);
211 }
212
213 jQuery( '#mainwp_managesites_add' ).prop("disabled", false);
214 }, 'json' );
215 }
216 if ( errors.length > 0 ) {
217 jQuery( '#mainwp-message-zone' ).removeClass( 'green yellow green' );
218 jQuery( '#mainwp-message-zone' ).hide();
219 jQuery( '#mainwp_managesites_add' ).prop("disabled", false);
220 jQuery( '#mainwp-message-zone' ).html( errors.join( '<br />' ) ).addClass( 'red' ).show();
221 }
222 }, 'json' );
223 }
224 };
225
226 // Check if the URL field is valid value
227 function isUrl( s ) {
228 var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/;
229 return regexp.test( s );
230 }
231
232 mainwp_setup_secure_data = function ( data ) {
233 if ( data['action'] == undefined )
234 return data;
235
236 data['security'] = jQuery( '#nonce_secure_data' ).attr( data['action'] );
237
238 return data;
239 };
240