mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-20 07:04:06 +09:00
1 line
6.4 KiB
JavaScript
1 line
6.4 KiB
JavaScript
jQuery(document).ready(function(){function e(e){var a=[],t=e.data("key");h.push(t),jQuery.each(e[0].attributes,function(e,t){t.name.indexOf("data-cond")!=-1&&a.push(t.value)});var i=a.length/4,n=i<=0?4:i,c={};return c[t]=u(a,n),jQuery.each(c[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}},p.push(i)}),c}function a(){jQuery(".um-field[data-key]").each(function(){var a=jQuery(this);f.push(e(a)),m[a.data("key")]=t(a)}),jQuery.each(h,function(e,a){v[a]=c(a)}),jQuery(".um-field[data-key]:visible").each(function(){var e=jQuery(this),a=i(e);"undefined"!=typeof a.trigger&&a.trigger("change")})}function t(e){var a="",t=n(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 i(e){var a=n(e);switch(a){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 a="",t=e.attr("class");return jQuery.each(t.split(" "),function(e,t){t.indexOf("um-field-type")!=-1&&(a=t.split("_")[1])}),a}function c(e){var a=[];return jQuery.each(p,function(t,i){i.field.parent==e&&a.push(i.field.condition)}),a}function u(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 d(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 o(e,a){var t=e.parents(".um-field[data-key]").data("key"),i=v[t],n=d(e);jQuery.each(i,function(a,t){"empty"==t.operator&&(n&&""!=n?r(e,t,!1):r(e,t,!0)),"not empty"==t.operator&&(n&&""!=n?r(e,t,!0):r(e,t,!1)),"equals to"==t.operator&&(t.value==n?r(e,t,!0):r(e,t,!1)),"not equals"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(n)!=parseInt(t.value)&&n?r(e,t,!0):jQuery.isNumeric(t.value)||t.value==n?r(e,t,!1):r(e,t,!0)),"greater than"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(n)>parseInt(t.value)?r(e,t,!0):r(e,t,!1)),"less than"==t.operator&&(jQuery.isNumeric(t.value)&&parseInt(n)<parseInt(t.value)&&n?r(e,t,!0):r(e,t,!1)),"contains"==t.operator&&(n&&n.indexOf(t.value)>=0?r(e,t,!0):r(e,t,!1))}),e.trigger("um_fields_change")}function r(e,a,t){var i=jQuery('div.um-field[data-key="'+a.owner+'"]');"show"==a.action&&t&&(i.show(),l(i)),"show"!=a.action||t||i.hide(),"hide"==a.action&&t&&i.hide(),"hide"!=a.action||t||(i.show(),l(i)),e.removeClass("um-field-has-changed")}function l(e){var a=n(e),t=e.data("key"),c=m[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(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=i(e);d&&(d.trigger("change"),e.addClass("um-field-has-changed"))}}function s(){jQuery.each(v,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 f=[],h=[],p=[],v={},m={};jQuery(document).on("change",".um-field select, .um-field input[type=radio], .um-field input[type=checkbox]",function(){var e=jQuery(this);o(e,!1)}),jQuery(document).on("input change",".um-field input[type=text]",function(){var e=jQuery(this);o(e,!1)}),jQuery(document).on("um_fields_change",function(){s(),s()}),a()}); |