JoryHogeveen/view-admin-as

View on GitHub
assets/js/view-admin-as.min.js

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * View Admin As
 * https://wordpress.org/plugins/view-admin-as/
 *
 * @author  Jory Hogeveen <info@keraweb.nl>
 * @package View_Admin_As
 * @since   0.1.0
 * @version 1.8.5
 * @preserve
 */
if("undefined"===typeof VAA_View_Admin_As){var VAA_View_Admin_As={}}(function($){VAA_View_Admin_As.prefix="#wpadminbar #wp-admin-bar-vaa ";VAA_View_Admin_As.root="#wp-admin-bar-vaa";var $document=$(document),$window=$(window),$body=$("body"),$vaa=$(VAA_View_Admin_As.prefix);VAA_View_Admin_As.maxHeightListenerElements=null;VAA_View_Admin_As._mobile=false;if(!VAA_View_Admin_As.hasOwnProperty("_debug")){VAA_View_Admin_As._debug=false}if(!VAA_View_Admin_As.hasOwnProperty("ajaxurl")){if("undefined"===typeof ajaxurl){var ajaxurl=window.location.origin+"/wp-admin/admin-ajax.php"}VAA_View_Admin_As.ajaxurl=ajaxurl}VAA_View_Admin_As._touchmove=false;$document.on("touchmove",function(){VAA_View_Admin_As._touchmove=true});$document.on("touchstart",function(){VAA_View_Admin_As._touchmove=false});VAA_View_Admin_As.maybe_json_decode=function(val){if(0===val.indexOf("{")||0===val.indexOf("[")){try{val=JSON.parse(val)}catch(err){}}return val};VAA_View_Admin_As.init=function(){if(!$vaa.length){$vaa=$(VAA_View_Admin_As.prefix)}if(VAA_View_Admin_As._loader_icon){var loader_icon=new Image;loader_icon.src=VAA_View_Admin_As._loader_icon}VAA_View_Admin_As.maxHeightListenerElements=$(VAA_View_Admin_As.prefix+".vaa-auto-max-height");VAA_View_Admin_As.init_caps();VAA_View_Admin_As.init_users();VAA_View_Admin_As.init_combine_views();VAA_View_Admin_As.init_module_role_defaults();VAA_View_Admin_As.init_module_role_manager();VAA_View_Admin_As.init_auto_js();$vaa.find(".ab-vaa-toggle").each(function(){var $this=$(this),$toggle=$this.parent().children().not(".ab-vaa-toggle");if(!$this.hasClass("active")){$toggle.hide()}$this.on("click touchend",function(e){e.preventDefault();e.stopPropagation();if(true===VAA_View_Admin_As._touchmove){return}if($(this).hasClass("active")){$toggle.slideUp("fast");$(this).removeClass("active")}else{$toggle.slideDown("fast");$(this).addClass("active")}VAA_View_Admin_As.autoMaxHeight()});$this.on("keyup",function(e){e.preventDefault();var key=parseInt(e.which,10);if($(this).hasClass("active")&&(13===key||32===key||38===key)){$toggle.slideUp("fast");$(this).removeClass("active")}else if(13===key||32===key||40===key){$toggle.slideDown("fast");$(this).addClass("active")}VAA_View_Admin_As.autoMaxHeight()})});$vaa.find("[vaa-showhide]").each(function(){var $this=$(this),args=VAA_View_Admin_As.maybe_json_decode($this.attr("vaa-showhide")),delay=200;if("object"!==typeof args){args={0:{target:args,delay:delay}}}$.each(args,function(key,data){var timeout=null,$target=$(data.target);if(!data.hasOwnProperty("delay")){data.delay=delay}$target.hide();$this.on("mouseenter",function(){timeout=setTimeout(function(){$target.slideDown("fast")},data.delay)}).on("mouseleave",function(){if(timeout){clearTimeout(timeout)}$target.slideUp("fast")})})});$vaa.find("[vaa-condition-target]").each(function(){var $this=$(this),$target=$($this.attr("vaa-condition-target")),checkbox="checkbox"===$target.attr("type"),compare=$this.attr("vaa-condition");if(checkbox){if("undefined"!==typeof compare){compare=Boolean(compare)}else{compare=true}}$this.hide();$target.on("change.vaa",function(){if(checkbox&&$target.is(":checked")){if(compare){$this.slideDown("fast")}else{$this.slideUp("fast")}}else if(!checkbox&&compare===$target.val()){$this.slideDown("fast")}else{$this.slideUp("fast")}VAA_View_Admin_As.autoMaxHeight()}).trigger("change.vaa")});if($body.hasClass("mobile")||783>$body.innerWidth()){$body.addClass("vaa-mobile");VAA_View_Admin_As._mobile=true;VAA_View_Admin_As.init_touch()}VAA_View_Admin_As.maxHeightListenerElements.each(function(){$(this).parents(".menupop").on("mouseenter",VAA_View_Admin_As.autoMaxHeight)});$vaa.find(".vaa-resizable").each(function(){var $this=$(this),maxHeight=parseInt($this.css("max-height"),10),height,innerHeight,newHeight;$this.find(".ab-empty-item:empty").remove();$this.on("vaa-resizable",function(){if($this.is(":empty")){$this.css({"max-height":"",height:"",resize:""});return}newHeight=maxHeight;height=$this.height();$this.css({"max-height":"",height:"",resize:""});if(height){$this.css({"max-height":"none"});innerHeight=$this.height();$this.css({"max-height":""});if(innerHeight<maxHeight){newHeight=innerHeight}else if(height>=maxHeight){if(innerHeight<height){newHeight=innerHeight}else{newHeight=height}}}if(newHeight&&(!height||newHeight>=maxHeight)){$this.css({"max-height":"none",height:newHeight?newHeight+"px":"",resize:"vertical"})}}).trigger("vaa-resizable")});$vaa.on("click touchend",".vaa-reset-item > .ab-item",function(e){e.preventDefault();if(true===VAA_View_Admin_As._touchmove){return}if("vaa_reload"===$("button",this).attr("name")){window.location.reload()}else{VAA_View_Admin_As.ajax({reset:true},true);return false}});$.each(VAA_View_Admin_As.view_types,function(index,type){$vaa.on("click touchend",".vaa-"+type+"-item > a.ab-item",function(e){e.preventDefault();if(true===VAA_View_Admin_As._touchmove){return}var $this=$(this);if(VAA_View_Admin_As._mobile){var $parent=$this.parent();if($parent.hasClass("menupop")&&!$parent.hasClass("active")){$parent.addClass("active");$this.next().show();return false}}$this.data("vaa-continue-event",true).trigger("vaa-apply-view");if(!$this.parent().hasClass("not-a-view")&&$this.data("vaa-continue-event")){var view_data={},val=$this.find(".vaa-view-data").attr("vaa-view-value");view_data[type]=VAA_View_Admin_As.maybe_json_decode(val);if("object"===typeof view_data[type]){view_data=view_data[type]}VAA_View_Admin_As.ajax(view_data,true);return false}})});$vaa.on("click touchend",".remove",function(e){e.preventDefault();if(true===VAA_View_Admin_As._touchmove){return}$(this).parent().slideUp("fast",function(){$(this).remove()})})};VAA_View_Admin_As.init_touch=function(){var $root=$(".vaa-mobile "+VAA_View_Admin_As.prefix);$root.on("click touchend"," > .ab-sub-wrapper .ab-item",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();e.stopPropagation();var $sub=$(this).parent(".menupop").children(".ab-sub-wrapper");if($sub.length){if($sub.hasClass("active")){$sub.slideUp("fast").removeClass("active")}else{$sub.slideDown("fast").addClass("active")}}});$root.on("click touchend","input, textarea, select",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.stopPropagation();var $this=$(this);if($this.is('[type="checkbox"]')){e.preventDefault();if($this.is(":checked")){$this.prop("checked",false)}else{$this.prop("checked",true)}$this.trigger("change");return false}else if($this.is('[type="radio"]')){e.preventDefault();$('input[name="'+$this.attr["name"]+'"]').removeAttr("checked");$this.prop("checked",true);$this.trigger("change");return false}return true});$root.on("click touchend","label",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();e.stopPropagation();$("#"+$(this).attr("for")).trigger(e.type);return false})};VAA_View_Admin_As.overlay=function(html){var $overlay=$("#vaa-overlay");if(false===html){$overlay.fadeOut("fast",function(){$(this).remove()});$document.off("mouseup.vaa_overlay");return}if(!$overlay.length){html='<div id="vaa-overlay">'+html+"</div>";$body.append(html);$overlay=$("body #vaa-overlay")}else if(html.length){$overlay.html(html)}$overlay.fadeIn("fast");$overlay.find(".remove").click(function(){VAA_View_Admin_As.overlay(false)});$document.on("mouseup.vaa_overlay",function(e){$overlay.find(".vaa-popup").each(function(){if(!$(this).is(e.target)&&0===$(this).has(e.target).length){VAA_View_Admin_As.overlay(false);return false}})})};VAA_View_Admin_As.ajax=function(data,refresh){$(".vaa-notice","#wpadminbar").remove();var loader_icon="";if(VAA_View_Admin_As._loader_icon){loader_icon=' style="background-image: url('+VAA_View_Admin_As._loader_icon+')"'}VAA_View_Admin_As.overlay('<span class="vaa-loader-icon"'+loader_icon+"></span>");var post_data={action:"view_admin_as",_vaa_nonce:VAA_View_Admin_As._vaa_nonce,view_admin_as:JSON.stringify(data)};var isView=false;$.each(VAA_View_Admin_As.view_types,function(index,type){if("undefined"!==typeof data[type]){isView=true;return true}});if($(VAA_View_Admin_As.prefix+"#vaa-settings-view-mode-single").is(":checked")&&isView){$body.append('<form id="vaa_single_mode_form" style="display:none;" method="post"></form>');var $form=$("#vaa_single_mode_form");$form.append('<input type="hidden" name="action" value="'+post_data.action+'">');$form.append('<input type="hidden" name="_vaa_nonce" value="'+post_data._vaa_nonce+'">');$form.append('<input id="data" type="hidden" name="view_admin_as">');$form.find("#data").val(post_data.view_admin_as);$form.submit()}else{$.post(VAA_View_Admin_As.ajaxurl,post_data,function(response){var success=response.hasOwnProperty("success")&&true===response.success,data={},display=false;VAA_View_Admin_As.debug(response);if(response.hasOwnProperty("data")){if("object"===typeof response.data){data=response.data;if(data.hasOwnProperty("display")){display=data.display}if(data.hasOwnProperty("refresh")){refresh=data.refresh}}}if(success){if("download"===refresh){VAA_View_Admin_As.download(data);VAA_View_Admin_As.overlay(false);return}else if(refresh){VAA_View_Admin_As.refresh(data);return}else{if(!data.hasOwnProperty("text")){data.text=VAA_View_Admin_As.__success}}}if(!data.hasOwnProperty("type")){data.type=success?"success":"error"}if("popup"===display){VAA_View_Admin_As.popup(data,data.type)}else{if(!data.hasOwnProperty("text")){data.text=response.data}VAA_View_Admin_As.notice(String(data.text),data.type,5e3);VAA_View_Admin_As.overlay(false)}})}};VAA_View_Admin_As.refresh=function(data){if(data.hasOwnProperty("redirect")){window.location.replace(String(data.redirect))}else{window.location.hash="";window.location.reload()}};VAA_View_Admin_As.notice=function(notice,type,timeout){var root="#wpadminbar .vaa-notice",html=notice+'<span class="remove ab-icon dashicons dashicons-dismiss"></span>';type="undefined"===typeof type?"notice":type;timeout="undefined"===typeof timeout?5e3:timeout;if(VAA_View_Admin_As._mobile){html='<div class="vaa-notice vaa-'+type+'" style="display: none;">'+html+"</div>";$(VAA_View_Admin_As.prefix+"> .ab-sub-wrapper").prepend(html).children(".vaa-notice").slideDown("fast");$("html, body").animate({scrollTop:"0"});if(timeout){setTimeout(function(){$(root).slideUp("fast",function(){$(this).remove()})},timeout)}}else{html='<li class="vaa-notice vaa-'+type+'">'+html+"</li>";$("#wp-admin-bar-top-secondary").append(html);$(root+" .remove").on("click",function(){$(this).parent().remove()});if(timeout){setTimeout(function(){$(root).fadeOut("fast",function(){$(this).remove()})},timeout)}}};VAA_View_Admin_As.item_notice=function(parent,notice,type,timeout){var root=".vaa-notice",html=notice+'<span class="remove ab-icon dashicons dashicons-dismiss"></span>',$element=$(parent);type="undefined"===typeof type?"notice":type;timeout="undefined"===typeof timeout?5e3:timeout;html='<div class="vaa-notice vaa-'+type+'" style="display: none;">'+html+"</div>";$element.append(html).children(".vaa-notice").slideDown("fast");if(timeout){setTimeout(function(){$element.find(root).slideUp("fast",function(){$(this).remove()})},timeout)}};VAA_View_Admin_As.item_confirm=function(parent,text){$(parent).find(".vaa-notice").slideUp("fast",function(){$(this).remove()});text='<button class="vaa-confirm button"><span class="ab-icon dashicons dashicons-warning"></span>'+text+"</button>";VAA_View_Admin_As.item_notice(parent,text,"warning",0);return $(parent).find(".vaa-confirm")};VAA_View_Admin_As.popup=function(data,type){type="undefined"===typeof type?"notice":type;var html="";html+='<div class="vaa-popup vaa-'+type+'">';html+='<span class="remove dashicons dashicons-dismiss"></span>';html+='<div class="vaa-popup-content">';if("object"!==typeof data){data={text:data}}if(data.hasOwnProperty("text")){html+="<p>"+String(data.text)+"</p>"}if(data.hasOwnProperty("list")&&"object"===typeof data.list){html+="<ul>";$.each(data.list,function(key,value){html+="<li>"+String(value)+"</li>"});html+="</ul>"}if(data.hasOwnProperty("textarea")){html+='<textarea style="width: 100%;" readonly>'+String(data.textarea)+"</textarea>"}html+="</div></div>";VAA_View_Admin_As.overlay(html);var root="#vaa-overlay",$overlay=$(root),$popup=$overlay.find(".vaa-popup"),$popup_content=$popup.find(".vaa-popup-content");var textarea=$("textarea",$popup_content);if(textarea.length){textarea.on("click",function(){$(this).select()})}var popupMaxHeight=function(){if(textarea.length){textarea.each(function(){$(this).css({height:"auto","overflow-y":"hidden"}).height(this.scrollHeight)})}var max_height=$overlay.height()*.8-24;$popup.css("max-height",max_height);$popup_content.css("max-height",max_height)};popupMaxHeight();$window.on("resize",popupMaxHeight)};VAA_View_Admin_As.download=function(data){var content="",filename="";if("string"===typeof data){content=data}else{if(data.hasOwnProperty("download")){content=String(data.download)}else if(data.hasOwnProperty("textarea")){content=String(data.textarea)}else if(data.hasOwnProperty("content")){content=String(data.content)}}content=VAA_View_Admin_As.maybe_json_decode(content);if("object"===typeof content){content=JSON.stringify(content,null,"\t")}if(!content){return}if(data.hasOwnProperty("filename")){filename=data.filename}var link="data:application/octet-stream;charset=utf-8,"+encodeURIComponent(content);$body.append('<a id="vaa_temp_download" href="'+link+'" download="'+String(filename)+'"></a>');document.getElementById("vaa_temp_download").click();$("a#vaa_temp_download").remove()};VAA_View_Admin_As.init_auto_js=function(){$(VAA_View_Admin_As.root+" [vaa-auto-js]").each(function(){var $this=$(this),data=VAA_View_Admin_As.maybe_json_decode($this.attr("vaa-auto-js"));if("object"!==typeof data){return}if(!data.hasOwnProperty("event")){data.event="change"}if("click"===data.event){data.event="click touchend"}$this.on(data.event,function(e){if("change"!==data.event&&true===VAA_View_Admin_As._touchmove){return}e.preventDefault();VAA_View_Admin_As.do_auto_js(data,this);return false})});VAA_View_Admin_As.do_auto_js=function(data,elem){if("object"!==typeof data){return}var $elem=$(elem),setting=data.hasOwnProperty("setting")?String(data.setting):null,confirm=data.hasOwnProperty("confirm")?Boolean(data.confirm):false,refresh=data.hasOwnProperty("refresh")?Boolean(data.refresh):false;if(data.hasOwnProperty("callback")){VAA_View_Admin_As[data.callback](data);return}var val=VAA_View_Admin_As.get_auto_js_values_recursive(data,elem);if(null!==val){if(!setting){return}var view_data={};view_data[setting]=val;if(data.hasOwnProperty("download")&&data.download){refresh="download"}if(confirm){confirm=VAA_View_Admin_As.item_confirm($elem.parent(),VAA_View_Admin_As.__confirm);$(confirm).on("click",function(){VAA_View_Admin_As.ajax(view_data,refresh)})}else{VAA_View_Admin_As.ajax(view_data,refresh)}}else{}};VAA_View_Admin_As.get_auto_js_values_recursive=function(data,elem){if("object"!==typeof data){return null}var stop=false,val=null;if(data.hasOwnProperty("values")){val={};$.each(data.values,function(val_key,auto_js){if("object"!==typeof auto_js||null===auto_js){auto_js={}}auto_js.required=auto_js.hasOwnProperty("required")?Boolean(auto_js.required):true;var val_val=VAA_View_Admin_As.get_auto_js_values_recursive(auto_js,elem);if(null!==val_val){val[val_key]=val_val}else if(auto_js.required){val=null;stop=true;return false}});if(stop){return null}}else{val=VAA_View_Admin_As.parse_auto_js_value(data,elem)}return val};VAA_View_Admin_As.parse_auto_js_value=function(data,elem){if("object"!==typeof data){return null}var $elem=data.hasOwnProperty("element")?$(data.element):$(elem),parser=data.hasOwnProperty("parser")?String(data.parser):"",val=null;switch(parser){case"multiple":case"multi":val={};$elem.each(function(){var $this=$(this),value;if("checkbox"===$this.attr("type")){value=data.hasOwnProperty("attr")?$this.attr(data.attr):$this.val();val[value]=this.checked}else{value=VAA_View_Admin_As.get_auto_js_value(this,data);val[$this.attr("name")]=value}});break;case"selected":val=[];$elem.each(function(){var $this=$(this),value;if("checkbox"===$this.attr("type")){value=data.hasOwnProperty("attr")?$this.attr(data.attr):$this.val();if(this.checked&&value){val.push(value)}}else{value=VAA_View_Admin_As.get_auto_js_value(this,data);if(value){val.push(value)}}});break;default:val=VAA_View_Admin_As.get_auto_js_value($elem,data);break}return val};VAA_View_Admin_As.get_auto_js_value=function(elem,data){if("object"!==typeof data){data={}}var $elem=$(elem),val=null,attr=data.hasOwnProperty("attr")?String(data.attr):false,json=data.hasOwnProperty("json")?Boolean(data.json):false,value=attr?$elem.attr(attr):$elem.val();if("checkbox"===$elem.attr("type")){var checked=$elem.is(":checked");if(attr){if(checked&&value){val=value}}else{val=checked}}else{if(value){val=value}}if(json){try{val=JSON.parse(val)}catch(err){val=null;VAA_View_Admin_As.popup("<pre>"+err+"</pre>","error")}}return val}};VAA_View_Admin_As.init_users=function(){var root=VAA_View_Admin_As.root+"-users",root_prefix=VAA_View_Admin_As.prefix+root,$root=$(root_prefix),$search_node=$(root_prefix+" .ab-vaa-search.search-users"),ajax_delay_timer;if($search_node.length){var search_ajax=$search_node.hasClass("search-ajax"),$search_results=$search_node.find(".ab-vaa-results"),no_results='<div class="ab-item ab-empty-item vaa-not-found">'+VAA_View_Admin_As.__no_users_found+"</div>";$root.on("keyup",".ab-vaa-search.search-users input",function(){var $this=$(this),search=$this.val();if(1<=search.trim().length){if(search_ajax){search={search:search,return:"links"};var search_by=$root.find(".ab-vaa-search.search-users select").val();if(search_by){search["search_by"]=search_by}VAA_View_Admin_As.search_users_ajax(search,$search_results)}else{search_users(search)}}else{VAA_View_Admin_As.search_users_ajax(null,$search_results)}})}function search_users(search){$search_results.empty();$(VAA_View_Admin_As.prefix+".vaa-user-item").each(function(){var $this=$(this),name=$this.find(".ab-item").text();if(-1<name.toLowerCase().indexOf(search.toLowerCase())){var exists=false;$search_results.find(".vaa-user-item .ab-item").each(function(){if(-1<$(this).text().indexOf(name)){exists=$(this)}});var role=$this.parents(".vaa-role-item").find("> .ab-item > .vaa-view-data");role=role?role.text():"";if(role&&false!==exists&&exists.length){exists.find(".user-role").text(exists.find(".user-role").text().replace(")",", "+role+")"))}else{role=role?' &nbsp;<span class="user-role ab-italic">('+role+")</span>":"";$this.clone().appendTo($search_results).children(".ab-item").append(role)}}});if(""===$.trim($search_results.html())){$search_results.html(no_results)}VAA_View_Admin_As.autoMaxHeight()}VAA_View_Admin_As.search_users_ajax=function(search,results_container){clearTimeout(ajax_delay_timer);var $results_container=$(results_container);if(!search){$results_container.empty();if($results_container.hasClass("vaa-resizable")){$results_container.trigger("vaa-resizable")}return}ajax_delay_timer=setTimeout(function(){$results_container.html('<div class="ab-item ab-empty-item">. . . </div>');var $loading=$(".ab-item",$results_container),loading=". . . ",loading_interval=setInterval(function(){if(20<loading.length){loading=". . . "}loading+=". ";$loading.html(loading)},500);var post_data={action:"view_admin_as_search_users",_vaa_nonce:VAA_View_Admin_As._vaa_nonce,view_admin_as_search_users:search};$.post(VAA_View_Admin_As.ajaxurl,post_data,function(response){clearInterval(loading_interval);clearTimeout(ajax_delay_timer);if("function"===typeof results_container){results_container(response);return}if(response.hasOwnProperty("success")&&response.success){$results_container.html(response.data);VAA_View_Admin_As.reinit_combine_views()}else{$results_container.html(no_results);if(response.hasOwnProperty("data")&&"string"===typeof response.data){$results_container.children().first().html(response.data)}}if($results_container.hasClass("vaa-resizable")){$results_container.trigger("vaa-resizable")}if($results_container.hasClass("vaa-auto-max-height")){VAA_View_Admin_As.autoMaxHeight()}})},500)}};VAA_View_Admin_As.init_caps=function(){var root=VAA_View_Admin_As.root+"-caps",root_prefix=VAA_View_Admin_As.prefix+root,$root=$(root_prefix);VAA_View_Admin_As.caps_filter_settings={selectedRole:"default",selectedRoleCaps:{},selectedRoleReverse:false,filterString:""};VAA_View_Admin_As.filter_capabilities=function(){var reverse=true===VAA_View_Admin_As.caps_filter_settings.selectedRoleReverse,isDefault="default"===VAA_View_Admin_As.caps_filter_settings.selectedRole,filterString=VAA_View_Admin_As.caps_filter_settings.filterString;$(root_prefix+"-select-options .vaa-cap-item").each(function(){var $this=$(this),exists=$("input",this).attr("value")in VAA_View_Admin_As.caps_filter_settings.selectedRoleCaps,name;$this.hide();if(reverse||exists||isDefault){if(1<=filterString.length){name=$this.text();if(-1<name.toLowerCase().indexOf(filterString.toLowerCase())){$this.show()}}else{$this.show()}if(reverse&&exists&&!isDefault){$this.hide()}}})};VAA_View_Admin_As.get_selected_capabilities=function(){var capabilities={};$(root_prefix+"-select-options .vaa-cap-item input").each(function(){var val=$(this).attr("value");if("undefined"===typeof capabilities[val]){capabilities[val]=$(this).is(":checked")}});return capabilities};VAA_View_Admin_As.set_selected_capabilities=function(capabilities){$(root_prefix+"-select-options .vaa-cap-item input").each(function(){var $this=$(this),val=$this.attr("value");if(capabilities.hasOwnProperty(val)){if(capabilities[val]){$this.prop("checked",true)}else{$this.prop("checked",false)}}else{$this.prop("checked",false)}})};$root.on("click","#open-caps-popup",function(){$(VAA_View_Admin_As.prefix).addClass("fullPopupActive");$(this).closest(".ab-sub-wrapper").addClass("fullPopup");VAA_View_Admin_As.autoMaxHeight()});$root.on("click","#close-caps-popup",function(){$(VAA_View_Admin_As.prefix).removeClass("fullPopupActive");$(this).closest(".ab-sub-wrapper").removeClass("fullPopup");VAA_View_Admin_As.autoMaxHeight()});$root.on("change",".ab-vaa-select.select-role-caps select",function(){VAA_View_Admin_As.caps_filter_settings.selectedRole=$(this).val();if("default"===VAA_View_Admin_As.caps_filter_settings.selectedRole){VAA_View_Admin_As.caps_filter_settings.selectedRoleCaps={};VAA_View_Admin_As.caps_filter_settings.selectedRoleReverse=false}else{var selectedRoleElement=$(root_prefix+'-selectrolecaps #vaa-caps-selectrolecaps option[value="'+VAA_View_Admin_As.caps_filter_settings.selectedRole+'"]');VAA_View_Admin_As.caps_filter_settings.selectedRoleCaps=JSON.parse(selectedRoleElement.attr("data-caps"));VAA_View_Admin_As.caps_filter_settings.selectedRoleReverse=1===parseInt(selectedRoleElement.attr("data-reverse"),10)}VAA_View_Admin_As.filter_capabilities()});$root.on("keyup",".ab-vaa-filter input",function(){VAA_View_Admin_As.caps_filter_settings.filterString=$(this).val();VAA_View_Admin_As.filter_capabilities()});$root.on("click touchend","button#select-all-caps",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();$(root_prefix+"-select-options .vaa-cap-item").each(function(){if($(this).is(":visible")){$("input",this).prop("checked",true)}});return false});$root.on("click touchend","button#deselect-all-caps",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();$(root_prefix+"-select-options .vaa-cap-item").each(function(){if($(this).is(":visible")){$("input",this).prop("checked",false)}});return false});$root.on("click touchend","button#apply-caps-view",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();var new_caps=VAA_View_Admin_As.get_selected_capabilities();VAA_View_Admin_As.ajax({caps:new_caps},true);return false})};VAA_View_Admin_As.init_combine_views=function(){var root=VAA_View_Admin_As.root+"-combine-views",prefix="vaa-combine-views",root_prefix=VAA_View_Admin_As.prefix+root,$root=$(root_prefix),is_active=false,combine_types=$.extend([],VAA_View_Admin_As.view_types),combine_selectors=[],selection={},$selection_container=root_prefix+" #"+prefix+"-selection",$combine_items;if(!$root.length){return}combine_types.splice(combine_types.indexOf("caps"),1);combine_types.splice(combine_types.indexOf("visitor"),1);for(var key in combine_types){if(combine_types.hasOwnProperty(key)){combine_selectors[combine_types[key]]=VAA_View_Admin_As.prefix+".vaa-"+combine_types[key]+"-item > .ab-item"}}combine_types.push("caps");combine_selectors["caps"]=VAA_View_Admin_As.prefix+VAA_View_Admin_As.root+"-caps > .menupop > .ab-item";VAA_View_Admin_As.reinit_combine_views=function(){if(is_active){enable_combine_views()}else{add_combine_checkboxes()}$.each(selection,function(type,data){data.el=$(data.el);if(!data.el.length||!data.el.closest("body").length){data.el=$(VAA_View_Admin_As.prefix+".vaa-combine-item[vaa-view-type="+data.type+"][vaa-view-value="+data.value+"]")}if(data.el.length){data.el.prop("checked",true);activate_combine_type(data.el,data.type,data.value)}})};function enable_combine_views(){is_active=true;add_combine_checkboxes();$combine_items=$(VAA_View_Admin_As.prefix+".vaa-combine-item");$combine_items.fadeIn("fast");update_selection_list()}function disable_combine_views(){is_active=false;$(VAA_View_Admin_As.prefix+".vaa-combine-item").fadeOut("fast");if($selection_container.is(":visible")){$selection_container.slideUp("fast")}else{$selection_container.hide()}}function add_combine_checkboxes(elements,type){if(!elements||!type){for(var key in combine_selectors){if(combine_selectors.hasOwnProperty(key)){add_combine_checkboxes(combine_selectors[key],key)}}return}var $elements=$(elements);$elements.each(function(){var $this=$(this),$parent=$this.parent(),val=null,text=$this.text(),$data_el=$this.find(".vaa-view-data"),label,attr;if($parent.find(".vaa-combine-item").length){return true}if($data_el.length){val=$data_el.attr("vaa-view-value");text=$data_el.text();label=$data_el.attr("vaa-view-type-label")}if("caps"===type){val="";text=$(VAA_View_Admin_As.root+"-caps-title > .ab-item").text()}attr=['type="checkbox"','class="checkbox vaa-right vaa-combine-item vaa-combine-'+type+'"','vaa-view-type="'+type+'"',"vaa-view-value='"+val+"'",'vaa-view-text="'+text+'"','style="display:none;"'];if(label){attr.push('vaa-view-type-label="'+label+'"')}$parent.prepend("<input "+attr.join(" ")+">")})}function parse_combine_type(element,type){var $element=$(element),val;if("caps"===type){val=type}else{val=VAA_View_Admin_As.maybe_json_decode($element.attr("vaa-view-value"));if("object"===typeof val){$.each(val,function(val_type,data){var $val_element=$(VAA_View_Admin_As.prefix+".vaa-combine-"+val_type+"[vaa-view-value="+data+"]");activate_combine_type($val_element,val_type,data)});$element.prop({checked:true,disabled:false});return}}activate_combine_type($element,type,val)}function activate_combine_type(element,type,value){var $element=$(element);deactivate_combine_type(type,false);selection[type]={el:$element,type:type,value:value};$(VAA_View_Admin_As.prefix+".vaa-combine-"+type).prop({checked:false,disabled:true});$element.prop({checked:true,disabled:false});update_selection_list()}function deactivate_combine_type(types,update){if("object"!==typeof types){type=types;types={};types[type]=0}for(var type in types){if(types.hasOwnProperty(type)){delete selection[type];$(VAA_View_Admin_As.prefix+".vaa-combine-"+type).prop({checked:false,disabled:false})}}if(update){update_selection_list()}}function update_selection_list(){$(root_prefix+" .vaa-combine-selection").each(function(){var $this=$(this),type=$this.attr("vaa-view-type");if(!selection.hasOwnProperty(type)){$this.slideUp("fast",function(){$(this).remove()})}});$.each(selection,function(type,data){var text=data.el.attr("vaa-view-text")+'<span class="remove ab-icon dashicons dashicons-dismiss"></span>',$existing=$(root_prefix+" .vaa-combine-selection-"+type),label=data.el.attr("vaa-view-type-label");if(label){text='<span class="ab-bold">'+label+":</span> "+text}if($existing.length){$existing.html(text);if("none"===$existing.css("display")||!$existing.is(":visible")){$existing.slideDown("fast")}}else{var attr=['class="ab-item ab-empty-item vaa-combine-selection vaa-combine-selection-'+type+'"','vaa-view-type="'+type+'"','style="display:none;"'];var html="<li "+attr.join(" ")+">"+text+"</li>";$selection_container.append(html);$(root_prefix+" .vaa-combine-selection-"+type).slideDown("fast")}});if(is_active&&!$.isEmptyObject(selection)){if("none"===$selection_container.css("display")||!$selection_container.is(":visible")){$selection_container.slideDown("fast")}}else{$selection_container.slideUp("fast")}}$root.on("change","input#"+prefix,function(){$selection_container=$($selection_container);if(true===VAA_View_Admin_As._touchmove){return}if(this.checked){enable_combine_views()}else{disable_combine_views()}});$vaa.on("change","input.vaa-combine-item",function(){if(true===VAA_View_Admin_As._touchmove){return}var $this=$(this),type=$this.attr("vaa-view-type");if(this.checked){parse_combine_type($this,type)}else{var val=VAA_View_Admin_As.maybe_json_decode($this.attr("vaa-view-value"));if("object"===typeof val){deactivate_combine_type(val,true);return}deactivate_combine_type(type,true)}});$root.on("click touchend",".vaa-combine-selection .remove",function(){if(true===VAA_View_Admin_As._touchmove){return}deactivate_combine_type($(this).parent().attr("vaa-view-type"),true)});$root.on("click touchend","button#"+prefix+"-apply",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();var view_data={};for(var type in selection){if(selection.hasOwnProperty(type)){if("caps"===type){view_data[type]=VAA_View_Admin_As.get_selected_capabilities()}else{view_data[type]=selection[type].value}}}if(!$.isEmptyObject(view_data)){VAA_View_Admin_As.ajax(view_data,true)}else{}});$.each(combine_types,function(index,type){$vaa.on("vaa-apply-view",".vaa-"+type+"-item > a.ab-item",function(e){if(!is_active){return}e.preventDefault();var $this=$(this);if(!$this.parent().hasClass("not-a-view")){if(!VAA_View_Admin_As._mobile){var $combine_item=$this.parent().children(".vaa-combine-item");if($combine_item.is(":checked")){$combine_item.prop("checked",false)}else{$combine_item.prop("checked",true)}$combine_item.trigger("change")}e.stopPropagation();e.stopImmediatePropagation();$this.data("vaa-continue-event",false);return false}})})};VAA_View_Admin_As.init_module_role_defaults=function(){var root=VAA_View_Admin_As.root+"-role-defaults",prefix="vaa-role-defaults",root_prefix=VAA_View_Admin_As.prefix+root,$root=$(root_prefix);if(!$root.length){return}$root.on("click touchend",root+"-meta-add button#"+prefix+"-meta-add",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();var val=$(root_prefix+"-meta-add input#"+prefix+"-meta-new").val(),item=$(root_prefix+"-meta-add #"+prefix+"-meta-template").html().toString();val=val.replace(/ /g,"_");item=item.replace(/vaa_new_item/g,val);if($(root_prefix+'-meta-select input[value="'+val+'"]').length){VAA_View_Admin_As.item_notice($(this).parent(),VAA_View_Admin_As.__key_already_exists,"error",2e3)}else{$(root_prefix+"-meta-select > .ab-item").prepend(item)}});if($root.find(root+"-bulk-users-filter").length){$root.on("keyup",root+"-bulk-users-filter input#"+prefix+"-bulk-users-filter",function(e){e.preventDefault();var $this=$(this),$items=$(root_prefix+"-bulk-users-select .ab-item.vaa-item");if(1<=$this.val().length){var input_text=$this.val();$items.each(function(){var $this=$(this),name=$this.find(".user-name").text();if(-1<name.toLowerCase().indexOf(input_text.toLowerCase())){$this.show()}else{$this.hide()}})}else{$items.each(function(){$(this).show()})}})}var $search=$root.find(root+"-bulk-users-search");if($search.length){var $search_results=$root.find(root+"-bulk-users-select");$search.on("keyup","input#"+prefix+"-bulk-users-search",function(){var $this=$(this),search=$this.val();if(1<=search.trim().length){search={search:search,return:"role_defaults"};var search_by=$search.find("select#"+prefix+"-bulk-users-search-by").val();if(search_by){search["search_by"]=search_by}VAA_View_Admin_As.search_users_ajax(search,$search_results)}else{VAA_View_Admin_As.search_users_ajax(null,$search_results)}})}};VAA_View_Admin_As.init_module_role_manager=function(){var root=VAA_View_Admin_As.root+"-caps-manager-role-manager",prefix="vaa-caps-manager-role-manager",root_prefix=VAA_View_Admin_As.prefix+root,$root=$(root_prefix);if(!$root.length){return}$root.on("change","select#"+prefix+"-edit-role",function(){var $this=$(this),role=$this.val(),caps={},$selected_role=$(root_prefix+" select#"+prefix+'-edit-role option[value="'+role+'"]');if($selected_role.attr("data-caps")){caps=JSON.parse($selected_role.attr("data-caps"))}VAA_View_Admin_As.caps_filter_settings.selectedRole="default";VAA_View_Admin_As.caps_filter_settings.selectedRoleCaps={};VAA_View_Admin_As.caps_filter_settings.selectedRoleReverse=false;VAA_View_Admin_As.filter_capabilities();VAA_View_Admin_As.set_selected_capabilities(caps)});$root.on("click touchend","button#"+prefix+"-save-role",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();var role=$(root_prefix+" select#"+prefix+"-edit-role").val(),refresh=false;if(!role){return false}if("__new__"===role){role=$(root_prefix+" input#"+prefix+"-new-role").val();refresh=true}else if(VAA_View_Admin_As.view.hasOwnProperty("role")&&role===VAA_View_Admin_As.view.role){refresh=true}else if(-1<$.inArray(role,$vaa.find("> .ab-item .user-role").data("role"))){refresh=true}var data={role:role,capabilities:VAA_View_Admin_As.get_selected_capabilities()};VAA_View_Admin_As.ajax({role_manager:{save_role:data}},refresh);return false});$root.on("click touchend",root+"-new-cap button#"+prefix+"-add-cap",function(e){if(true===VAA_View_Admin_As._touchmove){return}e.preventDefault();var existing=VAA_View_Admin_As.get_selected_capabilities(),val=$(root_prefix+"-new-cap input#"+prefix+"-new-cap").val(),item=$(root_prefix+"-new-cap #"+prefix+"-cap-template").html().toString();val=val.replace(/ /g,"_");item=item.replace(/vaa_new_item/g,val);if("undefined"!==typeof existing[val]){VAA_View_Admin_As.item_notice($(this).parent(),VAA_View_Admin_As.__key_already_exists,"error",2e3)}else{$(VAA_View_Admin_As.root+"-caps-select-options > .ab-item").prepend(item)}})};VAA_View_Admin_As.assign_file_content=function(data){if("function"!==typeof FileReader){return}var param=data.hasOwnProperty("param")?data.param:{},$target=param.hasOwnProperty("target")?$(param.target):null,$element=param.hasOwnProperty("element")?$(param.element):null,wait=true;if(!$target||!$element){return}var files=$element[0].files,length=files.length,val="";if(length){$.each(files,function(key,file){var reader=new FileReader;reader.onload=function(){var content=VAA_View_Admin_As.maybe_json_decode(this.result);if("object"===typeof content){content=JSON.stringify(content)}val+=content;length--;if(!length){wait=false}};reader.readAsText(file)})}var areWeThereYet=setInterval(function(){if(!wait){$target.val(val);clearInterval(areWeThereYet)}},100)};VAA_View_Admin_As.autoMaxHeight=function(){if(!VAA_View_Admin_As.maxHeightListenerElements){return null}var timeout=100;setTimeout(function(){var scroll_top="undefined"!==typeof window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;VAA_View_Admin_As.maxHeightListenerElements.each(function(){var $element=$(this),count=0,wait=setInterval(function(){var offset=$element.offset(),offset_top=offset.top-scroll_top;if($element.is(":visible")&&0<offset_top){clearInterval(wait);var max_height=$window.height()-offset_top-100;max_height=100<max_height?max_height:100;$element.css({"max-height":max_height+"px"})}count++;if(5<count){clearInterval(wait)}},timeout)})},timeout)};$window.on("resize",VAA_View_Admin_As.autoMaxHeight);VAA_View_Admin_As.debug=function(message){if(true===VAA_View_Admin_As._debug){console.log(message)}};if(VAA_View_Admin_As.hasOwnProperty("_vaa_nonce")){$window.on("load",VAA_View_Admin_As.init)}})(jQuery);