forked from opensupporter/jquery-osdi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjquery.osdi.min.js
1 lines (1 loc) · 5.15 KB
/
jquery.osdi.min.js
1
!function(t,n,e,i){"use strict";function s(n,e){this.$element=t(n),this.settings=t.extend({},o,e),this._defaults=o,this._name=a,this.init(this.$element),this.submit=function(){this.form_submit(this.$element,this)}}var a="osdi",o={autoresponse:!0,done:function(){},fail:function(){},always:function(){},status:"subscribed",immediate:!1,ajax_options:{type:"POST",dataType:"json",contentType:"application/json"}};t.extend(s.prototype,{init:function(t){this.validate_form(t)&&this.form_submit(t,this)},validate_form:function(t){return t.is("form")?!0:(console.log("JQUERY OSDI ERROR: The DOM element passed to the jQuery OSDI plugin is not a form. The jQuery OSDI plugin only supports form elements."),!1)},form_submit:function(t,n){n.settings.immediate?n.submit_handler(t,n):t.on("submit",function(){return n.submit_handler(t,n),!1})},submit_handler:function(n,e){if(e.validate_submit(n)){var i,s,a,o,d,u;i=e.create_body(n),s=e.settings.endpoint&&""!=e.settings.endpoint?"function"==typeof e.settings.endpoint?e.settings.endpoint():e.settings.endpoint:n.attr("action"),a={url:s,data:JSON.stringify(i)},a="function"==typeof e.settings.ajax_options?t.extend(a,e.settings.ajax_options()):t.extend(a,e.settings.ajax_options),o=e.settings.done,d=e.settings.fail,u=e.settings.always,e.perform_ajax(a,o,d,u)}},validate_submit:function(t){return this.validate_endpoint(t)&&this.validate_add_tags()?!0:!1},validate_endpoint:function(t){return this.settings.endpoint||t.attr("action")?!0:(console.log("JQUERY OSDI ERROR: An endpoint is required. Either set the endpoint option with a string when calling the jQuery OSDI plugin, or give your form an action attribute with the endpoint as its value."),!1)},validate_add_tags:function(){return this.settings.add_tags?"function"==typeof this.settings.add_tags?!t.isArray(this.settings.add_tags())||!this.settings.add_tags().length>0?(console.log("JQUERY OSDI ERROR: The add_tags option is not a valid array of at least one element. You must pass an array with at least one element to the jQuery OSDI plugin to add tags."),!1):!0:!t.isArray(this.settings.add_tags)||!this.settings.add_tags.length>0?(console.log("JQUERY OSDI ERROR: The add_tags option is not a valid array of at least one element. You must pass an array with at least one element to the jQuery OSDI plugin to add tags."),!1):!0:!0},create_body:function(n){var e,i,s,a,o,d,u;return this.settings.body?e="function"==typeof this.settings.body?this.settings.body():this.settings.body:(e={person:{}},"function"==typeof this.settings.autoresponse?this.settings.autoresponse()===!0&&(i={triggers:{autoresponse:{enabled:!0}}}):this.settings.autoresponse&&this.settings.autoresponse===!0&&(i={triggers:{autoresponse:{enabled:!0}}}),t.extend(e,i),this.settings.add_tags&&(u="function"==typeof this.settings.add_tags?{add_tags:this.settings.add_tags()}:{add_tags:this.settings.add_tags},t.extend(e,u)),n.find('input[name="family_name"]').length&&""!=n.find('input[name="family_name"]').val()&&(e.person.family_name=n.find('input[name="family_name"]').val()),n.find('input[name="given_name"]').length&&""!=n.find('input[name="given_name"]').val()&&(e.person.given_name=n.find('input[name="given_name"]').val()),n.find('input[name="email_address"]').length&&""!=n.find('input[name="email_address"]').val()&&(s={email_addresses:[{address:n.find('input[name="email_address"]').val()}]},t.extend(e.person,s),"function"==typeof this.settings.status?this.settings.status()!==!1&&(e.person.email_addresses[0].status=this.settings.status()):this.settings.status!==!1&&(e.person.email_addresses[0].status=this.settings.status)),(n.find('input[name="street"]').length&&""!=n.find('input[name="street"]').val()||n.find('input[name="locality"]').length&&""!=n.find('input[name="locality"]').val()||n.find('input[name="region"]').length&&""!=n.find('input[name="region"]').val()||n.find('input[name="postal_code"]').length&&""!=n.find('input[name="postal_code"]').val()||n.find('input[name="country"]').length&&""!=n.find('input[name="country"]').val())&&(a={},n.find('input[name="street"]').length&&""!=n.find('input[name="street"]').val()&&(a.address_lines=[n.find('input[name="street"]').val()]),n.find('input[name="locality"]').length&&""!=n.find('input[name="locality"]').val()&&(a.locality=n.find('input[name="locality"]').val()),n.find('input[name="region"]').length&&""!=n.find('input[name="region"]').val()&&(a.region=n.find('input[name="region"]').val()),n.find('input[name="postal_code"]').length&&""!=n.find('input[name="postal_code"]').val()&&(a.postal_code=n.find('input[name="postal_code"]').val()),n.find('input[name="country"]').length&&""!=n.find('input[name="country"]').val()&&(a.country=n.find('input[name="country"]').val()),o={postal_addresses:[a]},t.extend(e.person,o)),n.find('input[name="phone_number"]').length&&""!=n.find('input[name="phone_number"]').val()&&(d={phone_numbers:[{number:n.find('input[name="phone_number"]').val()}]},t.extend(e.person,d))),e},perform_ajax:function(n,e,i,s){t.ajax(n).done(function(t,n,i){e(t,n,i)}).fail(function(t,n,e){i(t,n,e)}).always(function(t,n,e){s(t,n,e)})}}),t.fn[a]=function(n){return this.each(function(){t.data(this,"plugin_"+a)?t.data(this,"plugin_"+a).submit():t.data(this,"plugin_"+a,new s(this,n))})}}(jQuery,window,document);