View Issue Details

IDProjectCategoryView StatusLast Update
0010773mantisbttime trackingpublic2009-12-23 06:23
Reporterpolzin Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status acknowledgedResolutionopen 
Product Version1.2.0rc1 
Summary0010773: Time tracking stopwatch is not displayed on some pages
Description

The stopwatch is displayed in bugnode_add_inc.php, but not on

bug_change_status_page
bug_update_page

Furthmore, the sometime "private_bugnote_threshold" is required, sometimes not. To remove code duplication I moved all into a time_tracking_inc.php.

Additional Information

I attach patches for 1.2 and 1.1

time_tracking_inc.php

  • A parameter $time_tracking_cols is used for the differing colspan in bug_update_page.

javascript:

  • getElementById had to be used, because now the time_tracking is in different forms
  • javascript/min contains the /dev version, sure it is easy for you to compress it.
Tagspatch
Attached Files
time_tracking_1_2.patch (10,595 bytes)   
diff --git a/bug_change_status_page.php b/bug_change_status_page.php
index 5fd7be2..7891ec9 100644
--- a/bug_change_status_page.php
+++ b/bug_change_status_page.php
@@ -323,20 +323,7 @@ if ( ( $f_new_status >= $t_resolved ) && ( $t_closed > $f_new_status ) ) { ?>
 </tr>
 <?php } ?>
 
-<?php if ( config_get('time_tracking_enabled') ) { ?>
-<?php if ( access_has_bug_level( config_get( 'private_bugnote_threshold' ), $f_bug_id ) ) { ?>
-<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
-<tr <?php echo helper_alternate_class() ?>>
-	<td class="category">
-		<?php echo lang_get( 'time_tracking' ) ?> (HH:MM)
-	</td>
-	<td>
-		<input type="text" name="time_tracking" size="5" value="0:00" />
-	</td>
-</tr>
-<?php } ?>
-<?php } ?>
-<?php } ?>
+<?php include( 'time_tracking_inc.php' ); ?>
 
 <!-- Submit Button -->
 <tr>
diff --git a/bug_update_advanced_page.php b/bug_update_advanced_page.php
index c8de400..cd75b1f 100644
--- a/bug_update_advanced_page.php
+++ b/bug_update_advanced_page.php
@@ -629,13 +629,8 @@ if ( access_has_bug_level( config_get( 'private_bugnote_threshold' ), $tpl_bug_i
 }
 
 # Time Tracking (if permitted)
-if ( config_get('time_tracking_enabled') ) {
-	if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $tpl_bug_id ) ) {
-		echo '<tr ', helper_alternate_class(), '>';
-		echo '<td class="category">', lang_get( 'time_tracking' ), ' (HH:MM)</td>';
-		echo '<td colspan="5"><input type="text" name="time_tracking" size="5" value="0:00" /></td></tr>';
-	}
-}
+$t_time_tracking_cols = 5;
+include( 'time_tracking_inc.php' );
 
 # Submit Button
 echo '<tr><td class="center" colspan="6">';
diff --git a/bugnote_add_inc.php b/bugnote_add_inc.php
index 113af87..9f317b5 100644
--- a/bugnote_add_inc.php
+++ b/bugnote_add_inc.php
@@ -70,26 +70,7 @@
 </tr>
 <?php } ?>
 
-<?php if ( config_get('time_tracking_enabled') ) { ?>
-<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
-<tr <?php echo helper_alternate_class() ?>>
-	<td class="category">
-		<?php echo lang_get( 'time_tracking' ) ?> (HH:MM)
-	</td>
-	<td>
-		<?php if ( config_get('time_tracking_stopwatch') && ON == config_get( 'use_javascript' )) { 
-			html_javascript_link( 'time_tracking_stopwatch.js' );
-		?>
-		<input type="text" name="time_tracking" size="5" value="00:00" />
-		<input type="button" name="time_tracking_ssbutton" value="Start" onclick="time_tracking_swstartstop()" />
-		<input type="button" name="time_tracking_reset" value="R" onclick="time_tracking_swreset()" />
-		<?php } else { ?>
-		<input type="text" name="time_tracking" size="5" value="00:00" />
-		<?php } ?>
-	</td>
-</tr>
-<?php } ?>
-<?php } ?>
+<?php include( 'time_tracking_inc.php' ); ?>          
 
 <?php event_signal( 'EVENT_BUGNOTE_ADD_FORM', array( $f_bug_id ) ); ?>
 <tr>
diff --git a/javascript/dev/time_tracking_stopwatch.js b/javascript/dev/time_tracking_stopwatch.js
index cc096ae..1e07836 100644
--- a/javascript/dev/time_tracking_stopwatch.js
+++ b/javascript/dev/time_tracking_stopwatch.js
@@ -2,27 +2,29 @@ var time_tracking_ms = 0;
 var time_tracking_running = 0;
 
 function time_tracking_swstartstop() {
+        time_tracking_ssbutton_element = document.getElementById( 'time_tracking_ssbutton' );
 	if (time_tracking_running == 0) {
 		time_tracking_running = 1;
 		time_tracking_then = new Date();
 		time_tracking_then.setTime(time_tracking_then.getTime() - time_tracking_ms);
-		document.bugnoteadd.time_tracking_ssbutton.value = "Stop";
+		time_tracking_ssbutton_element.value = "Stop";
 	} else {
 		time_tracking_running = 0;
 		time_tracking_now = new Date();
 		time_tracking_ms = time_tracking_now.getTime() - time_tracking_then.getTime();
-		document.bugnoteadd.time_tracking_ssbutton.value = "Start";
+		time_tracking_ssbutton_element.value = "Start";
 	}
 }
 function time_tracking_swreset() {
 	time_tracking_running = 0;
 	time_tracking_ms = 0;
-	document.bugnoteadd.time_tracking.value = "0:00:00";
-	document.bugnoteadd.time_tracking_ssbutton.value = "Start";
+	time_tracking_value_element.value = "0:00:00";
+	time_tracking_ssbutton_element.value = "Start";
 }
 
 function time_tracking_display() {
 	setTimeout("time_tracking_display();", 1000);
+        time_tracking_value_element = document.getElementById( 'time_tracking_value' );
 	if (time_tracking_running == 1) {
 		time_tracking_now = new Date();
 		time_tracking_ms = time_tracking_now.getTime() - time_tracking_then.getTime();
@@ -36,7 +38,7 @@ function time_tracking_display() {
 		if (time_tracking_mins < 10)
 			time_tracking_mins = "0" + time_tracking_mins;
 
-		document.bugnoteadd.time_tracking.value = time_tracking_hours + ":" + time_tracking_mins + ":" + time_tracking_secs;
+		time_tracking_value_element.value = time_tracking_hours + ":" + time_tracking_mins + ":" + time_tracking_secs;
 	}
 }
 
diff --git a/javascript/min/time_tracking_stopwatch.js b/javascript/min/time_tracking_stopwatch.js
index 34a79af..1e07836 100644
--- a/javascript/min/time_tracking_stopwatch.js
+++ b/javascript/min/time_tracking_stopwatch.js
@@ -1 +1,45 @@
-var time_tracking_ms=0;var time_tracking_running=0;function time_tracking_swstartstop(){if(time_tracking_running==0){time_tracking_running=1;time_tracking_then=new Date();time_tracking_then.setTime(time_tracking_then.getTime()-time_tracking_ms);document.bugnoteadd.time_tracking_ssbutton.value="Stop"}else{time_tracking_running=0;time_tracking_now=new Date();time_tracking_ms=time_tracking_now.getTime()-time_tracking_then.getTime();document.bugnoteadd.time_tracking_ssbutton.value="Start"}}function time_tracking_swreset(){time_tracking_running=0;time_tracking_ms=0;document.bugnoteadd.time_tracking.value="0:00:00";document.bugnoteadd.time_tracking_ssbutton.value="Start"}function time_tracking_display(){setTimeout("time_tracking_display();",1000);if(time_tracking_running==1){time_tracking_now=new Date();time_tracking_ms=time_tracking_now.getTime()-time_tracking_then.getTime();time_tracking_seconds=Math.round(time_tracking_ms/1000);time_tracking_hours=Math.floor(time_tracking_seconds/3600);time_tracking_left=time_tracking_seconds-(time_tracking_hours*3600);time_tracking_mins=Math.floor(time_tracking_left/60);time_tracking_secs=time_tracking_left-(time_tracking_mins*60);if(time_tracking_secs<10){time_tracking_secs="0"+time_tracking_secs}if(time_tracking_mins<10){time_tracking_mins="0"+time_tracking_mins}document.bugnoteadd.time_tracking.value=time_tracking_hours+":"+time_tracking_mins+":"+time_tracking_secs}}setTimeout("time_tracking_display();",1000);
\ No newline at end of file
+var time_tracking_ms = 0;
+var time_tracking_running = 0;
+
+function time_tracking_swstartstop() {
+        time_tracking_ssbutton_element = document.getElementById( 'time_tracking_ssbutton' );
+	if (time_tracking_running == 0) {
+		time_tracking_running = 1;
+		time_tracking_then = new Date();
+		time_tracking_then.setTime(time_tracking_then.getTime() - time_tracking_ms);
+		time_tracking_ssbutton_element.value = "Stop";
+	} else {
+		time_tracking_running = 0;
+		time_tracking_now = new Date();
+		time_tracking_ms = time_tracking_now.getTime() - time_tracking_then.getTime();
+		time_tracking_ssbutton_element.value = "Start";
+	}
+}
+function time_tracking_swreset() {
+	time_tracking_running = 0;
+	time_tracking_ms = 0;
+	time_tracking_value_element.value = "0:00:00";
+	time_tracking_ssbutton_element.value = "Start";
+}
+
+function time_tracking_display() {
+	setTimeout("time_tracking_display();", 1000);
+        time_tracking_value_element = document.getElementById( 'time_tracking_value' );
+	if (time_tracking_running == 1) {
+		time_tracking_now = new Date();
+		time_tracking_ms = time_tracking_now.getTime() - time_tracking_then.getTime();
+		time_tracking_seconds = Math.round(time_tracking_ms / 1000) ;
+		time_tracking_hours = Math.floor(time_tracking_seconds / 3600);
+		time_tracking_left = time_tracking_seconds - (time_tracking_hours * 3600);
+		time_tracking_mins = Math.floor(time_tracking_left / 60);
+		time_tracking_secs = time_tracking_left - (time_tracking_mins * 60);
+		if (time_tracking_secs < 10)
+			time_tracking_secs = "0" + time_tracking_secs;
+		if (time_tracking_mins < 10)
+			time_tracking_mins = "0" + time_tracking_mins;
+
+		time_tracking_value_element.value = time_tracking_hours + ":" + time_tracking_mins + ":" + time_tracking_secs;
+	}
+}
+
+setTimeout("time_tracking_display();", 1000);
diff --git a/time_tracking_inc.php b/time_tracking_inc.php
new file mode 100644
index 0000000..9c38adf
--- /dev/null
+++ b/time_tracking_inc.php
@@ -0,0 +1,45 @@
+<?php
+# MantisBT - a php based bugtracking system
+
+# MantisBT is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# MantisBT is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with MantisBT.  If not, see <http://www.gnu.org/licenses/>.
+
+	/**
+	 * @package MantisBT
+	 * @copyright Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
+	 * @copyright Copyright (C) 2002 - 2009  MantisBT Team - mantisbt-dev@lists.sourceforge.net
+	 * @link http://www.mantisbt.org
+	 */
+
+?>
+
+<?php if ( config_get('time_tracking_enabled') ) { ?>
+<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
+<tr <?php echo helper_alternate_class() ?>>
+	<td class="category">
+		<?php echo lang_get( 'time_tracking' ) ?> (HH:MM)
+	</td>
+	<?php echo '<td colspan="' . (isset( $t_time_tracking_cols ) ? $t_time_tracking_cols : 1) . '">'; ?>
+		<?php if ( config_get('time_tracking_stopwatch') && ON == config_get( 'use_javascript' )) { 
+			html_javascript_link( 'time_tracking_stopwatch.js' );
+		?>
+		<input type="text" name="time_tracking" size="5" id="time_tracking_value" value="00:00" />
+		<input type="button" name="time_tracking_ssbutton" value="Start" id="time_tracking_ssbutton" onclick="time_tracking_swstartstop()" />
+		<input type="button" name="time_tracking_reset" value="R" onclick="time_tracking_swreset()" />
+		<?php } else { ?>
+		<input type="text" name="time_tracking" size="5" value="00:00" />
+		<?php } ?>
+	</td>
+</tr>
+<?php } ?>
+<?php }
time_tracking_1_2.patch (10,595 bytes)   
time_tracking_1_1.patch (6,821 bytes)   
Index: bug_change_status_page.php
===================================================================
RCS file: /cvs/mantis/bug_change_status_page.php,v
retrieving revision 1.10
diff -r1.10 bug_change_status_page.php
338,351c338
< <?php if ( config_get('time_tracking_enabled') ) { ?>
< <?php if ( access_has_bug_level( config_get( 'private_bugnote_threshold' ), $f_bug_id ) ) { ?>
< <?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
< <tr <?php echo helper_alternate_class() ?>>
< 	<td class="category">
< 		<?php echo lang_get( 'time_tracking' ) ?>
< 	</td>
< 	<td>
< 		<input type="text" name="time_tracking" size="5" value="0:00" />
< 	</td>
< </tr>
< <?php } ?>
< <?php } ?>
< <?php } ?>
---
> <?php include( 'time_tracking_inc.php' ); ?>
Index: bug_update_advanced_page.php
===================================================================
RCS file: /cvs/mantis/bug_update_advanced_page.php,v
retrieving revision 1.10
diff -r1.10 bug_update_advanced_page.php
602,613c602
< <?php if ( config_get('time_tracking_enabled') ) { ?>
< <?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
< <tr <?php echo helper_alternate_class() ?>>
< 	<td class="category">
< 		<?php echo lang_get( 'time_tracking' ) ?>
< 	</td>
< 	<td colspan="5">
< 		<input type="text" name="time_tracking" size="5" value="0:00" />
< 	</td>
< </tr>
< <?php } ?>
< <?php } ?>
---
> <?php $t_time_tracking_cols = 5; include( 'time_tracking_inc.php' ); ?>
Index: bug_update_page.php
===================================================================
RCS file: /cvs/mantis/bug_update_page.php,v
retrieving revision 1.11
diff -r1.11 bug_update_page.php
437,448d436
< <?php if ( config_get('time_tracking_enabled') ) { ?>
< <?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
< <tr <?php echo helper_alternate_class() ?>>
< 	<td class="category">
< 		<?php echo lang_get( 'time_tracking' ) ?>
< 	</td>
< 	<td colspan="5">
< 		<input type="text" name="time_tracking" size="5" value="0:00" />
< 	</td>
< </tr>
< <?php } ?>
< <?php } ?>
449a438
> <?php $t_time_tracking_cols = 5; include( 'time_tracking_inc.php' ); ?>
Index: bugnote_add_inc.php
===================================================================
RCS file: /cvs/mantis/bugnote_add_inc.php,v
retrieving revision 1.6
diff -r1.6 bugnote_add_inc.php
70,89c70,71
< 
< <?php if ( config_get('time_tracking_enabled') ) { ?>
< <?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
< <tr <?php echo helper_alternate_class() ?>>
< 	<td class="category">
< 		<?php echo lang_get( 'time_tracking' ) ?>
< 	</td>
< 	<td>
< 		<?php if ( config_get('time_tracking_stopwatch') && ON == config_get( 'use_javascript' )) { ?>
< 		<script type="text/javascript" language="JavaScript" src="javascript/time_tracking_stopwatch.js"></script>
< 		<input type="text" name="time_tracking" size="5" value="00:00" />
< 		<input type="button" name="time_tracking_ssbutton" value="Start" onclick="time_tracking_swstartstop()" />
< 		<input type="button" name="time_tracking_reset" value="R" onclick="time_tracking_swreset()" />
< 		<?php } else { ?>
< 		<input type="text" name="time_tracking" size="5" value="00:00" />
< 		<?php } ?>
< 	</td>
< </tr>
< <?php } ?>
< <?php } ?>
---
>           
> <?php include( 'time_tracking_inc.php' ); ?>
Index: time_tracking_inc.php
===================================================================
RCS file: time_tracking_inc.php
diff -N time_tracking_inc.php
0a1,44
> <?php
> # MantisBT - a php based bugtracking system
> 
> # MantisBT is free software: you can redistribute it and/or modify
> # it under the terms of the GNU General Public License as published by
> # the Free Software Foundation, either version 2 of the License, or
> # (at your option) any later version.
> #
> # MantisBT is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> # GNU General Public License for more details.
> #
> # You should have received a copy of the GNU General Public License
> # along with MantisBT.  If not, see <http://www.gnu.org/licenses/>.
> 
> 	/**
> 	 * @package MantisBT
> 	 * @copyright Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
> 	 * @copyright Copyright (C) 2002 - 2009  MantisBT Team - mantisbt-dev@lists.sourceforge.net
> 	 * @link http://www.mantisbt.org
> 	 */
> 
> ?>
> 
> <?php if ( config_get('time_tracking_enabled') ) { ?>
> <?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
> <tr <?php echo helper_alternate_class() ?>>
> 	<td class="category">
> 		<?php echo lang_get( 'time_tracking' ) ?> (HH:MM)
> 	</td> 
> 	<?php echo '<td colspan="' . (isset( $t_time_tracking_cols ) ? $t_time_tracking_cols : 1) . '">'; ?>
> 		<?php if ( config_get('time_tracking_stopwatch') && ON == config_get( 'use_javascript' )) { ?>
> 		<script type="text/javascript" language="JavaScript" src="javascript/time_tracking_stopwatch.js"></script>        
> 		<input type="text" name="time_tracking" size="5" id="time_tracking_value" value="00:00" />
> 		<input type="button" name="time_tracking_ssbutton" id="time_tracking_ssbutton" value="Start" onclick="time_tracking_swstartstop()" />
> 		<input type="button" name="time_tracking_reset" value="R" onclick="time_tracking_swreset()" />
> 		<?php } else { ?>
> 		<input type="text" name="time_tracking" size="5" value="00:00" />
> 		<?php } ?>
> 	</td>
> </tr>
> <?php } ?>
> <?php }
Index: javascript/time_tracking_stopwatch.js
===================================================================
RCS file: /cvs/mantis/javascript/time_tracking_stopwatch.js,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 time_tracking_stopwatch.js
6a7
>         time_tracking_ssbutton_element = document.getElementById( 'time_tracking_ssbutton' );
11c12
< 		document.bugnoteadd.time_tracking_ssbutton.value = "Stop";
---
> 		time_tracking_ssbutton_element.value = "Stop";
16c17
< 		document.bugnoteadd.time_tracking_ssbutton.value = "Start";
---
> 		time_tracking_ssbutton_element.value = "Start";
22,23c23,24
< 	document.bugnoteadd.time_tracking.value = "0:00:00";
< 	document.bugnoteadd.time_tracking_ssbutton.value = "Start";
---
> 	time_tracking_value_element.value = "0:00:00";
> 	time_tracking_ssbutton_element.value = "Start";
27a29
>         time_tracking_value_element = document.getElementById( 'time_tracking_value' );
41c43
< 		document.bugnoteadd.time_tracking.value = time_tracking_hours + ":" + time_tracking_mins + ":" + time_tracking_secs;
---
> 		time_tracking_value_element.value = time_tracking_hours + ":" + time_tracking_mins + ":" + time_tracking_secs;
time_tracking_1_1.patch (6,821 bytes)   
time_tracking_1_1_uniform.patch (8,559 bytes)   
Index: bug_change_status_page.php
===================================================================
RCS file: /cvs/mantis/bug_change_status_page.php,v
retrieving revision 1.10
diff -u -r1.10 bug_change_status_page.php
--- bug_change_status_page.php	21 Jul 2009 11:35:33 -0000	1.10
+++ bug_change_status_page.php	28 Jul 2009 15:13:53 -0000
@@ -335,20 +335,7 @@
 </tr>
 <?php } ?>
 
-<?php if ( config_get('time_tracking_enabled') ) { ?>
-<?php if ( access_has_bug_level( config_get( 'private_bugnote_threshold' ), $f_bug_id ) ) { ?>
-<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
-<tr <?php echo helper_alternate_class() ?>>
-	<td class="category">
-		<?php echo lang_get( 'time_tracking' ) ?>
-	</td>
-	<td>
-		<input type="text" name="time_tracking" size="5" value="0:00" />
-	</td>
-</tr>
-<?php } ?>
-<?php } ?>
-<?php } ?>
+<?php include( 'time_tracking_inc.php' ); ?>
 
 <!-- Submit Button -->
 <tr>
Index: bug_update_advanced_page.php
===================================================================
RCS file: /cvs/mantis/bug_update_advanced_page.php,v
retrieving revision 1.10
diff -u -r1.10 bug_update_advanced_page.php
--- bug_update_advanced_page.php	17 Dec 2008 19:56:59 -0000	1.10
+++ bug_update_advanced_page.php	28 Jul 2009 15:13:53 -0000
@@ -599,18 +599,7 @@
 <?php } ?>
 
 <!-- Time Tracking (if permitted) -->
-<?php if ( config_get('time_tracking_enabled') ) { ?>
-<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
-<tr <?php echo helper_alternate_class() ?>>
-	<td class="category">
-		<?php echo lang_get( 'time_tracking' ) ?>
-	</td>
-	<td colspan="5">
-		<input type="text" name="time_tracking" size="5" value="0:00" />
-	</td>
-</tr>
-<?php } ?>
-<?php } ?>
+<?php $t_time_tracking_cols = 5; include( 'time_tracking_inc.php' ); ?>
 
 <!-- Submit Button -->
 <tr>
Index: bug_update_page.php
===================================================================
RCS file: /cvs/mantis/bug_update_page.php,v
retrieving revision 1.11
diff -u -r1.11 bug_update_page.php
--- bug_update_page.php	17 Dec 2008 19:56:59 -0000	1.11
+++ bug_update_page.php	28 Jul 2009 15:13:53 -0000
@@ -434,19 +434,8 @@
 <?php } ?>
 
 <!-- Time Tracking (if permitted) -->
-<?php if ( config_get('time_tracking_enabled') ) { ?>
-<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
-<tr <?php echo helper_alternate_class() ?>>
-	<td class="category">
-		<?php echo lang_get( 'time_tracking' ) ?>
-	</td>
-	<td colspan="5">
-		<input type="text" name="time_tracking" size="5" value="0:00" />
-	</td>
-</tr>
-<?php } ?>
-<?php } ?>
 
+<?php $t_time_tracking_cols = 5; include( 'time_tracking_inc.php' ); ?>
 
 <!-- Submit Button -->
 <tr>
Index: bugnote_add_inc.php
===================================================================
RCS file: /cvs/mantis/bugnote_add_inc.php,v
retrieving revision 1.6
diff -u -r1.6 bugnote_add_inc.php
--- bugnote_add_inc.php	16 Jun 2008 21:47:57 -0000	1.6
+++ bugnote_add_inc.php	28 Jul 2009 15:13:53 -0000
@@ -67,26 +67,8 @@
 	</td>
 </tr>
 <?php } ?>
-
-<?php if ( config_get('time_tracking_enabled') ) { ?>
-<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
-<tr <?php echo helper_alternate_class() ?>>
-	<td class="category">
-		<?php echo lang_get( 'time_tracking' ) ?>
-	</td>
-	<td>
-		<?php if ( config_get('time_tracking_stopwatch') && ON == config_get( 'use_javascript' )) { ?>
-		<script type="text/javascript" language="JavaScript" src="javascript/time_tracking_stopwatch.js"></script>
-		<input type="text" name="time_tracking" size="5" value="00:00" />
-		<input type="button" name="time_tracking_ssbutton" value="Start" onclick="time_tracking_swstartstop()" />
-		<input type="button" name="time_tracking_reset" value="R" onclick="time_tracking_swreset()" />
-		<?php } else { ?>
-		<input type="text" name="time_tracking" size="5" value="00:00" />
-		<?php } ?>
-	</td>
-</tr>
-<?php } ?>
-<?php } ?>
+          
+<?php include( 'time_tracking_inc.php' ); ?>
 
 <tr>
 	<td class="center" colspan="2">
Index: time_tracking_inc.php
===================================================================
RCS file: time_tracking_inc.php
diff -N time_tracking_inc.php
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ time_tracking_inc.php	28 Jul 2009 15:13:53 -0000
@@ -0,0 +1,44 @@
+<?php
+# MantisBT - a php based bugtracking system
+
+# MantisBT is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# MantisBT is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with MantisBT.  If not, see <http://www.gnu.org/licenses/>.
+
+	/**
+	 * @package MantisBT
+	 * @copyright Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
+	 * @copyright Copyright (C) 2002 - 2009  MantisBT Team - mantisbt-dev@lists.sourceforge.net
+	 * @link http://www.mantisbt.org
+	 */
+
+?>
+
+<?php if ( config_get('time_tracking_enabled') ) { ?>
+<?php if ( access_has_bug_level( config_get( 'time_tracking_edit_threshold' ), $f_bug_id ) ) { ?>
+<tr <?php echo helper_alternate_class() ?>>
+	<td class="category">
+		<?php echo lang_get( 'time_tracking' ) ?> (HH:MM)
+	</td> 
+	<?php echo '<td colspan="' . (isset( $t_time_tracking_cols ) ? $t_time_tracking_cols : 1) . '">'; ?>
+		<?php if ( config_get('time_tracking_stopwatch') && ON == config_get( 'use_javascript' )) { ?>
+		<script type="text/javascript" language="JavaScript" src="javascript/time_tracking_stopwatch.js"></script>        
+		<input type="text" name="time_tracking" size="5" id="time_tracking_value" value="00:00" />
+		<input type="button" name="time_tracking_ssbutton" id="time_tracking_ssbutton" value="Start" onclick="time_tracking_swstartstop()" />
+		<input type="button" name="time_tracking_reset" value="R" onclick="time_tracking_swreset()" />
+		<?php } else { ?>
+		<input type="text" name="time_tracking" size="5" value="00:00" />
+		<?php } ?>
+	</td>
+</tr>
+<?php } ?>
+<?php }
Index: javascript/time_tracking_stopwatch.js
===================================================================
RCS file: /cvs/mantis/javascript/time_tracking_stopwatch.js,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 time_tracking_stopwatch.js
--- javascript/time_tracking_stopwatch.js	12 Dec 2006 18:26:29 -0000	1.1.1.1
+++ javascript/time_tracking_stopwatch.js	28 Jul 2009 15:13:53 -0000
@@ -4,27 +4,29 @@
 var time_tracking_running = 0;
 
 function time_tracking_swstartstop() {
+        time_tracking_ssbutton_element = document.getElementById( 'time_tracking_ssbutton' );
 	if (time_tracking_running == 0) {
 		time_tracking_running = 1;
 		time_tracking_then = new Date();
 		time_tracking_then.setTime(time_tracking_then.getTime() - time_tracking_ms);
-		document.bugnoteadd.time_tracking_ssbutton.value = "Stop";
+		time_tracking_ssbutton_element.value = "Stop";
 	} else {
 		time_tracking_running = 0;
 		time_tracking_now = new Date();
 		time_tracking_ms = time_tracking_now.getTime() - time_tracking_then.getTime();
-		document.bugnoteadd.time_tracking_ssbutton.value = "Start";
+		time_tracking_ssbutton_element.value = "Start";
 	}
 }
 function time_tracking_swreset() {
 	time_tracking_running = 0;
 	time_tracking_ms = 0;
-	document.bugnoteadd.time_tracking.value = "0:00:00";
-	document.bugnoteadd.time_tracking_ssbutton.value = "Start";
+	time_tracking_value_element.value = "0:00:00";
+	time_tracking_ssbutton_element.value = "Start";
 }
 
 function time_tracking_display() {
 	setTimeout("time_tracking_display();", 1000);
+        time_tracking_value_element = document.getElementById( 'time_tracking_value' );
 	if (time_tracking_running == 1) {
 		time_tracking_now = new Date();
 		time_tracking_ms = time_tracking_now.getTime() - time_tracking_then.getTime();
@@ -38,7 +40,7 @@
 		if (time_tracking_mins < 10)
 			time_tracking_mins = "0" + time_tracking_mins;
 
-		document.bugnoteadd.time_tracking.value = time_tracking_hours + ":" + time_tracking_mins + ":" + time_tracking_secs;
+		time_tracking_value_element.value = time_tracking_hours + ":" + time_tracking_mins + ":" + time_tracking_secs;
 	}
 }
 

Activities

polzin

polzin

2009-08-04 03:57

reporter   ~0022653

Is it possible to include the patch, as it

  • improves the code ("don't repeat yourself")
  • resolves inconsistencies (different thresholds for the same think)
  • improves functionality?
    Is there something I could do?
dhx

dhx

2009-10-28 20:20

reporter   ~0023454

I'm interested in this patch (hadn't seen it until now).

Thanks for your work on this issue!

My only comment so far is that time_tracking_inc.php should not return anything if called directly... it should only be callable by certain scripts. See bug_view_inc.php (and the other bug view pages) for an example of how to fix this issue.

If this applies cleanly on top of 1.2.0RC2 I'll apply it :)

polzin

polzin

2009-12-15 18:29

reporter   ~0023911

Do you really thing, that a protection agains direct calling is necessary? bugnote_add_inc or bugnote_view_inc don't do such a thing.

(hadn't seen it until now).

Sigh! I found a lot good features and suggestions lying around in mantis without being commented or included. Well, this seems to be a structural problem...

polzin

polzin

2009-12-23 06:23

reporter   ~0023969

@dhx
Any comment on my comment?

I think the patch is ready for commiting, as a special protection is not necessary, as in bugnote_add_inc...