|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
New Milestone
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
Edit Milestone
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
Delete Milestone
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
Milestone
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<script type="text/javascript">
|
|
Alain Reguera Delgado |
46de3c |
addEvent(window, 'load', function() {
|
|
Alain Reguera Delgado |
46de3c |
document.getElementById('name').focus();
|
|
Alain Reguera Delgado |
46de3c |
});
|
|
Alain Reguera Delgado |
46de3c |
</script>
|
|
Alain Reguera Delgado |
46de3c |
<form id="edit" action="<?cs var:milestone.href ?>" method="post">
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="id" value="<?cs var:milestone.name ?>" />
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="action" value="edit" />
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<label>Name of the milestone:
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:milestone.name ?>" /></label>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<fieldset>
|
|
Alain Reguera Delgado |
46de3c |
<legend>Schedule</legend>
|
|
Alain Reguera Delgado |
46de3c |
<label>Due:
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:len(milestone.date_hint) ?>" value="
|
|
Alain Reguera Delgado |
46de3c |
var:milestone.due_date ?>" title="Format: " />
|
|
Alain Reguera Delgado |
46de3c |
Format:
|
|
Alain Reguera Delgado |
46de3c |
</label>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<label>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
if:milestone.completed ?> checked="checked" />
|
|
Alain Reguera Delgado |
46de3c |
Completed:
|
|
Alain Reguera Delgado |
46de3c |
</label>
|
|
Alain Reguera Delgado |
46de3c |
<label>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:len(milestone.date_hint) ?>" value="
|
|
Alain Reguera Delgado |
46de3c |
alt:milestone.completed_date ?>
|
|
Alain Reguera Delgado |
46de3c |
var:milestone.datetime_now ?>
|
|
Alain Reguera Delgado |
46de3c |
/alt ?>" title="Format:
|
|
Alain Reguera Delgado |
46de3c |
var:milestone.datetime_hint ?>" />
|
|
Alain Reguera Delgado |
46de3c |
Format:
|
|
Alain Reguera Delgado |
46de3c |
</label>
|
|
Alain Reguera Delgado |
46de3c |
if:len(milestones) ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
onclick="enableControl('target', this.checked)"/>
|
|
Alain Reguera Delgado |
46de3c |
<label>
|
|
Alain Reguera Delgado |
46de3c |
Retarget associated open tickets to milestone
|
|
Alain Reguera Delgado |
46de3c |
<select id="target" name="target">
|
|
Alain Reguera Delgado |
46de3c |
<option value="">None</option>
|
|
Alain Reguera Delgado |
46de3c |
each:name = milestones ?>
|
|
Alain Reguera Delgado |
46de3c |
<option></option>
|
|
Alain Reguera Delgado |
46de3c |
/each ?>
|
|
Alain Reguera Delgado |
46de3c |
</select>
|
|
Alain Reguera Delgado |
46de3c |
</label>
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
<script type="text/javascript">
|
|
Alain Reguera Delgado |
46de3c |
var completed = document.getElementById("completed");
|
|
Alain Reguera Delgado |
46de3c |
var retarget = document.getElementById("retarget");
|
|
Alain Reguera Delgado |
46de3c |
var enableCompletedDate = function() {
|
|
Alain Reguera Delgado |
46de3c |
enableControl("completeddate", completed.checked);
|
|
Alain Reguera Delgado |
46de3c |
enableControl("retarget", completed.checked);
|
|
Alain Reguera Delgado |
46de3c |
enableControl("target", completed.checked && retarget.checked);
|
|
Alain Reguera Delgado |
46de3c |
};
|
|
Alain Reguera Delgado |
46de3c |
addEvent(window, "load", enableCompletedDate);
|
|
Alain Reguera Delgado |
46de3c |
addEvent(completed, "click", enableCompletedDate);
|
|
Alain Reguera Delgado |
46de3c |
</script>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
</fieldset>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<fieldset class="iefix">
|
|
Alain Reguera Delgado |
46de3c |
<label for="description">Description (you may use
|
|
Alain Reguera Delgado |
46de3c |
var:trac.href.wiki ?>/WikiFormatting">WikiFormatting here):</label>
|
|
Alain Reguera Delgado |
46de3c |
<textarea id="description" name="description" class="wikitext" rows="10" cols="78">
|
|
Alain Reguera Delgado |
46de3c |
</textarea>
|
|
Alain Reguera Delgado |
46de3c |
</fieldset>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
?><input type="submit" value="Add milestone" />
|
|
Alain Reguera Delgado |
46de3c |
else
|
|
Alain Reguera Delgado |
46de3c |
?><input type="submit" value="Submit changes" />
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
<input type="submit" name="cancel" value="Cancel" />
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:htdocs_location ?>js/wikitoolbar.js"></script>
|
|
Alain Reguera Delgado |
46de3c |
</form>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<form action="<?cs var:milestone.href ?>" method="post">
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="id" value="<?cs var:milestone.name ?>" />
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="action" value="delete" />
|
|
Alain Reguera Delgado |
46de3c |
Are you sure you want to delete this milestone?
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
onclick="enableControl('target', this.checked)"/>
|
|
Alain Reguera Delgado |
46de3c |
<label for="target">Retarget associated tickets to milestone</label>
|
|
Alain Reguera Delgado |
46de3c |
<select name="target" id="target">
|
|
Alain Reguera Delgado |
46de3c |
<option value="">None</option>
|
|
Alain Reguera Delgado |
46de3c |
each:other = milestones ?>
|
|
Alain Reguera Delgado |
46de3c |
<option></option>
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
</select>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<input type="submit" name="cancel" value="Cancel" />
|
|
Alain Reguera Delgado |
46de3c |
<input type="submit" value="Delete milestone" />
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
</form>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
if:milestone.completed_date ?>
|
|
Alain Reguera Delgado |
46de3c |
Completed ago ()
|
|
Alain Reguera Delgado |
46de3c |
elif:milestone.due_date ?>
|
|
Alain Reguera Delgado |
46de3c |
if:milestone.late ?>
|
|
Alain Reguera Delgado |
46de3c |
late
|
|
Alain Reguera Delgado |
46de3c |
else ?>
|
|
Alain Reguera Delgado |
46de3c |
Due in
|
|
Alain Reguera Delgado |
46de3c |
/if ?> ()
|
|
Alain Reguera Delgado |
46de3c |
else ?>
|
|
Alain Reguera Delgado |
46de3c |
No date set
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
with:stats = milestone.stats ?>
|
|
Alain Reguera Delgado |
46de3c |
if:#stats.total_tickets > #0 ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:#stats.percent_closed ?>%">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:milestone.queries.closed_tickets ?>" title="
|
|
Alain Reguera Delgado |
46de3c |
var:#stats.closed_tickets ?> of
|
|
Alain Reguera Delgado |
46de3c |
var:#stats.total_tickets ?> ticket
|
|
Alain Reguera Delgado |
46de3c |
if:#stats.total_tickets != #1 ?>s closed">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:#stats.percent_active ?>%">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:milestone.queries.active_tickets ?>" title="
|
|
Alain Reguera Delgado |
46de3c |
var:#stats.active_tickets ?> of
|
|
Alain Reguera Delgado |
46de3c |
var:#stats.total_tickets ?> ticket
|
|
Alain Reguera Delgado |
46de3c |
if:#stats.total_tickets != #1 ?>s active">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
%
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
Closed tickets:
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:stats.closed_tickets ?>
|
|
Alain Reguera Delgado |
46de3c |
Active tickets:
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:stats.active_tickets ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
/with ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
<form id="stats" action="" method="get">
|
|
Alain Reguera Delgado |
46de3c |
<fieldset>
|
|
Alain Reguera Delgado |
46de3c |
<legend>
|
|
Alain Reguera Delgado |
46de3c |
<label for="by">Ticket status by</label>
|
|
Alain Reguera Delgado |
46de3c |
<select id="by" name="by" onchange="this.form.submit()">
|
|
Alain Reguera Delgado |
46de3c |
each:group = milestone.stats.available_groups ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
if:milestone.stats.grouped_by == group.name ?> selected="selected"
|
|
Alain Reguera Delgado |
46de3c |
/if ?>></option>
|
|
Alain Reguera Delgado |
46de3c |
/each ?></select>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
</legend>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:milestone.stats.grouped_by ?>">
|
|
Alain Reguera Delgado |
46de3c |
each:group = milestone.stats.groups ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:group.queries.all_tickets ?>">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:#group.percent_total * #80 / #milestone.stats.max_percent_total ?>%">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:#group.percent_closed ?>%">
|
|
Alain Reguera Delgado |
46de3c |
var:group.queries.closed_tickets ?>" title="
|
|
Alain Reguera Delgado |
46de3c |
var:group.closed_tickets ?> of
|
|
Alain Reguera Delgado |
46de3c |
var:group.total_tickets ?> ticket
|
|
Alain Reguera Delgado |
46de3c |
if:group.total_tickets != #1 ?>s closed">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
var:#group.percent_active ?>%">
|
|
Alain Reguera Delgado |
46de3c |
var:group.queries.active_tickets ?>" title="
|
|
Alain Reguera Delgado |
46de3c |
var:group.active_tickets ?> of
|
|
Alain Reguera Delgado |
46de3c |
var:group.total_tickets ?> ticket
|
|
Alain Reguera Delgado |
46de3c |
if:group.total_tickets != 1 ?>s active">
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
/
|
|
Alain Reguera Delgado |
46de3c |
var:group.total_tickets ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
/each ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
</fieldset>
|
|
Alain Reguera Delgado |
46de3c |
</form>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
if:trac.acl.MILESTONE_MODIFY || trac.acl.MILESTONE_DELETE ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
if:trac.acl.MILESTONE_MODIFY ?>
|
|
Alain Reguera Delgado |
46de3c |
<form method="get" action="">
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="action" value="edit" />
|
|
Alain Reguera Delgado |
46de3c |
if:milestone.id_param ?>
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="id" value="<?cs var:milestone.name ?>" />
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
<input type="submit" value="Edit milestone info" accesskey="e" />
|
|
Alain Reguera Delgado |
46de3c |
</form>
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
if:trac.acl.MILESTONE_DELETE ?>
|
|
Alain Reguera Delgado |
46de3c |
<form method="get" action="">
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="action" value="delete" />
|
|
Alain Reguera Delgado |
46de3c |
if:milestone.id_param ?>
|
|
Alain Reguera Delgado |
46de3c |
<input type="hidden" name="id" value="<?cs var:milestone.name ?>" />
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
<input type="submit" value="Delete milestone" />
|
|
Alain Reguera Delgado |
46de3c |
</form>
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
/if ?>
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
Note: See
|
|
Alain Reguera Delgado |
46de3c |
var:trac.href.wiki ?>/TracRoadmap">TracRoadmap for help on using the roadmap.
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|
|
Alain Reguera Delgado |
46de3c |
|