mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
1 line
7.0 KiB
JavaScript
1 line
7.0 KiB
JavaScript
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 a=e.parents(".um-field[data-key]").data("key"),r=p[a],u=t(e),d={},s={},l={};jQuery.each(r,function(e,i){"undefined"==typeof s[i.owner]&&(s[i.owner]=[],l[i.owner]={}),s[i.owner].push(i.value),l[i.owner]=i}),jQuery.each(r,function(i,a){"undefined"==typeof d[a.owner]&&(d[a.owner]={}),"empty"==a.operator&&(!u||""==u&&c(u,s[a.owner])?d[a.owner][i]=!0:d[a.owner][i]=!1),"not empty"==a.operator&&(u&&""!=u&&!c(u,s[a.owner])?d[a.owner][i]=!0:d[a.owner][i]=!1),"equals to"==a.operator&&(a.value==u&&c(u,s[a.owner])?d[a.owner][i]=!0:d[a.owner][i]=!1),"not equals"==a.operator&&(jQuery.isNumeric(a.value)&&parseInt(u)!=parseInt(a.value)&&u&&!c(u,s[a.owner])?d[a.owner][i]=!0:a.value==u||c(u,s[a.owner])?d[a.owner][i]=!1:d[a.owner][i]=!0),"greater than"==a.operator&&(jQuery.isNumeric(a.value)&&parseInt(u)>parseInt(a.value)?d[a.owner][i]=!0:d[a.owner][i]=!1),"less than"==a.operator&&(jQuery.isNumeric(a.value)&&parseInt(u)<parseInt(a.value)?d[a.owner][i]=!0:d[a.owner][i]=!1),"contains"==a.operator&&("multiselect"==n(e.parents(".um-field[data-key]"))?u&&u.indexOf(a.value)>=0&&c(a.value,u)?d[a.owner][i]=!0:d[a.owner][i]=!1:u&&u.indexOf(a.value)>=0&&c(u,s[a.owner])?d[a.owner][i]=!0:d[a.owner][i]=!1)}),jQuery.each(d,function(i,n){c(!0,n)?o(e,l[i],!0):o(e,l[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()}); |