Files
ultimatemember/assets/js/um-conditional.min.js
T
nikitozzzzzzz b6aff77568 - fixed upload files;
- minified js files and changed enqueue to classic WP logic with DEBUG_SCRIPTS constant;
2017-08-06 19:50:31 +03:00

1 line
6.3 KiB
JavaScript

jQuery(document).ready(function(){function e(e){var a=[],t=e.data("key");f.push(t),jQuery.each(e[0].attributes,function(e,t){-1!=t.name.indexOf("data-cond")&&a.push(t.value)});var i=a.length/4,n=i<=0?4:i,u={};return u[t]=c(a,n),jQuery.each(u[t],function(e,a){var i={};i.field={owner:t,action:a.action,parent:a.if_field,operator:a.operator,value:a.value,condition:{owner:t,action:a.action,operator:a.operator,value:a.value}},h.push(i)}),u}function a(e){var a="",t=i(e);switch(t){case"text":case"number":case"date":case"textarea":case"select":a=e.find("input:text,input[type=number],textarea,select").val();break;case"multiselect":a=e.find("select").val();break;case"radio":case"checkbox":e.find("input[type=checkbox]:checked").length>=1&&(e.find("input[type=checkbox]:checked").length>1?e.find("input[type=checkbox]:checked").each(function(){a=a+jQuery(this).val()+" "}):a=e.find("input[type=checkbox]:checked").val()),e.find("input[type=radio]:checked").length>=1&&(a=e.find("input[type=radio]:checked").val())}return{type:t,value:a}}function t(e){switch(i(e)){case"text":case"number":case"date":case"textarea":case"select":case"multiselect":case"radio":case"checkbox":return e.find("input,textarea,select")}return""}function i(e){var a="",t=e.attr("class");return jQuery.each(t.split(" "),function(e,t){-1!=t.indexOf("um-field-type")&&(a=t.split("_")[1])}),a}function n(e){var a=[];return jQuery.each(h,function(t,i){i.field.parent==e&&a.push(i.field.condition)}),a}function c(e,a){for(var t=e.length%a,i=t,n=Math.floor(e.length/a),c=[],u=0;u<e.length;u+=n){var d=n+u,o=!1;0!==t&&i&&(d++,i--,o=!0),c.push(e.slice(u,d)),o&&u++}var r=[];return jQuery.each(c,function(e,a){r.push({action:a[0],if_field:a[1],operator:a[2],value:a[3]})}),r}function u(e){return um_live_field=e.parents(".um-field").data("key"),um_live_value=e.val(),e.is(":checkbox")&&(um_live_value="",e.parents(".um-field").find("input:checked").length>1?e.parents(".um-field").find("input:checked").each(function(){um_live_value=um_live_value+jQuery(this).val()+" "}):e.parents(".um-field").find("input:checked").length>=1&&(um_live_value=e.parents(".um-field").find("input:checked").val())),e.is(":radio")&&(um_live_value=e.parents(".um-field").find("input[type=radio]:checked").val()),um_live_value}function d(e,a){var t=e.parents(".um-field[data-key]").data("key"),i=p[t],n=u(e);jQuery.each(i,function(a,t){"empty"==t.operator&&(n&&""!=n?o(e,t,!1):o(e,t,!0)),"not empty"==t.operator&&(n&&""!=n?o(e,t,!0):o(e,t,!1)),"equals to"==t.operator&&(t.value==n?o(e,t,!0):o(e,t,!1)),"not equals"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(n)!=parseInt(t.value)&&n?o(e,t,!0):jQuery.isNumeric(t.value)||t.value==n?o(e,t,!1):o(e,t,!0)),"greater than"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(n)>parseInt(t.value)?o(e,t,!0):o(e,t,!1)),"less than"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(n)<parseInt(t.value)&&n?o(e,t,!0):o(e,t,!1)),"contains"==t.operator&&(n&&n.indexOf(t.value)>=0?o(e,t,!0):o(e,t,!1))}),e.trigger("um_fields_change")}function o(e,a,t){var i=jQuery('div.um-field[data-key="'+a.owner+'"]');"show"==a.action&&t&&(i.show(),r(i)),"show"!=a.action||t||i.hide(),"hide"==a.action&&t&&i.hide(),"hide"!=a.action||t||(i.show(),r(i)),e.removeClass("um-field-has-changed")}function r(e){var a=i(e),n=e.data("key"),c=v[n];switch(a){case"text":case"number":case"date":case"textarea":e.find("input:text,input[type=number],textarea,select").val(c.value);break;case"select":e.find("select").find("option").prop("selected",!1),e.find("select").val(c.value),e.find("select").trigger("change");break;case"multiselect":e.find("select").find("option").prop("selected",!1),jQuery.each(c.value,function(a,t){e.find("select").find('option[value="'+t+'"]').attr("selected",!0)}),e.find("select").trigger("change");break;case"radio":case"checkbox":if(e.find("input[type=checkbox]:checked").length>=1)if(e.find("input[type=checkbox]:checked").removeAttr("checked"),e.find("span.um-field-checkbox-state i").removeClass("um-icon-android-checkbox-outline"),e.find("span.um-field-checkbox-state i").addClass("um-icon-android-checkbox-outline-blank"),e.find(".um-field-checkbox.active").removeClass("active"),jQuery.isArray(c.value))jQuery.each(c.value,function(a,t){var i=e.find('input[type=checkbox][value="'+t+'"]');i.attr("checked",!0),i.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),i.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),i.closest(".um-field-checkbox").addClass("active")});else{var u=e.find('input[type=checkbox][value="'+c.value+'"]');u.attr("checked",!0),u.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),u.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),u.closest(".um-field-checkbox").addClass("active")}e.find("input[type=radio]:checked").length>=1&&setTimeout(function(){e.find("input[type=radio]:checked").removeAttr("checked"),e.find("span.um-field-radio-state i").removeClass("um-icon-android-radio-button-on"),e.find("span.um-field-radio-state i").addClass("um-icon-android-radio-button-off"),e.find(".um-field-radio.active").removeClass("active");var a=e.find("input[type=radio][value='"+c.value+"']");a.attr("checked",!0),a.closest(".um-field-radio").find("i").removeClass("um-icon-android-radio-button-off"),a.closest(".um-field-radio").find("i").addClass("um-icon-android-radio-button-on"),a.closest(".um-field-radio").addClass("active")},100)}if(!e.hasClass("um-field-has-changed")){var d=t(e);d&&(d.trigger("change"),e.addClass("um-field-has-changed"))}}function l(){jQuery.each(p,function(e,a){(jQuery('.um-field[data-key="'+e+'"]:hidden').length>=1||"none"==jQuery('.um-field[data-key="'+e+'"]').css("display"))&&jQuery.each(a,function(e,a){jQuery('.um-field[data-key="'+a.owner+'"]').hide()})})}var s=[],f=[],h=[],p={},v={};jQuery(document).on("change",".um-field select, .um-field input[type=radio], .um-field input[type=checkbox]",function(){d(jQuery(this))}),jQuery(document).on("input change",".um-field input[type=text]",function(){d(jQuery(this))}),jQuery(document).on("um_fields_change",function(){l(),l()}),jQuery(".um-field[data-key]").each(function(){var t=jQuery(this);s.push(e(t)),v[t.data("key")]=a(t)}),jQuery.each(f,function(e,a){p[a]=n(a)}),jQuery(".um-field[data-key]:visible").each(function(){var e=t(jQuery(this));void 0!==e.trigger&&e.trigger("change")})});