1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-11 18:15:20 +02:00

Some permission interface updates:

- checkbox now hidden by default, only shown when an advanced view is opened
- mark all and unmark all now available


git-svn-id: file:///svn/phpbb/trunk@6916 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Dominik Dröscher 2007-01-21 19:32:38 +00:00
parent 576bb754e9
commit 097856f4a0
3 changed files with 72 additions and 10 deletions

View File

@ -570,7 +570,7 @@ dd textarea {
width: 100%; width: 100%;
} }
input.radio { input.radio, input.perm_cb {
width: auto !important; width: auto !important;
background-color: transparent; background-color: transparent;
border: none; border: none;

View File

@ -16,15 +16,23 @@
</script> </script>
<script language="javascript" type="text/javascript" src="style/permissions.js"></script> <script language="javascript" type="text/javascript" src="style/permissions.js"></script>
<!-- BEGIN p_mask --> <!-- BEGIN p_mask -->
<div class="clearfix"></div> <div class="clearfix"></div>
<h3>{p_mask.NAME}<!-- IF p_mask.S_LOCAL --> <span class="small"> [{p_mask.L_ACL_TYPE}]</span><!-- ENDIF --></h3> <h3>{p_mask.NAME}<!-- IF p_mask.S_LOCAL --> <span class="small"> [{p_mask.L_ACL_TYPE}]</span><!-- ENDIF --></h3>
<!-- BEGIN f_mask --> <!-- BEGIN f_mask -->
<fieldset class="perm" id="perm{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">
<legend id="legend{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}"><!-- IF not p_mask.S_VIEW --><input type="checkbox" class="radio" name="inherit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" id="checkbox{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" value="1" onclick="toggle_opacity('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" /> <!-- ELSE --><!-- ENDIF -->{p_mask.f_mask.NAME}</legend>
<fieldset class="perm" id="perm{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">
<legend id="legend{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">
<!-- IF not p_mask.S_VIEW -->
<input type="checkbox" style="display: none;" class="perm_cb" name="inherit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" id="checkbox{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" value="1" onclick="toggle_opacity('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" />
<!-- ELSE -->
<!-- ENDIF -->
{p_mask.f_mask.NAME}
</legend>
<!-- IF not p_mask.S_VIEW --> <!-- IF not p_mask.S_VIEW -->
<div class="perm_switch"> <div class="perm_switch">
<a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '0', true); return false;">{L_ADVANCED_PERMISSIONS}</a> <a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '0', true); return false;">{L_ADVANCED_PERMISSIONS}</a>
@ -108,7 +116,9 @@
<fieldset class="quick" style="margin-right: 11px;"> <fieldset class="quick" style="margin-right: 11px;">
<p class="small">{L_APPLY_PERMISSIONS_EXPLAIN}</p> <p class="small">{L_APPLY_PERMISSIONS_EXPLAIN}</p>
<input class="button1" type="submit" name="psubmit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" value="{L_APPLY_PERMISSIONS}" /> <input class="button1" type="submit" name="psubmit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" value="{L_APPLY_PERMISSIONS}" />
<p class="small"><a href="#" onclick="reset_opacity(0, '{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_MARK_ALL}</a> &bull; <a href="#" onclick="reset_opacity(1, '{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_UNMARK_ALL}</a></p>
</fieldset> </fieldset>
<!-- ENDIF --> <!-- ENDIF -->
<span class="corners-bottom"><span></span></span> <span class="corners-bottom"><span></span></span>
</div> </div>

View File

@ -1,3 +1,36 @@
/**
* 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 i = 0; i < cb.length; i++ )
{
if (cb[i].className == 'perm_cb')
{
cb[i].style.display = display;
}
}
}
/** /**
* Change opacity of element * Change opacity of element
* e = element * e = element
@ -30,18 +63,34 @@ function toggle_opacity(block_id) {
/** /**
* Reset the opacity and checkboxes * Reset the opacity and checkboxes
* value = 0 (checked) and 1 (unchecked)
* except_id = id of the element not to hide
*/ */
function reset_opacity() { function reset_opacity(status, except_id) {
var perm = document.getElementById('set_permissions'); var perm = document.getElementById('set_permissions');
var fs = perm.getElementsByTagName('fieldset'); var fs = perm.getElementsByTagName('fieldset');
var opacity = 5;
if (status)
{
opacity = 10;
}
for (var i = 0; i < fs.length; i++ ) for (var i = 0; i < fs.length; i++ )
{ {
set_opacity(fs[i], 10); 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 //reset checkboxes too
marklist('set_permissions', 'inherit', false); marklist('set_permissions', 'inherit', !status);
} }
@ -166,7 +215,8 @@ function swap_options(pmask, fmask, cat, adv, view)
if (adv_block.style.display == 'block' && adv == true) if (adv_block.style.display == 'block' && adv == true)
{ {
dE('advanced' + pmask + fmask, -1); dE('advanced' + pmask + fmask, -1);
document.getElementById('checkbox' + pmask + fmask).style.display = 'inline'; reset_opacity(1);
display_checkboxes(false);
return; return;
} }
@ -180,12 +230,14 @@ function swap_options(pmask, fmask, cat, adv, view)
if (adv && (pmask + fmask) != (active_pmask + active_fmask)) if (adv && (pmask + fmask) != (active_pmask + active_fmask))
{ {
init_colours(pmask + fmask); init_colours(pmask + fmask);
reset_opacity(); display_checkboxes(true);
reset_opacity(1);
} }
else if (adv) else if (adv)
{ {
//Checkbox might have been clicked, but we need full visibility //Checkbox might have been clicked, but we need full visibility
set_opacity(document.getElementById('perm' + pmask + fmask), 10); display_checkboxes(true);
reset_opacity(1);
} }
// set active tab // set active tab