| 1 | <?cs set:html.stylesheet = 'css/report.css' ?> |
|---|
| 2 | <?cs include:"header.cs" ?> |
|---|
| 3 | <?cs include:"macros.cs" ?> |
|---|
| 4 | |
|---|
| 5 | <div id="ctxtnav" class="nav"><?cs if:query.edit_href ?> |
|---|
| 6 | <ul> |
|---|
| 7 | <li class="last"><a href="<?cs var:query.edit_href ?>">Refine Query</a></li> |
|---|
| 8 | </ul> |
|---|
| 9 | <?cs /if ?></div> |
|---|
| 10 | |
|---|
| 11 | <div id="content" class="query"> |
|---|
| 12 | <h1><?cs var:title ?></h1> |
|---|
| 13 | |
|---|
| 14 | <?cs if:query.action == 'edit' ?> |
|---|
| 15 | |
|---|
| 16 | <form id="query" action="<?cs var:cgi_location ?>" method="post"> |
|---|
| 17 | <fieldset> |
|---|
| 18 | <input type="hidden" name="mode" value="query" /> |
|---|
| 19 | <input type="hidden" name="order" value="<?cs var:query.order ?>" /> |
|---|
| 20 | <?cs if:query.desc ?><input type="hidden" name="desc" value="1" /><?cs /if ?> |
|---|
| 21 | <legend>Ticket Properties</legend> |
|---|
| 22 | <div> |
|---|
| 23 | <label for="component" accesskey="c">Component:</label> |
|---|
| 24 | <?cs call:hdf_select_multiple(query.options.component, 'component', 4) ?> |
|---|
| 25 | </div> |
|---|
| 26 | <div> |
|---|
| 27 | <label for="version" accesskey="v">Version:</label> |
|---|
| 28 | <?cs call:hdf_select_multiple(query.options.version, 'version', 4) ?> |
|---|
| 29 | </div> |
|---|
| 30 | <div> |
|---|
| 31 | <label for="severity" accesskey="e">Severity:</label> |
|---|
| 32 | <?cs call:hdf_select_multiple(query.options.severity, 'severity', 4) ?> |
|---|
| 33 | </div> |
|---|
| 34 | <br /> |
|---|
| 35 | <div> |
|---|
| 36 | <label for="keywords">Keywords contain:</label> |
|---|
| 37 | <input type="text" name="keywords" id="keywords" accesskey="k" value="<?cs |
|---|
| 38 | var:query.constraints.keywords.0 ?>" /> |
|---|
| 39 | </div> |
|---|
| 40 | <br /> |
|---|
| 41 | <div> |
|---|
| 42 | <label for="status" accesskey="s">Status:</label> |
|---|
| 43 | <?cs call:hdf_select_multiple(query.options.status, 'status', 4) ?> |
|---|
| 44 | </div> |
|---|
| 45 | <div> |
|---|
| 46 | <label for="resolution" accesskey="r">Resolution:</label> |
|---|
| 47 | <?cs call:hdf_select_multiple(query.options.resolution, 'resolution', 4) ?> |
|---|
| 48 | <script type="text/javascript"> |
|---|
| 49 | var status = document.getElementById("status"); |
|---|
| 50 | var updateResolution = function() { |
|---|
| 51 | enableControl('resolution', status.selectedIndex == -1 || |
|---|
| 52 | status.selectedIndex >= 3); |
|---|
| 53 | }; |
|---|
| 54 | addEvent(window, 'load', updateResolution); |
|---|
| 55 | addEvent(status, 'change', updateResolution); |
|---|
| 56 | </script> |
|---|
| 57 | </div> |
|---|
| 58 | <div> |
|---|
| 59 | <label for="milestone" accesskey="m">Milestone:</label> |
|---|
| 60 | <?cs call:hdf_select_multiple(query.options.milestone, 'milestone', 4) ?> |
|---|
| 61 | </div> |
|---|
| 62 | <div> |
|---|
| 63 | <label for="priority" accesskey="p">Priority:</label> |
|---|
| 64 | <?cs call:hdf_select_multiple(query.options.priority, 'priority', 4) ?> |
|---|
| 65 | </div> |
|---|
| 66 | <br /> |
|---|
| 67 | <div> |
|---|
| 68 | <label for="owner">Assigned to:</label> |
|---|
| 69 | <input type="text" name="owner" id="owner" accesskey="a" value="<?cs |
|---|
| 70 | var:query.constraints.owner.0 ?>" /> |
|---|
| 71 | </div> |
|---|
| 72 | <div> |
|---|
| 73 | <label for="reporter">Reported by:</label> |
|---|
| 74 | <input type="text" name="reporter" id="reporter" accesskey="b" value="<?cs |
|---|
| 75 | var:query.constraints.reporter.0 ?>" /> |
|---|
| 76 | </div> |
|---|
| 77 | <div> |
|---|
| 78 | <label for="cc">Cc contains:</label> |
|---|
| 79 | <input type="text" name="cc" id="cc" value="<?cs |
|---|
| 80 | var:query.constraints.cc.0 ?>" /> |
|---|
| 81 | </div> |
|---|
| 82 | <?cs if:len(query.custom) ?><?cs set:idx = 0 ?><?cs |
|---|
| 83 | each:custom = query.custom ?><?cs |
|---|
| 84 | if:custom.type == 'select' || custom.type == 'radio' ?> |
|---|
| 85 | <?cs if:idx == 0 ?><br /><?cs /if ?><div> |
|---|
| 86 | <label for="<?cs var:custom.name ?>"><?cs var:custom.label ?></label> |
|---|
| 87 | <?cs call:hdf_select_multiple(custom.options, custom.name, 4) ?> |
|---|
| 88 | </div><?cs set:idx = idx + 1 ?><?cs |
|---|
| 89 | /if ?><?cs |
|---|
| 90 | /each ?><?cs set:idx = 0 ?><?cs |
|---|
| 91 | each:custom = query.custom ?><?cs |
|---|
| 92 | if:custom.type == 'text' ?> |
|---|
| 93 | <?cs if:idx == 0 ?><br /><?cs /if ?><div> |
|---|
| 94 | <label for="<?cs var:custom.name ?>"><?cs var:custom.label ?></label> |
|---|
| 95 | <input type="text" name="<?cs var:custom.name ?>" id="<?cs |
|---|
| 96 | var:custom.name ?>" value="<?cs var:query[custom.name] ?>" /> |
|---|
| 97 | </div><?cs set:idx = idx + 1 ?><?cs |
|---|
| 98 | /if ?><?cs |
|---|
| 99 | /each ?><?cs |
|---|
| 100 | /if ?> |
|---|
| 101 | <br /> |
|---|
| 102 | </fieldset> |
|---|
| 103 | <div class="buttons"> |
|---|
| 104 | <input type="submit" name="search" value="Search"> |
|---|
| 105 | </div> |
|---|
| 106 | </form> |
|---|
| 107 | |
|---|
| 108 | <?cs else ?> |
|---|
| 109 | |
|---|
| 110 | <?cs if:len(query.results) ?> |
|---|
| 111 | <p><?cs var:len(query.results) ?> ticket<?cs if:len(query.results) != 1 ?>s<?cs |
|---|
| 112 | /if ?> matched this query.</p> |
|---|
| 113 | <table id="tktlist" class="listing"> |
|---|
| 114 | <thead><tr><?cs each:header = query.headers ?><?cs |
|---|
| 115 | if:name(header) == 0 ?><th class="ticket<?cs |
|---|
| 116 | if:header.order ?> <?cs var:header.order ?><?cs /if ?>"> |
|---|
| 117 | <a href="<?cs var:header.href ?>" title="Sort by ID (<?cs |
|---|
| 118 | if:header.order == 'asc' ?>descending<?cs |
|---|
| 119 | else ?>ascending<?cs /if ?>)">Ticket</a> |
|---|
| 120 | </th><?cs |
|---|
| 121 | else ?> |
|---|
| 122 | <th<?cs if:header.order ?> class="<?cs var:header.order ?>"<?cs /if ?>> |
|---|
| 123 | <a href="<?cs var:header.href ?>" title="Sort by <?cs |
|---|
| 124 | var:header.name ?> (<?cs if:header.order == 'asc' ?>descending<?cs |
|---|
| 125 | else ?>ascending<?cs /if ?>)"><?cs var:header.name ?></a> |
|---|
| 126 | </th><?cs |
|---|
| 127 | /if ?> |
|---|
| 128 | <?cs /each ?></tr></thead> |
|---|
| 129 | <tbody> |
|---|
| 130 | <?cs each:result = query.results ?><tr class="<?cs |
|---|
| 131 | if:name(result) % 2 ?>odd<?cs else ?>even<?cs /if ?> <?cs |
|---|
| 132 | var:result.priority ?>"> |
|---|
| 133 | <?cs each:header = query.headers ?><?cs |
|---|
| 134 | if:name(header) == 0 ?> |
|---|
| 135 | <td class="ticket"><a href="<?cs var:result.href ?>" title="View ticket"><?cs |
|---|
| 136 | var:result.id ?></a></td><?cs |
|---|
| 137 | else ?> |
|---|
| 138 | <td><?cs if:header.name == 'summary' ?> |
|---|
| 139 | <a href="<?cs var:result.href ?>" title="View ticket"><?cs |
|---|
| 140 | var:result[header.name] ?></a><?cs |
|---|
| 141 | else ?> |
|---|
| 142 | <?cs var:result[header.name] ?><?cs |
|---|
| 143 | /if ?> |
|---|
| 144 | </td><?cs |
|---|
| 145 | /if ?> |
|---|
| 146 | <?cs /each ?> |
|---|
| 147 | </tr><?cs /each ?> |
|---|
| 148 | </tbody> |
|---|
| 149 | </table> |
|---|
| 150 | <?cs else ?> |
|---|
| 151 | <p>No tickets matched this query.</p> |
|---|
| 152 | <?cs /if ?> |
|---|
| 153 | |
|---|
| 154 | <?cs /if ?> |
|---|
| 155 | |
|---|
| 156 | <div id="help"> |
|---|
| 157 | <strong>Note:</strong> See <a href="<?cs var:$trac.href.wiki ?>/TracQuery">TracQuery</a> |
|---|
| 158 | for help on using queries. |
|---|
| 159 | </div> |
|---|
| 160 | |
|---|
| 161 | </div> |
|---|
| 162 | <?cs include:"footer.cs" ?> |
|---|