diff options
author | Dominik Dröscher <dhn2@users.sourceforge.net> | 2007-01-18 12:52:38 +0000 |
---|---|---|
committer | Dominik Dröscher <dhn2@users.sourceforge.net> | 2007-01-18 12:52:38 +0000 |
commit | a034d244313ad59f829cf5b2ddb9cc62415d1d4e (patch) | |
tree | 68b63ba16959fd0f4f16dccc8fca812a66dbf335 | |
parent | 1b4bae94a0975ffd9cef155508cd4f3bda41e6cd (diff) | |
download | forums-a034d244313ad59f829cf5b2ddb9cc62415d1d4e.tar forums-a034d244313ad59f829cf5b2ddb9cc62415d1d4e.tar.gz forums-a034d244313ad59f829cf5b2ddb9cc62415d1d4e.tar.bz2 forums-a034d244313ad59f829cf5b2ddb9cc62415d1d4e.tar.xz forums-a034d244313ad59f829cf5b2ddb9cc62415d1d4e.zip |
Hello new permission interface. Everyone please give it a proper welcome and test the beejesus out of it.
git-svn-id: file:///svn/phpbb/trunk@6901 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r-- | phpBB/adm/style/acp_permission_roles.html | 171 | ||||
-rw-r--r-- | phpBB/adm/style/acp_permissions.html | 7 | ||||
-rw-r--r-- | phpBB/adm/style/admin.css | 497 | ||||
-rw-r--r-- | phpBB/adm/style/permission_mask.html | 285 |
4 files changed, 435 insertions, 525 deletions
diff --git a/phpBB/adm/style/acp_permission_roles.html b/phpBB/adm/style/acp_permission_roles.html index fd787dbe10..9a53800d4e 100644 --- a/phpBB/adm/style/acp_permission_roles.html +++ b/phpBB/adm/style/acp_permission_roles.html @@ -6,53 +6,22 @@ <script type="text/javascript"> <!-- - var active_option = 'options0'; - - /** - * Show/hide option panels - * value = suffix for ID to show - */ - function swap_options(id) - { - if (id == active_option) - { - return; - } - - // Hide active options and display container - dE(active_option, -1); - dE(id, 1); - - active_option = id; - } - - /** - * Mark all radio buttons in one panel - * id = table ID container, s = status ['y'/'u'/'n'] - */ - function mark_options(id, s) - { - var t = document.getElementById(id); - - if (!t) - { - return; - } - - var rb = t.getElementsByTagName('input'); - - for (var r = 0; r < rb.length; r++ ) - { - if (rb[r].id.substr(rb[r].id.length-1) == s) - { - rb[r].checked = true; - } - } - } + var active_pmask = '0'; + var active_fmask = '0'; + var active_cat = '0'; + var id = '000'; + + var role_options = new Array(); + + <!-- IF S_ROLE_JS_ARRAY --> + {S_ROLE_JS_ARRAY} + <!-- ENDIF --> //--> </script> + <script language="javascript" type="text/javascript" src="style/permissions.js"></script> + <a href="{U_BACK}" style="float: right">« {L_BACK}</a> <h1>{L_TITLE}</h1> @@ -96,62 +65,64 @@ <h1>{L_ACL_TYPE}</h1> <fieldset class="quick"> - <a href="#" onclick="mark_options('a_options', 'y'); return false;">{L_ALL_YES}</a> • <a href="#" onclick="mark_options('a_options', 'n'); return false;">{L_ALL_NEVER}</a> • <a href="#" onclick="mark_options('a_options', 'u'); return false;">{L_ALL_NO}</a> + <a href="#" onclick="mark_options('advanced00', 'y'); init_colours('00'); return false;">{L_ALL_YES}</a> • <a href="#" onclick="mark_options('advanced00', 'n'); init_colours('00'); return false;">{L_ALL_NEVER}</a> • <a href="#" onclick="mark_options('advanced00', 'u'); init_colours('00'); return false;">{L_ALL_NO}</a> </fieldset> - <fieldset class="permissions"> - - <table cellspacing="1" class="pmask"> - <thead> - <tr> - <!-- BEGIN auth --> - <th>{auth.CAT_NAME}</th> - <!-- END auth --> - </tr> - </thead> - <tbody> - <tr> - <!-- BEGIN auth --> - <!-- IF auth.S_YES --> - <td class="preset preset_yes"> - <!-- ELSEIF auth.S_NEVER --> - <td class="preset preset_never"> - <!-- ELSEIF auth.S_NO --> - <td class="preset preset_no"> - <!-- ELSE --> - <td class="preset preset_custom"> - <!-- ENDIF --> - <a href="#" onclick="swap_options('options{auth.S_ROW_COUNT}'); return false;"><span></span></a></td> - <!-- END auth --> - </tr> - <tr class="row3"> - <td colspan="{S_NUM_PERM_COLS}" id="a_options" style="vertical-align: top; text-align: left; width: 100%;"> + <fieldset class="perm nolegend"> + + <div id="advanced00"> + <div class="perm_cat"> + <ul> + <!-- BEGIN auth --> + <!-- IF auth.S_YES --> + <li class="perm_preset_yes<!-- IF auth.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab00{auth.S_ROW_COUNT}"> + <!-- ELSEIF auth.S_NEVER --> + <li class="perm_preset_never<!-- IF auth.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab00{auth.S_ROW_COUNT}"> + <!-- ELSEIF auth.S_NO --> + <li class="perm_preset_no<!-- IF auth.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab00{auth.S_ROW_COUNT}"> + <!-- ELSE --> + <li class="perm_preset_custom<!-- IF auth.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab00{auth.S_ROW_COUNT}"> + <!-- ENDIF --> + <a href="#" onclick="swap_options('0','0','{auth.S_ROW_COUNT}'); return false;"><span class="tabbg"><span class="colour"></span>{auth.CAT_NAME}</span></a></li> + <!-- END auth --> + </ul> + </div> <!-- BEGIN auth --> - <table cellspacing="1" id="options{auth.S_ROW_COUNT}" class="type3" style="width: 100%; text-align: left;<!-- IF auth.S_FIRST_ROW --><!-- ELSE --> display: none;<!-- ENDIF -->"> - <thead> - <tr> - <th scope="col" style="text-align: left; padding-left: 0;"><strong>{L_ACL_SETTING} [{auth.CAT_NAME}]</strong></th> - <th scope="col"><a href="#" onclick="mark_options('options{auth.S_ROW_COUNT}', 'y'); return false;">{L_ACL_YES}</a></th> - <th scope="col"><a href="#" onclick="mark_options('options{auth.S_ROW_COUNT}', 'u'); return false;">{L_ACL_NO}</a></th> - <th scope="col"><a href="#" onclick="mark_options('options{auth.S_ROW_COUNT}', 'n'); return false;">{L_ACL_NEVER}</a></th> - </tr> - </thead> - <tbody> - <!-- BEGIN mask --> - <!-- IF auth.mask.S_ROW_COUNT is even --><tr class="row4"><!-- ELSE --><tr class="row3"><!-- ENDIF --> - <th>{auth.mask.PERMISSION}</th> - <td class="no"><input id="setting[{auth.mask.FIELD_NAME}]_y" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></td> - <td class="no"><input id="setting[{auth.mask.FIELD_NAME}]_u" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_NO --> checked="checked"<!-- ENDIF --> value="-1" /></td> - <td class="no"><input id="setting[{auth.mask.FIELD_NAME}]_n" name="setting[{auth.mask.FIELD_NAME}]" class="radio" type="radio"<!-- IF auth.mask.S_NEVER --> checked="checked"<!-- ENDIF --> value="0" /></td> - </tr> - <!-- END mask --> - </tbody> - </table> + <div class="perm_panel" id="options00{auth.S_ROW_COUNT}"<!-- IF auth.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->> + <span class="corners-top"><span></span></span> + <div class="tablewrap"> + <table cellspacing="1"> + <colgroup> + <col class="permissions_name" /> + <col class="permissions_yes" /> + <col class="permissions_no" /> + <col class="permissions_never" /> + </colgroup> + <thead> + <tr> + <th class="name" scope="col"><strong>{L_ACL_SETTING}</strong></th> + <th class="value" scope="col"><a href="#" onclick="mark_options('options00{auth.S_ROW_COUNT}', 'y'); set_colours('00{auth.S_ROW_COUNT}', false, 'yes'); return false;">{L_ACL_YES}</a></th> + <th class="value" scope="col"><a href="#" onclick="mark_options('options00{auth.S_ROW_COUNT}', 'u'); set_colours('00{auth.S_ROW_COUNT}', false, 'no'); return false;">{L_ACL_NO}</a></th> + <th class="value" scope="col"><a href="#" onclick="mark_options('options00{auth.S_ROW_COUNT}', 'n'); set_colours('00{auth.S_ROW_COUNT}', false, 'never'); return false;">{L_ACL_NEVER}</a></th> + </tr> + </thead> + <tbody> + <!-- BEGIN mask --> + <!-- IF auth.mask.S_ROW_COUNT is even --><tr class="row4"><!-- ELSE --><tr class="row3"><!-- ENDIF --> + <th class="permission_name<!-- IF auth.mask.S_ROW_COUNT is even --> row4<!-- ELSE --> row3<!-- ENDIF -->">{auth.mask.PERMISSION}</th> + + <td><label for="{auth.mask.FIELD_NAME}_y"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="{auth.mask.FIELD_NAME}_y" name="{auth.mask.FIELD_NAME}" class="radio" type="radio"<!-- IF auth.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></label></td> + <td><label for="{auth.mask.FIELD_NAME}_u"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="{auth.mask.FIELD_NAME}_u" name="{auth.mask.FIELD_NAME}" class="radio" type="radio"<!-- IF auth.mask.S_NO --> checked="checked"<!-- ENDIF --> value="-1" /></label></td> + <td><label for="{auth.mask.FIELD_NAME}_n"><input onchange="set_colours('00{auth.S_ROW_COUNT}', false)" id="{auth.mask.FIELD_NAME}_n" name="{auth.mask.FIELD_NAME}" class="radio" type="radio"<!-- IF auth.mask.S_NEVER --> checked="checked"<!-- ENDIF --> value="0" /></label></td> + </tr> + <!-- END mask --> + </tbody> + </table> + </div> + <span class="corners-bottom"><span></span></span> + </div> <!-- END auth --> - </td> - </tr> - </tbody> - </table> + </div> </fieldset> @@ -190,11 +161,11 @@ <td style="width: 80px; text-align: right; vertical-align: top; white-space: nowrap;"> <!-- IF roles.S_FIRST_ROW && not roles.S_LAST_ROW --> {ICON_MOVE_UP_DISABLED} - <a href="{roles.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> + <a href="{roles.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> <!-- ELSEIF not roles.S_FIRST_ROW && not roles.S_LAST_ROW--> <a href="{roles.U_MOVE_UP}">{ICON_MOVE_UP}</a> <a href="{roles.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> - <!-- ELSEIF roles.S_LAST_ROW && not roles.S_FIRST_ROW --> + <!-- ELSEIF roles.S_LAST_ROW && not roles.S_FIRST_ROW --> <a href="{roles.U_MOVE_UP}">{ICON_MOVE_UP}</a> {ICON_MOVE_DOWN_DISABLED} <!-- ELSE --> @@ -216,7 +187,7 @@ </form> <!-- IF S_DISPLAY_ROLE_MASK --> - + <a name="assigned_to"></a> <h1>{L_ROLE_ASSIGNED_TO}</h1> @@ -225,8 +196,6 @@ <!-- ENDIF --> - <!-- ENDIF --> - -<!-- INCLUDE overall_footer.html --> +<!-- INCLUDE overall_footer.html -->
\ No newline at end of file diff --git a/phpBB/adm/style/acp_permissions.html b/phpBB/adm/style/acp_permissions.html index 9b301f8f5c..f5a5f78c6b 100644 --- a/phpBB/adm/style/acp_permissions.html +++ b/phpBB/adm/style/acp_permissions.html @@ -337,14 +337,9 @@ <br /><br /> - <fieldset class="quick" style="float: left; text-align: left;"> - {L_PERMISSION_APPLIED_TO_ALL}<br /> - <a href="#" onclick="marklist('set_permissions', 'inherit', true); return false;">{L_MARK_ALL}</a> • <a href="#" onclick="marklist('set_permissions', 'inherit', false); return false;">{L_UNMARK_ALL}</a> - </fieldset> - <fieldset class="quick" style="float: right;"> <input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" /> - <input class="button2" type="reset" name="cancel" value="{L_RESET}" /> + <input class="button2" type="button" name="cancel" value="{L_RESET}" onclick="document.forms['set_permissions'].reset(); init_colours(active_pmask + active_fmask);" /> </fieldset> <br /><br /> diff --git a/phpBB/adm/style/admin.css b/phpBB/adm/style/admin.css index ee0977e51b..678265ec8b 100644 --- a/phpBB/adm/style/admin.css +++ b/phpBB/adm/style/admin.css @@ -183,7 +183,7 @@ a:hover { } /* Commented Backslash Hack hides rule from IE5-Mac \*/ -#tabs a span { float:none; } +#tabs a span { float:none;} /* End hack */ #tabs a:hover span { @@ -329,12 +329,12 @@ td { line-height: 1.2em; } -.row1 { background-color: #EFEFEF; } -.row2 { background-color: #DEE3E7; } -.row3 { background-color: #D1D7DC; } -.row4 { background-color: #E4E8EB; } -.col1 { background-color: #DEE3E7; } -.col2 { background-color: #EFEFEF; } +.row1 { background-color: #EFEFEF;} +.row2 { background-color: #DEE3E7;} +.row3 { background-color: #D1D7DC;} +.row4 { background-color: #E4E8EB;} +.col1 { background-color: #DEE3E7;} +.col2 { background-color: #EFEFEF;} .spacer { background-color: #D1D7DC; @@ -364,42 +364,31 @@ table.type2 td { /* General form styles ----------------------------------------*/ -fieldset { +fieldset { + background-color: #DDD; + padding: 10px; margin: 15px 0; - padding: 10px; border-right: 1px solid #AFAEAA; border-bottom: 1px solid #AFAEAA; border-left: 1px solid #D5D5C8; border-top: 1px solid #D5D5C8; - background-color: #ECECEC; + background-color: #ECECEC; position: relative; } - -* html fieldset { - padding: 0 10px 5px 10px; -} - -fieldset p { - font-size: 1.1em; -} - legend { - padding: 1px 0; - font-family: "Lucida Grande", Arial, Verdana,Sans-serif; + position: absolute; + top: -0.5em; font-size: 1.1em; + color:#006699; + font-family: "Lucida Grande",Arial,Verdana,Sans-serif; font-weight: bold; - color: #006699; - position: relative; - text-transform: uppercase; line-height: 100%; - top: 0em; - vertical-align:middle; + text-transform: uppercase; + } -* html legend { - margin-bottom: -10px; - margin-left: -7px; - top: -1.2em; +fieldset p { + font-size: 1.1em; } input { @@ -440,7 +429,7 @@ option { .sep { color: black; - background-color: #FFA34F; + font-weight: bold; } textarea { @@ -543,11 +532,11 @@ dt { width: auto; } -dd { color: #000; } -dd + dd { padding-top: 5px; } -dt span { padding-right: 5px; } +dd { color: #000;} +dd + dd { padding-top: 5px;} +dt span { padding-right: 5px;} -dt .explain { font-style: italic; } +dt .explain { font-style: italic;} dt label { font-size: 100%; @@ -560,7 +549,7 @@ dd label { margin-right: 10px; } -html>body dd label input { vertical-align: text-bottom; } /* Tweak for Moz to align checkboxes/radio buttons nicely */ +html>body dd label input { vertical-align: text-bottom;} /* Tweak for Moz to align checkboxes/radio buttons nicely */ dd input, dd select { @@ -687,12 +676,12 @@ textarea.full { width: 99%; } -* html input.full, * html textarea.full { width: 95%; } -input.medium { width: 50%; } -input.narrow { width: 25%; } -input.tiny { width: 10%; } -input.autowidth { width: auto !important; } -.box2 .inputbox { background-color: #E9E9E9; } +* html input.full, * html textarea.full { width: 95%;} +input.medium { width: 50%;} +input.narrow { width: 25%;} +input.tiny { width: 10%;} +input.autowidth { width: auto !important;} +.box2 .inputbox { background-color: #E9E9E9;} /* Pagination @@ -771,169 +760,6 @@ a.button2, a.button2:link, a.button2:visited, a.button2:active { padding: 4px 8px; } -/* Permission related ----------------------------------------- */ - -.permissions { - margin: 15px 0 0 0; - padding: 0; - border: none; - background-color: transparent; -} - -.permissions table { - width: 100%; - /*empty-cells: hide;*/ - border: 1px solid #CCCFD3; - background-color: #FFFFFF; - padding: 1px; -} - -.permissions th { - padding: 3px 4px; - color: #FFFFFF; - background: #DDE1E4 url("../images/gradient2b.gif") bottom left repeat-x; - border-top: 1px solid #6DACD2; - border-bottom: 1px solid #327AA5; - text-align: left; - font-size: .85em; - text-transform: uppercase; -} - -.permissions td { - text-align: left; - font-size: 1.1em; - padding: 4px; - line-height: 120%; -} - -table.pmask { - border: none; - background: none; - padding: 0; -} - -table.pmask th { - background: none; - border-top: none; - text-align: center; - vertical-align: bottom; - color: #115098; - padding: 2px 0; -} - -table.pmask td { - padding: 0px; -} - -table.pmask td.name { - padding: 2px; - vertical-align: middle; -} - -.permissions th.name { - text-align: left; - width: auto; - padding-left: 4px; -} - -.permissions .entry { - text-align: left; - font-weight: normal; -} - -.permissions td.name { - text-align: left; - font-weight: bold; -} - -.permissions table.type3 { - float: right; - width: 350px; /* Setting the length of the permission view box */ - border: none; - background-color: transparent; - padding: 0; -} - -.permissions table.type3 thead th { - background-color: transparent; - border-top: none; - text-align: center; - color: #115098; - padding: 0 3px; - font-size: .9em; - font-weight: normal; - text-transform: none; -} - -.permissions table.type3 tbody th { - border-top: none; - text-align: left; - text-transform: none; - padding: 0; - border: none; - font-size: 1em; - font-weight: normal; - width: 100%; - vertical-align: middle; -} - -.permissions table.type3 td { - text-align: center; - padding: 1px; -} - -.permissions td.yes { - width: 20px; - background-color: #40C53D; -} - -.permissions td.never { - width: 20px; - background-color: #EC7181; -} - -.permissions td.no { - width: 20px; - background-color: transparent; -} - -/* Preset Styles ----------------------------------------- */ -.preset { - width: 60px; -} - -.preset a { - float: left; - display: block; - width: 100%; - height: 20px; - cursor: pointer; - background: transparent; -} - -.preset a:hover { - background: url("../images/arrow_down.gif") no-repeat 50% 50%; - text-decoration: none; -} - -.preset_yes { - background: #D3F3D2 url("../images/bg_hash1.gif") repeat; -} - -.preset_custom { - background: #DAE4EC url("../images/bg_hash2.gif") repeat; -} - -.preset_never { - background: #ECD7DA url("../images/bg_hash3.gif") repeat; -} - -.preset_no { - background: #ECD7DA url("../images/bg_hash4.gif") repeat; -} - /* Action Highlighting ---------------------------------------- */ .success { @@ -1086,3 +912,264 @@ table.pmask td.name { .syntaxstring { color: #DD0000; } + +/* Permission interface +---------------------------------------- */ + +fieldset.perm legend { + text-transform: none; +} + +/* Permission sections */ +fieldset.perm .perm_simple { + text-align: left; + padding-top: 3px; +} + +fieldset.perm .perm_advanced { + padding-left: 5px; + vertical-align: top; + clear: right; + padding-top: 10px; +} + +fieldset.perm .perm_switch { + float: right; + font-size: 1.1em; +} + +.perm_switch a { + text-decoration: underline; +} + +/* Tabbed menu */ +.perm_cat { + line-height: normal; + margin: 0 0 0px 7px; + min-width: 570px; + font-size: 1em; +} + +.perm_cat ul { + margin:0; + padding: 0; + list-style: none; +} + +.perm_cat li { + display: inline; + margin: 0; + padding: 0; + font-size: 1em; + font-weight: bold; +} + +.perm_cat a { + float: left; + background: url("../images/bg_tabs1.gif") no-repeat 0% -35px; + margin: 0 1px 0 0; + padding: 0 0 0 6px; + text-decoration: none; + position: relative; +} + +.perm_cat a span.tabbg { + float: left; + display: block; + background: url("../images/bg_tabs2.gif") no-repeat 100% -35px; + padding: 7px 12px 6px 6px; + color: #536482; + white-space: nowrap; +} + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +.perm_cat a span.tabbg { float:none;} +/* End hack */ + +.perm_cat a:hover span.tabbg { + color: #DD6900; +} + +.perm_cat .activetab a { + background-position: 0 0px; +} + +.perm_cat .activetab a span.tabbg { + background-position: 100% 0px; + padding-bottom: 7px; + color: #333333; +} + +.perm_cat a:hover { + background-position: 0 -70px; +} + +.perm_cat a:hover span.tabbg { + background-position: 100% -70px; +} + +.perm_cat .activetab a:hover span.tabbg { + color: #333333; + background-position: 100% 0px; +} + +.perm_cat .activetab a:hover { + background-position: 0 0px; +} + +.perm_cat a span.colour { + border: 1px solid #536482; + display: block; + float: left; + width: 10px; + height: 10px; + margin-right: 5px; +} + +.perm_cat .activetab span.colour { + border-color: #333333; +} + +.perm_cat a:hover span.colour { + border-color: #DD6900; +} + +.perm_cat .activetab a:hover span.colour { + border-color: #333333; +} + +/* Permission preset colours */ +.perm_preset_yes span.colour, +.yes { + background-color: #86F786; +} + +.perm_preset_custom span.colour { + background-color: #B2BBDD; +} + +.perm_preset_never span.colour { + background-color: #DD0000; +} + +.perm_preset_no span.colour, +.never { + background-color: #EFB0B2; +} + +/* Pemrission panel +---------------------------------------- */ +.perm_panel { + float: left; + background-color: #FFF; + width: 100%; + border: 1px solid #A9B8C2; + margin-top: -1px; +} + +.perm_panel span.corners-top { + background-image: url("../images/corners_left2.gif"); +} + +.perm_panel span.corners-top span { + background-image: url("../images/corners_right2.gif"); +} + +.perm_panel span.corners-bottom { + background-image: url("../images/corners_left2.gif"); +} + +.perm_panel span.corners-bottom span { + background-image: url("../images/corners_right2.gif"); +} + +.perm_panel span.corners-top, .perm_panel span.corners-bottom, +.perm_panel span.corners-top span, .perm_panel span.corners-bottom span { + font-size: 1px; + line-height: 1px; + display: block; + height: 5px; + background-repeat: no-repeat; +} + +.perm_panel span.corners-top { + background-image: url("../images/corners_left2.gif"); + background-position: 0 0; + margin: 0 0; +} + +.perm_panel span.corners-top span { + background-image: url("../images/corners_right2.gif"); + background-position: 100% 0; +} + +.perm_panel span.corners-bottom { + background-image: url("../images/corners_left2.gif"); + background-position: 0 100%; + margin: 0 0; + clear: both; +} + +.perm_panel span.corners-bottom span { + background-image: url("../images/corners_right2.gif"); + background-position: 100% 100%; +} + +/* Permission table +---------------------------------------- */ +.perm_panel .tablewrap { + margin: 0 10px; +} + +.perm_panel table { + width: 100%; +} + +.perm_panel th { + text-transform: none; +} + +.perm_panel th.value { + text-align: center; +} + +.perm_panel th.name { + text-align: left; + width: auto; + text-transform: none; +} + +.perm_panel th.permission_name { + border: none; + color: #536482; + font-weight: normal; +} + +.perm_panel th.permission_name a.trace { + display: inline; +} + +.perm_panel th.row3 { + background-image: none; + background-color: #D1D7DC; +} + +.perm_panel th.row4 { + background-image: none; + background-color: #E4E8EB; +} + +.perm_panel th a { + display: block; + color: #FFA34F; + text-decoration: underline; +} + +.perm_panel td { + padding: 0; + text-align: center; +} + +.perm_panel td label { + display: block; +} diff --git a/phpBB/adm/style/permission_mask.html b/phpBB/adm/style/permission_mask.html index 51b5bf9c63..86dbc0a5ee 100644 --- a/phpBB/adm/style/permission_mask.html +++ b/phpBB/adm/style/permission_mask.html @@ -5,251 +5,110 @@ var active_fmask = '0'; var active_cat = '0'; + var id = '000'; + var role_options = new Array(); <!-- IF S_ROLE_JS_ARRAY --> {S_ROLE_JS_ARRAY} <!-- ENDIF --> - - /** - * Show/hide option panels - * value = suffix for ID to show - */ - function swap_options(pmask, fmask, cat) - { - id = pmask + fmask + cat; - active_option = active_pmask + active_fmask + active_cat; - - if (id == active_option) - { - return; - } - - // Hide active options - dE('options' + active_option, -1); - dE('head' + active_pmask + active_fmask, 1, 'inline'); - dE('apply' + active_pmask + active_fmask, -1); - - // Display container - dE('options' + id, 1); - dE('head' + pmask + fmask, -1, 'inline'); - dE('apply' + pmask + fmask, 1); - - 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(id, s) - { - var t = document.getElementById(id); - - if (!t) - { - return; - } - - var rb = t.getElementsByTagName('input'); - - for (var r = 0; r < rb.length; r++ ) - { - if (rb[r].id.substr(rb[r].id.length-1) == s) - { - rb[r].checked = true; - } - } - } - - /** - * Mark one radio button in one panel - * id = table ID container, field_name = the auth option, s = status ['y'/'u'/'n'] - */ - function mark_one_option(id, field_name, s) - { - var t = document.getElementById(id); - - if (!t) - { - return; - } - - var rb = t.getElementsByTagName('input'); - - for (var r = 0; r < rb.length; r++ ) - { - if (rb[r].id.substr(rb[r].id.length-field_name.length-3, field_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 t = document.getElementById(id); - - if (!t) - { - return; - } - - t.options[0].selected = true; - } - - /** - * Load role and set options accordingly - */ - function set_role_settings(role_id, target_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_id, r, (settings[r] == 1) ? 'y' : 'n'); - } - } - //--> </script> +<script language="javascript" type="text/javascript" src="style/permissions.js"></script> <!-- BEGIN p_mask --> <div class="clearfix"></div> - -<fieldset class="permissions"> - <!-- IF p_mask.USER_GROUPS_DEFAULT or p_mask.USER_GROUPS_CUSTOM --> - <br /> - <p> - <!-- IF p_mask.USER_GROUPS_DEFAULT --><b>{p_mask.NAME}</b> {L_USER_IS_MEMBER_OF_DEFAULT}: <b>{p_mask.USER_GROUPS_DEFAULT}</b><br /><!-- ENDIF --> - <!-- IF p_mask.USER_GROUPS_CUSTOM --><b>{p_mask.NAME}</b> {L_USER_IS_MEMBER_OF_CUSTOM}: <b>{p_mask.USER_GROUPS_CUSTOM}</b><!-- ENDIF --> - </p> +<h3>{p_mask.NAME}<!-- IF p_mask.S_LOCAL --> <span class="small"> [{p_mask.L_ACL_TYPE}]</span><!-- ENDIF --></h3> + +<!-- BEGIN f_mask --> +<fieldset class="perm"> + <legend>{p_mask.f_mask.NAME}</legend> + + <!-- IF not p_mask.S_VIEW --> + <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> + </div> + <dl class="perm_simple"> + <dt style="width: 20%"><label for="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">{L_ROLE}:</label></dt> + <!-- IF p_mask.f_mask.S_ROLE_OPTIONS --> + <dd style="margin-left: 20%"><select id="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" onchange="set_role_settings(this.options[selectedIndex].value, 'advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')">{p_mask.f_mask.S_ROLE_OPTIONS}</select></dd> + <!-- ELSE --> + <dd>{L_NO_ROLE_AVAILABLE}</dd> + <!-- ENDIF --> + </dl> <!-- ENDIF --> - <table cellspacing="1" class="pmask"> - <thead> - <tr> - <th style="text-align: left; width: 70%">{p_mask.NAME}<!-- IF p_mask.S_LOCAL --><span class="small" style="text-transform: none;"> [{p_mask.L_ACL_TYPE}]</span><!-- ENDIF --></th> - <th>{p_mask.CATEGORIES}</th> - </tr> - </thead> - <tbody> + <!-- BEGIN category --> + <!-- IF p_mask.f_mask.category.S_FIRST_ROW --> + <div class="perm_advanced" id="advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}"<!-- IF not p_mask.S_VIEW --> style="display: none;"<!-- ENDIF -->> + + <div class="perm_cat"> + <ul> + <!-- ENDIF --> + + <!-- IF p_mask.f_mask.category.S_YES --> + <li class="perm_preset_yes<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}"> + <!-- ELSEIF p_mask.f_mask.category.S_NEVER --> + <li class="perm_preset_never<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}"> + <!-- ELSEIF p_mask.f_mask.category.S_NO --> + <li class="perm_preset_no<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}"> + <!-- ELSE --> + <li class="perm_preset_custom<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --> activetab<!-- ENDIF -->" id="tab{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}"> + <!-- ENDIF --> + <a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '{p_mask.f_mask.category.S_ROW_COUNT}', false<!-- IF p_mask.S_VIEW -->, true<!-- ENDIF -->); return false;"><span class="tabbg"><span class="colour"></span>{category.CAT_NAME}</span></a></li> + <!-- END category --> + </ul> + </div> - <!-- BEGIN f_mask --> - <!-- IF p_mask.f_mask.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF --> - <td class="name"> - <table cellspacing="0" cellpadding="0" class="type2" style="background-color: transparent; border: 0;"> - <tbody> - <tr> - <td width="16"> - <span id="head{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}"<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW --> style="display: none;"<!-- ENDIF -->> - <!-- 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}]" value="1" /><!-- ELSE --> <!-- ENDIF --> - </span> - </td> - <td><span>{p_mask.f_mask.PADDING}<!-- IF p_mask.f_mask.FOLDER_IMAGE --> {p_mask.f_mask.FOLDER_IMAGE} <!-- ENDIF --><a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '0'); return false;">{p_mask.f_mask.NAME}</a></span></td> - <td style="text-align: right;"> - <!-- IF p_mask.S_VIEW --> - - <!-- ELSE --> - <!-- IF p_mask.f_mask.S_ROLE_OPTIONS --> - <b>{L_ROLE}:</b> <select id="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" onchange="set_role_settings(this.options[selectedIndex].value, 'a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')">{p_mask.f_mask.S_ROLE_OPTIONS}</select> - <!-- ELSE --> - <b>{L_ROLE}:</b> {L_NO_ROLE_AVAILABLE} + <!-- BEGIN category --> + <div class="perm_panel" id="options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" <!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->> + <span class="corners-top"><span></span></span> + <div class="tablewrap"> + <table cellspacing="1"> + <colgroup> + <col class="permissions_name" /> + <col class="permissions_yes" /> + <col class="permissions_no" /> + <!-- IF not p_mask.S_VIEW --> + <col class="permissions_never" /> <!-- ENDIF --> - <!-- ENDIF --> - </td> - </tr> - </tbody> - </table> - </td> - <!-- BEGIN category --> - <!-- IF p_mask.f_mask.category.S_YES --> - <td class="preset preset_yes"> - <!-- ELSEIF p_mask.f_mask.category.S_NEVER --> - <td class="preset preset_never"> - <!-- ELSEIF p_mask.f_mask.category.S_NO --> - <td class="preset preset_no"> - <!-- ELSE --> - <td class="preset preset_custom"> - <!-- ENDIF --> - <a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '{p_mask.f_mask.category.S_ROW_COUNT}'); return false;"> </a></td> - <!-- END category --> - </tr> - <tr class="row3"> - <td style="vertical-align: top;"> - <div id="apply{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" style="text-align: left; width: 98%; margin: 5px;<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW --><!-- ELSE --> display: none;<!-- ENDIF -->"> - <!-- IF not p_mask.S_VIEW --> - <div style="float: left; width: 60%;"> - <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}" /> - </div> - <div style="float: right; text-align: right; width: 35%;"> - <p class="small"> - [<a href="#" onclick="mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'y'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ALL_YES}</a>]<br /> - [<a href="#" onclick="mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'n'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ALL_NEVER}</a>]<br /> - [<a href="#" onclick="mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'u'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ALL_NO}</a>] - </p> - </div> - <!-- ELSE --> - - <!-- ENDIF --> - </div> - </td> - <td colspan="{p_mask.S_NUM_CATS}" id="a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" style="vertical-align: top; text-align: left;"> - <div style="width: 350px; height: 0; line-height: 0;"> </div> - <!-- BEGIN category --> - <table cellspacing="1" id="options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" class="type3"<!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->> + </colgroup> <thead> <tr> - <th scope="col" style="text-align: left; padding-left: 0;"><strong>{L_ACL_SETTING} [{p_mask.f_mask.category.CAT_NAME}]</strong></th> + <th class="name" scope="col"><strong>{L_ACL_SETTING}</strong></th> <!-- IF p_mask.S_VIEW --> - <th scope="col">{L_ACL_YES}</th> - <th scope="col">{L_ACL_NEVER}</th> + <th style="width: 40px;" class="value" scope="col">{L_ACL_YES}</th> + <th style="width: 40px;" class="value" scope="col">{L_ACL_NEVER}</th> <!-- ELSE --> - <th scope="col"><a href="#" onclick="mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'y'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ACL_YES}</a></th> - <th scope="col"><a href="#" onclick="mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'u'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ACL_NO}</a></th> - <th scope="col"><a href="#" onclick="mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'n'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); return false;">{L_ACL_NEVER}</a></th> + <th class="value" scope="col"><a href="#" onclick="mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'y'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); set_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', false, 'yes'); return false;">{L_ACL_YES}</a></th> + <th class="value" scope="col"><a href="#" onclick="mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'u'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); set_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', false, 'no'); return false;">{L_ACL_NO}</a></th> + <th class="value" scope="col"><a href="#" onclick="mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'n'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); set_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', false, 'never'); return false;">{L_ACL_NEVER}</a></th> <!-- ENDIF --> </tr> </thead> <tbody> <!-- BEGIN mask --> <!-- IF p_mask.f_mask.category.mask.S_ROW_COUNT is even --><tr class="row4"><!-- ELSE --><tr class="row3"><!-- ENDIF --> - <th><!-- IF p_mask.f_mask.category.mask.U_TRACE --><a href="#" onclick="trace('{p_mask.f_mask.category.mask.U_TRACE}'); return false;" title="{L_TRACE_SETTING}"><img src="images/icon_trace.gif" alt="{L_TRACE_SETTING}" /></a> <!-- ENDIF -->{p_mask.f_mask.category.mask.PERMISSION}</th> + <th class="permission_name<!-- IF p_mask.f_mask.category.mask.S_ROW_COUNT is even --> row4<!-- ELSE --> row3<!-- ENDIF -->"><!-- IF p_mask.f_mask.category.mask.U_TRACE --><a href="#" class="trace" onclick="trace('{p_mask.f_mask.category.mask.U_TRACE}'); return false;" title="{L_TRACE_SETTING}"><img src="images/icon_trace.gif" alt="{L_TRACE_SETTING}" /></a> <!-- ENDIF -->{p_mask.f_mask.category.mask.PERMISSION}</th> <!-- IF p_mask.S_VIEW --> - <td<!-- IF p_mask.f_mask.category.mask.S_YES --> class="yes"<!-- ELSE --> class="no"<!-- ENDIF -->> </td> - <td<!-- IF p_mask.f_mask.category.mask.S_NEVER --> class="never"<!-- ELSE --> class="no"<!-- ENDIF -->> </td> + <td<!-- IF p_mask.f_mask.category.mask.S_YES --> class="yes"<!-- ENDIF -->> </td> + <td<!-- IF p_mask.f_mask.category.mask.S_NEVER --> class="never"<!-- ENDIF -->></td> <!-- ELSE --> - <td class="no"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_y" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" class="radio" type="radio"<!-- IF p_mask.f_mask.category.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></td> - <td class="no"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_u" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" class="radio" type="radio"<!-- IF p_mask.f_mask.category.mask.S_NO --> checked="checked"<!-- ENDIF --> value="-1" /></td> - <td class="no"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_n" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" class="radio" type="radio"<!-- IF p_mask.f_mask.category.mask.S_NEVER --> checked="checked"<!-- ENDIF --> value="0" /></td> + <td><label for="{p_mask.f_mask.category.mask.S_FIELD_NAME}_y"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); set_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', false)" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_y" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" class="radio" type="radio"<!-- IF p_mask.f_mask.category.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></label></td> + <td><label for="{p_mask.f_mask.category.mask.S_FIELD_NAME}_u"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); set_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', false)" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_u" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" class="radio" type="radio"<!-- IF p_mask.f_mask.category.mask.S_NO --> checked="checked"<!-- ENDIF --> value="-1" /></label></td> + <td><label for="{p_mask.f_mask.category.mask.S_FIELD_NAME}_n"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); set_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', false)" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_n" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" class="radio" type="radio"<!-- IF p_mask.f_mask.category.mask.S_NEVER --> checked="checked"<!-- ENDIF --> value="0" /></label></td> <!-- ENDIF --> </tr> <!-- END mask --> </tbody> </table> - <!-- END category --> - </td> - </tr> - <!-- END f_mask --> - - </tbody> - </table> - + </div> + <span class="corners-bottom"><span></span></span> + </div> + <!-- END category --> + </div> </fieldset> +<!-- END f_mask --> <!-- END p_mask --> |