View Issue Details

IDProjectCategoryView StatusLast Update
0022104mantisbtuipublic2017-02-26 21:19
ReportergthomasAssigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status confirmedResolutionopen 
Product Version2.0.0 
Target Version2.3.0Fixed in Version 
Summary0022104: My View Page layout misses some boxes
Description

The n/2th box and the last box is hidden.

The code in my_view_page.php is simply wrong: the if/elseif/else prints the box only in the else branch, and skips it in the if branch, when it ends the first column, starts the second, but does not print the n/2th box.

Tagspatch

Relationships

related to 0019586 closeddregad Support disabling timeline feature based on access level 

Activities

gthomas

gthomas

2017-01-02 15:52

reporter  

my_view_page.php.patch (4,122 bytes)
diff --git a/my_view_page.php b/my_view_page.php
index f3a479462..9893ac497 100644
--- a/my_view_page.php
+++ b/my_view_page.php
@@ -85,8 +85,6 @@ $t_page_count = null;
 
 $t_boxes = config_get( 'my_view_boxes' );
 asort( $t_boxes );
-reset( $t_boxes );
-#print_r ($t_boxes);
 
 $t_project_id = helper_get_current_project();
 $t_timeline_view_threshold_access = access_has_project_level( config_get( 'timeline_view_threshold' ) );
@@ -95,56 +93,59 @@ $t_timeline_view_class = ( $t_timeline_view_threshold_access ) ? "col-md-7" : "c
 <div class="col-xs-12 <?php echo $t_timeline_view_class ?>">
 
 <?php
-$t_number_of_boxes = count ( $t_boxes );
 $t_boxes_position = config_get( 'my_view_boxes_fixed_position' );
-$t_counter = 0;
 $t_two_columns_applied = false;
 
 define( 'MY_VIEW_INC_ALLOW', true );
 
-while (list ($t_box_title, $t_box_display) = each ($t_boxes)) {
-		# don't display bugs that are set as 0
+# First, filter out the non-visible boxes
+$t_box_titles = array();
+foreach( $t_boxes as $t_box_title => $t_box_display ) {
+	# don't display bugs that are set as 0
 	if ($t_box_display == 0) {
-		$t_number_of_boxes = $t_number_of_boxes - 1;
+		continue;
 	}
-		# don't display "Assigned to Me" bugs to users that bugs can't be assigned to
-	else if(
-		$t_box_title == 'assigned'
-		&&  ( current_user_is_anonymous()
+	# don't display "Assigned to Me" bugs to users that bugs can't be assigned to
+	if( $t_box_title == 'assigned'
+		&& ( current_user_is_anonymous()
 			|| !access_has_project_level( config_get( 'handle_bug_threshold' ), $t_project_id, $t_current_user_id )
 		)
 	) {
-		$t_number_of_boxes = $t_number_of_boxes - 1;
+		continue;
 	}
-		# don't display "Monitored by Me" bugs to users that can't monitor bugs
-	else if( $t_box_title == 'monitored' && ( current_user_is_anonymous() OR !access_has_project_level( config_get( 'monitor_bug_threshold' ), $t_project_id, $t_current_user_id ) ) ) {
-		$t_number_of_boxes = $t_number_of_boxes - 1;
+	# don't display "Monitored by Me" bugs to users that can't monitor bugs
+	if( $t_box_title == 'monitored' && ( current_user_is_anonymous() || !access_has_project_level( config_get( 'monitor_bug_threshold' ), $t_project_id, $t_current_user_id ) ) ) {
+		continue;
 	}
-		# don't display "Reported by Me" bugs to users that can't report bugs
-	else if( in_array( $t_box_title, array( 'reported', 'feedback', 'verify' ) ) &&
+	# don't display "Reported by Me" bugs to users that can't report bugs
+	if( in_array( $t_box_title, array( 'reported', 'feedback', 'verify' ) ) &&
 		( current_user_is_anonymous() OR !access_has_project_level( config_get( 'report_bug_threshold' ), $t_project_id, $t_current_user_id ) ) ) {
-		$t_number_of_boxes = $t_number_of_boxes - 1;
-			}
-
-			# display the box
-	else {
-		if( !$t_timeline_view_threshold_access ) {
-			if ($t_counter >= $t_number_of_boxes / 2 && !$t_two_columns_applied) {
-				echo '</div>';
-				echo '<div class="col-xs-12 col-md-6">';
-				$t_two_columns_applied = true;
-			} elseif ($t_counter >= $t_number_of_boxes && $t_two_columns_applied) {
-				echo '</div>';
-			} else {
-				include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'my_view_inc.php' );
-				echo '<div class="space-10"></div>';
-			}
-			$t_counter++;
-		} else {
-			include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'my_view_inc.php' );
-			echo '<div class="space-10"></div>';
-		}
+		continue;
 	}
+
+	$t_box_titles[] = $t_box_title;
+}
+
+if( $t_timeline_view_threshold_access ) {
+	include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'my_view_inc.php' );
+	echo '<div class="space-10"></div>';
+}
+
+$t_counter = 0;
+$t_number_of_boxes = count( $t_box_titles );
+foreach( $t_box_titles as $t_box_title) {
+	if ($t_counter >= $t_number_of_boxes / 2 && !$t_two_columns_applied) {
+		echo '</div>';
+		echo '<div class="col-xs-12 col-md-6">';
+		$t_two_columns_applied = true;
+	}
+	# display the box
+	include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'my_view_inc.php' );
+	echo '<div class="space-10"></div>';
+	$t_counter++;
+}
+if ($t_two_columns_applied && $t_counter != 0) {
+	echo '</div>';
 }
 ?>
 </div>
my_view_page.php.patch (4,122 bytes)
dregad

dregad

2017-01-03 07:45

developer   ~0054902

I can confirm the problem, which only occurs when the Timeline is hidden.

The proposed patch is equally wrong however, because it does not work when the Timeline is enabled (see attached screenshot).



screenshot-my_view.png (29,908 bytes)
screenshot-my_view.png (29,908 bytes)
syncguru

syncguru

2017-01-26 02:05

developer   ~0055330

Hmm, I cannot reproduce this issue. Here is a snapshot of what I am getting:



Issue History

Date Modified Username Field Change
2017-01-02 15:52 gthomas New Issue
2017-01-02 15:52 gthomas File Added: my_view_page.php.patch
2017-01-02 16:08 atrol Relationship added related to 0019586
2017-01-02 16:30 vboctor Tag Attached: patch
2017-01-03 07:42 dregad Status new => confirmed
2017-01-03 07:42 dregad Target Version => 2.0.1
2017-01-03 07:45 dregad File Added: screenshot-my_view.png
2017-01-03 07:45 dregad Note Added: 0054902
2017-01-03 10:03 Mani7tam Issue cloned: 0022106
2017-01-26 02:05 syncguru File Added: Screenshot from 2017-01-25 23-03-13.png
2017-01-26 02:05 syncguru Note Added: 0055330
2017-02-01 22:49 vboctor Target Version 2.0.1 => 2.2.0
2017-02-26 21:19 vboctor Target Version 2.2.0 => 2.3.0