Вход Регистрация
Файл: forsoc.ru/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) {
        
phpbb.toggleDisplay('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;
    }

    
phpbb.toggleDisplay('options' active_option, -1);

    
//hiding and showing the checkbox
    
if (document.getElementById('checkbox' active_pmask active_fmask)) {
        
phpbb.toggleDisplay('checkbox' pmask fmask, -1);

        if ((
pmask fmask) !== (active_pmask active_fmask)) {
            
document.getElementById('checkbox' active_pmask active_fmask).style.display 'inline';
        }
    }

    if (!
view) {
        
phpbb.toggleDisplay('advanced' active_pmask active_fmask, -1);
    }

    if (!
view) {
        
phpbb.toggleDisplay('advanced' pmask fmask1);
    }
    
phpbb.toggleDisplay('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
Реклама