Merge remote-tracking branch 'prototech/ticket/11241' into develop

* prototech/ticket/11241:
  [ticket/11241] Retain button gradient when menu is active.
  [ticket/11241] Fix the disappearing dropdown when responsive changes take effect
  [ticket/11241] Add border to dropdown menu options.
  [ticket/11241] Add events & var for extensions to dropdown.
  [ticket/11241] Fix the dropdown in RTL languages.
  [ticket/11241] Use DEFINE for the block.
  [ticket/11241] Consolidate topic actions into "Topic tools" dropdown.
  [ticket/11241] Add dropdown control button.
This commit is contained in:
Joas Schilling 2013-12-06 12:54:32 +01:00
commit 71169de823
15 changed files with 193 additions and 37 deletions

View file

@ -931,6 +931,14 @@ phpbb.toggleDropdown = function() {
return false;
};
/**
* Toggle dropdown submenu
*/
phpbb.toggleSubmenu = function(e) {
$(this).siblings('.dropdown-submenu').toggle();
e.preventDefault();
}
/**
* Register dropdown menu
* Shows/hides dropdown, decides which side to open to
@ -962,6 +970,7 @@ phpbb.registerDropdown = function(toggle, dropdown, options)
toggle.data('dropdown-options', ops);
toggle.click(phpbb.toggleDropdown);
$('.dropdown-toggle-submenu', ops.parent).click(phpbb.toggleSubmenu);
};
/**

View file

@ -399,3 +399,17 @@ viewtopic_topic_title_prepend
+ styles/subsilver2/template/viewtopic_body.html
* Since: 3.1.0-a1
* Purpose: Add content directly before the topic title link on the View topic screen
viewtopic_topic_tools_after
===
* Locations:
+ styles/prosilver/template/viewtopic_topic_tools.html
* Since: 3.1.0-a3
* Purpose: Add a new topic tool after the rest of the existing ones
viewtopic_topic_tools_before
===
* Locations:
+ styles/prosilver/template/viewtopic_topic_tools.html
* Since: 3.1.0-a3
* Purpose: Add a new topic tool before the rest of the existing ones

View file

@ -1464,6 +1464,8 @@ function phpbb_gen_download_links($param_key, $param_val, $phpbb_root_path, $php
}
$methods = compress::methods();
// Sort by preferred type.
$methods = array_intersect(array('.zip', '.tar.bz2', '.tar.gz', '.tar'), $methods);
$links = array();
foreach ($methods as $method)

View file

@ -104,6 +104,7 @@ $lang = array_merge($lang, array(
'SUBMIT_VOTE' => 'Submit vote',
'TOPIC_TOOLS' => 'Topic tools',
'TOTAL_VOTES' => 'Total votes',
'UNLOCK_TOPIC' => 'Unlock topic',

View file

@ -12,9 +12,6 @@
</li>
<!-- IF not S_IS_BOT -->
<!-- IF U_WATCH_FORUM_LINK --><li class="small-icon icon-<!-- IF S_WATCHING_FORUM -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->"><a href="{U_WATCH_FORUM_LINK}" title="{S_WATCH_FORUM_TITLE}" data-ajax="toggle_link" data-toggle-class="small-icon icon-<!-- IF not S_WATCHING_FORUM -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->" data-toggle-text="{S_WATCH_FORUM_TOGGLE}" data-toggle-url="{U_WATCH_FORUM_TOGGLE}">{S_WATCH_FORUM_TITLE}</a></li><!-- ENDIF -->
<!-- IF U_WATCH_TOPIC --><li class="small-icon icon-<!-- IF S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->"><a href="{U_WATCH_TOPIC}" title="{S_WATCH_TOPIC_TITLE}" data-ajax="toggle_link" data-toggle-class="small-icon icon-<!-- IF not S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->" data-toggle-text="{S_WATCH_TOPIC_TOGGLE}" data-toggle-url="{U_WATCH_TOPIC_TOGGLE}">{S_WATCH_TOPIC_TITLE}</a></li><!-- ENDIF -->
<!-- IF U_BOOKMARK_TOPIC --><li class="small-icon icon-bookmark"><a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}" data-ajax="alt_text" data-alt-text="{S_BOOKMARK_TOGGLE}">{S_BOOKMARK_TOPIC}</a></li><!-- ENDIF -->
<!-- IF U_BUMP_TOPIC --><li class="small-icon icon-bump"><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}" data-ajax="true">{L_BUMP_TOPIC}</a></li><!-- ENDIF -->
<!-- ENDIF -->
<li class="rightside">{S_TIMEZONE}</li>
<!-- IF not S_IS_BOT --><li class="rightside"><a href="{U_DELETE_COOKIES}" data-ajax="true" data-refresh="true">{L_DELETE_COOKIES}</a></li><!-- ENDIF -->

View file

@ -33,6 +33,8 @@
<!-- ENDIF -->
</div>
<!-- INCLUDE viewtopic_topic_tools.html -->
<!-- IF S_DISPLAY_SEARCHBOX -->
<div class="search-box">
<form method="get" id="topic-search" action="{S_SEARCHBOX_ACTION}">
@ -55,9 +57,8 @@
<!-- ENDIF -->
</div>
<!-- ENDIF -->
</div>
<div class="clear"></div>
</div>
<!-- IF S_HAS_POLL -->
<form method="post" action="{S_POLL_ACTION}" data-ajax="vote_poll" class="topic_poll">
@ -299,16 +300,7 @@
<!-- ENDIF -->
</div>
<!-- IF S_HAS_ATTACHMENTS -->
<div class="dl_links">
<strong>{L_DOWNLOAD_ALL_ATTACHMENTS}{L_COLON}</strong>
<ul>
<!-- BEGIN dl_method -->
<li>[ <a href="{dl_method.LINK}">{dl_method.TYPE}</a> ]</li>
<!-- END dl_method -->
</ul>
</div>
<!-- ENDIF -->
<!-- INCLUDE viewtopic_topic_tools.html -->
<!-- IF .pagination or TOTAL_POSTS -->
<div class="pagination">
@ -320,6 +312,7 @@
<!-- ENDIF -->
</div>
<!-- ENDIF -->
<div class="clear"></div>
</div>
<!-- EVENT viewtopic_body_footer_before -->

View file

@ -0,0 +1,39 @@
<!-- IF not S_IS_BOT and (U_WATCH_TOPIC or U_BOOKMARK_TOPIC or U_BUMP_TOPIC or S_HAS_ATTACHMENTS or S_DISPLAY_TOPIC_TOOLS) -->
<div class="dropdown-container dropdown-button-control topic-tools">
<span title="{L_TOPIC_TOOLS}" class="dropdown-trigger dropdown-select dropdown-select-icon tools-icon"><span></span></span>
<div class="dropdown hidden">
<div class="pointer"><div class="pointer-inner"></div></div>
<ul class="dropdown-contents">
<!-- EVENT viewtopic_topic_tools_before -->
<!-- IF U_WATCH_TOPIC -->
<li class="small-icon icon-<!-- IF S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->">
<a href="{U_WATCH_TOPIC}" title="{S_WATCH_TOPIC_TITLE}" data-ajax="toggle_link" data-toggle-class="small-icon icon-<!-- IF not S_WATCHING_TOPIC -->unsubscribe<!-- ELSE -->subscribe<!-- ENDIF -->" data-toggle-text="{S_WATCH_TOPIC_TOGGLE}" data-toggle-url="{U_WATCH_TOPIC_TOGGLE}">
{S_WATCH_TOPIC_TITLE}
</a>
</li>
<!-- ENDIF -->
<!-- IF U_BOOKMARK_TOPIC -->
<li class="small-icon icon-bookmark">
<a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}" data-ajax="alt_text" data-alt-text="{S_BOOKMARK_TOGGLE}">
{S_BOOKMARK_TOPIC}
</a>
</li>
<!-- ENDIF -->
<!-- IF U_BUMP_TOPIC --><li class="small-icon icon-bump"><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}" data-ajax="true">{L_BUMP_TOPIC}</a></li><!-- ENDIF -->
<!-- IF S_HAS_ATTACHMENTS -->
<li class="small-icon icon-download">
<a class="dropdown-toggle-submenu" href="{U_DOWNLOAD_ALL_ATTACHMENTS}" title="{L_DOWNLOAD_ALL_ATTACHMENTS}">{L_DOWNLOAD_ALL_ATTACHMENTS}</a>
<ul class="dropdown-submenu hidden">
<li>
<!-- BEGIN dl_method -->
<a href="{dl_method.LINK}">{dl_method.TYPE}</a><!-- IF not dl_method.S_LAST_ROW --> &bull; <!-- ENDIF -->
<!-- END dl_method -->
</li>
</ul>
</li>
<!-- ENDIF -->
<!-- EVENT viewtopic_topic_tools_after -->
</ul>
</div>
</div>
<!-- ENDIF -->

View file

@ -90,6 +90,21 @@
text-align: left;
}
/* Dropdown menu
---------------------------------------- */
.rtl .dropdown-container.topic-tools {
float: right;
}
.rtl .dropdown li {
text-align: right;
}
.rtl .dropdown li li {
padding-left: 0;
padding-right: 10px;
}
/* Table styles
----------------------------------------*/
.rtl table.table1 thead th {

View file

@ -11,13 +11,13 @@
}
/* Rollover state */
.buttons div {
.buttons div, .dropdown-select {
float: left;
margin: 0 5px 0 0;
}
/* Rolloff state */
.buttons div a {
.buttons div a, .dropdown-select {
display: inline-block;
line-height: 17.5px;
height: 18px;
@ -38,7 +38,7 @@
.buttons div span { display: none; }
.buttons div a:after {
.buttons div a:after, .dropdown-select:after {
content: '';
display: block;
position: absolute;
@ -54,6 +54,35 @@
background-position: 0 -20px;
}
.dropdown-select {
cursor: pointer;
font-family: inherit;
font-size: 1em;
font-weight: normal;
}
.dropdown-select:after {
background-position: -103px 10px;
border-left: 1px solid;
margin-top: 0;
top: 0;
right: 0;
height: 21px;
width: 15px;
}
.dropdown-visible .dropdown-select:after, .nojs .dropdown-container:hover .dropdown-select:after {
background-position: -103px -10px;
}
.dropdown-select-icon:before {
content: '';
display: block;
float: left;
margin-right: 4px;
margin-top: 2px;
}
/* Big button images */
.buttons div.reply-icon a:after, .buttons div.pmreply-icon a:after { background-position: -20px 0; }
.buttons div.reply-icon a:hover:after, .buttons div.pmreply-icon a:hover:after { background-position: -20px -20px; }
@ -67,6 +96,11 @@
.buttons div.forwardpm-icon a:after { background-position: -40px 0; }
.buttons div.forwardpm-icon a:hover:after { background-position: -40px -20px; }
.dropdown-select.tools-icon:before { background-position: -80px 0; height: 16px; width: 16px; }
.dropdown-visible .dropdown-select.tools-icon:before,
.nojs .dropdown-container:hover .dropdown-select.tools-icon:before { background-position: -80px -20px; }
/* Sub-header (navigation bar)
--------------------------------------------- */
a.print, a.sendemail {

View file

@ -231,7 +231,6 @@ p.post-notice.reported:before, p.post-notice.error:before {
background-image: url("./images/icon_topic_reported.gif");
}
/*
--------------------------------------------------------------
Colours and backgrounds for links.css
@ -655,7 +654,7 @@ a.sendemail {
background-image: url("./images/icon_sendemail.gif");
}
.buttons div a {
.buttons div a, .dropdown-select {
border-color: #C7C3BF;
background-color: #FFFFFF;
background-image: -moz-linear-gradient(top, #FFFFFF, #E9E9E9);
@ -668,7 +667,16 @@ a.sendemail {
color: #BC2A4D !important;
}
.buttons div a:hover {
.dropdown-select {
color: #5C6482 !important;
}
.dropdown-select:after {
border-color: #DADADA;
}
.buttons div a:hover, .dropdown-select:hover, .dropdown-visible .dropdown-select,
.dropdown-visible .dropdown-select:hover, .nojs .dropdown-container:hover .dropdown-select {
border-color: #0a8ed0;
background-image: -moz-linear-gradient(top, #E9E9E9, #FFFFFF);
background-image: -webkit-linear-gradient(top, #E9E9E9, #FFFFFF);
@ -678,7 +686,16 @@ a.sendemail {
text-shadow: 1px 1px 0 #FFFFFF, -1px -1px 0 #FFFFFF, -1px -1px 0 rgba(188, 42, 77, 0.2);
}
.buttons div a:after {
.dropdown-select:hover {
border-color: #C7C3BF;
}
.dropdown-visible .dropdown-select, .dropdown-visible .dropdown-select:hover, .nojs .dropdown-container:hover .dropdown-select {
border-color: #A6B2BA;
color: #105289 !important;
}
.buttons div a:after, .dropdown-select-icon:before, .dropdown-select:after {
background-image: url("images/buttons.png");
}
@ -698,6 +715,7 @@ a.sendemail {
.icon-search, .responsive-search a { background-image: url("./images/icon_search.gif"); }
.icon-notification { background-image: url("./images/icon_notification.gif"); }
.icon-pm { background-image: url("./images/icon_pm.gif"); }
.icon-download { background-image: url("./images/icon_download.gif"); }
/* Profile & navigation icons */
.email-icon, .email-icon a { background-image: url("./images/icon_contact_email.gif"); }
@ -1162,6 +1180,10 @@ ul.linklist li.responsive-menu a.responsive-menu-link:hover:before, ul.linklist
box-shadow: 1px 0 5px rgba(0, 0, 0, 0.2);
}
.dropdown li, .dropdown li li {
border-color: #DCDCDC;
}
#minitabs .dropdown-contents {
background-color: #F1F8FF;
}

View file

@ -463,6 +463,10 @@ ul.linklist.bulletin li.no-bulletin:before {
padding: 9px 0 0;
}
.dropdown-container.topic-tools {
float: left;
}
.dropdown-up .dropdown {
top: auto;
bottom: 1.2em;
@ -474,6 +478,15 @@ ul.linklist.bulletin li.no-bulletin:before {
right: 0;
}
.dropdown-button-control .dropdown {
top: 24px;
}
.dropdown-button-control.dropdown-up .dropdown {
top: auto;
bottom: 24px;
}
.dropdown .pointer, .dropdown .pointer-inner {
position: absolute;
width: 0;
@ -535,12 +548,35 @@ ul.linklist.bulletin li.no-bulletin:before {
}
.dropdown li {
float: none;
border-bottom: 1px dotted transparent;
float: none !important;
line-height: normal !important;
font-size: 1em !important;
list-style: none;
margin: 0;
padding-top: 4px;
padding-bottom: 4px;
white-space: nowrap;
text-align: left;
}
.dropdown li:last-child, .dropdown li li {
border-bottom: 0;
}
.dropdown li li:first-child {
margin-top: 4px;
}
.dropdown li li:last-child {
padding-bottom: 0;
}
.dropdown li li {
border-top: 1px dotted transparent;
padding-left: 10px;
}
.wrap .dropdown li, .dropdown.wrap li, #notification_list li {
white-space: normal;
}

BIN
phpBB/styles/prosilver/theme/images/buttons.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

View file

@ -468,10 +468,6 @@ p.rightside {
float: none;
}
.topic-actions {
overflow: hidden;
}
fieldset.quickmod {
width: auto;
float: none;
@ -511,17 +507,14 @@ fieldset.display-actions {
margin: 0;
}
.topic-actions > div {
float: none;
overflow: hidden;
clear: both;
}
.topic-actions > .pagination, fieldset.jumpbox {
text-align: center;
}
.topic-actions > .pagination {
float: none;
overflow: hidden;
clear: both;
padding-bottom: 1px;
}

View file

@ -1384,16 +1384,17 @@ if (sizeof($attach_list))
}
}
$template->assign_vars(array(
'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
));
$methods = phpbb_gen_download_links('topic_id', $topic_id, $phpbb_root_path, $phpEx);
foreach ($methods as $method)
{
$template->assign_block_vars('dl_method', $method);
}
$template->assign_vars(array(
'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
'U_DOWNLOAD_ALL_ATTACHMENTS' => $methods[0]['LINK'],
));
// Instantiate BBCode if need be
if ($bbcode_bitfield !== '')
{