source: trac/vendor/0.8-1233/templates/ticket.cs @ 2589

Revision 2588, 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:cgi_location?>/attachment/ticket/<?cs
90    var:ticket.id ?>">
91   <div><input type="submit" value="Attach File" /></div>
92  </form><?cs
93 /if ?><?cs if ticket.attachments.0.name ?></div><?cs /if ?>
94<?cs /if ?>
95
96<?cs if ticket.changes.0.time ?><h2>Changelog</h2>
97<div id="changelog">
98 <?cs set:comment = "" ?>
99 <?cs set:curr_time = "" ?>
100 <?cs set:curr_author = "" ?>
101 <?cs each:change = ticket.changes ?><?cs
102  if $change.time != $curr_time || $change.author != $curr_author ?><?cs
103  if:name(change) > 0 ?></ul><?cs /if ?><?cs
104   if $comment != "" ?>
105    <div class="comment"><?cs var:$comment ?></div><?cs set:comment = "" ?><?cs
106   /if ?>
107   <?cs set:curr_time = $change.time ?>
108   <?cs set:curr_author = $change.author ?>
109   <h3 id="change_<?cs var:name(change) ?>" class="change"><?cs
110     var:change.date ?>: Modified by <?cs var:curr_author ?></h3>
111   <ul class="changes"><?cs
112  /if ?><?cs
113  if $change.field == "comment" ?><?cs
114   set:$comment = $change.new ?><?cs
115  elif $change.new == "" ?>
116   <li><strong><?cs var:change.field ?></strong> cleared</li><?cs
117  elif $change.field == "attachment" ?>
118   <li><strong>attachment</strong> added: <?cs var:change.new ?></li><?cs
119  elif $change.field == "description" ?>
120   <li><strong><?cs var:change.field ?></strong> changed.</li><?cs
121  elif $change.old == "" ?>
122   <li><strong><?cs var:change.field ?></strong> set to <em><?cs var:change.new ?></em></li><?cs
123  else ?>
124   <li><strong><?cs var:change.field ?></strong> changed from <em><?cs
125     var:change.old ?></em> to <em><?cs var:change.new ?></em></li><?cs
126  /if ?><?cs
127 /each ?></ul><?cs
128 if $comment != "" ?>
129  <div class="comment"><?cs var:$comment ?></div><?cs
130 /if ?>
131</div><?cs /if ?>
132
133<?cs if $trac.acl.TICKET_MODIFY ?>
134<form action="<?cs var:cgi_location ?>#preview" method="post">
135 <hr />
136 <h3><a name="edit" onfocus="document.getElementById('comment').focus()">Add/Change #<?cs
137   var:ticket.id ?> (<?cs var:ticket.summary ?>)</a></h3>
138 <div class="field">
139  <input type="hidden" name="mode" value="ticket" />
140  <input type="hidden" name="id"   value="<?cs var:ticket.id ?>" />
141  <label for="author">Your email or username:</label><br />
142  <input type="text" id="author" name="author" size="40"
143    value="<?cs var:ticket.reporter_id ?>" /><br />
144 </div>
145 <div class="field">
146  <fieldset class="iefix">
147   <label for="comment">Comment (you may use <a tabindex="42" href="<?cs
148     var:$trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here):</label><br />
149   <p><textarea id="comment" name="comment" rows="10" cols="78"><?cs
150     var:ticket.comment ?></textarea></p><?cs
151   call:wiki_toolbar('comment') ?>
152  </fieldset><?cs
153  if ticket.comment_preview ?>
154   <fieldset id="preview">
155    <legend>Comment Preview</legend>
156    <?cs var:ticket.comment_preview ?>
157   </fieldset><?cs
158  /if ?>
159 </div>
160
161 <fieldset id="properties">
162  <legend>Change Properties</legend>
163  <div class="main">
164   <label for="summary">Summary:</label>
165   <input id="summary" type="text" name="summary" size="70" value="<?cs
166     var:ticket.summary ?>" /><?cs
167   if $trac.acl.TICKET_ADMIN ?>
168    <br />
169    <label for="description">Description:</label>
170    <div style="float: left">
171     <textarea id="description" name="description" rows="10" cols="68"><?cs
172       var:ticket.description ?></textarea>
173     <?cs call:wiki_toolbar('description') ?>
174    </div>
175    <br style="clear: left" />
176    <label for="reporter">Reporter:</label>
177    <input id="reporter" type="text" name="reporter" size="70"
178           value="<?cs var:ticket.reporter ?>" /><?cs
179   /if ?>
180  </div>
181  <div class="col1">
182   <label for="component">Component:</label><?cs
183   call:hdf_select(ticket.components, "component", ticket.component) ?>
184   <br />
185   <label for="version">Version:</label><?cs
186   call:hdf_select(ticket.versions, "version", ticket.version) ?>
187   <br />
188   <label for="severity">Severity:</label><?cs
189   call:hdf_select(enums.severity, "severity", ticket.severity) ?>
190   <br />
191   <label for="keywords">Keywords:</label>
192   <input type="text" id="keywords" name="keywords" size="20"
193       value="<?cs var:ticket.keywords ?>" />
194  </div>
195  <div class="col2">
196   <label for="priority">Priority:</label><?cs
197   call:hdf_select(enums.priority, "priority", ticket.priority) ?><br />
198   <label for="milestone">Milestone:</label><?cs
199   call:hdf_select(ticket.milestones, "milestone", ticket.milestone) ?><br />
200   <label for="owner">Assigned to:</label>
201   <input type="text" id="owner" name="owner" size="20" value="<?cs
202     var:ticket.owner ?>" disabled="disabled" /><br />
203   <label for="cc">Cc:</label>
204   <input type="text" id="cc" name="cc" size="30" value="<?cs var:ticket.cc ?>" />
205  </div>
206  <?cs if:len(ticket.custom) ?><div class="custom">
207   <?cs call:ticket_custom_props(ticket) ?>
208  </div><?cs /if ?>
209 </fieldset>
210
211 <fieldset id="action">
212  <legend>Action</legend><?cs
213  if:!ticket.action ?><?cs set:ticket.action = 'leave' ?><?cs
214  /if ?><?cs
215  def:action_radio(id) ?>
216   <input type="radio" id="<?cs var:id ?>" name="action" value="<?cs
217     var:id ?>"<?cs if:$ticket.action == $id ?> checked="checked"<?cs
218     /if ?> /><?cs
219  /def ?>
220  <?cs call:action_radio('leave') ?>
221  <label for="leave">leave as <?cs var:ticket.status ?></label><br /><?cs
222  if $ticket.status == "new" ?>
223   <?cs call:action_radio('accept') ?>
224   <label for="accept">accept ticket</label><br /><?cs
225  /if ?><?cs
226  if $ticket.status == "closed" ?>
227   <?cs call:action_radio('reopen') ?>
228   <label for="reopen">reopen ticket</label><br /><?cs
229  /if ?><?cs
230  if $ticket.status == "new" || $ticket.status == "assigned" || $ticket.status == "reopened" ?>
231   <?cs call:action_radio('resolve') ?>
232   <label for="resolve">resolve</label>
233   <label for="resolve_resolution">as:</label>
234   <?cs call:hdf_select(enums.resolution, "resolve_resolution", args.resolve_resolution) ?><br />
235   <?cs call:action_radio('reassign') ?>
236   <label for="reassign">reassign</label>
237   <label for="reassign_owner">to:</label>
238   <input type="text" id="reassign_owner" name="reassign_owner" size="40" value="<?cs
239     if:args.reassign_to ?><?cs var:args.reassign_to ?><?cs
240     else ?><?cs var:trac.authname ?><?cs /if ?>" /><?cs
241  /if ?><?cs
242  if $ticket.status == "new" || $ticket.status == "assigned" || $ticket.status == "reopened" ?>
243   <script type="text/javascript">
244     var resolve = document.getElementById("resolve");
245     var reassign = document.getElementById("reassign");
246     var updateActionFields = function() {
247       enableControl('resolve_resolution', resolve.checked);
248       enableControl('reassign_owner', reassign.checked);
249     };
250     addEvent(window, 'load', updateActionFields);
251     addEvent(document.getElementById("leave"), 'click', updateActionFields);<?cs
252    if $ticket.status == "new" ?>
253     addEvent(document.getElementById("accept"), 'click', updateActionFields);<?cs
254    /if ?>
255    addEvent(resolve, 'click', updateActionFields);
256    addEvent(reassign, 'click', updateActionFields);
257   </script><?cs
258  /if ?>
259 </fieldset>
260
261 <div class="buttons">
262  <input type="reset" value="Reset" />&nbsp;
263  <input type="submit" name="preview" value="Preview" />&nbsp;
264  <input type="submit" value="Submit changes" /> 
265 </div>
266</form>
267<?cs /if ?>
268
269 </div>
270</div>
271<?cs include "footer.cs"?>
Note: See TracBrowser for help on using the repository browser.