source: trac/vendor/current/templates/ticket.cs @ 2997

Revision 2997, 10.4 KB checked in by moschny, 8 years ago (diff)

Load . into trac/vendor/current.

Line 
1<?cs set:html.stylesheet = 'css/ticket.css' ?>
2<?cs include "header.cs" ?>
3<?cs include "macros.cs" ?>
4
5<div id="ctxtnav" class="nav">
6 <h2>Ticket Navigation</h2>
7 <ul><?cs
8  if:len(links.prev) ?>
9   <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>">
10    <a href="<?cs var:links.prev.0.href ?>" title="<?cs
11      var:links.prev.0.title ?>">Previous Ticket</a>
12   </li><?cs
13  /if ?><?cs
14  if:len(links.next) ?>
15   <li class="<?cs if:len(links.prev) ?>first <?cs /if ?>last">
16    <a href="<?cs var:links.next.0.href ?>" title="<?cs
17      var:links.next.0.title ?>">Next Ticket</a>
18   </li><?cs
19  /if ?>
20 </ul>
21</div>
22
23<div id="content" class="ticket">
24 <div id="searchable">
25 <?cs def:ticketprop(label, name, value, fullrow) ?>
26  <th id="h_<?cs var:name ?>"><?cs var:$label ?>:</th>
27  <td headers="h_<?cs var:name ?>"<?cs if:fullrow ?> colspan="3"<?cs /if ?>><?cs
28   if:$value ?><?cs var:$value ?><?cs else ?>&nbsp;<?cs
29   /if ?></td><?cs if numprops % #2 && !$last_prop || fullrow ?>
30 </tr><tr><?cs /if ?><?cs set numprops = $numprops + #1 - fullrow ?><?cs
31 /def ?>
32
33<div id="ticket">
34 <div class="date"><?cs var:ticket.opened ?></div>
35 <h1>Ticket #<?cs var:ticket.id ?> <?cs
36 if:ticket.status == 'closed' ?>(Closed: <?cs var:ticket.resolution ?>)<?cs
37 elif:ticket.status != 'new' ?>(<?cs var:ticket.status ?>)<?cs
38 /if ?></h1>
39 <h2><?cs var:ticket.summary ?></h2>
40 <hr />
41 <table><tr><?cs
42  call:ticketprop("Priority", "priority", ticket.priority, 0) ?><?cs
43  call:ticketprop("Reporter", "reporter", ticket.reporter, 0) ?><?cs
44  call:ticketprop("Severity", "severity", ticket.severity, 0) ?><?cs
45  if ticket.status == "assigned"?><?cs
46   call:ticketprop("Assigned to", "assignee", ticket.owner + " (accepted)", 0) ?><?cs
47  else ?><?cs
48   call:ticketprop("Assigned to", "assignee", ticket.owner, 0) ?><?cs
49  /if ?><?cs
50  call:ticketprop("Component", "component", ticket.component, 0) ?><?cs
51  call:ticketprop("Status", "status", ticket.status, 0) ?><?cs
52  call:ticketprop("Version", "version", ticket.version, 0) ?><?cs
53  call:ticketprop("Resolution", "resolution", ticket.resolution, 0) ?><?cs
54  call:ticketprop("Milestone", "milestone", ticket.milestone, 0) ?><?cs
55  set:last_prop = #1 ?><?cs
56  call:ticketprop("Keywords", "keywords", ticket.keywords, 0) ?><?cs
57  set:last_prop = #0 ?>
58 </tr></table><?cs if ticket.custom.0.name ?>
59 <hr />
60 <table><tr><?cs each:prop = ticket.custom ?><?cs
61   if:prop.type == "textarea" ?><?cs
62    call:ticketprop(prop.label, prop.name, prop.value, 1) ?><?cs
63   else ?><?cs
64    call:ticketprop(prop.label, prop.name, prop.value, 0) ?><?cs
65   /if?><?cs
66  /each ?>
67 </tr></table><?cs /if ?>
68 <hr />
69 <h3>Description<?cs if:ticket.reporter ?> by <?cs
70   var:ticket.reporter ?><?cs /if ?>:</h3>
71 <div class="description">
72  <?cs var:ticket.description.formatted ?>
73 </div>
74</div>
75
76<?cs if trac.acl.TICKET_MODIFY || ticket.attachments.0.name ?>
77<h2>Attachments</h2><?cs
78 if ticket.attachments.0.name ?><div id="attachments">
79  <ul class="attachments"><?cs each:a = ticket.attachments ?>
80   <li><a href="<?cs var:a.href ?>" title="View attachment"><?cs
81   var:a.name ?></a> (<?cs var:a.size ?>) - <?cs
82   if:a.descr ?><q><?cs var:a.descr ?></q>,<?cs
83   /if ?> added by <em><?cs
84   var:a.author ?></em> on <em><?cs
85   var:a.time ?></em>.</li><?cs
86  /each ?></ul><?cs
87 /if ?><?cs
88 if trac.acl.TICKET_MODIFY ?>
89  <form method="get" action="<?cs var:ticket.attach_href ?>">
90   <div><input type="submit" value="Attach File" /></div>
91  </form><?cs
92 /if ?><?cs if ticket.attachments.0.name ?></div><?cs /if ?>
93<?cs /if ?>
94
95<?cs if ticket.changes.0.time ?><h2>Changelog</h2>
96<div id="changelog">
97 <?cs set:comment = "" ?>
98 <?cs set:curr_time = "" ?>
99 <?cs set:curr_author = "" ?>
100 <?cs each:change = ticket.changes ?><?cs
101  if $change.time != $curr_time || $change.author != $curr_author ?><?cs
102  if:name(change) > 0 ?></ul><?cs /if ?><?cs
103   if $comment != "" ?>
104    <div class="comment"><?cs var:$comment ?></div><?cs set:comment = "" ?><?cs
105   /if ?>
106   <?cs set:curr_time = $change.time ?>
107   <?cs set:curr_author = $change.author ?>
108   <h3 id="change_<?cs var:name(change) ?>" class="change"><?cs
109     var:change.date ?>: Modified by <?cs var:curr_author ?></h3>
110   <ul class="changes"><?cs
111  /if ?><?cs
112  if $change.field == "comment" ?><?cs
113   set:$comment = $change.new ?><?cs
114  elif $change.new == "" ?>
115   <li><strong><?cs var:change.field ?></strong> cleared</li><?cs
116  elif $change.field == "attachment" ?>
117   <li><strong>attachment</strong> added: <?cs var:change.new ?></li><?cs
118  elif $change.field == "description" ?>
119   <li><strong><?cs var:change.field ?></strong> changed.</li><?cs
120  elif $change.old == "" ?>
121   <li><strong><?cs var:change.field ?></strong> set to <em><?cs var:change.new ?></em></li><?cs
122  else ?>
123   <li><strong><?cs var:change.field ?></strong> changed from <em><?cs
124     var:change.old ?></em> to <em><?cs var:change.new ?></em></li><?cs
125  /if ?><?cs
126 /each ?></ul><?cs
127 if $comment != "" ?>
128  <div class="comment"><?cs var:$comment ?></div><?cs
129 /if ?>
130</div><?cs /if ?>
131
132<?cs if $trac.acl.TICKET_MODIFY ?>
133<form action="<?cs var:cgi_location ?>#preview" method="post">
134 <hr />
135 <h3><a name="edit" onfocus="document.getElementById('comment').focus()">Add/Change #<?cs
136   var:ticket.id ?> (<?cs var:ticket.summary ?>)</a></h3>
137 <div class="field">
138  <input type="hidden" name="mode" value="ticket" />
139  <input type="hidden" name="id"   value="<?cs var:ticket.id ?>" />
140  <label for="author">Your email or username:</label><br />
141  <input type="text" id="author" name="author" size="40"
142    value="<?cs var:ticket.reporter_id ?>" /><br />
143 </div>
144 <div class="field">
145  <fieldset class="iefix">
146   <label for="comment">Comment (you may use <a tabindex="42" href="<?cs
147     var:$trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here):</label><br />
148   <p><textarea id="comment" name="comment" rows="10" cols="78"><?cs
149     var:ticket.comment ?></textarea></p><?cs
150   call:wiki_toolbar('comment') ?>
151  </fieldset><?cs
152  if ticket.comment_preview ?>
153   <fieldset id="preview">
154    <legend>Comment Preview</legend>
155    <?cs var:ticket.comment_preview ?>
156   </fieldset><?cs
157  /if ?>
158 </div>
159
160 <fieldset id="properties">
161  <legend>Change Properties</legend>
162  <div class="main">
163   <label for="summary">Summary:</label>
164   <input id="summary" type="text" name="summary" size="70" value="<?cs
165     var:ticket.summary ?>" /><?cs
166   if $trac.acl.TICKET_ADMIN ?>
167    <br />
168    <label for="description">Description:</label>
169    <div style="float: left">
170     <textarea id="description" name="description" rows="10" cols="68"><?cs
171       var:ticket.description ?></textarea>
172     <?cs call:wiki_toolbar('description') ?>
173    </div>
174    <br style="clear: left" />
175    <label for="reporter">Reporter:</label>
176    <input id="reporter" type="text" name="reporter" size="70"
177           value="<?cs var:ticket.reporter ?>" /><?cs
178   /if ?>
179  </div>
180  <div class="col1">
181   <label for="component">Component:</label><?cs
182   call:hdf_select(ticket.components, "component", ticket.component) ?>
183   <br />
184   <label for="version">Version:</label><?cs
185   call:hdf_select(ticket.versions, "version", ticket.version) ?>
186   <br />
187   <label for="severity">Severity:</label><?cs
188   call:hdf_select(enums.severity, "severity", ticket.severity) ?>
189   <br />
190   <label for="keywords">Keywords:</label>
191   <input type="text" id="keywords" name="keywords" size="20"
192       value="<?cs var:ticket.keywords ?>" />
193  </div>
194  <div class="col2">
195   <label for="priority">Priority:</label><?cs
196   call:hdf_select(enums.priority, "priority", ticket.priority) ?><br />
197   <label for="milestone">Milestone:</label><?cs
198   call:hdf_select(ticket.milestones, "milestone", ticket.milestone) ?><br />
199   <label for="owner">Assigned to:</label>
200   <input type="text" id="owner" name="owner" size="20" value="<?cs
201     var:ticket.owner ?>" disabled="disabled" /><br />
202   <label for="cc">Cc:</label>
203   <input type="text" id="cc" name="cc" size="30" value="<?cs var:ticket.cc ?>" />
204  </div>
205  <?cs if:len(ticket.custom) ?><div class="custom">
206   <?cs call:ticket_custom_props(ticket) ?>
207  </div><?cs /if ?>
208 </fieldset>
209
210 <fieldset id="action">
211  <legend>Action</legend><?cs
212  if:!ticket.action ?><?cs set:ticket.action = 'leave' ?><?cs
213  /if ?><?cs
214  def:action_radio(id) ?>
215   <input type="radio" id="<?cs var:id ?>" name="action" value="<?cs
216     var:id ?>"<?cs if:$ticket.action == $id ?> checked="checked"<?cs
217     /if ?> /><?cs
218  /def ?>
219  <?cs call:action_radio('leave') ?>
220  <label for="leave">leave as <?cs var:ticket.status ?></label><br /><?cs
221  if $ticket.status == "new" ?>
222   <?cs call:action_radio('accept') ?>
223   <label for="accept">accept ticket</label><br /><?cs
224  /if ?><?cs
225  if $ticket.status == "closed" ?>
226   <?cs call:action_radio('reopen') ?>
227   <label for="reopen">reopen ticket</label><br /><?cs
228  /if ?><?cs
229  if $ticket.status == "new" || $ticket.status == "assigned" || $ticket.status == "reopened" ?>
230   <?cs call:action_radio('resolve') ?>
231   <label for="resolve">resolve</label>
232   <label for="resolve_resolution">as:</label>
233   <?cs call:hdf_select(enums.resolution, "resolve_resolution", args.resolve_resolution) ?><br />
234   <?cs call:action_radio('reassign') ?>
235   <label for="reassign">reassign</label>
236   <label for="reassign_owner">to:</label>
237   <input type="text" id="reassign_owner" name="reassign_owner" size="40" value="<?cs
238     if:args.reassign_to ?><?cs var:args.reassign_to ?><?cs
239     else ?><?cs var:trac.authname ?><?cs /if ?>" /><?cs
240  /if ?><?cs
241  if $ticket.status == "new" || $ticket.status == "assigned" || $ticket.status == "reopened" ?>
242   <script type="text/javascript">
243     var resolve = document.getElementById("resolve");
244     var reassign = document.getElementById("reassign");
245     var updateActionFields = function() {
246       enableControl('resolve_resolution', resolve.checked);
247       enableControl('reassign_owner', reassign.checked);
248     };
249     addEvent(window, 'load', updateActionFields);
250     addEvent(document.getElementById("leave"), 'click', updateActionFields);<?cs
251    if $ticket.status == "new" ?>
252     addEvent(document.getElementById("accept"), 'click', updateActionFields);<?cs
253    /if ?>
254    addEvent(resolve, 'click', updateActionFields);
255    addEvent(reassign, 'click', updateActionFields);
256   </script><?cs
257  /if ?>
258 </fieldset>
259
260 <div class="buttons">
261  <input type="reset" value="Reset" />&nbsp;
262  <input type="submit" name="preview" value="Preview" />&nbsp;
263  <input type="submit" value="Submit changes" /> 
264 </div>
265</form>
266<?cs /if ?>
267
268 </div>
269</div>
270<?cs include "footer.cs"?>
Note: See TracBrowser for help on using the repository browser.