Вход Регистрация
Файл: js/xenforo/full/permission.js
Строк: 126
<?php
/** @param {jQuery} $ jQuery Object */
!function($, window, document, _undefined)
{
    
XenForo.PermissionChoicesOld = function($element) { this.__construct($element); };
    
XenForo.PermissionChoicesOld.prototype =
    {
        
__construct: function($form)
        {
            var 
$replaceBase, _this, $tooltipOptions, ttOptions = {};

            
this.$form = $form;
            
this.$selects = $form.find('select.PermissionChoice');
            
this.$revokeOption = $form.find('.RevokeOption input[type="checkbox"]');

            
$tooltipOptions = $form.find('.PermissionTooltipOption');
            if (
$tooltipOptions.length)
            {
                
$tooltipOptions.each(function()
                {
                    var 
$this = $(this);
                    $(
$this.data('permissionstate').split(' ')).each(
                        function(
k, v) { ttOptions[v] = $this; }
                    );
                });
            }
            
this.tooltipOptions = ttOptions;

            
this.$revokeOption.click($.context(this, 'updateRevokeStatus'));
            
this.updateRevokeStatus(true);

            
_this = this;

            
this.$selects.each(function()
            {
                var 
$this = $(this),
                    
$replaceCore,
                    
$tooltip;

                
$replaceCore = $('<span />')
                    .
click($.context(_this, 'handleClick'))
                    .
data('select', $this);

                
$tooltip = $('<div class="xenTooltip permissionTooltip" />').hide();

                
$this.hide()
                    .
before(
                        $(
'<div />').append($replaceCore).append($tooltip)
                    );

                
$replaceCore.attr('title', XenForo.htmlspecialchars($replaceCore.attr('title'))).tooltip({
                    
/*effect: 'slide',
                    slideInSpeed: 50,
                    slideOutSpeed: 50,*/
                    
offset: [-12, 5],
                    
position: 'bottom right',
                    
relative: true,
                    
onBeforeShow: function(e)
                    {
                        if (
this.getTip().is(':empty'))
                        {
                            
e.preventDefault();
                        }
                    }
                });
                
$replaceCore.data('tooltip', $tooltip);

                
_this.setReplaceState($replaceCore, $this, $tooltip);
            });
        },

        
handleClick: function(e)
        {
            var 
$replace = $(e.currentTarget),
                
$tooltip = $replace.data('tooltip'),
                
$select = $replace.data('select'),
                
select = $select.get(0),
                
selectedIndex = select.selectedIndex;

            if (
selectedIndex + 1 < select.length)
            {
                
select.selectedIndex += 1;
            }
            else
            {
                
select.selectedIndex = 0;
            }

            
this.setReplaceState($replace, $select);
        },

        
setReplaceState: function($replace, $select)
        {
            var 
val = $select.val();

            
$replace.attr('class', 'permissionChoice permissionChoice_' + val);
            
$replace.text($select.find(':selected').text());

            
this.setTooltipState($replace);
        },

        
setTooltipState: function($replace)
        {
            var 
$select = $replace.data('select'),
                
val = $select.val(),
                
$tooltip = $replace.data('tooltip');

            if (
this.tooltipOptions[val])
            {
                
$tooltip.html(this.tooltipOptions[val].clone());
            }
            else
            {
                
$tooltip.empty();
            }
        },

        
updateRevokeStatus: function(instant)
        {
            var 
$options = this.$form.find('.PermissionOptions');

            if (
this.$revokeOption.is(':checked'))
            {
                if (
instant === true)
                {
                    
$options.hide();
                }
                else
                {
                    
$options.xfSlideUp();
                }
            }
            else
            {
                
$options.xfSlideDown();
            }
        }
    };

    
XenForo.PermissionNeverWarning = function($form)
    {
        var 
$neverTooltip = $('#PermissionNeverTooltip');
        if (!
$neverTooltip.length)
        {
            return;
        }
        
$neverTooltip.appendTo(document.body);

        
$form.find('.permission td.deny').tooltip({
            
tip: '#PermissionNeverTooltip',
            
position: 'center right',
            
offset: [0, 5],
            
effect: 'fade',
            
predelay: 250
        
});
    };

    
XenForo.register('form.PermissionChoices', 'XenForo.PermissionNeverWarning');
    
//XenForo.register('form.PermissionChoices', 'XenForo.PermissionChoices');
}
(
jQuery, this, document);
?>
Онлайн: 2
Реклама