MinnPost/object-sync-for-salesforce

View on GitHub
assets/js/object-sync-for-salesforce-admin.min.js

Summary

Maintainability
A
0 mins
Test Coverage
!function(c){"use strict";function e(a,e){var s={action:"get_"+a+"_object_fields"},t=".column-"+a+"_field select",o="",l=c(t+" option").first().text();if(""===c(t).val()){if(o+='<option value="">'+l+"</option>","wordpress"===a)s.wordpress_object=e;else{if("salesforce"!==a)return o;s.salesforce_object=e}c.ajax({type:"POST",url:ajaxurl,data:s,beforeSend:function(){c(".spinner-"+a).addClass("is-active")},success:function(e){c.each(e.data.fields,function(e,s){var t;"wordpress"===a?o+='<option value="'+s.key+'">'+s.key+"</option>":"salesforce"===a&&(t="",t=void 0!==s.label?s.label:s.name,o+='<option value="'+s.name+'">'+t+"</option>")}),c(t).html(o)},complete:function(){c(".spinner-"+a).removeClass("is-active")}})}}function s(e){var s=c("#salesforce_object").val(),t=c("#wordpress_object").val(),a=(new Date).getUTCMilliseconds(),o=c("table.fields tbody tr").last(),l=o.attr("data-key"),l=new RegExp(l,"g");""!==t&&""!==s?(function(t,a,e){var s="";s=(jQuery.fn.select2?e.find("select").select2("destroy"):e.find("select")).end().clone(!0).removeClass("fieldmap-template");c(s).attr("data-key",a),c(s).each(function(){c(this).html(function(e,s){return s.replace(t,a)})}),c("table.fields tbody").append(s),jQuery.fn.select2&&(e.find("select").select2(),s.find("select").select2())}(l,a,o),e.parent().find(".missing-object").remove(),e.text(e.data("add-more"))):(e.text(e.data("add-first")),e.parent().prepend('<div class="error missing-object"><span>'+e.data("error-missing-object")+"</span></div>"))}function t(e){var t=c(".fieldmap-disable-mapped-fields .column-"+e+"_field select"),a=[];t.each(function(e,s){s=c(s).find("option:selected").val();null!==s&&""!==s&&a.push(s)}),a=a.filter((e,s,t)=>t.indexOf(e)===s),c("option",t).removeProp("disabled"),c("option",t).prop("disabled",!1),c.each(a,function(e,s){c("option[value="+s+"]:not(:selected)",t).prop("disabled",!0)}),jQuery.fn.select2&&c(".column-"+e+"_field select").select2()}function a(){var e=c("#mapping_id_ajax").val();c.post(ajaxurl,{action:"refresh_mapped_data",mapping_id:e},function(e){!0===e.success&&(c("td.last_sync_message").text(e.data.last_sync_message),c("td.last_sync_action").text(e.data.last_sync_action),c("td.last_sync_status").text(e.data.last_sync_status),c("td.last_sync").text(e.data.last_sync),"1"===e.data.last_sync_status?c("td.last_sync_status").text("success"):c("td.last_sync_status").text("error"))})}function o(){0<c(".object-sync-for-salesforce-enable-soap").length&&(c(".object-sync-for-salesforce-enable-soap input").is(":checked")?c(".object-sync-for-salesforce-soap-wsdl-path").show():c(".object-sync-for-salesforce-soap-wsdl-path").hide())}c(document).ready(function(){var t,e;e=function(e,s){clearTimeout(t),t=setTimeout(e,s)},(t=0)===c(".salesforce_record_types_allowed > *").length&&c(".salesforce_record_types_allowed").hide(),0===c(".salesforce_record_type_default > *").length&&c(".salesforce_record_type_default").hide(),0===c(".pull_trigger_field > *").length&&c(".pull_trigger_field").hide(),c("#salesforce_object").on("change",function(){var s=this;e(function(){var e={action:"get_salesforce_object_description",include:["fields","recordTypeInfos"],field_type:"datetime",salesforce_object:s.value};c.post(ajaxurl,e,function(e){var t="",a="",o="";0<c(e.data.recordTypeInfos).length&&(t+='<label for="salesforce_record_types_allowed">Allowed Record Types:</label><div class="checkboxes">',c.each(e.data.recordTypeInfos,function(e,s){t+='<label><input type="checkbox" class="form-checkbox" value="'+e+'" name="salesforce_record_types_allowed['+e+']" id="salesforce_record_types_allowed-'+e+'"> '+s+"</label>"}),t+="</div>",a+='<label for="salesforce_record_type_default">Default Record Type:</label>',a+='<select name="salesforce_record_type_default" id="salesforce_record_type_default"><option value="">- Select record type -</option>',c.each(e.data.recordTypeInfos,function(e,s){a+='<option value="'+e+'">'+s+"</option>"})),c(".salesforce_record_types_allowed").html(t),c(".salesforce_record_type_default").html(a),0<c(e.data.fields).length&&(o+='<label for="pull_trigger_field">Date field to trigger pull:</label>',o+='<select name="pull_trigger_field" id="pull_trigger_field"><option value="">- Select date field -</option>',c.each(e.data.fields,function(e,s){var t="",t=void 0!==s.label?s.label:s.name;o+='<option value="'+s.name+'">'+t+"</option>"}),o+="</select>",o+='<p class="description">These are date fields that can cause WordPress to pull an update from Salesforce, according to the <code>salesforce_pull</code> class.</p>'),c(".pull_trigger_field").html(o),""!==t?c(".salesforce_record_types_allowed").show():c(".salesforce_record_types_allowed").hide(),""!==a?c(".salesforce_record_type_default").show():c(".salesforce_record_type_default").hide(),""!==o?c(".pull_trigger_field").show():c(".pull_trigger_field").hide(),jQuery.fn.select2&&(c("select#salesforce_record_type_default").select2(),c("select#pull_trigger_field").select2())})},1e3)})}),c(document).on("change","select#wordpress_object",function(){e("wordpress",c(this).val()),clearTimeout(void 0),setTimeout(function(){c("table.fields tbody tr").fadeOut(),c("table.fields tbody tr").not(".fieldmap-template").remove()},1e3)}),c(document).on("change","select#salesforce_object",function(){e("salesforce",c(this).val()),clearTimeout(void 0),setTimeout(function(){c("table.fields tbody tr").fadeOut(),c("table.fields tbody tr").not(".fieldmap-template").remove()},1e3)}),c(document).ready(function(){e("wordpress",c("select#wordpress_object").val()),e("salesforce",c("select#salesforce_object").val())}),c(document).on("change",".column-wordpress_field select",function(){t("wordpress")}),c(document).on("change",".column-salesforce_field select",function(){t("salesforce")}),c(document).on("click","#add-field-mapping",function(){s(c(this))}),c(document).on("click",".column-is_prematch input",function(){c(".column-is_prematch input").not(this).prop("checked",!1)}),c(document).on("click",".column-is_key input",function(){c(".column-is_key input").not(this).prop("checked",!1)}),c(document).ready(function(){t("salesforce"),t("wordpress"),jQuery.fn.select2&&(c("select#wordpress_object").select2(),c("select#salesforce_object").select2(),c("select#salesforce_record_type_default").select2(),c("select#pull_trigger_field").select2(),c(".column-wordpress_field select").select2(),c(".column-salesforce_field select").select2())}),c(document).ready(function(){c("#clear-sfwp-cache").click(function(){var s=c(this);return c.post(ajaxurl,{action:"clear_sfwp_cache"},function(e){!0===e.success&&!0===e.data.success&&s.parent().html(e.data.message).fadeIn()}),!1}),c("#salesforce-delete-rest-api-version").click(function(){var s=c(this);return c.post(ajaxurl,{action:"delete_salesforce_api_version"},function(e){!0===e.success&&e.data.success,s.parent().html(e.data.message).fadeIn()}),!1}),c(".salesforce_user_ajax_message").hide(),0<c("#wordpress_object_ajax").length&&c(".push_to_salesforce_button").on("click",function(){var e=c("#wordpress_object_ajax").val(),s=c("#wordpress_id_ajax").val(),t=c("#salesforce_id_ajax").val();return c.post(ajaxurl,{action:"push_to_salesforce",wordpress_object:e,wordpress_id:s,salesforce_id:t},function(e){!0===e.success&&(a(),c(".salesforce_user_ajax_message").width(c(".mapped-salesforce-user").width()-27),c(".salesforce_user_ajax_message").html("<p>This object has been pushed to Salesforce.</p>").fadeIn().delay(4e3).fadeOut())}),!1}),c(".salesforce_user_ajax_message").hide(),c(".pull_from_salesforce_button").on("click",function(){var e=c("#salesforce_id_ajax").val(),s=c("#wordpress_object_ajax").val();return c.post(ajaxurl,{action:"pull_from_salesforce",salesforce_id:e,wordpress_object:s},function(e){!0===e.success&&(a(),c(".salesforce_user_ajax_message").width(c(".mapped-salesforce-user").width()-27),c(".salesforce_user_ajax_message").html("<p>This object has been pulled from Salesforce.</p>").fadeIn().delay(4e3).fadeOut())}),!1})}),c(document).on("change",".object-sync-for-salesforce-enable-soap input",function(){o()}),c(document).ready(function(){o()})}(jQuery);