diff --git a/assets/js/um-conditional.js b/assets/js/um-conditional.js index 900f70fb..0d77bd2d 100644 --- a/assets/js/um-conditional.js +++ b/assets/js/um-conditional.js @@ -315,20 +315,24 @@ jQuery(document).ready( function (){ if (condition.action == 'show' && is_true /*&& child_dom.is(':hidden')*/) { child_dom.show(); + _show_in_ie( child_dom ); um_field_restore_default_value(child_dom); } if (condition.action == 'show' && !is_true /*&& child_dom.is(':visible') */) { child_dom.hide(); + _hide_in_ie( child_dom ); } if (condition.action == 'hide' && is_true /*&& child_dom.is(':visible')*/) { child_dom.hide(); - } + _hide_in_ie( child_dom ); + } if (condition.action == 'hide' && !is_true /*&& child_dom.is(':hidden')*/) { child_dom.show(); - um_field_restore_default_value(child_dom); + _show_in_ie( child_dom ); + um_field_restore_default_value( child_dom ); } $dom.removeClass('um-field-has-changed'); @@ -452,6 +456,26 @@ jQuery(document).ready( function (){ } + /** + * Hides div for IE browser + * @param object $dom + */ + function _hide_in_ie( $dom ){ + if( jQuery.browser.msie ){ + $dom.css({"visibility":"hidden"}); + } + } + + /** + * Shows div for IE browser + * @param object $dom + */ + function _show_in_ie( $dom ){ + if( jQuery.browser.msie ){ + $dom.css({"visibility":"visible"}); + } + } + jQuery(document).on('change', '.um-field select, .um-field input[type=radio], .um-field input[type=checkbox]', function () { var me = jQuery(this); um_apply_conditions(me, false); diff --git a/assets/js/um-conditional.min.js b/assets/js/um-conditional.min.js index 68837b7d..ac0303ae 100644 --- a/assets/js/um-conditional.min.js +++ b/assets/js/um-conditional.min.js @@ -1 +1 @@ -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;u1?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)=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")})}); \ No newline at end of file +jQuery(document).ready(function(){function e(e){var i="",a=n(e);switch(a){case"text":case"number":case"date":case"textarea":case"select":i=e.find("input:text,input[type=number],textarea,select").val();break;case"multiselect":i=e.find("select").val();break;case"radio":e.find("input[type=radio]:checked").length>=1&&(i=e.find("input[type=radio]:checked").val());break;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(){i=i+jQuery(this).val()+" "}):i=e.find("input[type=checkbox]:checked").val())}return{type:a,value:i}}function i(e){var i=n(e);switch(i){case"text":case"number":case"date":case"textarea":case"select":case"multiselect":case"radio":case"checkbox":return e.find("input,textarea,select")}return""}function n(e){var i="",n=e.attr("class");return jQuery.each(n.split(" "),function(e,n){n.indexOf("um-field-type")!=-1&&(i=n.split("_")[1])}),i}function a(e){var i=[];return jQuery.each(h,function(n,a){a.field.parent==e&&i.push(a.field.condition)}),i}function t(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 c(e,i,n){var a,t=!1,n=!!n;for(a in i)if(n&&i[a]===e||!n&&i[a]==e){t=!0;break}return t}function r(e,i){var n=e.parents(".um-field[data-key]").data("key"),a=p[n],r=t(e),u={},d={},s={};jQuery.each(a,function(e,i){"undefined"==typeof d[i.owner]&&(d[i.owner]=[],s[i.owner]={}),d[i.owner].push(i.value),s[i.owner]=i}),jQuery.each(a,function(e,i){"undefined"==typeof u[i.owner]&&(u[i.owner]={}),"empty"==i.operator&&(!r||""==r&&c(r,d[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not empty"==i.operator&&(r&&""!=r&&!c(r,d[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"equals to"==i.operator&&(i.value==r&&c(r,d[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1),"not equals"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(r)!=parseInt(i.value)&&r&&!c(r,d[i.owner])?u[i.owner][e]=!0:i.value==r||c(r,d[i.owner])?u[i.owner][e]=!1:u[i.owner][e]=!0),"greater than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(r)>parseInt(i.value)?u[i.owner][e]=!0:u[i.owner][e]=!1),"less than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(r)=0&&c(r,d[i.owner])?u[i.owner][e]=!0:u[i.owner][e]=!1)}),jQuery.each(u,function(i,n){c(!0,n)?o(e,s[i],!0):o(e,s[i],!1)}),e.trigger("um_fields_change")}function o(e,i,n){var a=jQuery('div.um-field[data-key="'+i.owner+'"]');"show"==i.action&&n&&(a.show(),l(a),u(a)),"show"!=i.action||n||(a.hide(),s(a)),"hide"==i.action&&n&&(a.hide(),s(a)),"hide"!=i.action||n||(a.show(),l(a),u(a)),e.removeClass("um-field-has-changed")}function u(e){var a=n(e),t=e.data("key"),c=v[t];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(i,n){e.find("select").find('option[value="'+n+'"]').attr("selected",!0)}),e.find("select").trigger("change");break;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(i,n){var a=e.find('input[type=checkbox][value="'+n+'"]');a.attr("checked",!0),a.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),a.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),a.closest(".um-field-checkbox").addClass("active")});else{var r=e.find('input[type=checkbox][value="'+c.value+'"]');r.attr("checked",!0),r.closest(".um-field-checkbox").find("i").removeClass("um-icon-android-checkbox-outline-blank"),r.closest(".um-field-checkbox").find("i").addClass("um-icon-android-checkbox-outline"),r.closest(".um-field-checkbox").addClass("active")}break;case"radio":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 i=e.find("input[type=radio][value='"+c.value+"']");i.attr("checked",!0),i.closest(".um-field-radio").find("i").removeClass("um-icon-android-radio-button-off"),i.closest(".um-field-radio").find("i").addClass("um-icon-android-radio-button-on"),i.closest(".um-field-radio").addClass("active")},100)}if(!e.hasClass("um-field-has-changed")){var o=i(e);"radio"==a&&(o=o.find(":checked")),o&&(o.trigger("change"),e.addClass("um-field-has-changed"))}}function d(){jQuery.each(p,function(e,i){(jQuery('.um-field[data-key="'+e+'"]:hidden').length>=1||"none"==jQuery('.um-field[data-key="'+e+'"]').css("display"))&&jQuery.each(i,function(e,i){jQuery('.um-field[data-key="'+i.owner+'"]').hide()})})}function s(e){jQuery.browser.msie&&e.css({visibility:"hidden"})}function l(e){jQuery.browser.msie&&e.css({visibility:"visible"})}function f(){var n=[];jQuery(".um-field[data-key]").each(function(){var i=jQuery(this).data("key");n.push(i);var a={};jQuery.each(jQuery(this)[0].attributes,function(e,i){if(i.name.indexOf("data-cond")!=-1){var n=i.name.slice(10),t=n.substring(1,0),c=n.slice(2);"undefined"==typeof a[t]&&(a[t]={}),a[t][c]=i.value}}),jQuery.each(a,function(e,n){var a={field:{owner:i,action:n.action,parent:n.field,operator:n.operator,value:n.value,condition:{owner:i,action:n.action,operator:n.operator,value:n.value}}};h.push(a)}),v[jQuery(this).data("key")]=e(jQuery(this))}),jQuery.each(n,function(e,i){p[i]=a(i)}),jQuery(".um-field[data-key]:visible").each(function(){var e=jQuery(this),n=i(e);"undefined"!=typeof n.trigger&&n.trigger("change")})}var h=[],p={},v={};jQuery(document).on("change",".um-field select, .um-field input[type=radio], .um-field input[type=checkbox]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("input change",".um-field input[type=text]",function(){var e=jQuery(this);r(e,!1)}),jQuery(document).on("um_fields_change",function(){d(),d()}),f()}); \ No newline at end of file