diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2014-07-04 13:32:10 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2014-07-04 13:32:10 +0200 |
commit | 4558262e2aaf31b4583a87622e97a46ead11537c (patch) | |
tree | 88a589e5f9b3b45139c32718c1caf12a5e3b1374 /phpBB | |
parent | 4b49b3dcf3bc369eaced5790b95914254ab7d932 (diff) | |
parent | 86e21a9b261d6239487c626b7e9c9f462ceab611 (diff) | |
download | forums-4558262e2aaf31b4583a87622e97a46ead11537c.tar forums-4558262e2aaf31b4583a87622e97a46ead11537c.tar.gz forums-4558262e2aaf31b4583a87622e97a46ead11537c.tar.bz2 forums-4558262e2aaf31b4583a87622e97a46ead11537c.tar.xz forums-4558262e2aaf31b4583a87622e97a46ead11537c.zip |
Merge branch 'develop-ascraeus' into develop
* develop-ascraeus:
[ticket/12013] Fix functional tests and sniffer issue.
[ticket/12013] Clear the jumpbox.
[ticket/12013] Add moderator tools icon.
[ticket/12013] Remove obsolete jumpbox and quickmod CSS.
[ticket/12013] Prevent the dropdown scrollbar from overlapping the content.
[ticket/12013] Update to use the new .button class.
[ticket/12013] Add missing class to place the buttons on the rightside.
[ticket/12013] Use the correct variable for the forum id.
[ticket/12013] Use DEFINE instead of Twig's set.
[ticket/12013] Use path helper.
[ticket/12013] Use new dropdown for quickmod tools and jumpbox.
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/assets/javascript/core.js | 4 | ||||
-rw-r--r-- | phpBB/includes/functions_content.php | 21 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/ajax.js | 31 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/jumpbox.html | 28 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/viewtopic_body.html | 30 | ||||
-rw-r--r-- | phpBB/styles/prosilver/theme/buttons.css | 22 | ||||
-rw-r--r-- | phpBB/styles/prosilver/theme/colours.css | 4 | ||||
-rw-r--r-- | phpBB/styles/prosilver/theme/common.css | 24 | ||||
-rw-r--r-- | phpBB/styles/prosilver/theme/forms.css | 18 | ||||
-rw-r--r-- | phpBB/styles/prosilver/theme/images/icons_button.png | bin | 5690 -> 6478 bytes | |||
-rw-r--r-- | phpBB/viewtopic.php | 17 |
11 files changed, 107 insertions, 92 deletions
diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index 02fb3ed08d..2c35875dca 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -1296,6 +1296,10 @@ phpbb.toggleDropdown = function() { else if ((offset + width + 2) > windowWidth) { $this.css('margin-left', (windowWidth - offset - width - 2) + 'px'); } + + // Check whether the vertical scrollbar is present. + $this.toggleClass('dropdown-nonscroll', this.scrollHeight === $this.innerHeight()); + }); var freeSpace = parent.offset().left - 4; diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index 09bd3e6cdb..ee78364083 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -174,8 +174,9 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list $template->assign_block_vars('jumpbox_forums', array( 'FORUM_ID' => ($select_all) ? 0 : -1, 'FORUM_NAME' => ($select_all) ? $user->lang['ALL_FORUMS'] : $user->lang['SELECT_FORUM'], - 'S_FORUM_COUNT' => $iteration) - ); + 'S_FORUM_COUNT' => $iteration, + 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $forum_id)), + )); $iteration++; $display_jumpbox = true; @@ -188,8 +189,9 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list 'S_FORUM_COUNT' => $iteration, 'S_IS_CAT' => ($row['forum_type'] == FORUM_CAT) ? true : false, 'S_IS_LINK' => ($row['forum_type'] == FORUM_LINK) ? true : false, - 'S_IS_POST' => ($row['forum_type'] == FORUM_POST) ? true : false) - ); + 'S_IS_POST' => ($row['forum_type'] == FORUM_POST) ? true : false, + 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $row['forum_id'])), + )); for ($i = 0; $i < $padding; $i++) { @@ -1452,16 +1454,19 @@ function get_username_string($mode, $user_id, $username, $username_colour = '', /** * Add an option to the quick-mod tools. * + * @param string $url The recepting URL for the quickmod actions. * @param string $option The language key for the value of the option. * @param string $lang_string The language string to use. */ -function phpbb_add_quickmod_option($option, $lang_string) +function phpbb_add_quickmod_option($url, $option, $lang_string) { - global $template, $user; + global $template, $user, $phpbb_path_helper; + $lang_string = $user->lang($lang_string); $template->assign_block_vars('quickmod', array( - 'VALUE' => $option, - 'TITLE' => $lang_string, + 'VALUE' => $option, + 'TITLE' => $lang_string, + 'LINK' => $phpbb_path_helper->append_url_params($url, array('action' => $option)), )); } diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js index e9f8064b9e..70bc703582 100644 --- a/phpBB/styles/prosilver/template/ajax.js +++ b/phpBB/styles/prosilver/template/ajax.js @@ -356,37 +356,6 @@ $('.display_post').click(function(e) { $('#post_hidden' + post_id).hide(); }); - - -/** - * This AJAXifies the quick-mod tools. The reason it cannot be a standard - * callback / data attribute is that it requires filtering - some of the options - * can be ajaxified, while others cannot. - */ -phpbb.ajaxify({ - selector: '#quickmodform', - refresh: true, - filter: function (data) { - var action = $('#quick-mod-select').val(); - - if (action === 'make_normal') { - return $(this).find('select option[value="make_global"]').length > 0; - } else if (action === 'lock' || action === 'unlock') { - return true; - } - - if (action === 'delete_topic' || action === 'make_sticky' || action === 'make_announce' || action === 'make_global') { - return true; - } - - return false; - } -}); - -$('#quick-mod-select').change(function () { - $('#quickmodform').submit(); -}); - $('#delete_permanent').click(function () { if ($(this).prop('checked')) { $('#delete_reason').hide(); diff --git a/phpBB/styles/prosilver/template/jumpbox.html b/phpBB/styles/prosilver/template/jumpbox.html index 47d322407d..44b479ab3f 100644 --- a/phpBB/styles/prosilver/template/jumpbox.html +++ b/phpBB/styles/prosilver/template/jumpbox.html @@ -10,24 +10,22 @@ <!-- ENDIF --> <!-- IF S_DISPLAY_JUMPBOX --> - <form method="get" id="jumpbox" action="{S_JUMPBOX_ACTION}" onsubmit="if(this.f.value == -1){return false;}"> - <!-- IF $CUSTOM_FIELDSET_CLASS --> - <fieldset class="{$CUSTOM_FIELDSET_CLASS}"> - <!-- ELSE --> - <fieldset class="jumpbox"> - <!-- ENDIF --> - {HIDDEN_FIELDS_FOR_JUMPBOX} - <label for="f" accesskey="j"><!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF -->{L_COLON}</label> - <select name="f" id="f" onchange="if(this.options[this.selectedIndex].value != -1){ document.forms['jumpbox'].submit() }"> + <div class="dropdown-container dropdown-container-{S_CONTENT_FLOW_END}<!-- IF not S_IN_MCP --> dropdown-up<!-- ENDIF --> dropdown-{S_CONTENT_FLOW_BEGIN} dropdown-button-control" id="jumpbox"> + <span title="<!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF -->" class="dropdown-trigger button dropdown-select"> + <!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF --> + </span> + <div class="dropdown hidden"> + <div class="pointer"><div class="pointer-inner"></div></div> + <ul class="dropdown-contents"> <!-- BEGIN jumpbox_forums --> - <!-- IF jumpbox_forums.S_FORUM_COUNT == 1 --><option value="-1">------------------</option><!-- ENDIF --> - <option value="{jumpbox_forums.FORUM_ID}"{jumpbox_forums.SELECTED}><!-- BEGIN level --> <!-- END level -->{jumpbox_forums.FORUM_NAME}</option> + <!-- IF jumpbox_forums.FORUM_ID neq -1 --> + <li><!-- BEGIN level --> <!-- END level --><a href="{jumpbox_forums.LINK}">{jumpbox_forums.FORUM_NAME}</a></li> + <!-- ENDIF --> <!-- END jumpbox_forums --> - </select> - <input type="submit" value="{L_GO}" class="button2" /> - </fieldset> - </form> + </ul> + </div> + </div> <!-- ELSE --> <br /><br /> diff --git a/phpBB/styles/prosilver/template/viewtopic_body.html b/phpBB/styles/prosilver/template/viewtopic_body.html index 481305e0d7..b764979f97 100644 --- a/phpBB/styles/prosilver/template/viewtopic_body.html +++ b/phpBB/styles/prosilver/template/viewtopic_body.html @@ -350,6 +350,21 @@ <!-- INCLUDE viewtopic_topic_tools.html --> + <!-- IF .quickmod --> + <div class="dropdown-container dropdown-container-{S_CONTENT_FLOW_BEGIN} dropdown-up dropdown-{S_CONTENT_FLOW_END} dropdown-button-control" id="quickmod"> + <span title="{L_QUICK_MOD}" class="dropdown-trigger button icon-button modtools-icon dropdown-select">{L_QUICK_MOD}</span> + <div class="dropdown hidden"> + <div class="pointer"><div class="pointer-inner"></div></div> + <ul class="dropdown-contents"> + <!-- BEGIN quickmod --> + <!-- DEFINE $QUICKMOD_AJAX = (quickmod.VALUE in ['lock', 'unlock', 'delete_topic', 'restore_topic', 'make_normal', 'make_sticky', 'make_announce', 'make_global']) --> + <li><a href="{quickmod.LINK}"<!-- IF $QUICKMOD_AJAX --> data-ajax="true" data-refresh="true"<!-- ENDIF -->>{quickmod.TITLE}</a></li> + <!-- END quickmod --> + </ul> + </div> + </div> + <!-- ENDIF --> + <!-- IF .pagination or TOTAL_POSTS --> <div class="pagination"> {TOTAL_POSTS} @@ -366,21 +381,6 @@ <!-- EVENT viewtopic_body_footer_before --> <!-- INCLUDE jumpbox.html --> -<!-- IF .quickmod --> - <form method="post" action="{S_MOD_ACTION}" id="quickmodform"> - <fieldset class="quickmod"> - <label for="quick-mod-select">{L_QUICK_MOD}{L_COLON}</label> - <select name="action" id="quick-mod-select"> - <!-- BEGIN quickmod --> - <option value="{quickmod.VALUE}">{quickmod.TITLE}</option> - <!-- END quickmod --> - </select> - <input type="submit" value="{L_GO}" class="button2" /> - {S_FORM_TOKEN} - </fieldset> - </form> -<!-- ENDIF --> - <!-- IF S_DISPLAY_ONLINE_LIST --> <div class="stat-block online-list"> <h3><!-- IF U_VIEWONLINE --><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a><!-- ELSE -->{L_WHO_IS_ONLINE}<!-- ENDIF --></h3> diff --git a/phpBB/styles/prosilver/theme/buttons.css b/phpBB/styles/prosilver/theme/buttons.css index d0efee3934..18c71d251e 100644 --- a/phpBB/styles/prosilver/theme/buttons.css +++ b/phpBB/styles/prosilver/theme/buttons.css @@ -21,8 +21,8 @@ vertical-align: bottom; } -.icon-button.dropdown-select { - padding-right: 28px; +.dropdown-select { + padding-right: 24px; } .icon-button:before { @@ -35,6 +35,10 @@ width: 12px; } +.dropdown-select.icon-button:before { + margin-right: 4px; +} + .dropdown-select:after { background-position: -103px 10px; border-left: 1px solid; @@ -58,6 +62,10 @@ margin-right: 5px; } +#jumpbox .dropdown-select { + margin: 0; +} + /* Big button images */ .reply-icon:before, .pmreply-icon:before { background-position: -20px 0; } .reply-icon:hover:before, .pmreply-icon:hover:before { background-position: -20px -20px; } @@ -73,7 +81,11 @@ .forwardpm-icon:before { background-position: -40px 0; } .forwardpm-icon:hover:before { background-position: -40px -20px; } -.tools-icon:before { +.modtools-icon { + font-size: 0; +} + +.tools-icon:before, .modtools-icon:before { background-position: -80px 0; height: 16px; margin-top: 2px; @@ -83,6 +95,10 @@ .dropdown-visible .tools-icon:before, .nojs .dropdown-container:hover .tools-icon:before { background-position: -80px -20px; } +.modtools-icon:before { background-position: -225px 0; } +.dropdown-visible .modtools-icon:before, +.nojs .dropdown-container:hover .modtools-icon:before { background-position: -225px -20px; } + /* Icon images ---------------------------------------- */ .small-icon { diff --git a/phpBB/styles/prosilver/theme/colours.css b/phpBB/styles/prosilver/theme/colours.css index 1341c4def2..606a788036 100644 --- a/phpBB/styles/prosilver/theme/colours.css +++ b/phpBB/styles/prosilver/theme/colours.css @@ -614,6 +614,10 @@ Colours and backgrounds for buttons.css color: #D31141; } +.dropdown-select, .dropdown-select:visited { + color: #536482; +} + .button:hover, .dropdown-visible .dropdown-select, .nojs .dropdown-container:hover .dropdown-select { border-color: #0a8ed0; background-image: -moz-linear-gradient(top, #E9E9E9, #FFFFFF); diff --git a/phpBB/styles/prosilver/theme/common.css b/phpBB/styles/prosilver/theme/common.css index 881b2357b0..749d02c50c 100644 --- a/phpBB/styles/prosilver/theme/common.css +++ b/phpBB/styles/prosilver/theme/common.css @@ -477,6 +477,14 @@ ul.linklist.bulletin > li.no-bulletin:before { position: relative; } +.dropdown-container-right { + float: right; +} + +.dropdown-container-left { + float: left; +} + .nojs .dropdown-container:hover .dropdown { display: block !important; } @@ -595,6 +603,14 @@ ul.linklist.bulletin > li.no-bulletin:before { text-align: left; } +.dropdown-contents > li { + padding-right: 15px; +} + +.dropdown-nonscroll > li { + padding-right: 0; +} + .dropdown li:first-child, .dropdown li.separator + li, .dropdown li li { border-top: 0; } @@ -1089,6 +1105,14 @@ form > p.post-notice strong { line-height: 20px; } +#jumpbox { + margin: 5px 0; +} + +.stat-block { + clear: both; +} + #top { position: absolute; top: -20px; diff --git a/phpBB/styles/prosilver/theme/forms.css b/phpBB/styles/prosilver/theme/forms.css index 0c0a3e5ca9..a1d70dedf6 100644 --- a/phpBB/styles/prosilver/theme/forms.css +++ b/phpBB/styles/prosilver/theme/forms.css @@ -201,24 +201,6 @@ fieldset.forum-selection2 { float: right; } -/* Jumpbox */ -fieldset.jumpbox { - text-align: right; - margin-top: 15px; - min-height: 2.5em; -} - -fieldset.jumpbox select { - max-width: 50%; -} - -fieldset.quickmod { - width: 50%; - float: right; - text-align: right; - height: 2.5em; -} - /* Submit button fieldset */ fieldset.submit-buttons { text-align: center; diff --git a/phpBB/styles/prosilver/theme/images/icons_button.png b/phpBB/styles/prosilver/theme/images/icons_button.png Binary files differindex a45a0cc2ba..da9ae6f1b4 100644 --- a/phpBB/styles/prosilver/theme/images/icons_button.png +++ b/phpBB/styles/prosilver/theme/images/icons_button.png diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index d87f7de2b0..23f2fe8e3d 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -523,6 +523,19 @@ gen_forum_auth_level('topic', $forum_id, $topic_data['forum_status']); // Quick mod tools $allow_change_type = ($auth->acl_get('m_', $forum_id) || ($user->data['is_registered'] && $user->data['user_id'] == $topic_data['topic_poster'])) ? true : false; +$s_quickmod_action = append_sid( + "{$phpbb_root_path}mcp.$phpEx", + array( + 'f' => $forum_id, + 't' => $topic_id, + 'start' => $start, + 'quickmod' => 1, + 'redirect' => urlencode(str_replace('&', '&', $viewtopic_url)), + ), + true, + $user->session_id +); + $quickmod_array = array( // 'key' => array('LANG_KEY', $userHasPermissions), @@ -546,7 +559,7 @@ foreach($quickmod_array as $option => $qm_ary) { if (!empty($qm_ary[1])) { - phpbb_add_quickmod_option($option, $qm_ary[0]); + phpbb_add_quickmod_option($s_quickmod_action, $option, $qm_ary[0]); } } @@ -631,7 +644,7 @@ $template->assign_vars(array( 'S_SELECT_SORT_DAYS' => $s_limit_days, 'S_SINGLE_MODERATOR' => (!empty($forum_moderators[$forum_id]) && sizeof($forum_moderators[$forum_id]) > 1) ? false : true, 'S_TOPIC_ACTION' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id" . (($start == 0) ? '' : "&start=$start")), - 'S_MOD_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "f=$forum_id&t=$topic_id" . (($start == 0) ? '' : "&start=$start") . "&quickmod=1&redirect=" . urlencode(str_replace('&', '&', $viewtopic_url)), true, $user->session_id), + 'S_MOD_ACTION' => $s_quickmod_action, 'L_RETURN_TO_FORUM' => $user->lang('RETURN_TO', $topic_data['forum_name']), 'S_VIEWTOPIC' => true, |