Skip to content

Commit

Permalink
Handle large # of projects in project selector
Browse files Browse the repository at this point in the history
Fixes #21121
  • Loading branch information
syncguru authored and vboctor committed Sep 25, 2016
1 parent 67d860e commit 35b21c3
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
35 changes: 10 additions & 25 deletions core/layout_api.php
Expand Up @@ -520,7 +520,7 @@ function layout_navbar_projects_menu() {
echo ' <i class="ace-icon fa fa-angle-down bigger-110"></i>' . "\n";
echo '</a>' . "\n";

echo '<ul class="dropdown-menu dropdown-menu-right dropdown-yellow dropdown-caret dropdown-close">' . "\n";
echo '<ul class="dropdown-menu dropdown-menu-right dropdown-yellow dropdown-caret dropdown-close scrollable-menu">' . "\n";
layout_navbar_projects_list( join( ';', helper_get_current_project_trace() ), true, null, true );
echo '</ul>' . "\n";
echo '</li>' . "\n";
Expand Down Expand Up @@ -594,16 +594,12 @@ function layout_navbar_projects_list( $p_project_id = null, $p_include_all_proje
project_cache_array_rows( $t_project_ids );

if( $p_include_all_projects && $p_filter_project_id !== ALL_PROJECTS ) {
echo '<li><a href="' . helper_mantis_url( 'set_project.php' ) . '?project_id=' . ALL_PROJECTS . '"';
echo ALL_PROJECTS == $p_project_id ? '<li class="active">' : '<li>';
echo '<a href="' . helper_mantis_url( 'set_project.php' ) . '?project_id=' . ALL_PROJECTS . '"';
if( $p_project_id !== null ) {
check_selected( $p_project_id, ALL_PROJECTS, false );
}
if( ALL_PROJECTS == $p_project_id ) {
echo '><i class="ace-icon fa fa-dot-circle-o"></i> ';
} else {
echo '><i class="ace-icon fa fa-circle-o"></i> ';
}
echo lang_get( 'all_projects' ) . ' </a></li>' . "\n";
echo '> ' . lang_get( 'all_projects' ) . ' </a></li>' . "\n";
echo '<li class="divider"></li>' . "\n";
}

Expand All @@ -613,15 +609,11 @@ function layout_navbar_projects_list( $p_project_id = null, $p_include_all_proje
$t_can_report = access_has_project_level( $t_report_bug_threshold, $t_id, $t_user_id );
}

echo '<li><a href="' . helper_mantis_url( 'set_project.php' ) . '?project_id=' . $t_id . '"';
echo 0 == strcmp( $t_id, $p_project_id ) ? '<li class="active">' : '<li>';
echo '<a href="' . helper_mantis_url( 'set_project.php' ) . '?project_id=' . $t_id . '"';
check_selected( $p_project_id, $t_id, false );
check_disabled( $t_id == $p_filter_project_id || !$t_can_report );
if( $t_id == $p_project_id ) {
echo '><i class="ace-icon fa fa-dot-circle-o"></i> ';
} else {
echo '><i class="ace-icon fa fa-circle-o"></i> ';
}
echo string_attribute( project_get_field( $t_id, 'name' ) ) . ' </a></li>' . "\n";
echo '> ' . string_attribute( project_get_field( $t_id, 'name' ) ) . ' </a></li>' . "\n";
layout_navbar_subproject_option_list( $t_id, $p_project_id, $p_filter_project_id, $p_trace, $p_can_report_only );
}
}
Expand Down Expand Up @@ -655,19 +647,12 @@ function layout_navbar_subproject_option_list( $p_parent_id, $p_project_id = nul
$t_full_id = $t_id;
}

echo '<li>';
echo 0 == strcmp( $p_project_id, $t_full_id ) ? '<li class="active">' : '<li>';
echo '<a href="' . helper_mantis_url( 'set_project.php' ) . '?project_id=' . $t_full_id . '"';
check_selected( $p_project_id, $t_full_id, false );
check_disabled( $t_id == $p_filter_project_id || !$t_can_report );
echo '>';
echo str_repeat( '&#160;', count( $p_parents ) * 4 );
if( $t_full_id == $p_project_id ) {
echo '<i class="ace-icon fa fa-dot-circle-o"></i> ';
} else {
echo '<i class="ace-icon fa fa-circle-o"></i> ';
}
echo string_attribute( project_get_field( $t_id, 'name' ) )
. '</a></li>' . "\n";
echo '> ' . str_repeat( '&#160;', count( $p_parents ) * 4 );
echo string_attribute( project_get_field( $t_id, 'name' ) ) . '</a></li>' . "\n";

layout_navbar_subproject_option_list( $t_id, $p_project_id, $p_filter_project_id, $p_trace, $p_can_report_only, $p_parents );
}
Expand Down
16 changes: 16 additions & 0 deletions css/ace-mantis.css
Expand Up @@ -48,6 +48,16 @@
font-size: x-small;
}

.navbar-default .navbar-nav .open .dropdown-menu > .active > a {
background: #e7e7e7 none repeat scroll 0 0;
color: #444 !important;
}

.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover {
color: #fff !important;
}

.uppercase {
text-transform: uppercase;
}
Expand Down Expand Up @@ -249,6 +259,12 @@ textarea.input-xs, select.input-xs[multiple] {
padding: 1px 3px;
}

.scrollable-menu {
height: auto;
max-height: 500px;
overflow-x: hidden;
}

/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) {
.page-content {
Expand Down

0 comments on commit 35b21c3

Please sign in to comment.