source: timingandestimationplugin/branches/trac0.11/timingandestimationplugin/templates/billing.html

Last change on this file was 2774, checked in by Russ Tyndall, 16 years ago

closes #1913

After much waiting and thinking, I came to the conclusion that the best way to handle the dynamic statuses was to rebuild the reports each time they change. To that end I have added code to check to see if the statuses have changed and then update the reports with the new statuses every time they change (requiring a trac-admin upgrade). Rendering out the statuses and the linkifying javascript were changed to be compatible with this.

File size: 3.7 KB
Line 
1<!DOCTYPE html
2    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml"
5      xmlns:py="http://genshi.edgewall.org/"
6      xmlns:xi="http://www.w3.org/2001/XInclude">
7  <xi:include href="layout.html" />
8  <xi:include href="macros.html" />
9
10      <head>
11    <title>Time Tracking Management for Trac.11</title>
12    <script type="text/javascript" src="${chrome.htdocs_location}js/wikitoolbar.js"></script>
13    <script type="text/javascript" py:choose="">
14      $(document).ready(function() {
15          $("div.description").find("h1,h2,h3,h4,h5,h6").addAnchor("Link to this section");
16        });
17    </script>
18      </head>
19
20      <body>
21<form method="post" action="${billing_info.href}"  >
22<div id="content" class="billing">
23  <a href="$billing_info.usermanual_href" >$billing_info.usermanual_title</a>
24  <div id="messages" >
25    <py:for each="item in billing_info.messages" >
26      <div class="message" >$item</div>
27    </py:for>
28  </div>
29
30  <table border="0" cellspacing="0" cellpadding="0" class="minorsection">
31    <tr>
32      <td colspan="2" >
33            <div class="minorsection">
34        <div class="label" >Billing Status:</div>
35              <label for="billable">Billable: </label>
36              <input id="billable" name="billable" type="checkbox" checked="true" /> 
37
38            &nbsp;&nbsp;|&nbsp;&nbsp;
39              <label for="unbillable">Not Billable: </label>
40              <input id="unbillable" name="unbillable" type="checkbox"  /> 
41            </div>
42
43          <div class="minorsection">
44            <div class="label" >Status:</div>
45            <py:for each="status in statuses" >
46              <label for="$status">${status.capitalize()}: </label>
47              <input id="$status" name="$status" type="checkbox" checked="true" /> 
48            </py:for>
49            <script>
50              <py:for each="status in statuses" >
51               addBillingField("$status", "checkbox", true);
52              </py:for>
53            </script>
54          </div>
55
56      </td>
57    </tr><tr class="minorsection">
58      <td class="minorsectionleft" valign="top"><label for="startdate" >Start Date:</label></td>
59      <td class="minorsectionright"><input id="startdate" name="startdate" type="text" /> or:<br />
60          <label for="startbilling" >Choose an old billing date:</label><br />
61          <select id="startbilling" name="startbilling" >
62            <option value="" ></option>
63              <py:for each="item in billing_info.billdates" >
64                <option value="$item.value" >$item.text</option>
65              </py:for>
66          </select>
67      </td>
68    </tr><tr class="minorsection">
69      <td class="minorsectionleft" valign="top"><label for="enddate" >End Date:</label>
70      </td>
71      <td class="minorsectionright">
72          <input id="enddate" name="enddate" type="text" /> or:<br />
73          <label for="endbilling" >Choose an old billing date:</label><br />
74          <select id="endbilling" name="endbilling" >
75            <option value="" ></option>
76              <py:for each="item in billing_info.billdates" >
77                <option value="$item.value" >$item.text</option>
78              </py:for>
79          </select>
80      </td>
81    </tr>
82  </table>
83  <ul id="reportlinks">
84  <py:for each="key in reports" >
85    <li>${reports[key]["title"]}
86      <ul>
87        <py:for each="report in reports[key]['reports']">
88          <li><a href="" onmouseover="linkify(this, '$billing_info.report_base_href/$report.id')"  >
89            $report.title
90          </a></li>     
91       </py:for>
92      </ul>
93    </li>
94  </py:for>
95
96  </ul>
97  <input type="submit" name="setbillingtime" value="Set Billing Time" onclick="return confirm('Are you sure that you want to create a billed date?')" />&nbsp;
98
99</div>
100</form>
101</body>
102</html>
Note: See TracBrowser for help on using the repository browser.