Вход Регистрация
Файл: phpBB3/adm/style/permissions.js
Строк: 242
<?php
/**
* Hide and show all checkboxes
* status = true (show boxes), false (hide boxes)
*/
function display_checkboxes(status
{
    var 
form document.getElementById('set-permissions');
    var 
cb document.getElementsByTagName('input');
    var 
display;

    
//show
    
if (status)
    {
        
display 'inline';
    }
    
//hide
    
else
    {
        
display 'none';
    }
    
    for (var 
0cb.lengthi++ )
    {
        if (
cb[i].className == 'permissions-checkbox')
        {
            
cb[i].style.display display;
        }
        
    }    
    
}


/**
* Change opacity of element
* e = element
* value = 0 (hidden) till 10 (fully visible)
*/
function set_opacity(evalue) {
    
e.style.opacity value/10;
    
    
//IE opacity currently turned off, because of its astronomical stupidity
    //e.style.filter = 'alpha(opacity=' + value*10 + ')';
}

/**
* Reset the opacity and checkboxes
* block_id = id of the element that needs to be toggled
*/
function toggle_opacity(block_id) {
    var 
cb document.getElementById('checkbox' block_id);
    var 
fs document.getElementById('perm' block_id);
    
    if (
cb.checked
    {
        
set_opacity(fs5);
    } 
    else 
    {
        
set_opacity(fs10);
    }
}

/**
* Reset the opacity and checkboxes
* value = 0 (checked) and 1 (unchecked)
* except_id = id of the element not to hide
*/
function reset_opacity(statusexcept_id) {
    var 
perm document.getElementById('set-permissions');
    var 
fs perm.getElementsByTagName('fieldset');
    var 
opacity 5;

    if (
status)
    {
        
opacity 10;    
    }
    
    for (var 
0fs.lengthi++ )
    {
        if (
fs[i].className != 'quick')
        {
            
set_opacity(fs[i], opacity);
        }
    }

    if (
typeof(except_id) != 'undefined')
    {
        
set_opacity(document.getElementById('perm' except_id), 10);
    }

    
//reset checkboxes too
    
marklist('set-permissions''inherit', !status);
}


/**
* Check whether we have a full radiobutton row of true
* index = offset for the row of inputs (0 == first row, 1 == second, 2 == third),
* rb = array of radiobuttons
*/
function get_radio_status(indexrb
{
    for (var 
indexrb.length)
    {
        if (
rb[i].checked != true)
        {
            if (
index)
            {
                
//at least one is true, but not all (custom)
                
return 2;
            }
            
//first one is not true
            
return 0;
        }
    }

    
// all radiobuttons true
    
return 1;
}

/**
* Set tab colours
* id = panel the tab needs to be set for, 
* init = initialising on open, 
* quick = If no calculation needed, this contains the colour
*/
function set_colours(idinitquick)
{
    var 
table document.getElementById('table' id);
    var 
tab document.getElementById('tab' id);

    if (
typeof(quick) != 'undefined'
    {
        
tab.className 'permissions-preset-' quick ' activetab';
        return;
    }

    var 
rb table.getElementsByTagName('input');
    var 
colour 'custom';

    var 
status get_radio_status(0rb);

    if (
status == 1)
    {
        
colour 'yes';
    }
    else if (
status == 0
    {
        
// We move on to No
        
status get_radio_status(1rb);

        if (
status == 1)
        {
            
colour 'no';
        }
        else if (
status == 0
        {
            
// We move on to Never
            
status get_radio_status(2rb);

            if (
status == 1)
            {
                
colour 'never';
            }
        }
    }

    if (
init)
    {
        
tab.className 'permissions-preset-' colour;
    }
    else
    {
        
tab.className 'permissions-preset-' colour ' activetab';
    }
}

/**
* Initialise advanced tab colours on first load
* block_id = block that is opened
*/
function init_colours(block_id)
{    
    var 
block document.getElementById('advanced' block_id);
    var 
panels block.getElementsByTagName('div');
    var 
tab document.getElementById('tab' id);

    for (var 
0panels.lengthi++)
    {
        if(
panels[i].className == 'permissions-panel')
        {
            
set_colours(panels[i].id.replace(/options/, ''), true);
        }
    }

    
tab.className tab.className ' activetab';
}

/**
* Show/hide option panels
* value = suffix for ID to show
* adv = we are opening advanced permissions
* view = called from view permissions
*/
function swap_options(pmaskfmaskcatadvview)
{
    
id pmask fmask cat;
    
active_option active_pmask active_fmask active_cat;

    var    
old_tab document.getElementById('tab' active_option);    
    var 
new_tab document.getElementById('tab' id);
    var 
adv_block document.getElementById('advanced' pmask fmask);

    if (
adv_block.style.display == 'block' && adv == true)
    {
        
dE('advanced' pmask fmask, -1);
        
reset_opacity(1);
        
display_checkboxes(false);
        return;
    }

    
// no need to set anything if we are clicking on the same tab again
    
if (new_tab == old_tab && !adv)
    {
        return;
    }

    
// init colours
    
if (adv && (pmask fmask) != (active_pmask active_fmask))
    {
        
init_colours(pmask fmask);
        
display_checkboxes(true);
        
reset_opacity(1);
    } 
    else if (
adv
    {
        
//Checkbox might have been clicked, but we need full visibility
        
display_checkboxes(true);
        
reset_opacity(1);
    }

    
// set active tab
    
old_tab.className old_tab.className.replace(/ activetab/g'');
    
new_tab.className new_tab.className ' activetab';

    if (
id == active_option && adv != true)
    {
        return;
    }

    
dE('options' active_option, -1);
    
    
//hiding and showing the checkbox
    
if (document.getElementById('checkbox' active_pmask active_fmask))
    {
        
dE('checkbox' pmask fmask, -1);    
        
        if ((
pmask fmask) != (active_pmask active_fmask))
        {
            
document.getElementById('checkbox' active_pmask active_fmask).style.display 'inline';
        }
    }

    if (!
view)
    {
        
dE('advanced' active_pmask active_fmask, -1);
    }

    if (!
view)
    {
        
dE('advanced' pmask fmask1);
    }
    
dE('options' id1);

    
active_pmask pmask;
    
active_fmask fmask;
    
active_cat cat;
}

/**
* Mark all radio buttons in one panel
* id = table ID container, s = status ['y'/'u'/'n']
*/
function mark_options(ids)
{
    var 
document.getElementById(id);

    if (!
t)
    {
        return;
    }

    var 
rb t.getElementsByTagName('input');

    for (var 
0rb.lengthr++)
    {
        if (
rb[r].id.substr(rb[r].id.length-1) == s)
        {
            
rb[r].checked true;
        }
    }
}

function 
mark_one_option(idfield_names)
{
    var 
document.getElementById(id);

    if (!
t)
    {
        return;
    }

    var 
rb t.getElementsByTagName('input');

    for (var 
0rb.lengthr++)
    {
        if (
rb[r].id.substr(rb[r].id.length-field_name.length-3field_name.length) == field_name && rb[r].id.substr(rb[r].id.length-1) == s)
        {
            
rb[r].checked true;
        }
    }
}

/**
* Reset role dropdown field to Select role... if an option gets changed
*/
function reset_role(id)
{
    var 
document.getElementById(id);

    if (!
t)
    {
        return;
    }

    
t.options[0].selected true;
}

/**
* Load role and set options accordingly
*/
function set_role_settings(role_idtarget_id)
{
    
settings role_options[role_id];

    if (!
settings)
    {
        return;
    }

    
// Mark all options to no (unset) first...
    
mark_options(target_id'u');

    for (var 
r in settings)
    {
        
mark_one_option(target_idr, (settings[r] == 1) ? 'y' 'n');
    }
}
?>
Онлайн: 1
Реклама