Seditio Source
Root |
./othercms/xenForo 2.2.8/js/xf/permission.min.js
'use strict';!function(f,r,t,u){XF.PermissionForm=XF.Element.newHandler({options:{form:null,filterInput:".js-permissionFilterInput",rows:".js-permission",rowLabel:".formRow-label",groups:".block-body",groupHeader:".block-formSectionHeader",headerCollapser:".collapseTrigger",quickSet:".js-permissionQuickSet",permissionType:null},$form:null,$groups:null,groups:{},$filter:null,filterTimer:null,init:function(){var a=this.$target,b=this.options,c=this;b.form&&(a=XF.findRelativeIf(b.form,a));this.$form=
a;b.permissionType||console.error("No permission type specified. Must be global or content.");var d=b.groupHeader,g=b.rows,h={};this.$groups=a.find(b.groups);this.$groups.each(function(){var e=f(this),m=e.xfUniqueId(),n=parseInt(e.data("moderator-permissions"),10)?!0:!1,k=e.prev(d),l=e.find(g);h[m]={$group:e,isModerator:n,$header:k,$rows:l}});this.groups=h;this.$filter=XF.findRelativeIf(b.filterInput,a);this.$filter.on({keyup:XF.proxy(this,"onKeyUp"),keypress:XF.proxy(this,"onKeyPress"),paste:XF.proxy(this,
"onPaste")});a.find(b.quickSet).click(function(){c.triggerQuickSet(f(this))});setTimeout(XF.proxy(this,"applyInitialState"),0)},applyInitialState:function(){var a=this.groups,b=this,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];var g=d.$header;var h=d.$group;var e=!1;g.length&&d.isModerator&&(d.$rows.each(function(){if(b.isRowValueSet(f(this)))return e=!0,!1}),this.setGroupExpandedState(h,g,e))}},setGroupExpandedState:function(a,b,c){b.find(this.options.headerCollapser).toggleClass("is-active",
c);a.toggleClass("is-active",c);XF.layoutChange()},getRowValue:function(a){a=a.find("input, select").serializeArray();a=a[a.length-1].value;a.match(/^[0-9]+$/)&&(a=parseInt(a,10));return a},isValueSet:function(a){if("number"==typeof a)return 0!=a;switch(a){case "allow":case "content_allow":case "reset":case "deny":return!0;default:return!1}},isRowValueSet:function(a){return this.isValueSet(this.getRowValue(a))},onKeyUp:function(a){if(!a.ctrlKey&&!a.metaKey){switch(a.key){case "Tab":case "Enter":case "Shift":case "Control":case "Alt":break;
default:this.planFilter()}"Enter"!=a.key&&this.planFilter()}},onKeyPress:function(a){"Enter"==a.key&&(a.preventDefault(),this.filter())},onPaste:function(a){this.planFilter()},planFilter:function(){this.filterTimer&&clearTimeout(this.filterTimer);this.filterTimer=setTimeout(XF.proxy(this,"filter"),250)},filter:function(){this.filterTimer&&clearTimeout(this.filterTimer);var a=this.$filter.val(),b=this.groups,c=this.options.rowLabel;if(a.length){var d=new RegExp("("+XF.regexQuote(a)+")","i");var g=
new RegExp("("+XF.regexQuote(XF.htmlspecialchars(a))+")","i")}else g=d=!1;var h=!1,e;for(e in b)if(b.hasOwnProperty(e)){var m=!1,n=!1;a=b[e];a.$rows.find(".textHighlight").each(function(){var k=this.parentNode;f(this).replaceWith(this.childNodes);k.normalize()});a.$rows.each(function(){var k=f(this),l=!1;if(d){var q=k.find(c),p=q.text();d.test(p)&&(l=!0,p=XF.htmlspecialchars(p).replace(g,'<span class="textHighlight textHighlight--attention">$1</span>'),q.html(p))}else l=!0;k.css("display",l?"":"none");
l?m=!0:h=n=!0});d&&!m?(a.$group.css("display","none"),a.$header.css("display","none")):(a.$group.css("display",""),a.$header.css("display",""),a.$group.find(".formRow--permissionQuickSet").css("display",n?"none":""),d&&this.setGroupExpandedState(a.$group,a.$header,!0))}this.$form.find(".js-globalPermissionQuickSet").css("display",h?"none":"");XF.layoutChange()},triggerQuickSet:function(a){var b=a.data("value");a=a.data("target");var c=null,d=this;a&&a.length&&(c=f(a),c.length||(c=null));c||(c=this.$form);
c.find(this.options.rows).each(function(){d.setRowValue(f(this),b)})},setRowValue:function(a,b){if("flag"==a.data("permission-type"))a.find("input[type=radio][value="+b+"]").prop("checked",!0).trigger("click",{triggered:!0});else{var c="allow"==b||"content_allow"==b?-1:0;a.find("input[type=radio]").each(function(){var d=f(this);parseInt(d.val(),10)==c&&(d.prop("checked",!0).trigger("click",{triggered:!0}),d.data("xf-init")&&a.find("input[type=text], input[type=number]").val(c))})}}});XF.PermissionChoice=
XF.Element.newHandler({options:{inputSelector:'input[type="radio"]',inputContainerSelector:"li"},init:function(){var a=this;this.$target.on("click",this.options.inputSelector,function(){setTimeout(function(){a.update()},0)});this.update()},update:function(){var a=this.options.inputContainerSelector;this.$target.find(this.options.inputSelector).each(function(){var b=f(this);b.closest(a).toggleClass("is-selected",b.prop("checked"))})}});XF.Element.register("permission-form","XF.PermissionForm");XF.Element.register("permission-choice",
"XF.PermissionChoice")}(jQuery,window,document);