PluginProbe
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings / 6.3.1
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings v6.3.1
7.2.1 7.2 7.1.2 7.1.1 7.1 7.0.4 7.0.6 7.0.7 6.3.8 6.3.7 6.3.6 6.3.5 6.3.4 6.3.3 6.3.1 trunk 5.7.3 5.7.5 5.8.1 5.8.2 5.8.3 5.8.4 5.8.6 6.0.4 6.0.5 All 36 releases
mlsimport / admin / js / mlsimport-admin.js

mlsimport-admin.js in MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings 6.3.1, at admin/js/mlsimport-admin.js

865 lines 37.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 jQuery( document ).ready(
2 function ($) {
3 'use strict';
4
5 var log_refresh_interval;
6 var log_refresh_interval_per_item;
7 var timer = 2000;
8 var timer_per_item = 4000;
9
10 if (jQuery( '#nav-tab-import' ).hasClass( 'nav-tab-active' )) {
11 log_refresh_interval = setInterval( mlsimport_log_interval, timer );
12 }
13
14 // Start checking logs only after an import actually begins
15 // to avoid showing a completed message on initial page load.
16
17 //mlsimport_autocomplte_mls_selection();
18 /**
19 * Show / hide extra input field - cities and counties
20 */
21
22 mslimport_show_extra_options();
23
24 /**
25 * Show / hide input tokens on load
26 */
27 mlsimport_token_on_load();
28
29 /**
30 * Show / hide input tokens on change
31 */
32
33 jQuery( '#mlsimport_mls_name' ).on(
34 'change',
35 function (event) {
36
37 var selected_value = jQuery( '#mlsimport_mls_name' ).val();
38 selected_value = parseInt( selected_value );
39
40
41
42 if ( mlsimport_is_brightmls( selected_value ) ) {
43
44 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
45 jQuery( '.fieldset_mlsimport_tresle_client_id, .fieldset_mlsimport_tresle_client_secret' ).hide();
46 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
47 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
48 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
49 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
50 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).show();
51 } else if ( mlsimport_is_connectmls( selected_value ) ) {
52
53 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
54 jQuery( '.fieldset_mlsimport_tresle_client_id, .fieldset_mlsimport_tresle_client_secret' ).hide();
55 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).show();
56 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
57 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
58 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
59 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
60 } else if ( mlsimport_is_realtorca( selected_value ) ) {
61
62 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
63 jQuery( '.fieldset_mlsimport_tresle_client_id, .fieldset_mlsimport_tresle_client_secret' ).hide();
64 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
65 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
66 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
67 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).show();
68 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
69 } else if ( mlsimport_is_paragon( selected_value ) ) {
70
71 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
72 jQuery( '.fieldset_mlsimport_tresle_client_id, .fieldset_mlsimport_tresle_client_secret' ).hide();
73 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
74 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
75 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).show();
76 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
77 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
78 } else if ( mlsimport_is_rapattoni( selected_value ) ) {
79
80 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
81 jQuery( '.fieldset_mlsimport_tresle_client_id,.fieldset_mlsimport_tresle_client_secret' ).hide();
82 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
83 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).show();
84 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
85 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
86 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
87 } else if ( mlsimport_is_trestle( selected_value ) ) {
88
89 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
90 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
91 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
92 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
93 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
94 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
95
96 jQuery( '.fieldset_mlsimport_tresle_client_id' ).show();
97 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).show();
98 } else {
99
100 jQuery( '.fieldset_mlsimport_mls_token' ).show();
101 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
102 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
103 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
104 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
105 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
106
107 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
108 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
109 }
110
111 }
112 );
113
114 /**
115 * Stop Import per item
116 */
117
118 jQuery( '#mlsimport_stop_item' ).on(
119 'click',
120 function () {
121 console.log( 'mlsimport-stop' );
122 var post_id = jQuery( this ).attr( 'data-post_id' );
123 var nonce = jQuery('#mlsimport_item_actions').val();
124 // stop refreshing logs immediately on the client side
125 if (typeof log_refresh_interval_per_item !== 'undefined') {
126 clearInterval( log_refresh_interval_per_item );
127 }
128 jQuery.ajax(
129 {
130 type: 'POST',
131 url: ajaxurl,
132 data: {
133 'action' : 'mlsimport_stop_import_per_item',
134 'post_id' : post_id,
135 'security' : nonce
136
137 },
138 success: function (data) {
139 console.log( data );
140 jQuery( '#mlsimport_item_status' ).empty().append( 'Import stopped!' );
141 },
142 error: function (errorThrown) {
143 console.log( errorThrown );
144 }
145 }
146 );// end ajax
147 }
148 );
149
150 /**
151 * Start Import per item
152 */
153
154 jQuery( '#mlsimport-start_item,#mlsimport-run-test' ).on(
155 'click',
156 function (event) {
157 console.log( 'mlsimport-start' );
158 var ajaxurl = mlsimport_vars.ajax_url;
159 var post_id = jQuery( this ).attr( 'data-post_id' );
160 var post_number = jQuery( this ).attr( 'data-post-number' );
161 var how_many = jQuery( '#mlsimport_item_how_many' ).val();
162 var is_onboard = 0;
163 var nonce = jQuery('#mlsimport_item_actions').val();
164 jQuery( '#mlsimport_item_status' ).empty();
165 jQuery( '#mlsimport_item_status' ).append( "Starting the import. Please stand by!" );
166
167
168 if (event.target.id === 'mlsimport-run-test') {
169 // Do something only when #mlsimport-run-test is clicked
170
171
172
173 jQuery(this).prop('disabled', true);
174 jQuery('#mlsimport-test-spinner').show();
175 jQuery('.mlsimport-status-message')
176 .removeClass('pending')
177 .addClass('progress')
178 .html('<p><?php _e("Starting import... Please wait.", "mlsimport"); ?></p>' +
179 '<div class="mlsimport-progress-bar"><div class="mlsimport-progress-bar-inner" style="width: 20%"></div></div>');
180
181 how_many=5;
182 is_onboard=1;
183
184
185 } else {
186 // Handle #mlsimport-start_item click
187 console.log('Start item clicked');
188 }
189
190
191
192
193 clearInterval( log_refresh_interval_per_item );
194 log_refresh_interval_per_item = setInterval( mlsimport_log_interval_per_item, timer_per_item );
195
196
197 jQuery.ajax(
198 {
199 type: 'POST',
200 url: ajaxurl,
201 data: {
202 'action' : 'mlsimport_move_files_per_item',
203 'post_id' : post_id,
204 'how_many' : how_many,
205 'post_number' : post_number,
206 'is_onboard' : is_onboard,
207 'security' : nonce,
208 },
209 success: function (data) {
210 console.log( data );
211 if ( data && data.success === false && data.message ) {
212 jQuery( '#mlsimport_item_status' ).empty().append( data.message );
213 jQuery( '#mlsimport-start_item,#mlsimport-run-test' ).prop( 'disabled', true );
214 }
215
216 },
217 error: function (errorThrown) {
218 console.log( errorThrown );
219 var message = '';
220 if ( errorThrown.responseJSON && errorThrown.responseJSON.message ) {
221 message = errorThrown.responseJSON.message;
222 } else if ( errorThrown.responseText ) {
223 try {
224 var parsed = JSON.parse( errorThrown.responseText );
225 message = parsed.message || errorThrown.statusText;
226 } catch (e) {
227 message = errorThrown.statusText;
228 }
229 } else {
230 message = errorThrown.statusText;
231 }
232 jQuery( '#mlsimport_item_status' ).empty().append( message );
233 jQuery( '#mlsimport-start_item,#mlsimport-run-test' ).prop( 'disabled', true );
234 }
235 }
236 );// end ajax
237
238 }
239 );
240
241 /**
242 * delete cache
243 */
244
245 jQuery( '#mlsimport-clear-cache' ).on(
246 'click',
247 function () {
248 var ajaxurl = mlsimport_vars.ajax_url;
249 var nonce = jQuery('#mlsimport_tool_actions').val();
250
251 jQuery( '#mlsimport-clear-cache' ).val( 'Deleting...' );
252
253 jQuery.ajax(
254 {
255 type: 'POST',
256 url: ajaxurl,
257 data: {
258 'action' : 'mlsimport_delete_cache',
259 'security' : nonce
260 },
261 success: function (data) {
262 console.log( data );
263 jQuery( '#mlsimport-clear-cache' ).val( 'Deleted!' );
264
265 },
266 error: function (errorThrown) {
267 console.log( errorThrown );
268 }
269 }
270 );// end ajax
271 }
272 );
273
274 jQuery( '#mlsimport-clear-fields-data' ).on(
275 'click',
276 function () {
277 var ajaxurl = mlsimport_vars.ajax_url;
278 var nonce = jQuery('#mlsimport_tool_actions').val();
279
280 jQuery( '#mlsimport-clear-fields-data' ).val( 'Deleting...' );
281
282 jQuery.ajax(
283 {
284 type: 'POST',
285 url: ajaxurl,
286 data: {
287 'action' : 'mlsimport_clear_fields_data',
288 'security' : nonce
289 },
290 success: function (data) {
291 console.log( data );
292 jQuery( '#mlsimport-clear-fields-data' ).val( 'Deleted!' );
293
294 },
295 error: function (errorThrown) {
296 console.log( errorThrown );
297 }
298 }
299 );// end ajax
300 }
301 );
302
303 /**
304 * delete properties
305 */
306
307 // Load taxonomy terms when taxonomy is selected
308 jQuery( '#mlsimport_delete_category' ).on( 'change', function () {
309 var taxonomy = jQuery( this ).val();
310 var $termSelect = jQuery( '#mlsimport_delete_category_term' );
311 var nonce = jQuery( '#mlsimport_tool_actions' ).val();
312
313 $termSelect.empty().prop( 'disabled', true );
314
315 if ( ! taxonomy ) {
316 $termSelect.append( '<option value="" disabled>Select a taxonomy first</option>' );
317 return;
318 }
319
320 $termSelect.append( '<option value="" disabled>Loading...</option>' );
321
322 jQuery.ajax( {
323 type: 'POST',
324 url: mlsimport_vars.ajax_url,
325 dataType: 'json',
326 data: {
327 action: 'mlsimport_get_taxonomy_terms',
328 taxonomy: taxonomy,
329 security: nonce
330 },
331 success: function ( response ) {
332 $termSelect.empty();
333 if ( response.success && response.data.length ) {
334 jQuery.each( response.data, function ( i, term ) {
335 $termSelect.append(
336 '<option value="' + term.slug + '">' + term.name + ' (' + term.count + ')</option>'
337 );
338 } );
339 $termSelect.prop( 'disabled', false );
340 } else {
341 $termSelect.append( '<option value="" disabled>No terms found</option>' );
342 }
343 },
344 error: function () {
345 $termSelect.empty().append( '<option value="" disabled>Error loading terms</option>' );
346 }
347 } );
348 } );
349
350 // Batched delete
351 window.mlsimportDeleteStopped = false;
352
353 function mlsimportDeleteBatch( taxonomy, terms, nonce, totalDeleted ) {
354 if ( window.mlsimportDeleteStopped ) {
355 jQuery( '#mlsimport-delete-notification' ).text( 'Stopped. Deleted ' + totalDeleted + ' properties.' );
356 mlsimportDeleteResetUI();
357 return;
358 }
359
360 jQuery.ajax( {
361 type: 'POST',
362 url: mlsimport_vars.ajax_url,
363 dataType: 'json',
364 data: {
365 action: 'mlsimport_delete_properties',
366 mlsimport_delete_category: taxonomy,
367 'mlsimport_delete_category_term[]': terms,
368 security: nonce
369 },
370 success: function ( response ) {
371 if ( ! response.success ) {
372 jQuery( '#mlsimport-delete-notification' ).text( response.data || 'Error' );
373 mlsimportDeleteResetUI();
374 return;
375 }
376
377 var data = response.data;
378 totalDeleted += data.deleted;
379 var totalProperties = totalDeleted + data.remaining;
380 var pct = totalProperties > 0 ? Math.round( ( totalDeleted / totalProperties ) * 100 ) : 100;
381
382 jQuery( '#mlsimport-delete-progress-bar' ).css( 'width', pct + '%' );
383 jQuery( '#mlsimport-delete-progress-text' ).text( totalDeleted + ' / ' + totalProperties + ' deleted' );
384 jQuery( '#mlsimport-delete-notification' ).text( 'Deleting... ' + totalDeleted + ' deleted so far.' );
385
386 if ( data.done ) {
387 jQuery( '#mlsimport-delete-notification' ).text( 'Done! Deleted ' + totalDeleted + ' properties.' );
388 jQuery( '#mlsimport-delete-progress-bar' ).css( 'width', '100%' );
389 mlsimportDeleteResetUI();
390 } else {
391 mlsimportDeleteBatch( taxonomy, terms, nonce, totalDeleted );
392 }
393 },
394 error: function ( xhr ) {
395 console.log( xhr );
396 jQuery( '#mlsimport-delete-notification' ).text( 'Error during deletion. Deleted ' + totalDeleted + ' so far.' );
397 mlsimportDeleteResetUI();
398 }
399 } );
400 }
401
402 function mlsimportDeleteResetUI() {
403 jQuery( '#mlsimport-delete-prop' ).show();
404 jQuery( '#mlsimport-delete-stop' ).hide();
405 }
406
407 jQuery( '#mlsimport-delete-prop' ).on( 'click', function () {
408 var taxonomy = jQuery( '#mlsimport_delete_category' ).val();
409 var terms = jQuery( '#mlsimport_delete_category_term' ).val();
410 var nonce = jQuery( '#mlsimport_tool_actions' ).val();
411
412 if ( ! taxonomy ) {
413 jQuery( '#mlsimport-delete-notification' ).text( 'Please select a taxonomy.' );
414 return;
415 }
416 if ( ! terms || ! terms.length ) {
417 jQuery( '#mlsimport-delete-notification' ).text( 'Please select at least one term.' );
418 return;
419 }
420
421 if ( ! confirm( 'Are you sure you want to delete all properties matching the selected terms? This cannot be undone.' ) ) {
422 return;
423 }
424
425 window.mlsimportDeleteStopped = false;
426 jQuery( '#mlsimport-delete-prop' ).hide();
427 jQuery( '#mlsimport-delete-stop' ).show();
428 jQuery( '#mlsimport-delete-progress' ).show();
429 jQuery( '#mlsimport-delete-progress-bar' ).css( 'width', '0%' );
430 jQuery( '#mlsimport-delete-progress-text' ).text( 'Starting...' );
431 jQuery( '#mlsimport-delete-notification' ).text( 'Deleting...' );
432
433 mlsimportDeleteBatch( taxonomy, terms, nonce, 0 );
434 } );
435
436 jQuery( '#mlsimport-delete-stop' ).on( 'click', function () {
437 window.mlsimportDeleteStopped = true;
438 jQuery( '#mlsimport-delete-notification' ).text( 'Stopping after current batch...' );
439 } );
440
441 /**
442 * Stop import
443 */
444
445 jQuery( '#mlsimport_stop' ).on(
446 'click',
447 function () {
448 var ajaxurl = mlsimport_vars.ajax_url;
449
450 console.log( 'stop files' );
451 jQuery.ajax(
452 {
453 type: 'POST',
454 url: ajaxurl,
455 data: {
456 'action' : 'mlsimport_stop_moving_files',
457 },
458 success: function (data) {
459 console.log( data );
460 jQuery( '#aws-move-start' ).show();
461 clearInterval( log_refresh_interval );
462
463 },
464 error: function (errorThrown) {
465 console.log( errorThrown );
466 }
467 }
468 );// end ajax
469 }
470 );
471
472 /**
473 * Start Import
474 */
475
476 jQuery( '#mlsimport-start' ).on(
477 'click',
478 function () {
479 console.log( 'mlsimport-start' );
480 var ajaxurl = mlsimport_vars.ajax_url;
481 aws_show_progress();
482
483 jQuery.ajax(
484 {
485 type: 'POST',
486 url: ajaxurl,
487 data: {
488 'action' : 'mlsimport_move_files'
489 },
490 success: function (data) {
491 console.log( data );
492 console.log( 'starting loggers' );
493 clearInterval( log_refresh_interval );
494 log_refresh_interval = setInterval( mlsimport_log_interval, timer );
495
496 },
497 error: function (errorThrown) {
498 console.log( errorThrown );
499 }
500 }
501 );// end ajax
502
503 }
504 );
505
506 /**
507 * Log import
508 */
509
510 function mlsimport_log_interval()
511 {
512
513 var progress_total = jQuery( '#mlsimport_monster_myProgress' ).attr( 'data-total' );
514 progress_total = parseInt( progress_total );
515 var remain_images = progress_total;
516 var done_images = 0;
517 var bar_width = 0;
518 jQuery.ajax(
519 {
520 type: 'POST',
521 url: ajaxurl,
522 dataType: 'json',
523 data: {
524 'action' : 'mlsimport_move_files_to_aws_logger',
525 },
526 success: function (data) {
527
528 if (data.is_done === 'done' && data.logs === '' ) {
529 jQuery( '#log_container' ).prepend( 'COMPLETED' );
530 jQuery( '#log_container' ).append( 'COMPLETED' );
531 clearInterval( log_refresh_interval );
532 } else if (data.logs !== '') {
533 jQuery( '#log_container' ).empty().prepend( data.logs );
534 jQuery( '#aws_more_files' ).empty().text( data.current_files_no );
535
536 remain_images = parseInt( data.current_files_no );
537 done_images = progress_total - remain_images;
538
539 bar_width = done_images * 100 / progress_total;
540 bar_width = parseFloat( bar_width );
541
542 jQuery( '#mlsimport_myBar' ).css( 'width',bar_width + '%' );
543 }
544 },
545 error: function (errorThrown) {
546 console.log( errorThrown );
547 }
548 }
549 );// end ajax
550 }
551
552 /**
553 * Log import per item
554 */
555
556 function mlsimport_log_interval_per_item()
557 {
558 console.log( 'mlsimport_log_interval_per_item' );
559 var item_id = jQuery( '#mlsimport-start_item' ).attr( 'data-post_id' );
560 var nonce = jQuery('#mlsimport_item_actions').val();
561 jQuery.ajax(
562 {
563 type: 'POST',
564 url: ajaxurl,
565 dataType: 'json',
566 data: {
567 'action' : 'mlsimport_logger_per_item',
568 'post_id' : item_id,
569 'security' : nonce
570 },
571 success: function (data) {
572 console.log( data );
573 var progress = parseInt( data.mlsimport_progress_properties );
574 var total = parseInt( data.mlsimport_task_to_import );
575 if ( ! isNaN( progress ) && ! isNaN( total ) && total > 0 ) {
576 var width = progress * 100 / total;
577 jQuery( '#mlsimport_item_progress .mlsimport-progress-bar-inner' ).css( 'width', width + '%' );
578 }
579 if (data.is_done === 'done' || data.logs === '' ) {
580 console.log( 'kill interval' );
581
582 clearInterval( log_refresh_interval_per_item );
583 var message = (data.status === 'completed' && progress > 0) ? "Import completed!" : "Ready to import!";
584 jQuery( '#mlsimport_item_status' ).empty().append( message );
585 jQuery( '#mlsimport_item_progress .mlsimport-progress-bar-inner' ).css( 'width', '100%' );
586
587 }else if(data.is_done==='wip'){
588 console.log('we do wip');
589 jQuery( '#mlsimport_item_status' ).empty().append( 'Importing property: '+data.mlsimport_progress_properties+' of '+data.mlsimport_task_to_import+'. Memory used: '+data.memory+' MB.' );
590
591 } else if (data.logs !== '') {
592 console.log('we do logs');
593 jQuery( '#mlsimport_item_status' ).empty().append( data.logs );
594
595
596 jQuery('.mlsimport-import-summary').append(
597 '<p><strong><?php _e("Status:", "mlsimport"); ?></strong> ' +
598 '<span class="mlsimport-status-success">'+data.logs+'/span></p>'
599 );
600
601 }
602 },
603 error: function (errorThrown) {
604 console.log( errorThrown );
605 }
606 }
607 );// end ajax
608 }
609
610 /**
611 * SHow progress bar -
612 */
613
614 function aws_show_progress()
615 {
616
617 jQuery( '#log_container' ).empty();
618
619 var files_to_move = jQuery( '#aws_move' ).text();
620 files_to_move = parseInt( files_to_move );
621
622 console.log( 'files_to_move ' + files_to_move );
623
624 if ( isNaN( parseFloat( files_to_move ) ) ) {
625 files_to_move = jQuery( '#aws_more_files' ).text();
626 }
627 console.log( 'files_to_move2 ' + files_to_move );
628 files_to_move = parseInt( files_to_move );
629
630 jQuery( '#mlsimport_myProgress_wrapper' ).show();
631 jQuery( '.aws_to_move' ).empty().html( '<strong>We start importing. Please wait.</strong>' );
632 jQuery( '#aws-move-start' ).hide();
633 }
634
635 /**
636 * Check / unchechek fields
637 */
638
639 jQuery( '.mls_import_selec_all_class' ).on(
640 'click',
641 function () {
642 var trigger_type = jQuery( this ).attr( 'data-import' );
643 console.log( 'trigger type ' + trigger_type );
644
645 if (trigger_type === 'import_select') {
646
647 jQuery( '.mlsimport_select_import_all' ).prop( 'checked', true );
648 } else if (trigger_type === 'import_select_none') {
649
650 jQuery( '.mlsimport_select_import_all' ).prop( 'checked', false );
651 } else if (trigger_type === 'import_admin') {
652 jQuery( '.mlsimport_select_import_admin_all' ).prop( 'checked', true );
653 } else if (trigger_type === 'import_admin_none') {
654 jQuery( '.mlsimport_select_import_admin_all' ).prop( 'checked', false );
655 }
656 }
657 );
658
659 }
660 );
661
662
663
664 function mslimport_show_extra_options()
665 {
666 jQuery( '.mlsimport_hidden_field_button' ).on(
667 'click',
668 function () {
669 var parent = jQuery( this ).closest( '.mlsimport-fieldset' );
670 console.log( parent )
671 parent.find( '.mlsimport-input-wrapper' ).toggle();
672 }
673 );
674 }
675
676
677
678
679 function mlsimport_saas_get_metadata()
680 {
681
682 console.log( 'mlsimport_saas_get_metadata' );
683 var nonce = jQuery('#mlsimport_saas_get_metadata').val();
684 var ajaxurl = mlsimport_vars.ajax_url;
685 jQuery.ajax(
686 {
687 type: 'POST',
688 url: ajaxurl,
689 data: {
690 'action' : 'mlsimport_saas_get_metadata_function',
691 'security' : nonce
692 },
693 success: function (data) {
694 console.log( data );
695 jQuery( '.mlsimport_populate_warning' ).remove();
696 location.reload( true );
697 },
698 error: function (errorThrown) {
699 console.log( errorThrown );
700 }
701 }
702 );// end ajax
703
704 }
705
706
707 function mlsimport_is_brightmls( selected_value )
708 {
709 return Number( selected_value ) === 8001;
710 }
711
712 function mlsimport_is_connectmls( selected_value )
713 {
714 selected_value = parseInt( selected_value );
715
716 if ( isNaN( selected_value ) ) {
717 return false;
718 }
719
720 return selected_value >= 8000 && selected_value < 9000 && Number( selected_value ) !== 8001;
721 }
722
723 function mlsimport_is_realtorca( selected_value )
724 {
725 return selected_value >= 7000 && selected_value < 8000;
726 }
727
728 function mlsimport_is_paragon( selected_value )
729 {
730 return selected_value >= 6000 && selected_value < 7000;
731 }
732
733 function mlsimport_is_rapattoni( selected_value )
734 {
735 return selected_value >= 5000 && selected_value < 6000;
736 }
737
738 function mlsimport_is_trestle( selected_value )
739 {
740 return selected_value > 900 && selected_value < 3000;
741 }
742
743 function mlsimport_token_on_load()
744 {
745 var selected_value = jQuery( '#mlsimport_mls_name' ).val();
746 selected_value = parseInt( selected_value );
747
748 console.log("on load "+selected_value);
749 if ( mlsimport_is_brightmls( selected_value ) ) {
750
751 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
752 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
753 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
754 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
755 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
756 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
757 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
758 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).show();
759 } else if ( mlsimport_is_connectmls( selected_value ) ) {
760
761 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
762 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
763 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
764 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).show();
765 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
766 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
767 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
768 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
769 } else if ( mlsimport_is_realtorca( selected_value ) ) {
770
771 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
772 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
773 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
774 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
775 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
776 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
777 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).show();
778 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
779 } else if ( mlsimport_is_paragon( selected_value ) ) {
780
781 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).show();
782 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
783 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
784 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
785 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
786 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
787 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
788 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
789 } else if ( mlsimport_is_rapattoni( selected_value ) ) {
790
791 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).show();
792 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
793 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
794 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
795 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
796 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
797 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
798 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
799 } else if ( mlsimport_is_trestle( selected_value ) ) {
800
801 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
802 jQuery( '.fieldset_mlsimport_tresle_client_id' ).show();
803 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).show();
804 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
805 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
806 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
807 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
808 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
809 } else {
810
811 jQuery( '.fieldset_mlsimport_mls_token' ).show();
812 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
813 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
814 jQuery( '.fieldset_mlsimport_connectmls_username, .fieldset_mlsimport_connectmls_password' ).hide();
815 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
816 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
817 jQuery( '.fieldset_mlsimport_realtorca_client_id, .fieldset_mlsimport_realtorca_client_secret' ).hide();
818 jQuery( '.fieldset_mlsimport_brightmls_client_id, .fieldset_mlsimport_brightmls_client_secret' ).hide();
819
820 }
821 }
822
823
824
825 function mlsimport_autocomplte_mls_selection(autofill){
826
827 console.log('mlsimport_autocomplte_mls_selection');
828 console.log(typeof jQuery.ui.autocomplete); // should be "function"
829 console.log(autofill);
830
831
832 jQuery( "#mlsimport_mls_name_front" ).autocomplete({
833 source: autofill,
834 minLength: 3,
835 open: function(event, ui) {
836 jQuery(this).autocomplete("widget").addClass("mlsimport-autocomplete-menu");
837 },
838 change( event, ui ){
839 console.log(ui);
840 jQuery("#mlsimport_mls_name_front").val(ui.item.label);
841 jQuery("#mlsimport_mls_name").val(ui.item.value);
842 mlsimport_token_on_load();
843 },
844 focus: function(event, ui) {
845 jQuery("#mlsimport_mls_name_front").val(ui.item.label);
846 jQuery("#mlsimport_mls_name").val(ui.item.value); mlsimport_token_on_load();
847 return false;
848 },
849 select: function(event, ui) {
850 jQuery("#mlsimport_mls_name_front").val(ui.item.label);
851 jQuery("#mlsimport_mls_name").val(ui.item.value); mlsimport_token_on_load();
852 return false;
853 },
854 response: function(event, ui) {
855 if (!ui.content.length) {
856 var noResult = { value:"",label:"No results found" };
857 ui.content.push(noResult);
858 //$("#message").text("No results found");
859 } else {
860 // $("#message").empty();
861 }
862 }
863 });
864 }
865