Seditio Source
Root |
./othercms/xenForo 2.2.8/js/xf/prefix_menu.min.js
'use strict';!function(g,h,k,l){XF.PrefixMenu=XF.Element.newHandler({options:{select:"< .js-prefixContainer | .js-prefixSelect",title:"< .js-prefixContainer | .js-titleInput",active:".js-activePrefix",menu:"| [data-menu]",menuContent:".js-prefixMenuContent",listenTo:"",href:"",helpHref:"",helpContainer:"< .formRow | .js-prefixHelp",helpSkipInitial:!1},$select:null,$active:null,$title:null,$menu:null,$menuContent:null,template:null,initialPrefixId:0,init:function(){this.$select=XF.findRelativeIf(this.options.select,
this.$target);if(this.$select.length){this.$select.on("control:enabled control:disabled",XF.proxy(this,"toggleActive"));this.$title=XF.findRelativeIf(this.options.title,this.$target);this.$active=this.$target.find(this.options.active);this.$menu=XF.findRelativeIf(this.options.menu,this.$target);this.$menuContent=this.$menu.find(this.options.menuContent);this.$menuContent.on("click","[data-prefix-id]",XF.proxy(this,"prefixClick"));this.template=this.$menuContent.find('script[type="text/template"]').html();
this.template||(console.error("No template could be found"),this.template="");if(this.options.href){var a=this.options.listenTo?XF.findRelativeIf(this.options.listenTo,this.$target):g([]);if(a.length)a.on("change",XF.proxy(this,"loadPrefixes"));else console.error("Cannot load prefixes dynamically as no element set to listen to for changes")}this.initMenu();if(a=parseInt(this.$select.val(),10))this.initialPrefixId=a,this.selectPrefix(a,!0);this.$target.closest("form").on("reset",XF.proxy(function(){this.reset()},
this))}else console.error("No select matching %s",this.options.select)},initMenu:function(){var a=[],b=[];this.$select.children().each(function(){var c=g(this);if(c.is("optgroup")){var e=[];c.find("option").each(function(){var f=g(this);e.push({prefix_id:f.attr("value"),title:f.text(),css_class:f.attr("data-prefix-class")})});e.length&&a.push({title:c.attr("label"),prefixes:e})}else{var d=c.attr("value");"0"!==d&&"-1"!==d&&b.push({prefix_id:d,title:c.text(),css_class:c.attr("data-prefix-class")})}});
b.length&&a.push({title:null,prefixes:b});this.$menuContent.empty().html(Mustache.render(this.template,{groups:a}))},reset:function(){this.selectPrefix(this.initialPrefixId,!0)},loadPrefixes:function(a){XF.ajax("POST",this.options.href,{val:g(a.target).val(),initial_prefix_id:this.initialPrefixId},XF.proxy(this,"loadSuccess"))},loadSuccess:function(a){if(a.html){var b=this,c=this.$select;XF.setupHtmlInsert(a.html,function(e){e.each(function(){var d=g(this);if(d.is("select")){var f=c.val();c.empty().append(d.children());
c.find('option[value="'+f+'"]').length||(f=0);b.initMenu();b.selectPrefix(f);return!1}})})}},toggleActive:function(a){a=g(a.target);var b=this.$active.closest(".inputGroup-text");b.length&&(a.is(":disabled")?b.addClass("inputGroup-text--disabled"):b.removeClass("inputGroup-text--disabled"))},selectPrefix:function(a,b){a=parseInt(a,10);var c=this.$active,e=this.$select,d=e.find('option[value="'+a+'"]');d.length||(a=0,d=e.find('option[value="'+a+'"]'));var f=d.data("prefix-class");e.val(a);c.text(d.text()).removeClass(c.data("prefix-class")).addClass(f);
c.data("prefix-class",f);!this.options.helpHref||!d.data("has-help")||b&&this.options.helpSkipInitial?this.getHelpContainer().empty():XF.ajax("POST",this.options.helpHref,{prefix_id:a},XF.proxy(this,"displayHelp"));e.trigger("change")},getHelpContainer:function(){return XF.findRelativeIf(this.options.helpContainer,this.$target)},displayHelp:function(a){if(a.html){var b=this.getHelpContainer();XF.setupHtmlInsert(a.html,function(c){b.html(c)})}},prefixClick:function(a){this.selectPrefix(g(a.target).data("prefix-id"));
(a=this.$menu.data("menu-trigger"))&&a.close();a=this.$title;a.length&&a.autofocus()}});XF.PrefixLoader=XF.Element.newHandler({options:{listenTo:"",initUpdate:!0,href:""},init:function(){if(!this.$target.is("select"))console.error("Must trigger on select");else if(this.options.href){var a=this.options.listenTo?XF.findRelativeIf(this.options.listenTo,this.$target):g([]);a.length?(a.on("change",XF.proxy(this,"loadPrefixes")),this.options.initUpdate&&a.trigger("change")):console.error("Cannot load prefixes dynamically as no element set to listen to for changes")}},
loadPrefixes:function(a){XF.ajax("POST",this.options.href,{val:g(a.target).val()},XF.proxy(this,"loadSuccess"))},loadSuccess:function(a){if(a.html){var b=this.$target;XF.setupHtmlInsert(a.html,function(c){var e=b.val();c.each(function(){var d=g(this);if(d.is("select")){b.empty().append(d.children());var f=!1;d=b.find("option");d.each(function(){if(g(this).attr("value")===e)return b.val(e),f=!0,!1});f||b.val(d.first().attr("value"));return!1}})})}}});XF.Element.register("prefix-menu","XF.PrefixMenu");
XF.Element.register("prefix-loader","XF.PrefixLoader")}(jQuery,window,document);