|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
Ticket Navigation
|
|
|
f2e824 |
with:links = chrome.links ?>
|
|
|
f2e824 |
if:len(links.prev) || len(links.up) || len(links.next) ?>
|
|
|
f2e824 |
if:len(links.prev) ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
←
|
|
|
f2e824 |
var:links.prev.0.title ?>">Previous Ticket
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:len(links.up) ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
if:!len(links.next) ?> last">
|
|
|
f2e824 |
|
|
|
f2e824 |
var:links.up.0.title ?>">Back to Query
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:len(links.next) ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
var:links.next.0.title ?>">Next Ticket →
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/with ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
Ticket # (
|
|
|
f2e824 |
var:ticket.status ?>
|
|
|
f2e824 |
if:ticket.type ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:ticket.resolution ?>:
|
|
|
f2e824 |
/if ?>)
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
Opened ago
|
|
|
f2e824 |
if:ticket.lastmod ?>
|
|
|
f2e824 |
Last modified ago
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
Reported by:
|
|
|
f2e824 |
|
|
|
f2e824 |
Assigned to:
|
|
|
f2e824 |
|
|
|
f2e824 |
if:ticket.status == 'assigned' ?> (accepted)
|
|
|
f2e824 |
|
|
|
f2e824 |
each:field = ticket.fields ?>
|
|
|
f2e824 |
if:!field.skip ?>
|
|
|
f2e824 |
set:num_fields = num_fields + 1 ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
set:idx = 0 ?>
|
|
|
f2e824 |
each:field = ticket.fields ?>
|
|
|
f2e824 |
if:!field.skip ?>
|
|
|
f2e824 |
if:fullrow && idx % 2 ?>
|
|
|
f2e824 |
:
|
|
|
f2e824 |
<td<?cs if:fullrow ?> colspan="3" headers="h_
|
|
|
f2e824 |
var:name(field) ?>">
|
|
|
f2e824 |
if:idx % 2 || fullrow ?>
|
|
|
f2e824 |
elif:idx == num_fields - 1 ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
if:ticket.description ?>
|
|
|
f2e824 |
<form method="get" action="<?cs var:ticket.href ?>#comment" class="printableform">
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
if:trac.acl.TICKET_APPEND ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
<input type="hidden" name="replyto" value="description" />
|
|
|
f2e824 |
<input type="submit" value="Reply" title="Reply, quoting this description" />
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
Description
|
|
|
f2e824 |
if:ticket.description.lastmod ?>(Last modified by )
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
</form>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<small></small>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
Change History
|
|
|
f2e824 |
|
|
|
f2e824 |
each:change = ticket.changes ?>
|
|
|
f2e824 |
<form method="get" action="<?cs var:ticket.href ?>#comment" class="printableform">
|
|
|
f2e824 |
|
|
|
f2e824 |
id="comment:">
|
|
|
f2e824 |
if:change.cnum ?>
|
|
|
f2e824 |
if:trac.acl.TICKET_APPEND ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
<input type="hidden" name="replyto" value="<?cs var:change.cnum ?>" />
|
|
|
f2e824 |
<input type="submit" value="Reply" title="Reply to comment <?cs var:change.cnum ?>" />
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
set:nreplies = len(ticket.replies[change.cnum]) ?>
|
|
|
f2e824 |
if:nreplies || change.replyto ?>(
|
|
|
f2e824 |
if:change.replyto ?>in reply to:
|
|
|
f2e824 |
call:commentref('↑ ', change.replyto) ?>;
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if nreplies ?>
|
|
|
f2e824 |
call:plural('follow-up', nreplies) ?>:
|
|
|
f2e824 |
each:reply = ticket.replies[change.cnum] ?>
|
|
|
f2e824 |
call:commentref('↓ ', reply) ?>
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
/if ?>)
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
var:change.date ?> changed by
|
|
|
f2e824 |
|
|
|
f2e824 |
if:len(change.fields) ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
each:field = change.fields ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
if:name(field) == 'attachment' ?> added
|
|
|
f2e824 |
elif:field.old && field.new ?>changed from
|
|
|
f2e824 |
var:field.old ?> to
|
|
|
f2e824 |
elif:!field.old && field.new ?>set to
|
|
|
f2e824 |
elif:field.old && !field.new ?>deleted
|
|
|
f2e824 |
else ?>changed
|
|
|
f2e824 |
/if ?>.
|
|
|
f2e824 |
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
</form>
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<form action="<?cs var:ticket.href ?>#preview" method="post">
|
|
|
f2e824 |
|
|
|
f2e824 |
var:ticket.id ?> ()
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<label for="author">Your email or username:</label>
|
|
|
f2e824 |
|
|
|
f2e824 |
value="" />
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<fieldset class="iefix">
|
|
|
f2e824 |
<label for="comment">Comment (you may use
|
|
|
f2e824 |
var:trac.href.wiki ?>/WikiFormatting">WikiFormatting here):</label>
|
|
|
f2e824 |
<textarea id="comment" name="comment" class="wikitext" rows="10" cols="78">
|
|
|
f2e824 |
</textarea>
|
|
|
f2e824 |
</fieldset>
|
|
|
f2e824 |
if ticket.comment_preview ?>
|
|
|
f2e824 |
<fieldset id="preview">
|
|
|
f2e824 |
<legend>Comment Preview</legend>
|
|
|
f2e824 |
|
|
|
f2e824 |
</fieldset>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<fieldset id="properties">
|
|
|
f2e824 |
<legend>Change Properties</legend>
|
|
|
f2e824 |
|
|
|
f2e824 |
<label for="summary">Summary:</label>
|
|
|
f2e824 |
|
|
|
f2e824 |
var:ticket.summary ?>" size="70" />
|
|
|
f2e824 |
|
|
|
f2e824 |
if:len(ticket.fields.type.options) ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
<label for="type">Type:</label>
|
|
|
f2e824 |
|
|
|
f2e824 |
call:hdf_select(ticket.fields.type.options, 'type', ticket.type, 0) ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:trac.acl.TICKET_ADMIN ?>
|
|
|
f2e824 |
<label for="description">Description:</label>
|
|
|
f2e824 |
|
|
|
f2e824 |
<textarea id="description" name="description" class="wikitext" rows="10" cols="68">
|
|
|
f2e824 |
</textarea>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<label for="reporter">Reporter:</label>
|
|
|
f2e824 |
|
|
|
f2e824 |
var:ticket.reporter ?>" id="reporter" name="reporter" size="70" />
|
|
|
f2e824 |
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
each:field = ticket.fields ?>
|
|
|
f2e824 |
if:!field.skip ?>
|
|
|
f2e824 |
set:num_fields = num_fields + 1 ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
each:field = ticket.fields ?>
|
|
|
f2e824 |
if:!field.skip ?>
|
|
|
f2e824 |
if:fullrow && idx % 2 ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
if:field.type != 'radio' ?><label for="<?cs var:name(field) ?>">
|
|
|
f2e824 |
/if ?>:
|
|
|
f2e824 |
if:field.type != 'radio' ?></label>
|
|
|
f2e824 |
<td<?cs if:fullrow ?> colspan="3">
|
|
|
f2e824 |
if:field.type == 'text' ?>
|
|
|
f2e824 |
var:name(field) ?>" name="
|
|
|
f2e824 |
var:name(field) ?>" value="" />
|
|
|
f2e824 |
elif:field.type == 'select' ?>
|
|
|
f2e824 |
var:name(field) ?>" name="
|
|
|
f2e824 |
var:name(field) ?>">
|
|
|
f2e824 |
if:field.optional ?><option></option>
|
|
|
f2e824 |
each:option = field.options ?>
|
|
|
f2e824 |
if:option == ticket[name(field)] ?> selected="selected">
|
|
|
f2e824 |
var:option ?></option>
|
|
|
f2e824 |
/each ?></select>
|
|
|
f2e824 |
elif:field.type == 'checkbox' ?>
|
|
|
f2e824 |
var:name(field) ?>" />
|
|
|
f2e824 |
var:name(field) ?>" name="
|
|
|
f2e824 |
var:name(field) ?>" value="1"
|
|
|
f2e824 |
if:ticket[name(field)] ?> checked="checked" />
|
|
|
f2e824 |
elif:field.type == 'textarea' ?>
|
|
|
f2e824 |
var:name(field) ?>" name="
|
|
|
f2e824 |
var:name(field) ?>"
|
|
|
f2e824 |
if:field.height ?> rows=""
|
|
|
f2e824 |
if:field.width ?> cols="">
|
|
|
f2e824 |
</textarea>
|
|
|
f2e824 |
elif:field.type == 'radio' ?>
|
|
|
f2e824 |
each:option = field.options ?><label>
|
|
|
f2e824 |
var:name(field) ?>" name="
|
|
|
f2e824 |
var:name(field) ?>" value=""
|
|
|
f2e824 |
if:ticket[name(field)] == option ?> checked="checked" />
|
|
|
f2e824 |
var:option ?></label>
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:idx % 2 || fullrow ?>
|
|
|
f2e824 |
if:idx < num_fields - 1 ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
elif:idx == num_fields - 1 ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
</fieldset>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
ticket.actions.resolve || ticket.actions.reassign ?>
|
|
|
f2e824 |
<fieldset id="action">
|
|
|
f2e824 |
<legend>Action</legend>
|
|
|
f2e824 |
if:!ticket.action ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
def:action_radio(id) ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
var:id ?>" checked="checked"
|
|
|
f2e824 |
/if ?> />
|
|
|
f2e824 |
/def ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
<label for="leave">leave as </label>
|
|
|
f2e824 |
if:ticket.actions.accept ?>
|
|
|
f2e824 |
call:action_radio('accept') ?>
|
|
|
f2e824 |
<label for="accept">accept ticket</label>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:ticket.actions.reopen ?>
|
|
|
f2e824 |
call:action_radio('reopen') ?>
|
|
|
f2e824 |
<label for="reopen">reopen ticket</label>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:ticket.actions.resolve ?>
|
|
|
f2e824 |
call:action_radio('resolve') ?>
|
|
|
f2e824 |
<label for="resolve">resolve</label>
|
|
|
f2e824 |
if:len(ticket.fields.resolution.options) ?>
|
|
|
f2e824 |
<label for="resolve_resolution">as:</label>
|
|
|
f2e824 |
|
|
|
f2e824 |
ticket.resolve_resolution, 0) ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if:ticket.actions.reassign ?>
|
|
|
f2e824 |
call:action_radio('reassign') ?>
|
|
|
f2e824 |
<label for="reassign">reassign</label>
|
|
|
f2e824 |
<label>to:
|
|
|
f2e824 |
if:len(ticket.fields.owner.options) ?>
|
|
|
f2e824 |
call:hdf_select(ticket.fields.owner.options, "reassign_owner",
|
|
|
f2e824 |
ticket.reassign_owner, 1) ?>
|
|
|
f2e824 |
else ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
var:ticket.reassign_owner ?>" />
|
|
|
f2e824 |
/if ?></label>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
if ticket.actions.resolve || ticket.actions.reassign ?>
|
|
|
f2e824 |
<script type="text/javascript">
|
|
|
f2e824 |
each:action = ticket.actions ?>
|
|
|
f2e824 |
var = document.getElementById("");
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
var updateActionFields = function() {
|
|
|
f2e824 |
enableControl('resolve_resolution', resolve.checked);
|
|
|
f2e824 |
enableControl('reassign_owner', reassign.checked);
|
|
|
f2e824 |
};
|
|
|
f2e824 |
addEvent(window, 'load', updateActionFields);
|
|
|
f2e824 |
each:action = ticket.actions ?>
|
|
|
f2e824 |
addEvent(, 'click', updateActionFields);
|
|
|
f2e824 |
/each ?>
|
|
|
f2e824 |
</script>
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
</fieldset>
|
|
|
f2e824 |
else ?>
|
|
|
f2e824 |
<input type="hidden" name="action" value="leave" />
|
|
|
f2e824 |
/if ?>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
var:htdocs_location ?>js/wikitoolbar.js"></script>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<input type="hidden" name="ts" value="<?cs var:ticket.ts ?>" />
|
|
|
f2e824 |
<input type="hidden" name="replyto" value="<?cs var:ticket.replyto ?>" />
|
|
|
f2e824 |
<input type="hidden" name="cnum" value="<?cs var:ticket.cnum ?>" />
|
|
|
f2e824 |
<input type="submit" name="preview" value="Preview" accesskey="r" />
|
|
|
f2e824 |
<input type="submit" value="Submit changes" />
|
|
|
f2e824 |
|
|
|
f2e824 |
</form>
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
|
|
|
f2e824 |
<script type="text/javascript">
|
|
|
f2e824 |
addHeadingLinks(document.getElementById("searchable"), "Permalink to $id");
|
|
|
f2e824 |
</script>
|
|
|
f2e824 |
|
|
|
f2e824 |
|