diff options
author | bugreport%peshkin.net <> | 2002-10-13 13:26:02 +0200 |
---|---|---|
committer | bugreport%peshkin.net <> | 2002-10-13 13:26:02 +0200 |
commit | fd742d6fc8849328749866dbff2936d43abcc7d1 (patch) | |
tree | 1e4d7646a4589bcf44adceb452b38924286f7af1 /template | |
parent | f61593bee73b37fc12caabbb2958b6515d688420 (diff) | |
download | bugzilla-fd742d6fc8849328749866dbff2936d43abcc7d1.tar.gz bugzilla-fd742d6fc8849328749866dbff2936d43abcc7d1.tar.xz |
Bug 24789 [E|A|R] Add Estimated, Actual, Remaining Time Fields
patch by jeff.hedlund@matrixsi.com
2xr=joel,justdave
Diffstat (limited to 'template')
-rw-r--r-- | template/en/default/bug/activity/table.html.tmpl | 18 | ||||
-rw-r--r-- | template/en/default/bug/comments.html.tmpl | 12 | ||||
-rw-r--r-- | template/en/default/bug/create/create.html.tmpl | 14 | ||||
-rw-r--r-- | template/en/default/bug/edit.html.tmpl | 79 | ||||
-rw-r--r-- | template/en/default/bug/show-multiple.html.tmpl | 28 | ||||
-rw-r--r-- | template/en/default/bug/time.html.tmpl | 48 | ||||
-rw-r--r-- | template/en/default/global/user-error.html.tmpl | 23 | ||||
-rw-r--r-- | template/en/default/list/edit-multiple.html.tmpl | 19 | ||||
-rw-r--r-- | template/en/default/list/table.html.tmpl | 13 |
9 files changed, 246 insertions, 8 deletions
diff --git a/template/en/default/bug/activity/table.html.tmpl b/template/en/default/bug/activity/table.html.tmpl index 43529bd23..45c8e4380 100644 --- a/template/en/default/bug/activity/table.html.tmpl +++ b/template/en/default/bug/activity/table.html.tmpl @@ -32,6 +32,8 @@ # incomplete_data: boolean. True if some of the data is incomplete (because # it was affected by an old Bugzilla bug.) #%] + +[% PROCESS bug/time.html.tmpl %] [% IF incomplete_data %] <p> @@ -72,14 +74,26 @@ </td> <td> [% IF change.removed %] - [% change.removed FILTER html %] + [% IF change.fieldname == 'estimated_time' || + change.fieldname == 'remaining_time' || + change.fieldname == 'work_time' %] + [% PROCESS formattimeunit time_unit=change.removed %] + [% ELSE %] + [% change.removed FILTER html %] + [% END %] [% ELSE %] [% END %] </td> <td> [% IF change.added %] - [% change.added FILTER html %] + [% IF change.fieldname == 'estimated_time' || + change.fieldname == 'remaining_time' || + change.fieldname == 'work_time' %] + [% PROCESS formattimeunit time_unit=change.added %] + [% ELSE %] + [% change.added FILTER html %] + [% END %] [% ELSE %] [% END %] diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl index 7a8ae73db..f5880a811 100644 --- a/template/en/default/bug/comments.html.tmpl +++ b/template/en/default/bug/comments.html.tmpl @@ -30,6 +30,7 @@ [% count = count + 1 %] [% END %] +[% PROCESS bug/time.html.tmpl %] [%############################################################################%] [%# Block for individual comments #%] @@ -43,9 +44,11 @@ <i>------- Additional Comment <a name="c[% count %]" href="#c[% count %]">#[% count %]</a> From <a href="mailto:[% comment.email FILTER html %]">[% comment.name FILTER html %]</a> - [%+ comment.time %] ------- + [%+ comment.time %] + ------- </i> [% END %] + [% IF mode == "edit" && isinsider %] <i> <input type=hidden name="oisprivate-[% count %]" @@ -55,7 +58,12 @@ [% " checked=\"checked\"" IF comment.isprivate %]> Private </i> [% END %] - + [% IF UserInGroup(Param('timetrackinggroup')) && + (comment.work_time > 0 || comment.work_time < 0) %] + <br> + Additional hours worked: + [% PROCESS formattimeunit time_unit=comment.work_time %] + [% END %] [%# Don't indent the <pre> block, since then the spaces are displayed in the # generated HTML #%] diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl index 066c11b63..354dd990c 100644 --- a/template/en/default/bug/create/create.html.tmpl +++ b/template/en/default/bug/create/create.html.tmpl @@ -155,6 +155,20 @@ <td colspan="3"></td> </tr> +[% IF UserInGroup(Param('timetrackinggroup')) %] + <tr> + <td align="right"><strong>Estimated Hours:</strong></td> + <td colspan="3"> + <input name="estimated_time" size="6" maxlength="6" value="0.0"/> + </td> + </tr> + + <tr> + <td> </td> + <td colspan="3"></td> + </tr> +[% END %] + <tr> <td align="right"><strong>URL:</strong></td> <td colspan="3"> diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index 152852169..453b4aa65 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -32,6 +32,29 @@ [% END %] [% PROCESS bug/navigate.html.tmpl %] +[% PROCESS bug/time.html.tmpl %] + +<script type="text/javascript" language="JavaScript"> +<!-- +var fRemainingTime = [% bug.remaining_time %]; // holds the original value +function adjustRemainingTime() { + // subtracts time spent from remaining time + var new_time; + + new_time = + fRemainingTime - document.changeform.work_time.value; + // get upto 2 decimal places + document.changeform.remaining_time.value = + Math.round(new_time * 100)/100; +} + +function updateRemainingTime() { + // if the remaining time is changed manually, update fRemainingTime + fRemainingTime = document.changeform.remaining_time.value; +} + +//--> +</script> <hr> @@ -264,6 +287,62 @@ </tr> [% END %] </table> + + [% IF UserInGroup(Param('timetrackinggroup')) %] + <br> + <table cellpadding=0 cellspacing=0 border=1> + <tr> + <th width="16.6%" align="center" bgcolor="#cccccc"> + Orig. Est. + </th> + <th width="16.6%" align="center" bgcolor="#cccccc"> + Current Est. + </th> + <th width="16.6%" align="center" bgcolor="#cccccc"> + Hours Worked + </th> + <th width="16.6%" align="center" bgcolor="#cccccc"> + Hours Left + </th> + <th width="16.6%" align="center" bgcolor="#cccccc"> + %Complete + </th> + <th width="16.6%" align="center" bgcolor="#cccccc"> + Gain + </th> + </tr> + <tr> + <td align="center"> + <input name="estimated_time" + value="[% PROCESS formattimeunit + time_unit=bug.estimated_time %]" + size="6" maxlength="6"> + </td> + <td align="center"> + [% PROCESS formattimeunit + time_unit=(bug.actual_time + bug.remaining_time) %] + </td> + <td align="center"> + [% PROCESS formattimeunit time_unit=bug.actual_time %] + + <input name="work_time" value="0" size="3" maxlength="6" + onChange="adjustRemainingTime();"> + </td> + <td align="center"> + <input name="remaining_time" + value="[% PROCESS formattimeunit + time_unit=bug.remaining_time %]" + size="6" maxlength="6" onChange="updateRemainingTime();"> + </td> + <td align="center"> + [% PROCESS calculatepercentage act=bug.actual_time + rem=bug.remaining_time %] + </td> + <td align="center"> + [% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %] + </td> + </tr> + </table> + [% END %] [%# *** Attachments *** %] diff --git a/template/en/default/bug/show-multiple.html.tmpl b/template/en/default/bug/show-multiple.html.tmpl index 0c089e9c5..d7e2fcf09 100644 --- a/template/en/default/bug/show-multiple.html.tmpl +++ b/template/en/default/bug/show-multiple.html.tmpl @@ -24,6 +24,7 @@ title = "Full Text Bug Listing" style_urls = [ "css/show_multiple.css" ] %] +[% PROCESS bug/time.html.tmpl %] [% IF bugs.first %] [% FOREACH bug = bugs %] [% PROCESS bug_display %] @@ -34,6 +35,7 @@ </p> [% END %] + [% PROCESS global/footer.html.tmpl %] @@ -130,6 +132,32 @@ </tr> [% END %] + [% IF UserInGroup(Param("timetrackinggroup")) %] + <tr> + <td colspan="4"> + <b>Orig. Est.:</b> + [% PROCESS formattimeunit time_unit=bug.estimated_time %] + + <b>Current Est.:</b> + [% PROCESS formattimeunit + time_unit=(bug.remaining_time + bug.actual_time) %] + + <b>Hours Worked:</b> + [% PROCESS formattimeunit time_unit=bug.actual_time %] + <b>Hours Left:</b> + [% PROCESS formattimeunit time_unit=bug.remaining_time %] + + <b>Percentage Complete:</b> + [% PROCESS calculatepercentage act=bug.actual_time + rem=bug.remaining_time %] + <b>Gain</b> + [% PROCESS formattimeunit + time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %] + + </td> + </tr> + [% END %] + <tr> <td colspan="4"> <b>Description:</b> diff --git a/template/en/default/bug/time.html.tmpl b/template/en/default/bug/time.html.tmpl new file mode 100644 index 000000000..af6966930 --- /dev/null +++ b/template/en/default/bug/time.html.tmpl @@ -0,0 +1,48 @@ +<!-- 1.0@bugzilla.org --> +[%# The contents of this file are subject to the Mozilla Public + # License Version 1.1 (the "License"); you may not use this file + # except in compliance with the License. You may obtain a copy of + # the License at http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS + # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + # implied. See the License for the specific language governing + # rights and limitations under the License. + # + # The Original Code is the Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Jeff Hedlund <jeff.hedlund@matrixsi.com> + # + #%] + +[% BLOCK formattimeunit %] + [%# INTERFACE: + # time_unit: the number converting, converts to 2 decimal places + # unless the last character is a 0, then it truncates to + # 1 decimal place + #%] + [% time_unit = time_unit FILTER format('%.2f') %] + [% IF time_unit.match('0\Z') %] + [% time_unit FILTER format('%.1f') %] + [% ELSE %] + [% time_unit FILTER format('%.2f') %] + [% END %] +[% END %] + +[% BLOCK calculatepercentage %] + [%# INTERFACE: + # act: actual time + # rem: remaining time + # %] + [% IF (act + rem) > 0 %] + [% (act / (act + rem)) * 100 + FILTER format("%d") %] + [% ELSE %] + 0 + [% END %] +[% END %] diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index f487067dd..29cb3c901 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -330,8 +330,16 @@ [% ELSIF error == "need_component" %] [% title = "Component Required" %] - You must specify a component to help determine the new owner of these bugs. - + You must specify a component to help determine the new owner of these bugs. + + [% ELSIF error == "need_numeric_value" %] + [% title = "Numeric Value Required" %] + Hours requires a numeric value. + + [% ELSIF error == "need_positive_number" %] + [% title = "Positive Number Required" %] + [% field %] requires a positive number. + [% ELSIF error == "need_product" %] [% title = "Product Required" %] You must specify a product to help determine the new owner of these bugs. @@ -445,7 +453,7 @@ [% ELSIF error == "report_access_denied" %] [% title = "Access Denied" %] You do not have the permissions necessary to view reports for this product. - + [% ELSIF error == "requestee_too_short" %] [% title = "Requestee Name Too Short" %] One or two characters match too many users, so please enter at least @@ -470,6 +478,11 @@ [% ELSIF error == "require_summary" %] [% title = "Summary Needed" %] You must enter a summary for this bug. + + [% ELSIF error == "resolving_remaining_time" %] + [% title = "Trying to Resolve with Hours Remaining" %] + You cannot resolve a bug with hours still remaining. Set + Remaining Hours to zero if you want to resolve the bug. [% ELSIF error == "sanity_check_access_denied" %] [% title = "Access Denied" %] @@ -521,6 +534,10 @@ [% title = "Wrong Token" %] That token cannot be used to change your email address. + [% ELSIF error == "value_out_of_range" %] + [% title = "Value Out Of Range" %] + Value is out of range for field [% variable %]. + [% ELSIF error == "z_axis_defined_with_no_x_axis" %] [% title = "Nonsensical Options" %] You've defined a field for multiple tables without having defined diff --git a/template/en/default/list/edit-multiple.html.tmpl b/template/en/default/list/edit-multiple.html.tmpl index 4121d0292..4d769c5fa 100644 --- a/template/en/default/list/edit-multiple.html.tmpl +++ b/template/en/default/list/edit-multiple.html.tmpl @@ -116,6 +116,25 @@ </tr> + [% IF UserInGroup(Param("timetrackinggroup")) %] + <tr> + <th><label for="estimated_time">Estimated Hours:</label></th> + <td> + <input id="estimated_time" + name="estimated_time" + value="[% dontchange FILTER html %]" + size="6"> + </td> + <th><label for="remaining_time">Remaining Hours:</label></th> + <td> + <input id="remaining_time" + name="remaining_time" + value="[% dontchange FILTER html %]" + size="6"> + </td> + </tr> + [% END %] + [% IF Param("useqacontact") %] <tr> <th><label for="qa_contact">QA Contact:</label></th> diff --git a/template/en/default/list/table.html.tmpl b/template/en/default/list/table.html.tmpl index 6d5ee0d6c..eb1308961 100644 --- a/template/en/default/list/table.html.tmpl +++ b/template/en/default/list/table.html.tmpl @@ -49,11 +49,14 @@ "version" => { maxlength => 5 , title => "Vers" } , "os" => { maxlength => 4 } , "target_milestone" => { title => "TargetM" } , + "percentage_complete" => { format_value => "%d %%" } , } %] [% qorder = order FILTER url_quote IF order %] +[% PROCESS bug/time.html.tmpl %] + [%############################################################################%] [%# Table Header #%] [%############################################################################%] @@ -132,7 +135,15 @@ [% FOREACH column = displaycolumns %] <td> [% '<nobr>' IF NOT abbrev.$column.wrap %] - [%- bug.$column.truncate(abbrev.$column.maxlength, abbrev.$column.ellipsis) FILTER html -%] + [% IF abbrev.$column.format_value %] + [%- bug.$column FILTER format(abbrev.$column.format_value) FILTER html -%] + [% ELSIF column == 'actual_time' || + column == 'remaining_time' || + column == 'estimated_time' %] + [% PROCESS formattimeunit time_unit=bug.$column %] + [% ELSE %] + [%- bug.$column.truncate(abbrev.$column.maxlength, abbrev.$column.ellipsis) FILTER html -%] + [% END %] [%- '</nobr>' IF NOT abbrev.$column.wrap %] </td> [% END %] |