PluginProbe
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings / 5.8.4
MLSImport: IDX Plugin & MLS Plugin for Real Estate Listings v5.8.4
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 5.8.4, at admin/js/mlsimport-admin.js

548 lines 16.0 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 if (jQuery( '#mlsimport-start_item' ).length > 0) {
15 log_refresh_interval_per_item = setInterval( mlsimport_log_interval_per_item, timer_per_item );
16 }
17
18 //mlsimport_autocomplte_mls_selection();
19 /**
20 * Show / hide extra input field - cities and counties
21 */
22
23 mslimport_show_extra_options();
24
25 /**
26 * Show / hide input tokens on load
27 */
28 mlsimport_token_on_load();
29
30 /**
31 * Show / hide input tokens on change
32 */
33
34 jQuery( '#mlsimport_mls_name' ).on(
35 'change',
36 function (event) {
37
38 var selected_value = jQuery( '#mlsimport_mls_name' ).val();
39 selected_value = parseInt( selected_value );
40
41
42
43 if (selected_value >= 6000) {
44
45 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
46 jQuery( '.fieldset_mlsimport_tresle_client_id, .fieldset_mlsimport_tresle_client_secret' ).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' ).show();
49 } else if ( selected_value > 5000) {
50
51 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
52 jQuery( '.fieldset_mlsimport_tresle_client_id,.fieldset_mlsimport_tresle_client_secret' ).hide();
53 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).show();
54 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
55 } else if ( selected_value > 900 && selected_value < 3000) {
56
57 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
58 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
59 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
60
61 jQuery( '.fieldset_mlsimport_tresle_client_id' ).show();
62 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).show();
63 } else {
64
65 jQuery( '.fieldset_mlsimport_mls_token' ).show();
66 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
67 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
68
69 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
70 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
71 }
72
73 }
74 );
75
76 /**
77 * Stop Import per item
78 */
79
80 jQuery( '#mlsimport_stop_item' ).on(
81 'click',
82 function () {
83 console.log( 'mlsimport-stop' );
84 var post_id = jQuery( this ).attr( 'data-post_id' );
85 var nonce = jQuery('#mlsimport_item_actions').val();
86 jQuery.ajax(
87 {
88 type: 'POST',
89 url: ajaxurl,
90 data: {
91 'action' : 'mlsimport_stop_import_per_item',
92 'post_id' : post_id,
93 'security' : nonce
94
95 },
96 success: function (data) {
97 console.log( data );
98 },
99 error: function (errorThrown) {
100 console.log( errorThrown );
101 }
102 }
103 );// end ajax
104 }
105 );
106
107 /**
108 * Start Import per item
109 */
110
111 jQuery( '#mlsimport-start_item' ).on(
112 'click',
113 function () {
114 console.log( 'mlsimport-start' );
115 var ajaxurl = mlsimport_vars.ajax_url;
116 var post_id = jQuery( this ).attr( 'data-post_id' );
117 var post_number = jQuery( this ).attr( 'data-post-number' );
118 var how_many = jQuery( '#mlsimport_item_how_many' ).val();
119 var nonce = jQuery('#mlsimport_item_actions').val();
120 jQuery( '#mlsimport_item_status' ).empty();
121 jQuery( '#mlsimport_item_status' ).append( "Starting the import. Please stand by!" );
122
123 clearInterval( log_refresh_interval_per_item );
124 log_refresh_interval_per_item = setInterval( mlsimport_log_interval_per_item, timer_per_item );
125
126 console.log( 'mlsimport_move_files_per_item' );
127 jQuery.ajax(
128 {
129 type: 'POST',
130 url: ajaxurl,
131 data: {
132 'action' : 'mlsimport_move_files_per_item',
133 'post_id' : post_id,
134 'how_many' : how_many,
135 'post_number' : post_number,
136 'security' : nonce,
137 },
138 success: function (data) {
139 console.log( data );
140
141 },
142 error: function (errorThrown) {
143 console.log( errorThrown );
144 }
145 }
146 );// end ajax
147
148 }
149 );
150
151 /**
152 * delete cache
153 */
154
155 jQuery( '#mlsimport-clear-cache' ).on(
156 'click',
157 function () {
158 var ajaxurl = mlsimport_vars.ajax_url;
159 var nonce = jQuery('#mlsimport_tool_actions').val();
160
161 jQuery( '#mlsimport-clear-cache' ).val( 'Deleting...' );
162
163 jQuery.ajax(
164 {
165 type: 'POST',
166 url: ajaxurl,
167 data: {
168 'action' : 'mlsimport_delete_cache',
169 'security' : nonce
170 },
171 success: function (data) {
172 console.log( data );
173 jQuery( '#mlsimport-clear-cache' ).val( 'Deleted!' );
174
175 },
176 error: function (errorThrown) {
177 console.log( errorThrown );
178 }
179 }
180 );// end ajax
181 }
182 );
183
184 /**
185 * delete properties
186 */
187
188 jQuery( '#mlsimport-delete-prop' ).on(
189 'click',
190 function () {
191 var ajaxurl = mlsimport_vars.ajax_url;
192
193 var mlsimport_delete_category = jQuery( '#mlsimport_delete_category' ).val();
194 var mlsimport_delete_category_term = jQuery( '#mlsimport_delete_category_term' ).val();
195 var mlsimport_delete_timeout = jQuery( '#mlsimport_delete_timeout' ).val();
196 var nonce = jQuery('#mlsimport_tool_actions').val();
197
198 if (mlsimport_delete_category === '') {
199 jQuery( '#mlsimport-delete-notification' ).text( 'Please add the category ' );
200 return;
201 }
202 if (mlsimport_delete_category_term === '' ) {
203 jQuery( '#mlsimport-delete-notification' ).text( 'Please add the category term ' );
204 return;
205 }
206
207 jQuery( '#mlsimport-delete-notification' ).text( 'Deleting...If you have many properties this may take a while' );
208 jQuery.ajax(
209 {
210 type: 'POST',
211 url: ajaxurl,
212 dataType:'json',
213 data: {
214 'action' : 'mlsimport_delete_properties',
215 'mlsimport_delete_category' : mlsimport_delete_category,
216 'mlsimport_delete_category_term' : mlsimport_delete_category_term,
217 'mlsimport_delete_timeout' : mlsimport_delete_timeout,
218 'security' : nonce
219 },
220 success: function (data) {
221 console.log( data );
222 jQuery( '#mlsimport-delete-notification' ).text( data.message );
223
224 },
225 error: function (errorThrown) {
226 console.log( errorThrown );
227 }
228 }
229 );// end ajax
230 }
231 );
232
233 /**
234 * Stop import
235 */
236
237 jQuery( '#mlsimport_stop' ).on(
238 'click',
239 function () {
240 var ajaxurl = mlsimport_vars.ajax_url;
241
242 console.log( 'stop files' );
243 jQuery.ajax(
244 {
245 type: 'POST',
246 url: ajaxurl,
247 data: {
248 'action' : 'mlsimport_stop_moving_files',
249 },
250 success: function (data) {
251 console.log( data );
252 jQuery( '#aws-move-start' ).show();
253 clearInterval( log_refresh_interval );
254
255 },
256 error: function (errorThrown) {
257 console.log( errorThrown );
258 }
259 }
260 );// end ajax
261 }
262 );
263
264 /**
265 * Start Import
266 */
267
268 jQuery( '#mlsimport-start' ).on(
269 'click',
270 function () {
271 console.log( 'mlsimport-start' );
272 var ajaxurl = mlsimport_vars.ajax_url;
273 aws_show_progress();
274
275 jQuery.ajax(
276 {
277 type: 'POST',
278 url: ajaxurl,
279 data: {
280 'action' : 'mlsimport_move_files'
281 },
282 success: function (data) {
283 console.log( data );
284 console.log( 'starting loggers' );
285 clearInterval( log_refresh_interval );
286 log_refresh_interval = setInterval( mlsimport_log_interval, timer );
287
288 },
289 error: function (errorThrown) {
290 console.log( errorThrown );
291 }
292 }
293 );// end ajax
294
295 }
296 );
297
298 /**
299 * Log import
300 */
301
302 function mlsimport_log_interval()
303 {
304
305 var progress_total = jQuery( '#mlsimport_monster_myProgress' ).attr( 'data-total' );
306 progress_total = parseInt( progress_total );
307 var remain_images = progress_total;
308 var done_images = 0;
309 var bar_width = 0;
310 jQuery.ajax(
311 {
312 type: 'POST',
313 url: ajaxurl,
314 dataType: 'json',
315 data: {
316 'action' : 'mlsimport_move_files_to_aws_logger',
317 },
318 success: function (data) {
319
320 if (data.is_done === 'done' && data.logs === '' ) {
321 jQuery( '#log_container' ).prepend( 'COMPLETED' );
322 jQuery( '#log_container' ).append( 'COMPLETED' );
323 clearInterval( log_refresh_interval );
324 } else if (data.logs !== '') {
325 jQuery( '#log_container' ).empty().prepend( data.logs );
326 jQuery( '#aws_more_files' ).empty().text( data.current_files_no );
327
328 remain_images = parseInt( data.current_files_no );
329 done_images = progress_total - remain_images;
330
331 bar_width = done_images * 100 / progress_total;
332 bar_width = parseFloat( bar_width );
333
334 jQuery( '#mlsimport_myBar' ).css( 'width',bar_width + '%' );
335 }
336 },
337 error: function (errorThrown) {
338 console.log( errorThrown );
339 }
340 }
341 );// end ajax
342 }
343
344 /**
345 * Log import per item
346 */
347
348 function mlsimport_log_interval_per_item()
349 {
350 console.log( 'mlsimport_log_interval_per_item' );
351 var item_id = jQuery( '#mlsimport-start_item' ).attr( 'data-post_id' );
352 var nonce = jQuery('#mlsimport_item_actions').val();
353 jQuery.ajax(
354 {
355 type: 'POST',
356 url: ajaxurl,
357 dataType: 'json',
358 data: {
359 'action' : 'mlsimport_logger_per_item',
360 'post_id' : item_id,
361 'security' : nonce
362 },
363 success: function (data) {
364 console.log( data );
365 if (data.is_done === 'done' || data.logs === '' ) {
366 console.log( 'kill interval' );
367
368 clearInterval( log_refresh_interval_per_item );
369 jQuery( '#mlsimport_item_status' ).append( "Import stopped or completed!" );
370 } else if (data.logs !== '') {
371 jQuery( '#mlsimport_item_status' ).empty().append( data.logs );
372 }
373 },
374 error: function (errorThrown) {
375 console.log( errorThrown );
376 }
377 }
378 );// end ajax
379 }
380
381 /**
382 * SHow progress bar -
383 */
384
385 function aws_show_progress()
386 {
387
388 jQuery( '#log_container' ).empty();
389
390 var files_to_move = jQuery( '#aws_move' ).text();
391 files_to_move = parseInt( files_to_move );
392
393 console.log( 'files_to_move ' + files_to_move );
394
395 if ( isNaN( parseFloat( files_to_move ) ) ) {
396 files_to_move = jQuery( '#aws_more_files' ).text();
397 }
398 console.log( 'files_to_move2 ' + files_to_move );
399 files_to_move = parseInt( files_to_move );
400
401 jQuery( '#mlsimport_myProgress_wrapper' ).show();
402 jQuery( '.aws_to_move' ).empty().html( '<strong>We start importing. Please wait.</strong>' );
403 jQuery( '#aws-move-start' ).hide();
404 }
405
406 /**
407 * Check / unchechek fields
408 */
409
410 jQuery( '.mls_import_selec_all_class' ).on(
411 'click',
412 function () {
413 var trigger_type = jQuery( this ).attr( 'data-import' );
414 console.log( 'trigger type ' + trigger_type );
415
416 if (trigger_type === 'import_select') {
417 console.log( 'fac asll' );
418 jQuery( '.mlsimport_select_import_all' ).prop( 'checked', true );
419 } else if (trigger_type === 'import_select_none') {
420 console.log( 'fac uncheck ' );
421 jQuery( '.mlsimport_select_import_all' ).prop( 'checked', false );
422 } else if (trigger_type === 'import_admin') {
423 jQuery( '.mlsimport_select_import_admin_all' ).prop( 'checked', true );
424 } else if (trigger_type === 'import_admin_none') {
425 jQuery( '.mlsimport_select_import_admin_all' ).prop( 'checked', false );
426 }
427 }
428 );
429
430 }
431 );
432
433
434
435 function mslimport_show_extra_options()
436 {
437 jQuery( '.mlsimport_hidden_field_button' ).on(
438 'click',
439 function () {
440 var parent = jQuery( this ).closest( '.mlsimport-fieldset' );
441 console.log( parent )
442 parent.find( '.mlsimport-input-wrapper' ).toggle();
443 }
444 );
445 }
446
447
448
449
450 function mlsimport_saas_get_metadata()
451 {
452
453 console.log( 'mlsimport_saas_get_metadata' );
454 var nonce = jQuery('#mlsimport_saas_get_metadata').val();
455 jQuery.ajax(
456 {
457 type: 'POST',
458 url: ajaxurl,
459 data: {
460 'action' : 'mlsimport_saas_get_metadata_function',
461 'security' : nonce
462 },
463 success: function (data) {
464 console.log( data );
465 jQuery( '.mlsimport_populate_warning' ).remove();
466 location.reload( true );
467 },
468 error: function (errorThrown) {
469 console.log( errorThrown );
470 }
471 }
472 );// end ajax
473
474 }
475
476
477 function mlsimport_token_on_load()
478 {
479 var selected_value = jQuery( '#mlsimport_mls_name' ).val();
480 selected_value = parseInt( selected_value );
481
482
483
484 if (selected_value > 6000) {
485
486 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).show();
487 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
488 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
489 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
490 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
491 } else if ( selected_value > 5000 && selected_value < 6000) {
492
493 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).show();
494 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
495 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
496 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
497 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
498 } else if ( selected_value > 900 && selected_value < 3000) {
499
500 jQuery( '.fieldset_mlsimport_mls_token' ).hide();
501 jQuery( '.fieldset_mlsimport_tresle_client_id' ).show();
502 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).show();
503 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
504 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
505 } else {
506
507 jQuery( '.fieldset_mlsimport_mls_token' ).show();
508 jQuery( '.fieldset_mlsimport_tresle_client_id' ).hide();
509 jQuery( '.fieldset_mlsimport_tresle_client_secret' ).hide();
510 jQuery( '.fieldset_mlsimport_rapattoni_client_id,.fieldset_mlsimport_rapattoni_client_secret,.fieldset_mlsimport_rapattoni_username,.fieldset_mlsimport_rapattoni_password ' ).hide();
511 jQuery( '.fieldset_mlsimport_paragon_client_id, .fieldset_mlsimport_paragon_client_secret' ).hide();
512
513 }
514 }
515
516
517
518 function mlsimport_autocomplte_mls_selection(autofill){
519 jQuery( "#mlsimport_mls_name_front" ).autocomplete({
520 source: autofill,
521 minLength: 3,
522 change( event, ui ){
523 console.log(ui);
524 jQuery("#mlsimport_mls_name_front").val(ui.item.label);
525 jQuery("#mlsimport_mls_name").val(ui.item.value);
526 mlsimport_token_on_load();
527 },
528 focus: function(event, ui) {
529 jQuery("#mlsimport_mls_name_front").val(ui.item.label);
530 jQuery("#mlsimport_mls_name").val(ui.item.value); mlsimport_token_on_load();
531 return false;
532 },
533 select: function(event, ui) {
534 jQuery("#mlsimport_mls_name_front").val(ui.item.label);
535 jQuery("#mlsimport_mls_name").val(ui.item.value); mlsimport_token_on_load();
536 return false;
537 },
538 response: function(event, ui) {
539 if (!ui.content.length) {
540 var noResult = { value:"",label:"No results found" };
541 ui.content.push(noResult);
542 //$("#message").text("No results found");
543 } else {
544 // $("#message").empty();
545 }
546 }
547 });
548 }