Patch #20632 » 0001-Apply-existing-tab-functionality-to-main-menu.patch
app/views/common/_tabs.html.erb | ||
---|---|---|
13 | 13 |
</div> |
14 | 14 |
</div> |
15 | 15 | |
16 |
<script> |
|
17 |
$(document).ready(displayTabsButtons); |
|
18 |
$(window).resize(displayTabsButtons); |
|
19 |
</script> |
|
20 | ||
21 | 16 |
<% tabs.each do |tab| -%> |
22 | 17 |
<%= content_tag('div', render(:partial => tab[:partial], :locals => {:tab => tab} ), |
23 | 18 |
:id => "tab-content-#{tab[:name]}", |
app/views/layouts/base.html.erb | ||
---|---|---|
44 | 44 |
<h1><%= page_header_title %></h1> |
45 | 45 | |
46 | 46 |
<% if display_main_menu?(@project) %> |
47 |
<div id="main-menu"> |
|
47 |
<div id="main-menu" class="tabs">
|
|
48 | 48 |
<%= render_main_menu(@project) %> |
49 |
<div class="tabs-buttons" style="display:none;"> |
|
50 |
<button class="tab-left" onclick="moveTabLeft(this); return false;"></button> |
|
51 |
<button class="tab-right" onclick="moveTabRight(this); return false;"></button> |
|
52 |
</div> |
|
49 | 53 |
</div> |
50 | 54 |
<% end %> |
51 | 55 |
</div> |
lib/redmine/menu_manager.rb | ||
---|---|---|
90 | 90 |
menu_items_for(menu, project) do |node| |
91 | 91 |
links << render_menu_node(node, project) |
92 | 92 |
end |
93 |
links.empty? ? nil : content_tag('ul', links.join("\n").html_safe)
|
|
93 |
links.empty? ? nil : content_tag('ul', links.join.html_safe) |
|
94 | 94 |
end |
95 | 95 | |
96 | 96 |
def render_menu_node(node, project=nil) |
public/javascripts/application.js | ||
---|---|---|
609 | 609 |
}); |
610 | 610 |
} |
611 | 611 | |
612 |
function setupTabs() { |
|
613 |
if($('.tabs').length > 0) { |
|
614 |
displayTabsButtons(); |
|
615 |
$(window).resize(displayTabsButtons); |
|
616 |
} |
|
617 |
} |
|
618 | ||
612 | 619 |
function hideOnLoad() { |
613 | 620 |
$('.hol').hide(); |
614 | 621 |
} |
... | ... | |
655 | 662 |
$(document).ready(hideOnLoad); |
656 | 663 |
$(document).ready(addFormObserversForDoubleSubmit); |
657 | 664 |
$(document).ready(defaultFocus); |
665 |
$(document).ready(setupTabs); |
public/stylesheets/application.css | ||
---|---|---|
10 | 10 |
pre, code {font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace;} |
11 | 11 | |
12 | 12 |
/***** Layout *****/ |
13 |
#wrapper {background: white;} |
|
13 |
#wrapper {background: white;overflow: hidden;}
|
|
14 | 14 | |
15 | 15 |
#top-menu {background: #3E5B76; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;} |
16 | 16 |
#top-menu ul {margin: 0; padding: 0;} |
... | ... | |
31 | 31 |
#header h1 a.ancestor { font-size: 80%; } |
32 | 32 |
#quick-search {float:right;} |
33 | 33 | |
34 |
#main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;} |
|
35 |
#main-menu ul {margin: 0; padding: 0;} |
|
34 |
#main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px; width: 100%;}
|
|
35 |
#main-menu ul {margin: 0; padding: 0; width: 100%; white-space: nowrap;}
|
|
36 | 36 |
#main-menu li { |
37 |
float:left;
|
|
37 |
float:none;
|
|
38 | 38 |
list-style-type:none; |
39 | 39 |
margin: 0px 2px 0px 0px; |
40 | 40 |
padding: 0px 0px 0px 0px; |
41 | 41 |
white-space:nowrap; |
42 |
display:inline-block; |
|
42 | 43 |
} |
43 | 44 |
#main-menu li a { |
44 | 45 |
display: block; |
... | ... | |
50 | 51 |
} |
51 | 52 |
#main-menu li a:hover {background:#759FCF; color:#fff;} |
52 | 53 |
#main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;} |
54 |
#main-menu .tabs-buttons { |
|
55 |
right: 6px; |
|
56 |
background-color: transparent; |
|
57 |
border-bottom-color: transparent; |
|
58 |
} |
|
53 | 59 | |
54 | 60 |
#admin-menu ul {margin: 0; padding: 0;} |
55 | 61 |
#admin-menu li {margin: 0; padding: 0 0 6px 0; list-style-type:none;} |