Changeset 3036
- Timestamp:
- 10/27/05 11:23:47 (8 years ago)
- Location:
- trac/trunk
- Files:
-
- 2 deleted
- 33 edited
- 8 copied
-
htdocs/css/about.css (copied) (copied from trac/vendor/current/htdocs/css/about.css)
-
htdocs/css/browser.css (modified) (4 diffs)
-
htdocs/css/changeset.css (modified) (3 diffs)
-
htdocs/css/code.css (modified) (1 diff)
-
htdocs/css/diff.css (modified) (8 diffs)
-
htdocs/css/report.css (modified) (2 diffs)
-
htdocs/css/roadmap.css (modified) (5 diffs)
-
htdocs/css/search.css (modified) (1 diff)
-
htdocs/css/ticket.css (modified) (3 diffs)
-
htdocs/css/timeline.css (modified) (2 diffs)
-
htdocs/css/trac.css (modified) (11 diffs)
-
htdocs/css/wiki.css (modified) (5 diffs)
-
htdocs/draft.png (modified) (previous)
-
htdocs/editedticket.png (copied) (copied from trac/vendor/current/htdocs/editedticket.png)
-
htdocs/js (copied) (copied from trac/vendor/current/htdocs/js)
-
htdocs/js/query.js (copied) (copied from trac/vendor/current/htdocs/js/query.js)
-
htdocs/js/trac.js (copied) (copied from trac/vendor/current/htdocs/js/trac.js)
-
htdocs/js/wikitoolbar.js (copied) (copied from trac/vendor/current/htdocs/js/wikitoolbar.js)
-
htdocs/trac.js (deleted)
-
templates/attachment.cs (modified) (2 diffs)
-
templates/browser.cs (modified) (2 diffs)
-
templates/changeset.cs (modified) (6 diffs)
-
templates/error.cs (modified) (1 diff)
-
templates/file.cs (deleted)
-
templates/footer.cs (modified) (2 diffs)
-
templates/header.cs (modified) (2 diffs)
-
templates/log.cs (modified) (3 diffs)
-
templates/log_changelog.cs (copied) (copied from trac/vendor/current/templates/log_changelog.cs)
-
templates/log_rss.cs (modified) (1 diff)
-
templates/macros.cs (modified) (2 diffs)
-
templates/milestone.cs (modified) (4 diffs)
-
templates/newticket.cs (modified) (4 diffs)
-
templates/query.cs (modified) (1 diff)
-
templates/query_rss.cs (copied) (copied from trac/vendor/current/templates/query_rss.cs)
-
templates/report.cs (modified) (9 diffs)
-
templates/report_rss.cs (modified) (1 diff)
-
templates/roadmap.cs (modified) (2 diffs)
-
templates/search.cs (modified) (2 diffs)
-
templates/settings.cs (modified) (4 diffs)
-
templates/ticket.cs (modified) (4 diffs)
-
templates/timeline.cs (modified) (2 diffs)
-
templates/timeline_rss.cs (modified) (1 diff)
-
templates/wiki.cs (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trac/trunk/htdocs/css/browser.css
r2581 r3036 1 @import url(code.css); 1 #prefs { margin-top: -1.6em } 2 * html #prefs { width: 34em } /* Set width only for IE */ 3 #prefs fieldset label { display: block } 4 #prefs .buttons { margin-top: -1.6em } 5 #prefs .choice { margin-top: -0.6em } 6 7 #legend { clear: right; } 2 8 3 9 /* Browser */ 4 h1 { font-size: 16px; letter-spacing: -0.028em;margin: 0; padding: 0 0 .5em }10 h1 { margin: 0; padding: 0 0 .5em } 5 11 h1 :link, h1 :visited, h1 .filename { border: none; padding: 0 .2em } 6 12 h1 :link, h1 :visited { color: #b00 } … … 19 25 white-space: nowrap; 20 26 } 27 #dirlist td.size { 28 color: #888; 29 white-space: nowrap; 30 text-align: right; 31 vertical-align: middle; 32 font-size: 70%; 33 } 21 34 #dirlist td.name { width: 100% } 22 35 #dirlist td.name a, #dirlist td.name span { … … 31 44 #dirlist td.name span.file { background-image: url(../filedeny.png) } 32 45 #dirlist td.name a, #dirlist td.rev a { border-bottom: none; display: block } 33 #dirlist td.change * { font-size: 9px } 46 #dirlist td.rev { text-align: right } 47 #dirlist td.change { font-size: 85%; vertical-align: middle; white-space: nowrap } 34 48 35 49 /* Styles for the revision log table 36 50 (extends the styles for "table.listing") */ 37 51 #chglist { margin-top: 0 } 38 #chglist td.date { white-space: nowrap } 39 #chglist td.rev, #chglist td.chgset { text-align: center } 52 #chglist td.change span { 53 border: 1px solid #999; 54 display: block; 55 margin: .2em .5em 0 0; 56 width: .8em; height: .8em; 57 } 58 #chglist td.change .comment { display: none } 59 #chglist td.old_path { font-style: italic } 60 #chglist td.date { font-size: 85%; vertical-align: top; padding-top: 0.55em; white-space: nowrap } 61 #chglist td.author { font-size: 85%; vertical-align: top; padding-top: 0.55em } 62 #chglist td.rev, #chglist td.chgset { text-align: right } 40 63 #chglist td.rev a, #chglist td.chgset a { border-bottom: none } 41 #chglist td.summary { width: 100% } 64 #chglist td.summary { width: 100%; font-size: 85%; vertical-align: middle; white-space: nowrap } 65 #chglist td.summary * { margin-top: 0; margin-bottom: 0 } 42 66 43 /* Styles for the revision info in the file module */ 67 #paging { margin: 1em 0 } 68 69 /* Styles for the revision info in the file view */ 44 70 #info { 45 71 background: #f7f7f0; … … 50 76 width: 100%; 51 77 } 52 #info th { 53 font-size: 11px; 54 font-weight: bold; 55 padding: 2px .5em; 56 white-space: nowrap; 57 vertical-align: top; 58 } 59 #info td.message { 60 font-size: 11px; 61 padding: 2px .5em; 62 vertical-align: top; 63 width: 100%; 64 } 78 #info th, #info td { font-size: 85%; padding: 2px .5em; vertical-align: top } 79 #info th { font-weight: bold; white-space: nowrap; } 80 #info td.message { width: 100%; } 65 81 #info .message ul { padding: 0; margin: 0 2em } 66 82 #info .message p { margin: 0; padding: 0 } 83 #info .props { 84 color: #666; 85 list-style: square; 86 margin: 0 0 .4em 1.6em; 87 padding: 0; 88 } 89 #info .props li { padding: 0 } 67 90 68 91 /* Styles for the HTML preview */ -
trac/trunk/htdocs/css/changeset.css
r2581 r3036 1 @import url(diff.css);2 3 1 /* Changeset overview */ 4 2 #overview .files { padding-top: 1em } … … 13 11 width: .8em; height: .8em; 14 12 } 13 #overview div.add div, #overview div.cp div, #overview div.mv div { 14 border: 0; 15 margin: 0; 16 float: right; 17 width: .35em; 18 } 19 15 20 #overview .message { padding: 1em 0 1px } 16 21 #overview dd.message p, #overview dd.message ul, #overview dd.message ol { … … 19 24 } 20 25 #overview .files { padding: 1px 0 } 26 27 .diff ul.props { font-size: 90%; list-style: disc; margin: .5em 0 0; padding: 0 .5em 1em 2em } 28 .diff ul.props li { margin: 0; padding: 0 } -
trac/trunk/htdocs/css/code.css
r2581 r3036 1 .code-block { 2 border: 1px dotted #d7d7d7; 3 margin: 1em 0; 4 padding: .3em; 1 div.code { 2 background: #f7f7f7; 3 border: 1px solid #d7d7d7; 4 margin: 1em 1.75em; 5 padding: .25em; 5 6 overflow: auto 6 7 } 8 9 table.code { 10 border: 1px solid #ddd; 11 border-spacing: 0; 12 border-top: 0; 13 empty-cells: show; 14 font-size: 12px; 15 line-height: 130%; 16 padding: 0; 17 margin: 0 auto; 18 table-layout: fixed; 19 width: 100%; 20 } 21 table.code th { 22 border-right: 1px solid #d7d7d7; 23 border-bottom: 1px solid #998; 24 font-size: 11px; 25 } 26 table.code th.lineno { width: 4em } 27 table.code thead th { 28 background: #eee; 29 border-top: 1px solid #d7d7d7; 30 color: #999; 31 padding: 0 .25em; 32 text-align: center; 33 white-space: nowrap; 34 } 35 table.code tbody th { 36 background: #eed; 37 color: #886; 38 font-weight: normal; 39 padding: 0 .5em; 40 text-align: right; 41 vertical-align: top; 42 } 43 table.code tbody th :link, table.code tbody th :visited { 44 border: none; 45 color: #886; 46 text-decoration: none; 47 } 48 table.code tbody th :link:hover, table.code tbody th :visited:hover { 49 color: #000; 50 } 51 table.code tbody td { 52 background: #fff; 53 font: normal 11px monospace; 54 overflow: hidden; 55 padding: 1px 2px; 56 vertical-align: top; 57 } 58 7 59 .image-file { background: #eee; padding: .3em } 8 60 .image-file img { background: url(../imggrid.png) } 9 61 10 62 /* Default */ 11 .css_default, .c_default, .code_default, .pl_default, .p_default, 12 .hphp_default, .yaml_default, .code-block span { 63 .code-block span { 13 64 font-family: monospace; 14 65 } -
trac/trunk/htdocs/css/diff.css
r2581 r3036 19 19 20 20 /* Colors for change types */ 21 #overview .mod, .diff #legend .mod { background: #fd8 } 22 #overview .rem, .diff #legend .rem { background: #f88 } 23 #overview .add, .diff #legend .add { background: #dfd } 21 #chglist .edit, #overview .mod, .diff #legend .mod { background: #fd8 } 22 #chglist .delete, #overview .rem, .diff #legend .rem { background: #f88 } 23 #chglist .add, #overview .add, .diff #legend .add { background: #bfb } 24 #chglist .copy, #overview .cp, .diff #legend .cp { background: #88f } 25 #chglist .move, #overview .mv, .diff #legend .mv { background: #ccc } 26 #chglist .unknown { background: #fff } 24 27 25 28 /* Legend for diff colors */ … … 49 52 50 53 /* Styles for the list of diffs */ 51 .diff ul { clear: both; margin: 0; padding: 0 }52 .diff li {54 .diff ul.entries { clear: both; margin: 0; padding: 0 } 55 .diff li.entry { 53 56 background: #f7f7f7; 54 57 border: 1px solid #d7d7d7; … … 63 66 letter-spacing: normal; 64 67 margin: 0 auto; 65 padding: .1em 0 .25em; 66 text-align: center; 68 padding: .1em 0 .25em .5em; 67 69 } 68 70 … … 109 111 vertical-align: top; 110 112 } 111 .diff table tbody.skipped linestd {113 .diff table tbody.skipped td { 112 114 background: #f7f7f7; 113 115 border: 1px solid #d7d7d7; … … 118 120 119 121 /* Styles for the inline diff */ 120 .diff table.inline tbody.mod td. base, .diff table.inline tbody.rem td.base{122 .diff table.inline tbody.mod td.l, .diff table.inline tbody.rem td.l { 121 123 background: #fdd; 122 124 border-color: #c00; … … 124 126 border-width: 0 1px 0 1px; 125 127 } 126 .diff table.inline tbody.mod td. chg, .diff table.inline tbody.add td.chg{128 .diff table.inline tbody.mod td.r, .diff table.inline tbody.add td.r { 127 129 background: #dfd; 128 130 border-color: #0a0; … … 130 132 border-width: 0 1px 0 1px; 131 133 } 132 .diff table.inline tbody.mod tr.first td. base,133 .diff table.inline tbody.rem tr.first td. base{ border-top-width: 1px }134 .diff table.inline tbody.mod tr.last td. base,135 .diff table.inline tbody.rem tr.last td. base{ border-bottom-width: 1px }136 .diff table.inline tbody.mod tr.first td. chg,137 .diff table.inline tbody.add tr.first td. chg{ border-top-width: 1px }138 .diff table.inline tbody.mod tr.last td. chg,139 .diff table.inline tbody.add tr.last td. chg{ border-bottom-width: 1px }134 .diff table.inline tbody.mod tr.first td.l, 135 .diff table.inline tbody.rem tr.first td.l { border-top-width: 1px } 136 .diff table.inline tbody.mod tr.last td.l, 137 .diff table.inline tbody.rem tr.last td.l { border-bottom-width: 1px } 138 .diff table.inline tbody.mod tr.first td.r, 139 .diff table.inline tbody.add tr.first td.r { border-top-width: 1px } 140 .diff table.inline tbody.mod tr.last td.r, 141 .diff table.inline tbody.add tr.last td.r { border-bottom-width: 1px } 140 142 .diff table.inline tbody.mod td del { background: #e99; color: #000 } 141 143 .diff table.inline tbody.mod td ins { background: #9e9; color: #000 } … … 143 145 /* Styles for the side-by-side diff */ 144 146 .diff table.sidebyside colgroup.content { width: 50% } 145 .diff table.sidebyside tbody.mod td. base{ background: #fe9 }146 .diff table.sidebyside tbody.mod td. chg{ background: #fd8 }147 .diff table.sidebyside tbody.add td. base{ background: #dfd }148 .diff table.sidebyside tbody.add td. chg{ background: #cfc }149 .diff table.sidebyside tbody.rem td. base{ background: #f88 }150 .diff table.sidebyside tbody.rem td. chg{ background: #faa }147 .diff table.sidebyside tbody.mod td.l { background: #fe9 } 148 .diff table.sidebyside tbody.mod td.r { background: #fd8 } 149 .diff table.sidebyside tbody.add td.l { background: #dfd } 150 .diff table.sidebyside tbody.add td.r { background: #cfc } 151 .diff table.sidebyside tbody.rem td.l { background: #f88 } 152 .diff table.sidebyside tbody.rem td.r { background: #faa } 151 153 .diff table.sidebyside tbody.mod del, .diff table.sidebyside tbody.mod ins { 152 154 background: #fc0; -
trac/trunk/htdocs/css/report.css
r2581 r3036 1 h1 .numrows { font-size: 65%; color: #999; font-weight: normal } 1 @import url(code.css); 2 3 h1 .numrows { color: #999; font-size: 65%; font-weight: normal } 2 4 h2 { 3 5 background: #f7f7f7; … … 9 11 #report-notfound { margin: 2em; font-size: 110% } 10 12 13 #query { clear: right } 14 #query fieldset, #query fieldset input, #query fieldset select { font-size: 11px } 15 #query fieldset { margin-top: 1em } 16 #query .option, #query .option input, #query .option select { font-size: 11px } 17 #query .option { float: left; line-height: 2em; margin: .9em 2.5em 0 .5em; padding: 0 0 .1em } 18 #query .buttons { float: right; margin-top: .5em } 19 #query .buttons input { margin: .5em } 20 #query hr { clear: both; margin: 0; visibility: hidden } 21 22 #filters table { width: 100% } 23 #filters tr { height: 2em } 24 #filters th, #filters td { padding: 0 .2em; vertical-align: middle } 25 #filters th { font-size: 11px; text-align: right; white-space: nowrap; } 26 #filters td label { font-size: 11px } 27 #filters td.mode { text-align: right } 28 #filters td.filter { width: 100% } 29 #filters td.filter label { padding-right: 1em } 30 #filters td.actions { text-align: right; white-space: nowrap } 31 11 32 /* Styles for the report list and the report results table 12 33 (extends the styles for "table.listing") */ 13 #reportlisttd.title { width: 100% }14 #reportlist tbody td :link, #reportlisttbody td :visited,15 #tktlist tbody td :link, #tktlisttbody td :visited { display: block }16 #tktlist{ border-bottom: none }17 #tktlistthead th { text-transform: capitalize }18 #tktlist tbody td, #reportlist tbody td { padding: .1em .5em}19 #tktlist tbody td a, #reportlisttbody td a { border-bottom: none }20 #tktlist tbody td.ticket :link, #tktlist tbody td.ticket:visited {34 .reports td.title { width: 100% } 35 .reports tbody td :link, .reports tbody td :visited, 36 .tickets tbody td :link, .tickets tbody td :visited { display: block } 37 .tickets { border-bottom: none } 38 .tickets thead th { text-transform: capitalize } 39 .tickets tbody td, .reports tbody td { padding: .1em .5em !important } 40 .tickets tbody td a, .reports tbody td a { border-bottom: none } 41 .tickets tbody td.id :link, .tickets tbody td.id :visited { 21 42 font-weight: bold; 22 43 } 23 #tktlisttbody tr:hover { background: #eed; color: #000 }24 #tktlisttr.color1-odd { background: #fdc; border-color: #e88; color: #a22 }25 #tktlisttr.color1-even { background: #fed; border-color: #e99; color: #a22 }26 #tktlisttr.color2-odd { background: #ffb; border-color: #eea; color: #880 }27 #tktlisttr.color2-even { background: #ffd; border-color: #dd8; color: #880 }28 #tktlisttr.color3-odd { background: #fbfbfb; border-color: #ddd; color: #444 }29 #tktlisttr.color3-even { background: #f6f6f6; border-color: #ccc; color: #333 }30 #tktlisttr.color4-odd { background: #e7ffff; border-color: #cee; color: #099 }31 #tktlisttr.color4-even { background: #dff; border-color: #bee; color: #099 }32 #tktlisttr.color5-odd { background: #e7eeff; border-color: #cde; color: #469 }33 #tktlisttr.color5-even { background: #dde7ff; border-color: #cde; color: #469 }34 #tktlisttr.color6-odd { background: #f0f0f0; border-color: #ddd; color: #888 }35 #tktlisttr.color6-even { background: #f7f7f7; border-color: #ddd; color: #888 }36 #tktlisttr.color6-odd a, .color6-even a { color: #b66 }37 #tktlisttbody td.fullrow {44 .tickets tbody tr:hover { background: #eed; color: #000 } 45 .tickets tr.color1-odd { background: #fdc; border-color: #e88; color: #a22 } 46 .tickets tr.color1-even { background: #fed; border-color: #e99; color: #a22 } 47 .tickets tr.color2-odd { background: #ffb; border-color: #eea; color: #880 } 48 .tickets tr.color2-even { background: #ffd; border-color: #dd8; color: #880 } 49 .tickets tr.color3-odd { background: #fbfbfb; border-color: #ddd; color: #444 } 50 .tickets tr.color3-even { background: #f6f6f6; border-color: #ccc; color: #333 } 51 .tickets tr.color4-odd { background: #e7ffff; border-color: #cee; color: #099 } 52 .tickets tr.color4-even { background: #dff; border-color: #bee; color: #099 } 53 .tickets tr.color5-odd { background: #e7eeff; border-color: #cde; color: #469 } 54 .tickets tr.color5-even { background: #dde7ff; border-color: #cde; color: #469 } 55 .tickets tr.color6-odd { background: #f0f0f0; border-color: #ddd; color: #888 } 56 .tickets tr.color6-even { background: #f7f7f7; border-color: #ddd; color: #888 } 57 .tickets tr.color6-odd a, .color6-even a { color: #b66 } 58 .tickets tbody tr.fullrow td, .tickets tbody td.fullrow { 38 59 border: none; 39 60 color: #333; 40 background: #fff;41 padding -bottom: 2.5em !important;42 font-size: 90%;61 background: transparent; 62 padding: 0 1em 2em 2em !important; 63 font-size: 85%; 43 64 } 44 #tktlist td.fullrow :link, #tktlist td.fullrow :visited { display: inline } 45 #tktlist td.fullrow p { margin: 0; padding: .25em 1em } 46 #tktlist td.fullrow hr { display: none } 65 .tickets tbody tr.fullrow:hover { background: transparent !important } 66 .tickets .fullrow :link, .tickets .fullrow :visited { display: inline } 67 .tickets .fullrow .meta { color: #999; margin-bottom: -.5em; margin-left: -1em } 68 .tickets .fullrow hr { display: none } 47 69 48 #tktlist tr.odd.highest { background: #fdc; border-color: #e88; color: #a22 } 49 #tktlist tr.even.highest { background: #fed; border-color: #e99; color: #a22 } 50 #tktlist tr.odd.high { background: #ffb; border-color: #eea; color: #880 } 51 #tktlist tr.even.high { background: #ffd; border-color: #dd8; color: #880 } 52 #tktlist tr.odd.normal { background: #fbfbfb; border-color: #ddd; color: #444 } 53 #tktlist tr.even.normal { background: #f6f6f6; border-color: #ccc; color: #333 } 54 #tktlist tr.odd.low { background: #e7ffff; border-color: #cee; color: #099 } 55 #tktlist tr.even.low { background: #dff; border-color: #bee; color: #099 } 56 #tktlist tr.odd.lowest { background: #e7eeff; border-color: #cde; color: #469 } 57 #tktlist tr.even.lowest { background: #dde7ff; border-color: #cde; color: #469 } 58 59 .field { margin-top: 1.3em } 60 61 #query fieldset { margin: 1em 0 } 62 #query fieldset div { float: left; margin: .5em 2em .5em 0 } 63 #query fieldset label { display: block } 64 #query fieldset select { width: 10em } 65 #query br, #query .buttons { clear: left } 70 /* Query results table */ 71 table.tickets tbody tr.added td { font-weight: bold } 72 table.tickets tbody tr.changed td { font-style: italic } 73 table.tickets tbody tr.removed td { color: #999 } 74 table.tickets tbody tr.prio1 { background: #fdc; border-color: #e88 } 75 table.tickets tbody tr.even.prio1 { background: #fed; border-color: #e99 } 76 table.tickets tbody tr.prio2 { background: #ffb; border-color: #eea } 77 table.tickets tbody tr.even.prio2 { background: #ffd; border-color: #dd8 } 78 table.tickets tbody tr.prio3 { background: #fbfbfb; border-color: #ddd } 79 table.tickets tbody tr.even.prio3 { background: #f6f6f6; border-color: #ccc } 80 table.tickets tbody tr.prio4 { background: #e7ffff; border-color: #cee } 81 table.tickets tbody tr.even.prio4 { background: #dff; border-color: #bee } 82 table.tickets tbody tr.prio5 { background: #e7eeff; border-color: #cde } 83 table.tickets tbody tr.even.prio5 { background: #dde7ff } 84 table.tickets tbody tr.prio6 { background: #f0f0f0; border-color: #ddd } 85 table.tickets tbody tr.even.prio6 { background: #f7f7f7 } -
trac/trunk/htdocs/css/roadmap.css
r2581 r3036 1 1 /* General styles for the progress bars */ 2 div.progress { float: left; border: 1px solid #d7d7d7 } 3 div.progress div { background: #bae0ba; height: 1.2em } 2 div.progress { border: 1px solid #d7d7d7; float: left } 3 div.progress :link, div.progress :visited { 4 background: #fff; 5 border: none; 6 display: block; 7 float: left; 8 height: 1.2em; 9 } 10 div.progress :link:hover, div.progress :visited:hover { background: #fff } 11 div.progress .closed:link, div.progress .closed:visited { background: #bae0ba } 4 12 p.percent { font-size: 10px; line-height: 2.4em; margin: 0.9em 0 0 } 5 13 … … 7 15 ul.milestones { margin: 2em 0 0; padding: 0 } 8 16 li.milestone { list-style: none; margin-bottom: 4em } 9 li.milestone .info { white-space: nowrap }10 li.milestone .info h2 {17 .milestone .info { white-space: nowrap } 18 .milestone .info h2 { 11 19 background: #f7f7f7; 12 20 border-bottom: 1px solid #d7d7d7; 13 21 margin: 0; 14 22 } 15 li.milestone .info h2 :link, li.milestone .info h2 :visited {23 .milestone .info h2 :link, .milestone .info h2 :visited { 16 24 color: #000; 17 25 display: block; 18 26 border-bottom: none; 19 27 } 20 li.milestone .info h2 :link:hover, li.milestone .info h2 :visited:hover {28 .milestone .info h2 :link:hover, .milestone .info h2 :visited:hover { 21 29 color: #000; 22 30 } 23 li.milestone .info h2 em { color: #b00; font-style: normal }24 li.milestone .info .date {31 .milestone .info h2 em { color: #b00; font-style: normal } 32 .milestone .info .date { 25 33 color: #888; 26 34 font-size: 11px; … … 28 36 margin: 0; 29 37 } 30 li.milestone .info .progress { margin: 1em 1em 0; width: 40em; max-width: 80% }31 li.milestone .info dl {38 .milestone .info .progress { margin: 1em 1em 0; width: 40em; max-width: 70% } 39 .milestone .info dl { 32 40 font-size: 10px; 33 41 font-style: italic; … … 35 43 white-space: nowrap; 36 44 } 37 li.milestone .info dt { display: inline; margin-left: .5em }38 li.milestone .info dd { display: inline; margin: 0 1em 0 .5em }39 li.milestone .descr{ margin-left: 1em }45 .milestone .info dt { display: inline; margin-left: .5em } 46 .milestone .info dd { display: inline; margin: 0 1em 0 .5em } 47 .milestone .description { margin-left: 1em } 40 48 41 49 /* Styles for the milestone view */ 42 .milestone .date { color: #888; font-style: italic }43 .milestone .descr { margin: 1em 0 2em }50 .milestone .date { color: #888; font-style: italic; margin: 0 } 51 .milestone .description { margin: 1em 0 2em } 44 52 45 /* Milestone view preferences */ 46 #prefs fieldset { margin: 1em .5em .5em; padding: .5em 1em 0 } 47 48 /* Styles for the statistics table */ 49 h2.stats { 50 background: #f7f7f7; 51 border-bottom: 1px solid #d7d7d7; 52 clear: right; 53 padding: 0 .33em; 54 } 55 #stats { border-bottom: none; margin-top: 0 } 56 #stats td, #stats th { padding: 0 .25em } 57 #stats :link, #stats :visited { display: block; border: none } 58 #stats th.name { text-transform: capitalize } 59 #stats th.tickets { text-align: center; border-bottom: none } 60 #stats th.open, #stats th.closed { 61 border-top: none; 62 font-size: smaller; 63 text-align: center; 64 width: 6em; 65 } 66 #stats td.open, #stats td.closed { 67 color: #888; 68 text-align: right; 69 padding-right: 1.5em; 70 vertical-align: middle; 71 } 72 #stats th.progress { padding-left: 6px; width: 60% } 73 #stats td.progress { white-space: nowrap } 74 #stats td.progress div.progress { margin: 3px .5em 3px 2px } 75 #stats td.progress p.percent { font-size: 10px; margin: 0 } 76 #stats tbody th { font-weight: normal; text-align: left } 77 #stats tbody th.name { line-height: 2em } 78 #stats tbody.totals tr { border-bottom: 0 } 79 #stats tbody.totals th, #stats tbody.totals td { 80 font-weight: bold; 81 } 53 /* Styles for the milestone statistics table */ 54 #stats { float: right; margin: 0 0 2em 2em; width: 400px; max-width: 40% } 55 #stats legend { white-space: nowrap } 56 #stats table { border-collapse: collapse; width: 100% } 57 #stats th, #stats td { font-size: 10px; padding: 0; white-space: nowrap } 58 #stats th { text-align: right; text-transform: capitalize } 59 #stats th :link, #stats th :visited { border: none } 60 #stats td { padding-left: 0.5em; width: 100% } 61 #stats td div.progress { margin: 3px 4px 3px 0 } 62 #stats td p.percent { line-height: 1.2em; margin-top: .4em } 82 63 83 64 /* Styles for the milestone edit form */ … … 87 68 #edit .field { margin-top: 1.3em } 88 69 #edit label { padding-left: .2em } 89 #edit textarea#descr { width: 97% }70 #edit textarea#description { width: 97% } -
trac/trunk/htdocs/css/search.css
r2581 r3036 10 10 #results .author, #results .date, #results .keywords { color: #090 } 11 11 12 #paging { margin: 0 0 2em } 13 #paging ul { text-align: left } 12 #paging { margin: 0 0 2em; text-align: center } -
trac/trunk/htdocs/css/ticket.css
r2581 r3036 1 1 @import url(code.css); 2 2 3 #content { margin-top: 1.5em;width: 700px; max-width: 100% }3 #content { width: 700px; max-width: 100% } 4 4 5 5 #newticket #description { width: 100% } 6 6 #newticket #properties { width: 100% } 7 7 8 #ticket { 8 #ticket { 9 9 background: #ffd; 10 10 border: 1px outset #996; 11 padding: 1em; 11 margin-top: 1em; 12 padding: .5em 1em; 12 13 position: relative; 13 14 } 14 #ticket h1, #ticket h2 { margin: 0 } 15 #ticket h2 { font-weight: normal; font-size: 150%; margin-bottom: 1em } 16 #ticket .date { color: #996; float: right; position: relative } 15 #ticket h2.summary { margin: 0 } 16 #ticket h3.status { color: #996; font-size: 90%; font-weight: normal; margin-top: .5em; } 17 #ticket .date { color: #996; float: right; font-size: 85%; position: relative } 18 #ticket .date p { margin: 0 } 17 19 18 #ticket table { table-layout: fixed; border-collapse: collapse; width: 100% } 19 #ticket tr { border-bottom: 1px dotted #eed } 20 #ticket td, #ticket th { font-size: 80%; padding: .5em 1em; vertical-align: top } 21 #ticket th { color: #996; font-weight: normal; text-align: left } 22 #ticket hr { color: #dd9; border-color: #dd9; border-width: 1px 0 0; height: 1px; margin: .5em 0 0 } 20 #ticket table.properties { 21 border-bottom: 1px solid #dd9; 22 border-top: 1px solid #dd9; 23 border-collapse: collapse; 24 table-layout: fixed; 25 width: 100%; 26 } 27 #ticket table.properties tr { border-bottom: 1px dotted #eed } 28 #ticket table.properties td, #ticket table.properties th { 29 font-size: 80%; 30 padding: .5em 1em; 31 vertical-align: top; 32 } 33 #ticket table.properties th { 34 color: #663; 35 font-weight: normal; 36 text-align: left; 37 width: 20%; 38 } 39 #ticket table.properties td { width: 30% } 40 #ticket table.properties .description { border-top: 1px solid #dd9 } 23 41 24 42 #attachments { border: 1px outset #996; padding: 1em } 25 #attachments .attachments { list-style: square; margin-left: 2em; padding: 0 } 43 #attachments .attachments { margin-left: 2em; padding: 0 } 44 #attachments dt { display: list-item; list-style: square; } 45 #attachments dd { font-style: italic; margin-left: 0; padding-left: 0; } 26 46 27 47 #changelog { border: 1px outset #996; padding: 1em } … … 39 59 40 60 #properties { white-space: nowrap; line-height: 160%; padding: .5em } 41 #properties .main { margin-bottom: 1em }61 /*#properties .main { margin-bottom: 1em } 42 62 #properties .col1 { 43 63 border-right: 1px dotted #d7d7d7; … … 58 78 padding-top: 1em 59 79 } 60 #properties .custom .field { margin: .25em 0 } 80 #properties .custom .field { margin: .25em 0 }*/ 81 82 #properties table { border-spacing: 0; width: 100%; } 83 #properties table th { 84 padding: .4em; 85 text-align: right; 86 width: 20%; 87 vertical-align: top; 88 } 89 #properties table th.col2 { border-left: 1px dotted #d7d7d7 } 90 #properties table td { vertical-align: middle; width: 30% } 91 #properties table td.fullrow { vertical-align: middle; width: 80% } 61 92 62 93 #action { line-height: 2em } -
trac/trunk/htdocs/css/timeline.css
r2590 r3036 2 2 3 3 * html #prefs { width: 34em } /* Set width only for IE */ 4 #prefs fieldset label { display: block } 4 5 #prefs .buttons { margin-top: -1.6em } 5 6 … … 41 42 dt.changeset, dt.changeset a { background-image: url(../changeset.png) !important } 42 43 dt.newticket, dt.newticket a { background-image: url(../newticket.png) !important } 44 dt.editedticket, dt.editedticket a { background-image: url(../editedticket.png) !important } 43 45 dt.closedticket, dt.closedticket a { background-image: url(../closedticket.png) !important } 44 46 dt.wiki, dt.wiki a { background-image: url(../wiki.png) !important } 45 47 dt.milestone, dt.milestone a { background-image: url(../milestone.png) !important } 46 48 47 .diff-unmod { color: #000 } 48 .diff-rem { color: #e00 } 49 .diff-add { color: #2e2 } 50 .diff-mod { color: #e84 } 49 /* Styles for the 'changeset_show_files' option */ 50 dd.changeset .changes .add { color: #2e2 } 51 dd.changeset .changes .delete { color: #e00 } 52 dd.changeset .changes .edit, dd.changeset .changes .copy, 53 dd.changeset .changes .move { 54 color: #e84; 55 } -
trac/trunk/htdocs/css/trac.css
r2992 r3036 4 4 color: #000; 5 5 margin: 10px; 6 padding: 0; 6 7 } 7 8 body, th, td { … … 20 21 img { border: none } 21 22 22 .underline { text-decoration: underline ;}23 .underline { text-decoration: underline } 23 24 ol.loweralpha { list-style-type: lower-alpha } 24 25 ol.upperalpha { list-style-type: upper-alpha } … … 42 43 } 43 44 44 .ext-link { background: url(../extlink.gif) no-repeat 0 58%; padding-left: 16px } 45 * html .ext-link { background-position: 0 .35em } /* IE hack, see #937 */ 45 @media screen { 46 a.ext-link .icon { 47 background: url(../extlink.gif) left center no-repeat; 48 padding-left: 16px; 49 } 50 * html a.ext-link .icon { display: inline-block; } 51 } 46 52 47 53 /* Forms */ 48 54 input, textarea, select { margin: 2px } 49 55 input, select { vertical-align: middle } 50 input[type= submit], input[type=reset] {56 input[type=button], input[type=submit], input[type=reset] { 51 57 background: #eee; 52 58 color: #222; … … 54 60 padding: .1em .5em; 55 61 } 56 input[type=submit]:hover, input[type=reset]:hover { background: #ccb } 57 input[type=text], input.textwidget, textarea { 58 background: #fff; 59 color: #000; 60 border: 1px solid #d7d7d7; 61 } 62 input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover { 63 background: #ccb; 64 } 65 input[type=button][disabled], input[type=submit][disabled], 66 input[type=reset][disabled] { 67 background: #f6f6f6; 68 border-style: solid; 69 color: #999; 70 } 71 input[type=text], input.textwidget, textarea { border: 1px solid #d7d7d7 } 62 72 input[type=text], input.textwidget { padding: .25em .5em } 63 73 input[type=text]:focus, textarea:focus { border: 1px solid #886 } 64 74 option { border-bottom: 1px dotted #d7d7d7 } 65 75 fieldset { border: 1px solid #d7d7d7; padding: .5em; margin: 0 } 66 fieldset.iefix { b order: none; padding: 0; margin: 0 }76 fieldset.iefix { background: transparent; border: none; padding: 0; margin: 0 } 67 77 * html fieldset.iefix { width: 98% } 68 78 fieldset.iefix p { margin: 0 } … … 75 85 /* Header */ 76 86 #header hr { display: none } 87 #header h1 { margin: 1.5em 0 -1.5em; } 77 88 #header img { border: none; margin: 0 0 -3em } 78 89 #header :link, #header :visited, #header :link:hover, #header :visited:hover { 79 90 background: transparent; 91 color: #555; 80 92 margin-bottom: 2px; 81 93 border: none; 82 94 } 95 #header h1 :link:hover, #header h1 :visited:hover { color: #000 } 83 96 84 97 /* Quick search */ … … 126 139 border-right: 1px solid #ddd; 127 140 } 128 #mainnav .active :link, #mainnav .active:visited {141 #mainnav .active :link, #mainnav .active :visited { 129 142 background: #333 url(../topbar_gradient2.png) 0 0 repeat-x; 130 143 border-top: none; … … 133 146 font-weight: bold; 134 147 } 135 #mainnav .active :link:hover, #mainnav .active:visited:hover {148 #mainnav .active :link:hover, #mainnav .active :visited:hover { 136 149 border-right: 1px solid #000; 137 150 } … … 225 238 * html #prefs { width: 26em } /* Set width only for IE */ 226 239 #prefs input, #prefs select { font-size: 9px; vertical-align: middle } 227 #prefs fieldset { border: none; margin: .5em; padding: 0 } 240 #prefs fieldset { 241 background: transparent; 242 border: none; 243 margin: .5em; 244 padding: 0; 245 } 228 246 #prefs fieldset legend { 229 247 background: transparent; … … 237 255 238 256 /* Wiki */ 239 a.missing:link,a.missing:visited { background: #fafaf0; color: #998 } 257 .wikipage { padding-left: 18px } 258 .wikipage h1, .wikipage h2, .wikipage h3 { margin-left: -18px } 259 260 a.missing:link, a.missing:visited { background: #fafaf0; color: #998 } 240 261 a.missing:hover { color: #000; } 241 242 #content.wiki { line-height: 140% } 262 a.closed:link, a.closed:visited { text-decoration: line-through } 263 264 dl.wiki dt { font-weight: bold } 265 dl.compact dt { float: left; padding-right: .5em } 266 dl.compact dd { margin: 0; padding: 0 } 267 268 pre.wiki, pre.literal-block, div.code-block { 269 background: #f7f7f7; 270 border: 1px solid #d7d7d7; 271 margin: 1em 1.75em; 272 padding: .25em; 273 overflow: auto; 274 } 275 table.wiki { 276 border: 2px solid #ccc; 277 border-collapse: collapse; 278 border-spacing: 0; 279 } 280 table.wiki td { border: 1px solid #ccc; padding: .1em .25em; } 281 243 282 .wikitoolbar { 244 283 border: solid #d7d7d7; 245 284 border-width: 1px 1px 1px 0; 246 float: left;247 285 height: 18px; 286 width: 156px; 248 287 } 249 288 .wikitoolbar :link, .wikitoolbar :visited { … … 273 312 #attachment fieldset { margin-top: 2em } 274 313 #attachment fieldset .field { float: left; margin: 0 1em .5em 0 } 314 #attachment .options { float: left; padding: 0 0 1em 1em } 275 315 #attachment br { clear: left } 316 .attachment #preview { margin-top: 1em } 276 317 277 318 /* Styles for tabular listings such as those used for displaying directory … … 319 360 table.listing tbody tr:hover { background: #eed !important } 320 361 321 .wikipage p { margin-left: 1em }322 pre.wiki, pre.literal-block, div.code-block {323 background: #f7f7f7;324 border: 1px solid #d7d7d7;325 margin: 1em 1.75em;326 padding: .25em;327 overflow: auto;328 }329 table.wiki {330 border: 2px solid #ccc;331 border-collapse: collapse;332 border-spacing: 0;333 }334 table.wiki td { border: 1px solid #ccc; padding: .1em .25em; }335 336 362 /* Styles for the error page (and rst errors) */ 337 363 #content.error .message, div.system-message { -
trac/trunk/htdocs/css/wiki.css
r2993 r3036 1 1 @import url(code.css); 2 @import url(diff.css);3 2 4 3 /* Styles for the page editing form */ … … 6 5 #edit #rows select { font-size: 90% } 7 6 #edit #text { clear: both; width: 100% } 7 #edit .wikitoolbar { float: left; } 8 8 #changeinfo { padding: .5em } 9 9 #changeinfo .field { float: left; margin: 0 1em .5em 0 } … … 12 12 #changeinfo .options, #changeinfo .buttons { clear: left } 13 13 #delete { margin-left: 6em } 14 #preview { background: #f4f4f4 url(../draft.png); margin-top: 2em } 14 #preview { 15 background: #f4f4f4 url(../draft.png); 16 margin: 1em 0 2em; 17 overflow: auto; 18 } 19 20 /* Diff view */ 21 #overview .multi { color: #999 } 22 #overview .ipnr { color: #999; font-size: 80% } 23 #overview .comment { padding: 1em 0 0 } 24 25 /* Heading anchors */ 26 .anchor:link, .anchor:visited { 27 border: none; 28 color: #d7d7d7; 29 font-size: .8em; 30 vertical-align: text-top; 31 visibility: hidden; 32 } 33 h1:hover .anchor, h2:hover .anchor, h3:hover .anchor, 34 h4:hover .anchor, h5:hover .anchor, h6:hover .anchor { 35 visibility: visible; 36 } 15 37 16 38 /* Styles for the page history table 17 39 (extends the styles for "table.listing") */ 18 40 #wikihist td { padding: 0 .5em } 19 #wikihist td.date, #wikihist td.version, #wikihist td.author { 41 #wikihist td.date, #wikihist td.diff, #wikihist td.version, 42 #wikihist td.author { 20 43 white-space: nowrap; 21 44 } … … 25 48 /* Styles for the TracGuideToc wikimacro */ 26 49 .wiki-toc { 27 padding: .5em 0;50 padding: .5em 1em; 28 51 margin: 0 0 2em 1em; 29 52 float: right; … … 33 56 position: relative; 34 57 } 35 .wiki-toc h4 { font-size: 12px; margin: 0 1em; } 36 .wiki-toc ul { list-style: none; padding: 0; margin: 0; } 37 .wiki-toc li { margin: 0; padding: 0 1em; } 38 .wiki-toc .active { background: #ff9; } 58 .wiki-toc h4 { font-size: 12px; margin: 0 } 59 .wiki-toc ul, .wiki-toc ol { list-style: none; padding: 0; margin: 0 } 60 .wiki-toc ul ul, .wiki-toc ol ol { padding-left: 1.2em } 61 .wiki-toc li { margin: 0; padding: 0 } 62 .wiki-toc .active { background: #ff9; position: relative; } 39 63 40 64 /* Styles for TracNav */ -
trac/trunk/templates/attachment.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/code.css' ?>2 1 <?cs include "header.cs" ?> 3 2 <?cs include "macros.cs" ?> … … 7 6 <div id="content" class="attachment"> 8 7 9 <h3>Add Attachment to <a href="<?cs 10 var:file.attachment_parent_href?>"><?cs var:file.attachment_parent?></a></h3>11 <form id="attachment" method="post" enctype="multipart/form-data" action="<?cs12 var:cgi_location ?>">8 <?cs if:attachment.mode == 'new' ?> 9 <h1>Add Attachment to <a href="<?cs var:attachment.parent.href?>"><?cs 10 var:attachment.parent.name ?></a></h1> 11 <form id="attachment" method="post" enctype="multipart/form-data" action=""> 13 12 <div class="field"> 14 <label for="file">File:</label> 15 <input type="file" id="file" name="attachment" /> 13 <label>File:<br /><input type="file" name="attachment" /></label> 16 14 </div> 17 15 <fieldset> 18 16 <legend>Attachment Info</legend> 19 17 <div class="field"> 20 <label for="author">Your email or username:</label><br />21 <input type="text" id="author" name="author" class="textwidget" size="30"22 value="<?cs var:attachment.author?>" />18 <label>Your email or username:<br /> 19 <input type="text" name="author" size="30" value="<?cs 20 var:attachment.author?>" /></label> 23 21 </div> 24 22 <div class="field"> 25 <label for="description">Description of the file (optional):</label><br /> 26 <input type="text" id="description" name="description" class="textwidget" 27 size="60" /> 28 </div><br /> 23 <label>Description of the file (optional):<br /> 24 <input type="text" name="description" size="60" /></label 25 </div> 26 <br /> 27 <div class="options"> 28 <label><input type="checkbox" name="replace" checked="checked" /> 29 Replace existing attachment of the same name</label> 30 </div> 31 <br /> 29 32 </fieldset> 30 33 <div class="buttons"> 31 <input type="hidden" name=" mode" value="attachment" />32 <input type="hidden" name="type" value="<?cs var:attachment. type ?>" />33 <input type="hidden" name="id" value="<?cs var:attachment. id ?>" />34 <input type="submit" value="Add Attachment" />34 <input type="hidden" name="action" value="new" /> 35 <input type="hidden" name="type" value="<?cs var:attachment.parent.type ?>" /> 36 <input type="hidden" name="id" value="<?cs var:attachment.parent.id ?>" /> 37 <input type="submit" value="Add attachment" /> 35 38 <input type="submit" name="cancel" value="Cancel" /> 36 39 </div> 37 40 </form> 41 <?cs elif:attachment.mode == 'delete' ?> 42 <h1><a href="<?cs var:attachment.parent.href ?>"><?cs 43 var:attachment.parent.name ?></a>: <?cs var:attachment.filename ?></h1> 44 <p><strong>Are you sure you want to delete this attachment?</strong><br /> 45 This is an irreversible operation.</p> 46 <div class="buttons"> 47 <form method="post" action=""><div id="delete"> 48 <input type="hidden" name="action" value="delete" /> 49 <input type="submit" name="cancel" value="Cancel" /> 50 <input type="submit" value="Delete attachment" /> 51 </div></form> 52 </div><?cs else ?> 53 <h1><a href="<?cs var:attachment.parent.href ?>"><?cs 54 var:attachment.parent.name ?></a>: <?cs var:attachment.filename ?></h1> 55 <div id="preview"><?cs 56 if:attachment.preview ?> 57 <?cs var:attachment.preview ?><?cs 58 elif:attachment.max_file_size_reached ?> 59 <strong>HTML preview not available</strong>, since the file size exceeds 60 <?cs var:attachment.max_file_size ?> bytes. You may <a href="<?cs 61 var:attachment.raw_href ?>">download the file</a> instead.<?cs 62 else ?> 63 <strong>HTML preview not available</strong>. To view the file, 64 <a href="<?cs var:attachment.raw_href ?>">download the file</a>.<?cs 65 /if ?> 66 </div> 67 <?cs if:attachment.can_delete ?><div class="buttons"> 68 <form method="get" action=""><div id="delete"> 69 <input type="hidden" name="action" value="delete" /> 70 <input type="submit" value="Delete attachment" /> 71 </div></form> 72 </div><?cs /if ?> 73 <?cs /if ?> 38 74 39 75 </div> -
trac/trunk/templates/browser.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/browser.css' ?> 2 <?cs include: "header.cs"?> 1 <?cs include "header.cs"?> 3 2 <?cs include "macros.cs"?> 4 3 … … 10 9 11 10 <div id="content" class="browser"> 12 < ?cs call:browser_path_links(browser.path, browser) ?>11 <h1><?cs call:browser_path_links(browser.path, browser) ?></h1> 13 12 14 13 <div id="jumprev"> 15 <form action="<?cs var:browser_current_href ?>" method="get"> 16 <div> 17 <label for="rev">View revision:</label> 18 <input type="text" id="rev" name="rev" value="<?cs 19 var:browser.revision?>" size="4" /> 20 </div> 21 </form> 14 <form action="" method="get"><div> 15 <label for="rev">View revision:</label> 16 <input type="text" id="rev" name="rev" value="<?cs 17 var:browser.revision ?>" size="4" /> 18 </div></form> 22 19 </div> 23 20 24 <table class="listing" id="dirlist"> 25 <thead> 26 <tr> 27 <th class="name<?cs if:browser.order == "name" ?> <?cs 28 var:browser.order_dir ?><?cs /if ?>"><a title="Sort by name<?cs 29 if:browser.order == "name" && browser.order_dir == "asc" ?> (descending)<?cs 30 /if ?>" href="<?cs var:browser.current_href?>?order=name<?cs 31 if:browser.order == "name" && browser.order_dir == "asc" ?>&desc=1<?cs 32 /if ?>">Name</a> 21 <?cs if:browser.is_dir ?> 22 <table class="listing" id="dirlist"> 23 <thead> 24 <tr><?cs 25 call:sortable_th(browser.order, browser.desc, 'name', 'Name', browser.href) ?><?cs 26 call:sortable_th(browser.order, browser.desc, 'size', 'Size', browser.href) ?> 27 <th class="rev">Rev</th><?cs 28 call:sortable_th(browser.order, browser.desc, 'date', 'Age', browser.href) ?> 29 <th class="change">Last Change</th> 30 </tr> 31 </thead> 32 <tbody> 33 <?cs if:len(chrome.links.up) ?> 34 <tr class="even"> 35 <td class="name" colspan="5"> 36 <a class="parent" title="Parent Directory" href="<?cs 37 var:chrome.links.up.0.href ?>">../</a> 38 </td> 39 </tr> 40 <?cs /if ?> 41 <?cs each:item = browser.items ?> 42 <?cs set:change = browser.changes[item.rev] ?> 43 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 44 <td class="name"><?cs 45 if:item.is_dir ?><?cs 46 if:item.permission ?> 47 <a class="dir" title="Browse Directory" href="<?cs 48 var:item.browser_href ?>"><?cs var:item.name ?></a><?cs 49 else ?> 50 <span class="dir" title="Access Denied" href=""><?cs 51 var:item.name ?></span><?cs 52 /if ?><?cs 53 else ?><?cs 54 if:item.permission != '' ?> 55 <a class="file" title="View File" href="<?cs 56 var:item.browser_href ?>"><?cs var:item.name ?></a><?cs 57 else ?> 58 <span class="file" title="Access Denied" href=""><?cs 59 var:item.name ?></span><?cs 60 /if ?><?cs 61 /if ?> 62 </td> 63 <td class="size"><?cs var:item.size ?></td> 64 <td class="rev"><?cs if:item.permission != '' ?><a title="View Revision Log" href="<?cs 65 var:item.log_href ?>"><?cs var:item.rev ?></a><?cs else ?><?cs var:item.rev ?><?cs /if ?></td> 66 <td class="age"><span title="<?cs var:browser.changes[item.rev].date ?>"><?cs 67 var:browser.changes[item.rev].age ?></span></td> 68 <td class="change"> 69 <span class="author"><?cs var:browser.changes[item.rev].author ?>:</span> 70 <span class="change"><?cs var:browser.changes[item.rev].message ?></span> 71 </td> 72 </tr> 73 <?cs /each ?> 74 </tbody> 75 </table><?cs 76 /if ?><?cs 77 78 if:len(browser.props) || !browser.is_dir ?> 79 <table id="info" summary="Revision info"><?cs 80 if:!browser.is_dir ?><tr> 81 <th scope="row"> 82 Revision <a href="<?cs var:file.changeset_href ?>"><?cs var:file.rev ?></a> 83 (checked in by <?cs var:file.author ?>, <?cs var:file.age ?> ago) 33 84 </th> 34 <th class="rev">Rev</th> 35 <th class="age<?cs if:browser.order == "date" ?> <?cs 36 var:browser.order_dir ?><?cs /if ?>"><a title="Sort by age<?cs 37 if:browser.order == "date" && browser.order_dir == "asc" ?> (descending)<?cs 38 /if ?>" href="<?cs var:browser.current_href?>?order=date<?cs 39 if:browser.order == "date" && browser.order_dir == "asc" ?>&desc=1<?cs 40 /if ?>">Age</a> 41 </th> 42 <th class="change">Last Change</th> 43 </tr> 44 </thead> 45 <tbody> 46 <?cs if:browser.path != "/" ?> 47 <tr class="even"> 48 <td class="name" colspan="4"> 49 <a class="parent" title="Parent Directory" href="<?cs 50 var:browser.parent_href ?>">../</a> 51 </td> 52 </tr> 53 <?cs /if ?> 54 <?cs each:item = browser.items ?> 55 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 56 <td class="name"><?cs 57 if:item.is_dir ?><?cs 58 if:item.permission ?> 59 <a class="dir" title="Browse Directory" href="<?cs 60 var:item.browser_href ?>"><?cs var:item.name ?></a><?cs 61 else ?> 62 <span class="dir" title="Access Denied" href=""><?cs 63 var:item.name ?></span><?cs 64 /if ?><?cs 65 else ?><?cs 66 if:item.permission != '' ?> 67 <a class="file" title="View File" href="<?cs 68 var:item.browser_href ?>"><?cs var:item.name ?></a><?cs 69 else ?> 70 <span class="file" title="Access Denied" href=""><?cs 71 var:item.name ?></span><?cs 72 /if ?><?cs 73 /if ?> 74 </td> 75 <td class="rev"><?cs if:item.permission != '' ?><a title="View Revision Log" href="<?cs 76 var:item.log_href ?>"><?cs var:item.created_rev ?></a><?cs else ?><?cs var:item.created_rev ?><?cs /if ?></td> 77 <td class="age"><span title="<?cs var:item.date ?>"><?cs 78 var:item.age ?></span></td> 79 <td class="change"> 80 <span class="author"><?cs var:item.author ?>:</span> 81 <span class="change"><?cs var:item.change ?></span> 82 </td> 83 </tr> 84 <?cs /each ?> 85 </tbody> 86 </table> 85 <td class="message"><?cs var:file.message ?></td> 86 </tr><?cs /if ?><?cs 87 if:len(browser.props) ?><tr> 88 <td colspan="2"><ul class="props"><?cs 89 each:prop = browser.props ?> 90 <li>Property <strong><?cs var:name(prop) ?></strong> set to <em><code><?cs 91 var:prop ?></code></em></li><?cs 92 /each ?> 93 </ul></td><?cs 94 /if ?></tr> 95 </table><?cs 96 /if ?><?cs 97 98 if:!browser.is_dir ?> 99 <div id="preview"><?cs 100 if:file.preview ?><?cs 101 var:file.preview ?><?cs 102 elif:file.max_file_size_reached ?> 103 <strong>HTML preview not available</strong>, since the file size exceeds 104 <?cs var:file.max_file_size ?> bytes. Try <a href="<?cs 105 var:file.raw_href ?>">downloading</a> the file instead.<?cs 106 else ?><strong>HTML preview not available</strong>. To view, <a href="<?cs 107 var:file.raw_href ?>">download</a> the file.<?cs 108 /if ?> 109 </div><?cs 110 /if ?> 87 111 88 112 <div id="help"> -
trac/trunk/templates/changeset.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/changeset.css' ?>2 1 <?cs include "header.cs"?> 3 2 <?cs include "macros.cs"?> 4 3 5 4 <div id="ctxtnav" class="nav"> 6 <h2>Changeset Navigation</h2> 7 <ul><?cs 8 if:len(links.prev) ?> 9 <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>"> 10 <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs 11 var:links.prev.0.title ?>">Previous Changeset</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 class="next" href="<?cs var:links.next.0.href ?>" title="<?cs 17 var:links.next.0.title ?>">Next Changeset</a> 18 </li><?cs 19 /if ?> 20 </ul> 5 <h2>Changeset Navigation</h2><?cs 6 with:links = chrome.links ?> 7 <ul><?cs 8 if:len(links.prev) ?> 9 <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>"> 10 ← <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs 11 var:links.prev.0.title ?>">Previous Changeset</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 class="next" href="<?cs var:links.next.0.href ?>" title="<?cs 17 var:links.next.0.title ?>">Next Changeset</a> → 18 </li><?cs 19 /if ?> 20 </ul><?cs 21 /with ?> 21 22 </div> 22 23 … … 24 25 <h1>Changeset <?cs var:changeset.revision ?></h1> 25 26 26 <?cs if:len(changeset.diff.files) ?><form method="post" id="prefs" action=""> 27 <?cs each:change = changeset.changes ?><?cs 28 if:len(change.diff) ?><?cs 29 set:has_diffs = 1 ?><?cs 30 /if ?><?cs 31 /each ?><?cs if:has_diffs || diff.options.ignoreblanklines 32 || diff.options.ignorecase || diff.options.ignorewhitespace ?> 33 <form method="post" id="prefs" action=""> 27 34 <div> 28 35 <label for="style">View differences</label> … … 37 44 <div class="field"> 38 45 Show <input type="text" name="contextlines" id="contextlines" size="2" 39 maxlength=" 2" value="<?cs var:diff.options.contextlines ?>" />46 maxlength="3" value="<?cs var:diff.options.contextlines ?>" /> 40 47 <label for="contextlines">lines around each change</label> 41 48 </div> … … 64 71 </form><?cs /if ?> 65 72 73 <?cs def:node_change(item,cl,kind) ?><?cs 74 set:ndiffs = len(item.diff) ?><?cs 75 set:nprops = len(item.props) ?> 76 <div class="<?cs var:cl ?>"></div><?cs 77 if:cl == "rem" ?> 78 <a title="Show what was removed (rev. <?cs var:item.rev.old ?>)" href="<?cs 79 var:item.browser_href.old ?>"><?cs var:item.path.old ?></a><?cs 80 else ?> 81 <a title="Show entry in browser" href="<?cs 82 var:item.browser_href.new ?>"><?cs var:item.path.new ?></a><?cs 83 /if ?> 84 <span class="comment">(<?cs var:kind ?>)</span><?cs 85 if:item.path.old && item.change == 'copy' || item.change == 'move' ?> 86 <small><em>(<?cs var:kind ?> from <a href="<?cs 87 var:item.browser_href.old ?>" title="Show original file (rev. <?cs 88 var:item.rev.old ?>)"><?cs var:item.path.old ?></a>)</em></small><?cs 89 /if ?><?cs 90 if:$ndiffs + $nprops > #0 ?> 91 (<a href="#file<?cs var:name(item) ?>" title="Show differences"><?cs 92 if:$ndiffs > #0 ?><?cs var:ndiffs ?> diff<?cs if:$ndiffs > #1 ?>s<?cs /if ?><?cs 93 /if ?><?cs 94 if:$ndiffs && $nprops ?>, <?cs /if ?><?cs 95 if:$nprops > #0 ?><?cs var:nprops ?> prop<?cs if:$nprops > #1 ?>s<?cs /if ?><?cs 96 /if ?></a>)<?cs 97 elif:cl == "mod" ?> 98 (<a href="<?cs var:item.browser_href.old ?>" 99 title="Show previous version in browser">previous</a>)<?cs 100 /if ?> 101 <?cs /def ?> 102 66 103 <dl id="overview"> 67 104 <dt class="time">Timestamp:</dt> … … 70 107 <dd class="author"><?cs var:changeset.author ?></dd> 71 108 <dt class="message">Message:</dt> 72 <dd class="message" id="searchable"><?cs var:changeset.message ?></dd> 109 <dd class="message" id="searchable"><?cs 110 alt:changeset.message ?> <?cs /alt ?></dd> 73 111 <dt class="files">Files:</dt> 74 <dd class="files"> <?cs set:anchor_idx = #0 ?>112 <dd class="files"> 75 113 <ul><?cs each:item = changeset.changes ?> 76 <li> 77 <?cs if:item.change == "A" ?> 78 <div class="add"></div> 79 <a href="<?cs var:item.browser_href ?>" title="Show file in browser"><?cs 80 var:item.name ?></a> <span class="comment">(added)</span> 81 <?cs elif:item.change == "M" ?> 82 <div class="mod"></div> 83 <a href="<?cs var:item.browser_href ?>" title="Show file in browser"><?cs 84 var:item.name ?></a> <span class="comment">(modified)</span><?cs 85 if:len(changeset.diff.files[anchor_idx].changes) ?> 86 (<a href="#file<?cs var:anchor_idx ?>" title="Show differences">diff</a>)<?cs 87 /if ?><?cs set:anchor_idx = anchor_idx + #1 ?> 88 <?cs elif:item.change == "D" ?> 89 <div class="rem"></div> 90 <?cs var:item.name ?> <span class="comment">(deleted)</span> 91 <?cs /if ?> 114 <li><?cs 115 if:item.change == 'add' ?><?cs 116 call:node_change(item, 'add', 'added') ?><?cs 117 elif:item.change == 'delete' ?><?cs 118 call:node_change(item, 'rem', 'deleted') ?><?cs 119 elif:item.change == 'copy' ?><?cs 120 call:node_change(item, 'cp', 'copied') ?><?cs 121 elif:item.change == 'move' ?><?cs 122 call:node_change(item, 'mv', 'moved') ?><?cs 123 elif:item.change == 'edit' ?><?cs 124 call:node_change(item, 'mod', 'modified') ?><?cs 125 /if ?> 92 126 </li> 93 127 <?cs /each ?></ul> … … 103 137 <dt class="rem"></dt><dd>Removed</dd> 104 138 <dt class="mod"></dt><dd>Modified</dd> 139 <dt class="cp"></dt><dd>Copied</dd> 140 <dt class="mv"></dt><dd>Moved</dd> 105 141 </dl> 106 142 </div> 107 <ul> 108 <?cs each:file = changeset.diff.files ?> 109 <?cs if:len(file.changes) ?> 110 <li id="file<?cs var:name(file) ?>"> 111 <h2><a href="<?cs 112 var:file.browser_href.new ?>" title="Show version <?cs 113 var:file.rev.new ?> of this file in browser"><?cs 114 var:file.name.new ?></a></h2> 115 <?cs if:diff.style == 'sidebyside' ?> 116 <table class="sidebyside" summary="Differences" cellspacing="0"> 117 <colgroup class="base"> 118 <col class="lineno" /><col class="content" /> 119 <colgroup class="chg"> 120 <col class="lineno" /><col class="content" /> 121 </colgroup> 122 <thead><tr> 123 <th colspan="2"><a href="<?cs var:file.browser_href.old ?>">Revision <?cs 124 var:file.rev.old ?></a></th> 125 <th colspan="2"><a href="<?cs var:file.browser_href.new ?>">Revision <?cs 126 var:file.rev.new ?></a></th> 127 </tr></thead> 128 <?cs each:change = file.changes ?> 129 <tbody> 130 <?cs call:diff_display(change, diff.style) ?> 131 </tbody> 132 <?cs if:name(change) < len(file.changes) - 1 ?> 133 <tbody class="skippedlines"> 134 <tr><th>…</th><td> </td> 135 <th>…</th><td> </td></tr> 136 </tbody> 137 <?cs /if ?> 138 <?cs /each ?> 139 </table> 140 <?cs else ?> 141 <table class="inline" summary="Differences" cellspacing="0"> 142 <colgroup> 143 <col class="lineno" /> 144 <col class="lineno" /> 145 <col class="content" /> 146 </colgroup> 147 <thead><tr> 148 <th title="Revision <?cs var:file.rev.old ?>"><a href="<?cs 149 var:file.browser_href.old ?>" title="Show revision <?cs 150 var:file.rev.old ?> of this file in browser">r<?cs 151 var:file.rev.old ?></a></th> 152 <th title="Revision <?cs var:file.rev.new ?>"><a href="<?cs 153 var:file.browser_href.new ?>" title="Show revision <?cs 154 var:file.rev.new ?> of this file in browser">r<?cs 155 var:file.rev.new ?></a></th> 156 <th> </th> 157 </tr></thead> 158 <?cs each:change = file.changes ?> 159 <?cs call:diff_display(change, diff.style) ?> 160 <?cs if:name(change) < len(file.changes) - 1 ?> 161 <tbody class="skippedlines"> 162 <tr><th>…</th><th>…</th><td> </td></tr> 163 </tbody> 164 <?cs /if ?> 165 <?cs /each ?> 166 </table> 167 <?cs /if ?> 168 </li> 169 <?cs /if ?> 170 <?cs /each ?> 171 </ul> 143 <ul class="entries"><?cs 144 each:item = changeset.changes ?><?cs 145 if:len(item.diff) || len(item.props) ?><li class="entry" id="file<?cs 146 var:name(item) ?>"><h2><a href="<?cs 147 var:item.browser_href.new ?>" title="Show new revision <?cs 148 var:item.rev.new ?> of this file in browser"><?cs 149 var:item.path.new ?></a></h2><?cs 150 if:len(item.props) ?><ul class="props"><?cs 151 each:prop = item.props ?><li>Property <strong><?cs 152 var:name(prop) ?></strong> <?cs 153 if:prop.old && prop.new ?>changed from <?cs 154 elif:!prop.old ?>set<?cs 155 else ?>deleted<?cs 156 /if ?><?cs 157 if:prop.old && prop.new ?><em><tt><?cs var:prop.old ?></tt></em><?cs /if ?><?cs 158 if:prop.new ?> to <em><tt><?cs var:prop.new ?></tt></em><?cs /if ?></li><?cs 159 /each ?></ul><?cs 160 /if ?><?cs 161 if:len(item.diff) ?><table class="<?cs 162 var:diff.style ?>" summary="Differences" cellspacing="0"><?cs 163 if:diff.style == 'sidebyside' ?> 164 <colgroup class="l"><col class="lineno" /><col class="content" /></colgroup> 165 <colgroup class="r"><col class="lineno" /><col class="content" /></colgroup> 166 <thead><tr> 167 <th colspan="2"><a href="<?cs 168 var:item.browser_href.old ?>" title="Show old rev. <?cs 169 var:item.rev.old ?> of <?cs var:item.path.old ?>">Revision <?cs 170 var:item.rev.old ?></a></th> 171 <th colspan="2"><a href="<?cs 172 var:item.browser_href.new ?>" title="Show new rev. <?cs 173 var:item.rev.new ?> of <?cs var:item.path.new ?>">Revision <?cs 174 var:item.rev.new ?></a></th> 175 </tr> 176 </thead><?cs 177 each:change = item.diff ?><tbody><?cs 178 call:diff_display(change, diff.style) ?></tbody><?cs 179 if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr> 180 <th>…</th><td> </td><th>…</th><td> </td> 181 </tr></tbody><?cs /if ?><?cs 182 /each ?><?cs 183 else ?> 184 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup> 185 <thead><tr> 186 <th title="Revision <?cs var:item.rev.old ?>"><a href="<?cs 187 var:item.browser_href.old ?>" title="Show old version of <?cs 188 var:item.path.old ?>">r<?cs var:item.rev.old ?></a></th> 189 <th title="Revision <?cs var:item.rev.new ?>"><a href="<?cs 190 var:item.browser_href.new ?>" title="Show new version of <?cs 191 var:item.path.new ?>">r<?cs var:item.rev.new ?></a></th> 192 <th> </th></tr> 193 </thead><?cs 194 each:change = item.diff ?><?cs 195 call:diff_display(change, diff.style) ?><?cs 196 if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr> 197 <th>…</th><th>…</th><td> </td> 198 </tr></tbody><?cs /if ?><?cs 199 /each ?><?cs 200 /if ?></table><?cs 201 /if ?></li><?cs 202 /if ?><?cs 203 /each ?></ul> 172 204 </div> 173 205 -
trac/trunk/templates/error.cs
r2581 r3036 31 31 <h3>Permission Denied</h3> 32 32 <p class="message"> 33 This action requires <tt><?cs var:error.action ?></tt> permission.33 <?cs var:error.message ?> 34 34 </p> 35 35 <div id="help"> -
trac/trunk/templates/footer.cs
r2581 r3036 1 <script type="text/javascript">searchHighlight()</script> 2 3 <?cs if:len(links.alternate) ?> 4 <div id="altlinks"> 5 <h3>Download in other formats:</h3> 6 <ul><?cs each:link = links.alternate ?><?cs 1 <script type="text/javascript">searchHighlight()</script><?cs 2 if:len(chrome.links.alternate) ?> 3 <div id="altlinks"><h3>Download in other formats:</h3><ul><?cs 4 each:link = chrome.links.alternate ?><?cs 7 5 set:isfirst = name(link) == 0 ?><?cs 8 set:islast = name(link) == len(links.alternate) - 1?> 9 <li<?cs 6 set:islast = name(link) == len(chrome.links.alternate) - 1?><li<?cs 10 7 if:isfirst || islast ?> class="<?cs 11 8 if:isfirst ?>first<?cs /if ?><?cs 12 9 if:isfirst && islast ?> <?cs /if ?><?cs 13 10 if:islast ?>last<?cs /if ?>"<?cs 14 /if ?>> 15 <a href="<?cs var:link.href ?>"<?cs if:link.class ?> class="<?cs 16 var:link.class ?>"<?cs /if ?>><?cs var:link.title ?></a> 17 </li><?cs /each ?> 18 </ul> 19 </div> 20 <?cs /if ?> 11 /if ?>><a href="<?cs var:link.href ?>"<?cs if:link.class ?> class="<?cs 12 var:link.class ?>"<?cs /if ?>><?cs var:link.title ?></a></li><?cs 13 /each ?></ul></div><?cs 14 /if ?> 21 15 22 16 </div> … … 25 19 <hr /> 26 20 <a id="tracpowered" href="http://trac.edgewall.com/"><img src="<?cs 27 var:$htdocs_location ?>trac_logo_mini.png" height="30" width="107"28 alt="Trac Powered"/></a>21 var:htdocs_location ?>trac_logo_mini.png" height="30" width="107" 22 alt="Trac Powered"/></a> 29 23 <p class="left"> 30 24 Powered by <a href="<?cs var:trac.href.about ?>"><strong>Trac <?cs 31 var:trac.version ?></strong></a><br />25 var:trac.version ?></strong></a><br /> 32 26 By <a href="http://www.edgewall.com/">Edgewall Software</a>. 33 27 </p> 34 28 <p class="right"> 35 <?cs var $project.footer ?>29 <?cs var:project.footer ?> 36 30 </p> 37 31 </div> -
trac/trunk/templates/header.cs
r2590 r3036 3 3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 4 4 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 5 <head><?cs 6 if:project.name ?> 7 <title><?cs if:title ?><?cs var:title ?> - <?cs /if ?><?cs 8 var:project.name?> - Trac</title><?cs 9 else ?> 10 <title>Trac: <?cs var:title ?></title><?cs 11 /if ?><?cs 12 if:html.norobots ?> 13 <meta name="ROBOTS" content="NOINDEX, NOFOLLOW" /><?cs 14 /if ?><?cs 15 each:rel = links ?><?cs each:link = rel ?> 16 <link rel="<?cs var:name(rel) ?>" href="<?cs var:link.href ?>"<?cs 5 <head><?cs 6 if:project.name_encoded ?> 7 <title><?cs if:title ?><?cs var:title ?> - <?cs /if ?><?cs 8 var:project.name_encoded ?> - Trac</title><?cs 9 else ?> 10 <title>Trac: <?cs var:title ?></title><?cs 11 /if ?><?cs 12 if:html.norobots ?> 13 <meta name="ROBOTS" content="NOINDEX, NOFOLLOW" /><?cs 14 /if ?><?cs 15 each:rel = chrome.links ?><?cs 16 each:link = rel ?><link rel="<?cs 17 var:name(rel) ?>" href="<?cs var:link.href ?>"<?cs 17 18 if:link.title ?> title="<?cs var:link.title ?>"<?cs /if ?><?cs 18 19 if:link.type ?> type="<?cs var:link.type ?>"<?cs /if ?> /><?cs 19 /each ?><?cs /each ?> 20 <style type="text/css"> 21 @import url(<?cs var:htdocs_location ?>css/trac.css); 22 <?cs if:html.stylesheet ?>@import url(<?cs var:htdocs_location ?><?cs 23 var:html.stylesheet ?>);<?cs /if ?> 24 <?cs include "site_css.cs" ?> 25 </style> 26 <script src="<?cs var:htdocs_location ?>trac.js" type="text/javascript"></script> 27 </head> 20 /each ?><?cs 21 /each ?><style type="text/css"><?cs include:"site_css.cs" ?></style> 22 <script type="text/javascript" src="<?cs 23 var:htdocs_location ?>js/trac.js"></script> 24 </head> 28 25 <body> 29 26 <?cs include "site_header.cs" ?> 30 27 <div id="banner"> 31 28 32 <div id="header" style="font-size:22px;"> 33 <a id="logo" 34 href="<?cs var:header_logo.link ?>"> 35 <img align="middle" src="<?cs var:header_logo.src ?>" 36 style="margin-right:20px;margin-left:10px;margin-top:5px;margin-bottom:5px;" 37 width="<?cs var:header_logo.width ?>" 38 height="<?cs var:header_logo.height ?>" 39 alt="<?cs var:header_logo.alt ?>" /></a> 40 JavaParty - Java's Companion for Distributed Computing 41 <hr /> 42 </div> 29 <div id="header"><?cs 30 if:chrome.logo.src ?><a id="logo" href="<?cs 31 var:chrome.logo.link ?>"><img src="<?cs var:chrome.logo.src ?>"<?cs 32 if:chrome.logo.width ?> width="<?cs var:chrome.logo.width ?>"<?cs /if ?><?cs 33 if:chrome.logo.height ?> height="<?cs var:chrome.logo.height ?>"<?cs 34 /if ?> alt="<?cs var:chrome.logo.alt ?>" /></a><hr /><?cs 35 elif:project.name_encoded ?><h1><a href="<?cs var:chrome.logo.link ?>"><?cs 36 var:project.name_encoded ?></a></h1><?cs 37 /if ?></div> 43 38 44 39 <form id="search" action="<?cs var:trac.href.search ?>" method="get"> 45 40 <?cs if:trac.acl.SEARCH_VIEW ?><div> 46 41 <label for="proj-search">Search:</label> 47 <input type="text" id="proj-search" name="q" size="10" value="" />42 <input type="text" id="proj-search" name="q" size="10" accesskey="f" value="" /> 48 43 <input type="submit" value="Search" /> 49 44 <input type="hidden" name="wiki" value="on" /> … … 53 48 </form> 54 49 55 <div id="metanav" class="nav"> 56 <h2>Navigation</h2> 57 <ul> 58 <li class="first"><?cs if:trac.authname == "anonymous" || !trac.authname ?> 59 <a href="<?cs var:trac.href.login ?>">Login</a> 60 <?cs else ?> 61 logged in as <?cs var:trac.authname ?> </li> 62 <li><a href="<?cs var:trac.href.logout ?>">Logout</a> 63 <?cs /if ?></li> 64 <li><a href="<?cs var:trac.href.settings ?>">Settings</a></li> 65 <li><a accesskey="6" href="<?cs var:trac.href.wiki ?>/TracGuide">Help/Guide</a></li> 66 <li style="display: none"><a accesskey="5" href="http://projects.edgewall.com/trac/wiki/TracFaq">FAQ</a></li> 67 <li style="display: none"><a accesskey="0" href="<?cs var:trac.href.wiki ?>/TracAccessibility">Accessibility</a></li> 68 <li class="last"><a accesskey="9" href="<?cs var:trac.href.about ?>">About Trac</a></li> 69 </ul> 70 </div> 71 72 </div> 73 74 <?cs def:navlink(text, href, id, aclname, accesskey) ?><?cs 75 if $aclname ?><li><a href="<?cs var:href ?>"<?cs 76 if $id == $trac.active_module ?> class="active"<?cs 77 /if ?><?cs 78 if:$accesskey!="" ?> accesskey="<?cs var:$accesskey ?>"<?cs 79 /if ?>><?cs var:text ?></a></li><?cs 50 <?cs def:nav(items) ?><?cs 51 if:len(items) ?><ul><?cs 52 set:idx = 0 ?><?cs 53 set:max = len(items) - 1 ?><?cs 54 each:item = items ?><?cs 55 set:first = idx == 0 ?><?cs 56 set:last = idx == max ?><li<?cs 57 if:first || last || item.active ?> class="<?cs 58 if:item.active ?>active<?cs /if ?><?cs 59 if:item.active && (first || last) ?> <?cs /if ?><?cs 60 if:first ?>first<?cs /if ?><?cs 61 if:(item.active || first) && last ?> <?cs /if ?><?cs 62 if:last ?>last<?cs /if ?>"<?cs 63 /if ?>><?cs var:item ?></li><?cs 64 set:idx = idx + 1 ?><?cs 65 /each ?></ul><?cs 80 66 /if ?><?cs 81 67 /def ?> 82 68 83 <?cs if $trac.active_module == "wiki" ?><?cs 84 set:$wiki_view="wiki" ?><?cs 85 else ?><?cs 86 set:$wiki_view="attachment" ?><?cs 87 /if ?><?cs 88 if $trac.active_module == "ticket" ?><?cs 89 set:$ticket_view="ticket" ?><?cs 90 elif $trac.active_module == "query" ?><?cs 91 set:$ticket_view="query" ?><?cs 92 else ?><?cs 93 set:$ticket_view="report" ?><?cs 94 /if ?><?cs 95 if $trac.active_module == "log" ?><?cs 96 set:$browser_view="log" ?><?cs 97 elif $trac.active_module == "file" ?><?cs 98 set:$browser_view="file" ?><?cs 99 else ?><?cs 100 set:$browser_view="browser" ?><?cs 101 /if ?><?cs 102 if $trac.active_module == "milestone" ?><?cs 103 set:$roadmap_view="milestone" ?><?cs 104 else ?><?cs 105 set:$roadmap_view="roadmap" ?><?cs 106 /if ?> 107 108 <div id="mainnav" class="nav"> 109 <ul><?cs 110 call:navlink("Wiki", trac.href.wiki, wiki_view, 111 trac.acl.WIKI_VIEW, "1") ?><?cs 112 call:navlink("Timeline", trac.href.timeline, "timeline", 113 trac.acl.TIMELINE_VIEW, "2") ?><?cs 114 call:navlink("Roadmap", trac.href.roadmap, roadmap_view, 115 trac.acl.ROADMAP_VIEW, "3") ?><?cs 116 call:navlink("Browse Source", trac.href.browser, browser_view, 117 trac.acl.BROWSER_VIEW, "") ?><?cs 118 call:navlink("View Tickets", trac.href.report, ticket_view, 119 trac.acl.REPORT_VIEW, "") ?><?cs 120 call:navlink("New Ticket", trac.href.newticket, "newticket", 121 trac.acl.TICKET_CREATE, "7") ?><?cs 122 call:navlink("Search", trac.href.search, "search", 123 trac.acl.SEARCH_VIEW, "4") ?></ul> 69 <div id="metanav" class="nav"><?cs call:nav(chrome.nav.metanav) ?></div> 124 70 </div> 125 71 72 <div id="mainnav" class="nav"><?cs call:nav(chrome.nav.mainnav) ?></div> 126 73 <div id="main"> -
trac/trunk/templates/log.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/browser.css' ?>2 1 <?cs include "header.cs"?> 3 2 <?cs include "macros.cs"?> … … 6 5 <ul> 7 6 <li class="last"><a href="<?cs 8 var:log.items.0.file_href ?>">View Latest Revision</a></li> 7 var:log.browser_href ?>">View Latest Revision</a></li><?cs 8 if:len(chrome.links.prev) ?> 9 <li class="first<?cs if:!len(chrome.links.next) ?> last<?cs /if ?>"> 10 ← <a href="<?cs var:chrome.links.prev.0.href ?>" title="<?cs 11 var:chrome.links.prev.0.title ?>">Newer Revisions</a> 12 </li><?cs 13 /if ?><?cs 14 if:len(chrome.links.next) ?> 15 <li class="<?cs if:!len(chrome.links.prev) ?>first <?cs /if ?>last"> 16 <a href="<?cs var:chrome.links.next.0.href ?>" title="<?cs 17 var:chrome.links.next.0.title ?>">Older Revisions</a> → 18 </li><?cs 19 /if ?> 9 20 </ul> 10 21 </div> 11 22 23 12 24 <div id="content" class="log"> 13 <?cs call:browser_path_links(log.path, log) ?> 14 15 <div id="jumprev"> 16 <form action="<?cs var:browser_current_href ?>" method="get"> 17 <div> 18 <label for="rev">View revision:</label> 19 <input type="text" id="rev" name="rev" value="<?cs 20 var:log.items.0.rev ?>" size="4" /> 25 <h1><?cs call:browser_path_links(log.path, log) ?></h1> 26 <form id="prefs" action="<?cs var:browser_current_href ?>" method="get"> 27 <div> 28 <input type="hidden" name="action" value="<?cs var:log.mode ?>" /> 29 <label>View log starting at <input type="text" id="rev" name="rev" value="<?cs 30 var:log.items.0.rev ?>" size="5" /></label> 31 <label>and back to <input type="text" id="stop_rev" name="stop_rev" value="<?cs 32 var:log.stop_rev ?>" size="5" /></label> 33 <br /> 34 <div class="choice"> 35 <fieldset> 36 <legend>Mode:</legend> 37 <label for="stop_on_copy"> 38 <input type="radio" id="stop_on_copy" name="mode" value="stop_on_copy" <?cs 39 if:log.mode != "follow_copy" || log.mode != "path_history" ?> checked="checked" <?cs 40 /if ?> /> 41 Stop on copy 42 </label> 43 <label for="follow_copy"> 44 <input type="radio" id="follow_copy" name="mode" value="follow_copy" <?cs 45 if:log.mode == "follow_copy" ?> checked="checked" <?cs /if ?> /> 46 Follow copies 47 </label> 48 <label for="path_history"> 49 <input type="radio" id="path_history" name="mode" value="path_history" <?cs 50 if:log.mode == "path_history" ?> checked="checked" <?cs /if ?> /> 51 Show only adds, moves and deletes 52 </label> 53 </fieldset> 21 54 </div> 22 </form> 55 <label><input type="checkbox" name="verbose" <?cs 56 if:log.verbose ?> checked="checked" <?cs 57 /if ?> /> Show full log messages</label> 58 </div> 59 <div class="buttons"> 60 <input type="submit" value="Update" 61 title="Warning: by updating, you will clear the page history" /> 62 </div> 63 </form> 64 <div class="diff"> 65 <div id="legend"> 66 <h3>Legend:</h3> 67 <dl> 68 <dt class="add"></dt><dd>Added</dd><?cs 69 if:log.mode == "path_history" ?> 70 <dt class="rem"></dt><dd>Removed</dd><?cs 71 /if ?> 72 <dt class="mod"></dt><dd>Modified</dd> 73 <dt class="cp"></dt><dd>Copied or renamed</dd> 74 </dl> 75 </div> 23 76 </div> 24 25 77 <table id="chglist" class="listing"> 26 78 <thead> 27 79 <tr> 80 <th class="change"></th> 28 81 <th class="data">Date</th> 29 82 <th class="rev">Rev</th> … … 33 86 </tr> 34 87 </thead> 35 <tbody> 36 <?cs each:item = log.items ?> 88 <tbody><?cs 89 set:indent = #1 ?><?cs 90 each:item = log.items ?><?cs 91 if:item.copyfrom_path ?> 92 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 93 <td class="copyfrom_path" colspan="6" style="padding-left: <?cs var:indent ?>em"> 94 copied from <a href="<?cs var:item.browser_href ?>"?><?cs var:item.copyfrom_path ?></a>: 95 </td> 96 </tr><?cs 97 set:indent = indent + #1 ?><?cs 98 elif:log.mode == "path_history" ?><?cs 99 set:indent = #1 ?><?cs 100 /if ?> 37 101 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 38 <td class="date"><?cs var:item.date ?></td> 102 <td class="change" style="padding-left:<?cs var:indent ?>em"> 103 <a title="View log starting at this revision" href="<?cs var:item.log_href ?>"> 104 <span class="<?cs var:item.change ?>"></span> 105 <span class="comment">(<?cs var:item.change ?>)</span> 106 </a> 107 </td> 108 <td class="date"><?cs var:log.changes[item.rev].date ?></td> 39 109 <td class="rev"> 40 <a href="<?cs var:item.file_href ?>"><?cs var:item.rev ?></a> 110 <a href="<?cs var:item.browser_href ?>" 111 title="Browse at revision <?cs var:item.rev ?>">@<?cs var:item.rev ?></a> 41 112 </td> 42 113 <td class="chgset"> 43 <a class="block-link" href="<?cs var:item.changeset_href ?>"><?cs var:item.rev ?></a> 114 <a href="<?cs var:item.changeset_href ?>" 115 title="View changeset [<?cs var:item.rev ?>]">[<?cs var:item.rev ?>]</a> 44 116 </td> 45 <td class="author"><?cs var: item.author ?></td>46 <td class="summary"><?cs var: item.log?></td>47 </tr> 48 <?cs/each ?>117 <td class="author"><?cs var:log.changes[item.rev].author ?></td> 118 <td class="summary"><?cs var:log.changes[item.rev].message ?></td> 119 </tr><?cs 120 /each ?> 49 121 </tbody> 50 </table> 122 </table><?cs 123 if:len(links.prev) || len(links.next) ?><div id="paging" class="nav"><ul><?cs 124 if:len(links.prev) ?><li class="first<?cs 125 if:!len(links.next) ?> last<?cs /if ?>">← <a href="<?cs 126 var:links.prev.0.href ?>" title="<?cs 127 var:links.prev.0.title ?>">Younger Revisions</a></li><?cs 128 /if ?><?cs 129 if:len(links.next) ?><li class="<?cs 130 if:len(links.prev) ?>first <?cs /if ?>last"><a href="<?cs 131 var:links.next.0.href ?>" title="<?cs 132 var:links.next.0.title ?>">Older Revisions</a> →</li><?cs 133 /if ?></ul></div><?cs 134 /if ?> 51 135 52 136 </div> -
trac/trunk/templates/log_rss.cs
r2581 r3036 1 1 <?xml version="1.0"?> 2 <!-- RSS generated by Trac v<?cs var: $trac.version ?> on <?cs var:$trac.time ?> -->2 <!-- RSS generated by Trac v<?cs var:trac.version ?> on <?cs var:trac.time ?> --> 3 3 <rss version="2.0"> 4 <?cs set base_url = $HTTP.Protocol+'://'+$HTTP.Host ?> 5 <?cs if $HTTP.Port ?> 6 <?cs set base_url = $base_url + ':' + $HTTP.Port ?> 7 <?cs /if ?> 8 <channel> 9 <?cs if $project.name.encoded ?> 10 <title><?cs var:$project.name.encoded ?>: Revisions of <?cs var:$log.path ?></title> 11 <?cs else ?> 12 <title>Revisions of <?cs var:$log.filename ?></title> 13 <?cs /if ?> 14 <link><?cs var:$base_url ?><?cs var:$log.href ?></link> 15 <description>Trac Log - Revisions of <?cs var:$log.path ?></description> 16 <language>en-us</language> 17 <generator>Trac v<?cs var:$trac.version ?></generator> 18 <?cs each:item = $log.items ?> 19 <item> 20 <!-- XXX: author element requires email address in rss 2.0. 21 maybe we should use the DC rdf stuff for metadata instead? 22 <author><?cs var:$item.author ?></author> --> 23 <pubDate><?cs var:$item.gmt ?></pubDate> 24 <title><?cs var:$item.rev+': '+$item.shortlog ?></title> 25 <link><?cs var:$base_url+$item.file_href ?></link> 26 <description><?cs var:$item.log.raw ?></description> 27 <category>Report</category> 28 </item> 29 <?cs /each ?> 30 </channel> 4 <channel><?cs 5 if:project.name_encoded ?> 6 <title><?cs var:project.name_encoded ?>: Revisions of <?cs var:log.path ?></title><?cs 7 else ?> 8 <title>Revisions of <?cs var:log.path ?></title><?cs 9 /if ?> 10 <link><?cs var:base_host ?><?cs var:log.log_href ?></link> 11 <description>Trac Log - Revisions of <?cs var:log.path ?></description> 12 <language>en-us</language> 13 <generator>Trac v<?cs var:trac.version ?></generator><?cs 14 each:item = log.items ?><?cs 15 with:change = log.changes[item.rev] ?> 16 <item> 17 <author><?cs var:change.author ?></author> 18 <pubDate><?cs var:change.date ?></pubDate> 19 <title>Revision <?cs var:item.rev ?>: <?cs var:change.shortlog ?></title> 20 <link><?cs var:base_host ?><?cs var:item.changeset_href ?></link> 21 <description><?cs var:change.message ?></description> 22 <category>Log</category> 23 </item><?cs 24 /with ?><?cs 25 /each ?> 26 </channel> 31 27 </rss> -
trac/trunk/templates/macros.cs
r2590 r3036 1 <?cs def:hdf_select(options, name, selected ) ?>1 <?cs def:hdf_select(options, name, selected, optional) ?> 2 2 <select size="1" id="<?cs var:name ?>" name="<?cs var:name ?>"><?cs 3 each:option = options ?><?cs 4 if option.name == $selected ?> 5 <option selected="selected"><?cs var:option.name ?></option><?cs 6 else ?> 7 <option><?cs var:option.name ?></option><?cs 8 /if ?><?cs 3 if:optional ?><option></option><?cs /if ?><?cs 4 each:option = options ?> 5 <option<?cs if:option == selected ?> selected="selected"<?cs /if ?>><?cs 6 var:option ?></option><?cs 9 7 /each ?> 10 8 </select><?cs 11 /def?> 9 /def?><?cs 12 10 13 <?cs def:hdf_select_multiple(options, name, size) ?> 14 <select size="<?cs var:size ?>" id="<?cs var:name ?>" name="<?cs 15 var:name ?>" multiple="multiple"><?cs 16 each:option = options ?> 17 <option<?cs if:option.selected ?> selected="selected"<?cs /if ?>><?cs 18 var:option.name ?></option><?cs 19 /each ?> 20 </select><?cs 21 /def ?> 11 def:labelled_hdf_select(label, options, name, selected, optional) ?><?cs 12 if:len(options) > #0 ?> 13 <label for="<?cs var:name ?>"><?cs var:label ?></label><?cs 14 call:hdf_select(options, name, selected, optional) ?> 15 </label> 16 <br /><?cs 17 /if ?><?cs 18 /def ?><?cs 22 19 23 <?cs def:browser_path_links(path, file) ?><?cs 24 set:first = #1 ?> 25 <h1><?cs 20 def:browser_path_links(path, file) ?><?cs 21 set:first = #1 ?><?cs 26 22 each:part = path ?><?cs 27 23 set:last = name(part) == len(path) - #1 ?><a<?cs 28 24 if:first ?> class="first" title="Go to root directory"<?cs 29 25 set:first = #0 ?><?cs 30 else ?> title=" Go to directory"<?cs31 /if ?> href="<?cs var:part. url ?>"><?cs var:part?></a><?cs32 if: file.filename ||!last ?><span class="sep">/</span><?cs /if ?><?cs26 else ?> title="View <?cs var:part.name ?>"<?cs 27 /if ?> href="<?cs var:part.href ?>"><?cs var:part.name ?></a><?cs 28 if:!last ?><span class="sep">/</span><?cs /if ?><?cs 33 29 /each ?><?cs 34 if:file.filename ?><span class="filename"><?cs var:file.filename ?></span><?cs 35 /if ?></h1> 36 <?cs /def ?> 30 /def ?><?cs 37 31 38 <?cs def:diff_display(change, style) ?><?cs 32 def:diff_line_class(block, line) ?><?cs 33 set:first = name(line) == 0 ?><?cs 34 set:last = name(line) + 1 == len(block.lines) ?><?cs 35 if:first || last ?> class="<?cs 36 if:first ?>first<?cs /if ?><?cs 37 if:first && last ?> <?cs /if ?><?cs 38 if:last ?>last<?cs /if ?>"<?cs 39 /if ?><?cs 40 /def ?><?cs 41 42 def:diff_display(diff, style) ?><?cs 39 43 if:style == 'sidebyside' ?><?cs 40 each:block = change.blocks ?><?cs 41 if:block.type == 'unmod' ?><tbody class="unmod"><?cs 42 each:line = block.base.lines ?><tr> 43 <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th> 44 <td class="base"><span><?cs var:line ?></span> </td> 45 <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th> 46 <td class="chg"><span><?cs var:line ?></span> </td> 47 </tr><?cs /each ?> 48 </tbody><?cs 44 each:block = diff ?><?cs 45 if:block.type == 'unmod' ?><tbody><?cs 46 each:line = block.base.lines ?><tr><th><?cs 47 var:#block.base.offset + name(line) + 1 ?></th><td class="l"><span><?cs 48 var:line ?></span> </td><th><?cs 49 var:#block.changed.offset + name(line) + 1 ?></th><td class="r"><span><?cs 50 var:block.changed.lines[name(line)] ?></span> </td></tr><?cs 51 /each ?></tbody><?cs 49 52 elif:block.type == 'mod' ?><tbody class="mod"><?cs 50 53 if:len(block.base.lines) >= len(block.changed.lines) ?><?cs 51 each:line = block.base.lines ?><tr> 52 <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>53 <td class="base"><?csvar:line ?> </td><?cs54 each:line = block.base.lines ?><tr><th><?cs 55 var:#block.base.offset + name(line) + 1 ?></th><td class="l"><?cs 56 var:line ?> </td><?cs 54 57 if:len(block.changed.lines) >= name(line) + 1 ?><?cs 55 58 each:changedline = block.changed.lines ?><?cs 56 if:name(changedline) == name(line) ?> 57 <th class="chg"><?cs var:#block.changed.offset + name(changedline) + 1 ?></th>58 <td class="chg"><?csvar:changedline ?> </td><?cs59 if:name(changedline) == name(line) ?><th><?cs 60 var:#block.changed.offset + name(changedline) + 1 ?></th><td class="r"><?cs 61 var:changedline ?> </td><?cs 59 62 /if ?><?cs 60 63 /each ?><?cs 61 else ?> 62 <th class="chg"> </th> 63 <td class="chg"> </td><?cs 64 /if ?> 65 </tr><?cs /each ?><?cs 64 else ?><th> </th><td class="r"> </td><?cs 65 /if ?></tr><?cs 66 /each ?><?cs 66 67 else ?><?cs 67 68 each:line = block.changed.lines ?><tr><?cs 68 69 if:len(block.base.lines) >= name(line) + 1 ?><?cs 69 70 each:baseline = block.base.lines ?><?cs 70 if:name(baseline) == name(line) ?> 71 <th class="base"><?cs var:#block.base.offset + name(baseline) + 1 ?></th>72 <td class="base"><?csvar:baseline ?> </td><?cs71 if:name(baseline) == name(line) ?><th><?cs 72 var:#block.base.offset + name(baseline) + 1 ?></th><td class="l"><?cs 73 var:baseline ?> </td><?cs 73 74 /if ?><?cs 74 75 /each ?><?cs 75 else ?> 76 <th class="base"> </th> 77 <td class="base"> </td><?cs 76 else ?><th> </th><td class="l"> </td><?cs 78 77 /if ?> 79 <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th> 80 <td class="chg"><?cs var:line ?> </td> 81 </tr><?cs /each ?><?cs 82 /if ?> 83 </tbody><?cs 78 <th><?cs var:#block.changed.offset + name(line) + 1 ?></th> 79 <td class="r"><?cs var:line ?> </td></tr><?cs 80 /each ?><?cs 81 /if ?></tbody><?cs 84 82 elif:block.type == 'add' ?><tbody class="add"><?cs 85 each:line = block.changed.lines ?><tr> 86 <th class="base"> </th> 87 <td class="base"> </td> 88 <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th> 89 <td class="chg"><ins><?cs var:line ?></ins> </td> 90 </tr><?cs /each ?><?cs 83 each:line = block.changed.lines ?><tr><th> </th><td class="l"> </td><th><?cs 84 var:#block.changed.offset + name(line) + 1 ?></th><td class="r"><ins><?cs 85 var:line ?></ins> </td></tr><?cs 86 /each ?><?cs 91 87 elif:block.type == 'rem' ?><tbody class="rem"><?cs 92 each:line = block.base.lines ?><tr> 93 <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th> 94 <td class="base"><del><?cs var:line ?></del> </td> 95 <th class="chg"> </th> 96 <td class="chg"> </td> 97 </tr><?cs /each ?><?cs 98 /if ?> 99 </tbody><?cs 88 each:line = block.base.lines ?><tr><th><?cs 89 var:#block.base.offset + name(line) + 1 ?></th><td class="l"><del><?cs 90 var:line ?></del> </td><th> </th><td class="r"> </td></tr><?cs 91 /each ?><?cs 92 /if ?></tbody><?cs 100 93 /each ?><?cs 101 94 else ?><?cs 102 each:block = change.blocks ?> 103 <?cs if:block.type == 'unmod' ?><tbody class="unmod"><?cs 104 each:line = block.base.lines ?><tr> 105 <th class="base"><?cs var:#block.base.offset + name(line) + #1 ?></th> 106 <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th> 107 <td class="base"><span><?cs var:line ?></span> </td> 108 </tr><?cs /each ?> 109 </tbody> 110 <?cs elif:block.type == 'mod' ?><tbody class="mod"><?cs 111 each:line = block.base.lines ?><tr class="<?cs 112 if:name(line) == 0 ?>first<?cs /if ?>"> 113 <th class="base"><?cs var:#block.base.offset + name(line) + #1 ?></th> 114 <th class="chg"> </th> 115 <td class="base"><?cs var:line ?> </td> 116 </tr><?cs /each ?><?cs 117 each:line = block.changed.lines ?><tr class="<?cs 118 if:name(line) + 1 == len(block.changed.lines) ?> last<?cs /if ?>"> 119 <th class="base"> </th> 120 <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th> 121 <td class="chg"><?cs var:line ?> </td> 122 </tr><?cs /each ?> 123 </tbody> 124 <?cs elif:block.type == 'add' ?><tbody class="add"><?cs 125 each:line = block.changed.lines ?><tr class="<?cs 126 if:name(line) == 0 ?>first<?cs /if ?><?cs 127 if:name(line) + 1 == len(block.changed.lines) ?> last ?><?cs /if ?>"> 128 <th class="base"> </th> 129 <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th> 130 <td class="chg"><ins><?cs var:line ?></ins> </td> 131 </tr><?cs /each ?> 132 </tbody> 133 <?cs elif:block.type == 'rem' ?><tbody class="rem"><?cs 134 each:line = block.base.lines ?><tr class="<?cs 135 if:name(line) == 0 ?>first<?cs /if ?><?cs 136 if:name(line) + 1 == len(block.base.lines) ?> last ?><?cs /if ?>"> 137 <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th> 138 <th class="chg"> </th> 139 <td class="base"><del><?cs var:line ?></del> </td> 140 </tr><?cs /each ?> 141 </tbody> 142 <?cs /if ?><?cs 95 each:block = diff ?><?cs 96 if:block.type == 'unmod' ?><tbody><?cs 97 each:line = block.base.lines ?><tr><th><?cs 98 var:#block.base.offset + name(line) + #1 ?></th><th><?cs 99 var:#block.changed.offset + name(line) + #1 ?></th><td class="l"><span><?cs 100 var:line ?></span> </td></tr><?cs 101 /each ?></tbody><?cs 102 elif:block.type == 'mod' ?><tbody class="mod"><?cs 103 each:line = block.base.lines ?><tr<?cs 104 if:name(line) == 0 ?> class="first"<?cs /if ?>><th><?cs 105 var:#block.base.offset + name(line) + #1 ?></th><th> </th><td class="l"><?cs 106 var:line ?> </td></tr><?cs 107 /each ?><?cs 108 each:line = block.changed.lines ?><tr<?cs 109 if:name(line) + 1 == len(block.changed.lines) ?> class="last"<?cs /if ?>><th> </th><th><?cs 110 var:#block.changed.offset + name(line) + #1 ?></th><td class="r"><?cs 111 var:line ?> </td></tr><?cs 112 /each ?></tbody><?cs 113 elif:block.type == 'add' ?><tbody class="add"><?cs 114 each:line = block.changed.lines ?><tr<?cs 115 call:diff_line_class(block.changed, line) ?>><th> </th><th><?cs 116 var:#block.changed.offset + name(line) + #1 ?></th><td class="r"><ins><?cs 117 var:line ?></ins> </td></tr><?cs 118 /each ?></tbody><?cs 119 elif:block.type == 'rem' ?><tbody class="rem"><?cs 120 each:line = block.base.lines ?><tr<?cs 121 call:diff_line_class(block.base, line) ?>><th><?cs 122 var:#block.base.offset + name(line) + 1 ?></th><th> </th><td class="l"><del><?cs 123 var:line ?></del> </td></tr><?cs 124 /each ?></tbody><?cs 125 /if ?><?cs 143 126 /each ?><?cs 144 127 /if ?><?cs 145 /def ?> 128 /def ?><?cs 146 129 147 <?cs def:session_name_email() ?><?cs 148 if trac.authname != "anonymous" ?><?cs 149 var:trac.authname ?><?cs 150 elif trac.session.var.name && trac.session.var.email ?><?cs 151 var:trac.session.var.name ?> <<?cs var:trac.session.var.email ?>><?cs 152 elif !trac.session.var.name && trac.session.var.email ?><?cs 153 var:trac.session.var.email ?><?cs 154 else ?><?cs 155 var:trac.authname ?><?cs 156 /if ?><?cs 157 /def ?> 158 159 <?cs def:ticket_custom_props(ticket) ?><?cs 130 def:ticket_custom_props(ticket) ?><?cs 160 131 each c=ticket.custom ?> 161 132 <div class="field custom_<?cs var c.name ?>"><?cs 162 if c.type == 'text' || c.type == 'select' ?>163 <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs164 var c.name ?><?cs /alt ?></label>:<?cs165 /if ?><?cs166 133 if c.type == 'text' ?> 167 <input type="text" id="custom_<?cs var c.name ?>" name="custom_<?cs 168 var c.name ?>" value="<?cs var c.value ?>" /><?cs 134 <label> 135 <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>: 136 <input type="text" name="custom_<?cs var c.name ?>" value="<?cs var c.value ?>" /> 137 </label><?cs 169 138 elif c.type == 'textarea' ?> 170 <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs 171 var c.name ?><?cs /alt ?></label>:<br /> 172 <textarea cols="<?cs alt c.width ?>60<?cs /alt ?>" rows="<?cs 173 alt c.height ?>12<?cs /alt ?>" name="custom_<?cs var c.name ?>"><?cs 174 var c.value ?></textarea><?cs 139 <label> 140 <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>:<br /> 141 <textarea cols="<?cs alt c.width ?>60<?cs /alt ?>" rows="<?cs 142 alt c.height ?>12<?cs /alt ?>" name="custom_<?cs var c.name ?>"><?cs 143 var c.value ?></textarea> 144 </label><?cs 175 145 elif c.type == 'checkbox' ?> 176 <input type="hidden" name="checkbox_<?cs var c.name ?>" value="custom_<?cs177 var c.name ?>" />178 <input type="checkbox" id="custom_<?cs var c.name ?>" name="custom_<?cs179 var c.name ?>" value="1" <?cs if c.selected ?>checked="checked"<?cs /if ?> />180 <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs181 var c.name ?><?cs /alt ?></label><?cs146 <input type="hidden" name="checkbox_<?cs var c.name ?>" /> 147 <label> 148 <input type="checkbox" name="custom_<?cs var c.name ?>" value="1"<?cs 149 if c.selected ?> checked="checked"<?cs /if ?> /> 150 <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?> 151 </label><?cs 182 152 elif c.type == 'select' ?> 183 <select name="custom_<?cs var c.name ?>"><?cs each v = c.option ?> 184 <option <?cs if v.selected ?>selected="selected"<?cs /if ?>><?cs 185 var v ?></option><?cs /each ?> 186 </select><?cs 153 <label> 154 <?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>: 155 <select name="custom_<?cs var c.name ?>"><?cs each v = c.option ?> 156 <option<?cs if v.selected ?> selected="selected"<?cs /if ?>><?cs 157 var v ?></option><?cs /each ?> 158 </select> 159 </label><?cs 187 160 elif c.type == 'radio' ?> 188 161 <fieldset class="radio"> 189 162 <legend><?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>:</legend><?cs 190 163 each v = c.option ?> 191 <input type="radio" id="custom_<?cs var c.name ?>_<?cs 192 var v ?>" name="custom_<?cs var c.name ?>"<?cs 193 if v.selected ?> checked="checked"<?cs /if ?> value="<?cs var v ?>"/> 194 <label for="custom_<?cs var c.name ?>_<?cs var v ?>"><?cs 195 var v ?></label><?cs 164 <label><input type="radio" name="custom_<?cs var c.name ?>" value="<?cs 165 var v ?>"<?cs if v.selected ?> checked="checked"<?cs /if ?> /> <?cs 166 var v ?></label><?cs 196 167 /each ?> 197 168 </fieldset><?cs … … 199 170 </div><?cs 200 171 /each ?><?cs 172 /def ?><?cs 173 174 def:sortable_th(order, desc, class, title, href) ?> 175 <th class="<?cs var:class ?><?cs if:order == class ?> <?cs 176 if:desc ?>desc<?cs else ?>asc<?cs /if ?><?cs /if ?>"> 177 <a title="Sort by <?cs var:class ?><?cs 178 if:order == class && !desc ?> (descending)<?cs /if ?>" href="<?cs 179 var:href ?>&order=<?cs var:class ?><?cs 180 if:order == class && !desc ?>&desc=1<?cs /if ?>"><?cs var:title ?></a> 181 </th><?cs 201 182 /def ?> 202 203 <?cs def:wiki_toolbar(textarea_id) ?>204 <script type='text/javascript'>205 addWikiFormattingToolbar(document.getElementById("<?cs var:textarea_id ?>"));206 </script>207 <?cs /def ?> -
trac/trunk/templates/milestone.cs
r2590 r3036 1 <?cs set:html.stylesheet = 'css/roadmap.css' ?>2 1 <?cs include:"header.cs"?> 3 2 <?cs include:"macros.cs"?> 4 3 5 <div id="ctxtnav" class="nav"> 6 <ul> 7 <?cs if:milestone.href.edit ?><li class="first"><a href="<?cs 8 var:milestone.href.edit ?>">Edit Milestone Info</a></li><?cs /if ?> 9 <?cs if:milestone.href.delete ?><li class="last"><a href="<?cs 10 var:milestone.href.delete ?>">Delete Milestone</a></li><?cs /if ?> 11 </ul> 12 </div> 4 <div id="ctxtnav" class="nav"></div> 13 5 14 6 <div id="content" class="milestone"> … … 21 13 <?cs else ?> 22 14 <h1>Milestone <?cs var:milestone.name ?></h1> 23 <form action="#stats" id="prefs" method="get">24 <div>25 <label for="by">View status by</label>26 <select id="by" name="by"><?cs each:group = milestone.stats.available_groups ?>27 <option<?cs28 if:milestone.stats.grouped_by == group?> selected="selected"<?cs29 /if ?>><?cs var:group ?></option>30 <?cs /each ?></select>31 <div>32 <input name="showempty" id="showempty" type="checkbox"<?cs33 if:milestone.stats.show_empty ?> checked="checked"<?cs /if ?>>34 <label for="showempty">Show groups with no assigned tickets</label>35 </div>36 <div class="buttons">37 <input type="submit" value="Update" />38 </div>39 </div>40 </form>41 15 <?cs /if ?> 42 16 … … 44 18 <script type="text/javascript"> 45 19 addEvent(window, 'load', function() { 46 document.getElementById('name').focus() }47 );20 document.getElementById('name').focus(); 21 }); 48 22 </script> 49 <form id="edit" action="<?cs var:cgi_location ?>" method="post"> 50 <input type="hidden" name="mode" value="milestone" /> 23 <form id="edit" action="<?cs var:milestone.href ?>" method="post"> 51 24 <input type="hidden" name="id" value="<?cs var:milestone.name ?>" /> 52 <input type="hidden" name="action" value=" commit_changes" />25 <input type="hidden" name="action" value="edit" /> 53 26 <div class="field"> 54 <label for="name">Name of the milestone:</label><br />27 <label>Name of the milestone:<br /> 55 28 <input type="text" id="name" name="name" size="32" value="<?cs 56 var:milestone.name ?>" /> 57 </div> 58 <div class="field"> 59 <label for="datemode">Completion date:</label><br /> 60 <select name="datemode" id="datemode" 61 onchange="enableControl('date',this.value=='manual'); 62 if (this.value=='manual') document.getElementById('date').focus();"> 63 <option value="manual">Set manually</option> 64 <option value="now">Mark as completed now</option> 65 </select> 66 <input type="text" id="date" name="date" size="8" value="<?cs 67 var:milestone.date ?>" title="Format: <?cs var:milestone.date_hint ?>" /> 68 <label for="date"><em>Format: <?cs var:milestone.date_hint ?></em></label> 69 </div> 29 var:milestone.name ?>" /></label> 30 </div> 31 <fieldset> 32 <legend>Schedule</legend> 33 <label>Due:<br /> 34 <input type="text" id="duedate" name="duedate" size="<?cs 35 var:len(milestone.date_hint) ?>" value="<?cs 36 var:milestone.due_date ?>" title="Format: <?cs var:milestone.date_hint ?>" /> 37 <em>Format: <?cs var:milestone.date_hint ?></em> 38 </label> 39 <div class="field"> 40 <label> 41 <input type="checkbox" id="completed" name="completed"<?cs 42 if:milestone.completed ?> checked="checked"<?cs /if ?> /> 43 Completed:<br /> 44 </label> 45 <label> 46 <input type="text" id="completeddate" name="completeddate" size="<?cs 47 var:len(milestone.date_hint) ?>" value="<?cs 48 alt:milestone.completed_date ?><?cs 49 var:milestone.datetime_now ?><?cs 50 /alt ?>" title="Format: <?cs 51 var:milestone.datetime_hint ?>" /> 52 <em>Format: <?cs var:milestone.datetime_hint ?></em> 53 </label> 54 <script type="text/javascript"> 55 var completed = document.getElementById("completed"); 56 var enableCompletedDate = function() { 57 enableControl("completeddate", completed.checked); 58 }; 59 addEvent(window, "load", enableCompletedDate); 60 addEvent(completed, "click", enableCompletedDate); 61 </script> 62 </div> 63 </fieldset> 70 64 <div class="field"> 71 65 <fieldset class="iefix"> 72 <label for="descr ">Description (you may use <a tabindex="42" href="<?cs66 <label for="description">Description (you may use <a tabindex="42" href="<?cs 73 67 var:trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here):</label> 74 <p><textarea id="descr" name="descr" rows="12" cols="80"><?cs 75 var:milestone.descr_source ?></textarea></p> 76 <?cs call:wiki_toolbar('descr') ?> 68 <p><textarea id="description" name="description" class="wikitext" rows="10" cols="78"><?cs 69 var:milestone.description_source ?></textarea></p> 77 70 </fieldset> 78 71 </div> 79 72 <div class="buttons"> 80 73 <?cs if:milestone.mode == "new" 81 ?><input type="submit" name="save" value="Add Milestone" /><?cs74 ?><input type="submit" value="Add milestone" /><?cs 82 75 else 83 ?><input type="submit" name="save" value="Save Changes" /><?cs76 ?><input type="submit" value="Submit changes" /><?cs 84 77 /if ?> 85 78 <input type="submit" name="cancel" value="Cancel" /> 86 79 </div> 80 <script type="text/javascript" src="<?cs 81 var:htdocs_location ?>js/wikitoolbar.js"></script> 87 82 </form> 88 83 <?cs elif:milestone.mode == "delete" ?> 89 <form action="<?cs var:cgi_location ?>" method="post"> 90 <input type="hidden" name="mode" value="milestone" /> 84 <form action="<?cs var:milestone.href ?>" method="post"> 91 85 <input type="hidden" name="id" value="<?cs var:milestone.name ?>" /> 92 <input type="hidden" name="action" value=" confirm_delete" />86 <input type="hidden" name="action" value="delete" /> 93 87 <p><strong>Are you sure you want to delete this milestone?</strong></p> 94 88 <input type="checkbox" id="retarget" name="retarget" checked="checked" … … 103 97 <div class="buttons"> 104 98 <input type="submit" name="cancel" value="Cancel" /> 105 <input type="submit" name="delete" value="Delete Milestone" />99 <input type="submit" value="Delete milestone" /> 106 100 </div> 107 101 </form> 108 102 <?cs else ?> 109 <em class="date"><?cs if:milestone.date ?>110 <?cs var:milestone.date ?><?cs else ?>No date set<?cs /if ?>111 </em>112 <div class="descr"><?cs var:milestone.descr ?></div>113 <?cs /if ?>114 115 103 <?cs if:milestone.mode == "view" ?> 116 <h2 class="stats">Status by <?cs var:milestone.stats.grouped_by ?></h2> 117 <table class="listing" id="stats" 118 summary="Shows the milestone completion status grouped by <?cs 119 var:milestone.stats.grouped_by ?>"> 120 <thead><tr> 121 <th class="name" rowspan="2"><?cs var:milestone.stats.grouped_by ?></th> 122 <th class="tickets" scope="col" colspan="2">Tickets</th> 123 <th class="progress" rowspan="2">Percent Resolved</th> 124 </tr><tr> 125 <th class="open" scope="col">Active</th> 126 <th class="closed" scope="col">Closed</th> 127 </tr></thead> 128 <?cs if:len(milestone.stats.groups) ?><tbody> 129 <?cs each:group = milestone.stats.groups ?> 130 <tr class="<?cs if:name(group) % 2 ?>odd<?cs else ?>even<?cs /if ?>"> 131 <th class="name" scope="row"><a href="<?cs 132 var:group.queries.all_tickets ?>"><?cs var:group.name ?></a></th> 133 <td class="open tickets"><a href="<?cs 134 var:group.queries.active_tickets ?>"><?cs 135 var:group.active_tickets ?></a></td> 136 <td class="closed tickets"><a href="<?cs 137 var:group.queries.closed_tickets ?>"><?cs 138 var:group.closed_tickets ?></a></td> 139 <td class="progress"> 140 <?cs if:#group.total_tickets ?> 141 <div class="progress" style="width: <?cs 142 var:#group.percent_total * #80 / #100 ?>%"><div style="width: <?cs 143 var:#group.percent_complete ?>%"></div> 144 </div> 145 <p class="percent"><?cs var:#group.percent_complete ?>%</p> 146 <?cs /if ?> 147 </td> 148 </tr> 149 <?cs /each ?> 150 </tbody><?cs /if ?> 151 <tbody class="totals"><tr> 152 <th class="name" scope="row"><a href="<?cs 153 var:milestone.queries.all_tickets ?>">Total</a></th> 154 <td class="open tickets"><a href="<?cs 155 var:milestone.queries.active_tickets ?>"><?cs 156 var:milestone.stats.active_tickets ?></a></td> 157 <td class="closed tickets"><a href="<?cs 158 var:milestone.queries.closed_tickets ?>"><?cs 159 var:milestone.stats.closed_tickets ?></a></td> 160 <td class="progress"> 161 <?cs if:#milestone.stats.total_tickets ?> 162 <div class="progress" style="width: 80%"> 163 <div style="width: <?cs var:#milestone.stats.percent_complete ?>%"></div> 104 <div class="info"> 105 <p class="date"><?cs 106 if:milestone.completed_date ?> 107 Completed <?cs var:milestone.completed_delta ?> ago (<?cs var:milestone.completed_date ?>)<?cs 108 elif:milestone.due_date ?><?cs 109 if:milestone.late ?> 110 <strong><?cs var:milestone.due_delta ?> late</strong><?cs 111 else ?> 112 Due in <?cs var:milestone.due_delta ?><?cs 113 /if ?> (<?cs var:milestone.due_date ?>)<?cs 114 else ?> 115 No date set<?cs 116 /if ?> 117 </p><?cs 118 with:stats = milestone.stats ?><?cs 119 if:#stats.total_tickets > #0 ?> 120 <div class="progress"> 121 <a class="closed" href="<?cs 122 var:milestone.queries.closed_tickets ?>" style="width: <?cs 123 var:#stats.percent_closed ?>%" title="<?cs 124 var:#stats.closed_tickets ?> of <?cs 125 var:#stats.total_tickets ?> ticket<?cs 126 if:#stats.total_tickets != #1 ?>s<?cs /if ?> closed"></a> 127 <a class="open" href="<?cs 128 var:milestone.queries.active_tickets ?>" style="width: <?cs 129 var:#stats.percent_active - 1 ?>%" title="<?cs 130 var:#stats.active_tickets ?> of <?cs 131 var:#stats.total_tickets ?> ticket<?cs 132 if:#stats.total_tickets != #1 ?>s<?cs /if ?> active"></a> 164 133 </div> 165 <p class="percent"><?cs var:#milestone.stats.percent_complete ?>%</p> 166 <?cs /if ?> 167 </td> 168 </tr></tbody> 169 </table><?cs /if ?> 134 <p class="percent"><?cs var:#stats.percent_closed ?>%</p> 135 <dl> 136 <dt>Closed tickets:</dt> 137 <dd><a href="<?cs var:milestone.queries.closed_tickets ?>"><?cs 138 var:stats.closed_tickets ?></a></dd> 139 <dt>Active tickets:</dt> 140 <dd><a href="<?cs var:milestone.queries.active_tickets ?>"><?cs 141 var:stats.active_tickets ?></a></dd> 142 </dl><?cs 143 /if ?><?cs 144 /with ?> 145 </div> 146 <form id="stats" action="" method="get"> 147 <fieldset> 148 <legend> 149 <label for="by">Ticket status by</label> 150 <select id="by" name="by" onchange="this.form.submit()"><?cs 151 each:group = milestone.stats.available_groups ?> 152 <option value="<?cs var:group.name ?>" <?cs 153 if:milestone.stats.grouped_by == group.name ?> selected="selected"<?cs 154 /if ?>><?cs var:group.label ?></option><?cs 155 /each ?></select> 156 <noscript><input type="submit" value="Update" /></noscript> 157 </legend> 158 <table summary="Shows the milestone completion status grouped by <?cs 159 var:milestone.stats.grouped_by ?>"><?cs 160 each:group = milestone.stats.groups ?> 161 <tr> 162 <th scope="row"><a href="<?cs 163 var:group.queries.all_tickets ?>"><?cs var:group.name ?></a></th> 164 <td style="white-space: nowrap"><?cs if:#group.total_tickets ?> 165 <div class="progress" style="width: <?cs 166 var:#group.percent_total * #80 / #milestone.stats.max_percent_total ?>%"> 167 <a class="closed" href="<?cs 168 var:group.queries.closed_tickets ?>" style="width: <?cs 169 var:#group.percent_closed ?>%" title="<?cs 170 var:group.closed_tickets ?> of <?cs 171 var:group.total_tickets ?> ticket<?cs 172 if:group.total_tickets != #1 ?>s<?cs /if ?> closed"></a> 173 <a class="open" href="<?cs 174 var:group.queries.active_tickets ?>" style="width: <?cs 175 var:#group.percent_active - 1 ?>%" title="<?cs 176 var:group.active_tickets ?> of <?cs 177 var:group.total_tickets ?> ticket<?cs 178 if:group.total_tickets != 1 ?>s<?cs /if ?> active"></a> 179 </div> 180 <p class="percent"><?cs var:group.closed_tickets ?>/<?cs 181 var:group.total_tickets ?></p> 182 <?cs /if ?></td> 183 </tr><?cs 184 /each ?> 185 </table><?cs /if ?> 186 </fieldset> 187 </form> 188 <div class="description"><?cs var:milestone.description ?></div><?cs 189 if:trac.acl.MILESTONE_MODIFY || trac.acl.MILESTONE_DELETE ?> 190 <div class="buttons"><?cs 191 if:trac.acl.MILESTONE_MODIFY ?> 192 <form method="get" action=""><div> 193 <input type="hidden" name="action" value="edit" /><?cs 194 if:milestone.id_param ?> 195 <input type="hidden" name="id" value="<?cs var:milestone.name ?>" /><?cs 196 /if ?> 197 <input type="submit" value="Edit milestone info" accesskey="e" /> 198 </div></form><?cs 199 /if ?><?cs 200 if:trac.acl.MILESTONE_DELETE ?> 201 <form method="get" action=""><div> 202 <input type="hidden" name="action" value="delete" /><?cs 203 if:milestone.id_param ?> 204 <input type="hidden" name="id" value="<?cs var:milestone.name ?>" /><?cs 205 /if ?> 206 <input type="submit" value="Delete milestone" /> 207 </div></form><?cs 208 /if ?> 209 </div><?cs 210 /if ?><?cs 211 /if ?> 170 212 171 213 <div id="help"> -
trac/trunk/templates/newticket.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/ticket.css' ?> 2 <?cs include "header.cs" ?> 3 <?cs include "macros.cs" ?> 1 <?cs include:"header.cs" ?> 2 <?cs include:"macros.cs" ?> 4 3 <script type="text/javascript"> 5 4 addEvent(window, 'load', function() { document.getElementById('summary').focus()}); … … 9 8 10 9 <div id="content" class="ticket"> 11 12 <h3>Create New Ticket:</h3> 13 <form id="newticket" action="<?cs var:cgi_location ?>#preview" method="post"> 10 <h1>Create New Ticket</h1> 11 <?cs include:"site_newticket.cs" ?> 12 <form id="newticket" method="post" action="<?cs 13 var:trac.href.newticket ?>#preview"> 14 14 <div class="field"> 15 15 <label for="reporter">Your email or username:</label><br /> … … 19 19 <div class="field"> 20 20 <label for="summary">Short summary:</label><br /> 21 <input id="summary" type="text" name="summary" size="80" value="<?cs var:newticket.summary ?>"/> 22 </div> 21 <input id="summary" type="text" name="summary" size="80" value="<?cs 22 var:newticket.summary ?>"/> 23 </div><?cs 24 if:len(newticket.fields.type.options) ?> 25 <div class="field"><label for="type">Type:</label> <?cs 26 call:hdf_select(newticket.fields.type.options, 'type', 27 newticket.type, 0) ?> 28 </div><?cs 29 /if ?> 23 30 <div class="field"> 24 31 <label for="description">Full description (you may use <a tabindex="42" href="<?cs 25 32 var:$trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here):</label><br /> 26 <textarea id="description" name="description" rows="10" cols="78"><?cs33 <textarea id="description" name="description" class="wikitext" rows="10" cols="78"><?cs 27 34 var:newticket.description ?></textarea><?cs 28 call:wiki_toolbar('description') ?><?cs29 35 if:newticket.description_preview ?> 30 36 <fieldset id="preview"> … … 37 43 <fieldset id="properties"> 38 44 <legend>Ticket Properties</legend> 39 <input type="hidden" name="mode" value="newticket" />40 45 <input type="hidden" name="action" value="create" /> 41 46 <input type="hidden" name="status" value="new" /> 42 <div class="col1"> 43 <label for="component">Component:</label><?cs 44 call:hdf_select(newticket.components, "component", newticket.component) ?> 45 <br /> 46 <label for="version">Version:</label><?cs 47 call:hdf_select(newticket.versions, "version", newticket.version) ?> 48 <br /> 49 <label for="severity">Severity:</label><?cs 50 call:hdf_select(enums.severity, "severity", newticket.severity) ?> 51 <br /> 52 <label for="keywords">Keywords:</label> 53 <input type="text" id="keywords" name="keywords" size="20" 54 value="<?cs var:newticket.keywords ?>" /> 55 </div> 56 <div class="col2"> 57 <label for="priority">Priority:</label><?cs 58 call:hdf_select(enums.priority, "priority", newticket.priority) ?><br /> 59 <label for="milestone">Milestone:</label><?cs 60 call:hdf_select(newticket.milestones, "milestone", newticket.milestone) ?><br /> 61 <label for="owner">Assign to:</label> 62 <input type="text" id="owner" name="owner" size="20" value="<?cs 63 var:newticket.owner ?>" /><br /> 64 <label for="cc">Cc:</label> 65 <input type="text" id="cc" name="cc" size="30" value="<?cs var:newticket.cc ?>" /> 66 </div> 67 <?cs if:len(ticket.custom) ?><div class="custom"> 68 <?cs call:ticket_custom_props(ticket) ?> 69 </div><?cs /if ?> 47 <table><tr><?cs set:num_fields = 0 ?><?cs 48 each:field = newticket.fields ?><?cs 49 if:!field.skip ?><?cs 50 set:num_fields = num_fields + 1 ?><?cs 51 /if ?><?cs 52 /each ?><?cs set:idx = 0 ?><?cs 53 each:field = newticket.fields ?><?cs 54 if:!field.skip ?><?cs set:fullrow = field.type == 'textarea' ?><?cs 55 if:fullrow && idx % 2 ?><?cs set:idx = idx + 1 ?><th class="col2"></th><td></td></tr><tr><?cs /if ?> 56 <th class="col<?cs var:idx % 2 + 1 ?>"><?cs 57 if:field.type != 'radio' ?><label for="<?cs var:name(field) ?>"><?cs 58 /if ?><?cs alt:field.label ?><?cs var:field.name ?><?cs /alt ?>:<?cs 59 if:field.type != 'radio' ?></label><?cs /if ?></th> 60 <td<?cs if:fullrow ?> colspan="3"<?cs /if ?>><?cs 61 if:field.type == 'text' ?><input type="text" id="<?cs 62 var:name(field) ?>" name="<?cs 63 var:name(field) ?>" value="<?cs var:newticket[name(field)] ?>" /><?cs 64 elif:field.type == 'select' ?><select id="<?cs 65 var:name(field) ?>" name="<?cs var:name(field) ?>"><?cs 66 if:field.optional ?><option></option><?cs /if ?><?cs 67 each:option = field.options ?><option<?cs 68 if:option == newticket[name(field)] ?> selected="selected"<?cs /if ?>><?cs 69 var:option ?></option><?cs 70 /each ?></select><?cs 71 elif:field.type == 'checkbox' ?><input type="hidden" name="checkbox_<?cs 72 var:name(field) ?>" /><input type="checkbox" id="<?cs 73 var:name(field) ?>" name="<?cs 74 var:name(field) ?>" value="1"<?cs 75 if:newticket[name(field)] ?> checked="checked"<?cs /if ?> /><?cs 76 elif:field.type == 'textarea' ?><textarea id="<?cs 77 var:name(field) ?>" name="<?cs 78 var:name(field) ?>"<?cs 79 if:field.height ?> rows="<?cs var:field.height ?>"<?cs /if ?><?cs 80 if:field.width ?> cols="<?cs var:field.width ?>"<?cs /if ?>><?cs 81 var:newticket[name(field)] ?></textarea><?cs 82 elif:field.type == 'radio' ?><?cs set:optidx = 0 ?><?cs 83 each:option = field.options ?><label><input type="radio" id="<?cs 84 var:name(field) ?>" name="<?cs 85 var:name(field) ?>" value="<?cs var:option ?>"<?cs 86 if:ticket[name(field)] == option ?> checked="checked"<?cs /if ?> /> <?cs 87 var:option ?></label> <?cs set:optidx = optidx + 1 ?><?cs 88 /each ?><?cs 89 /if ?></td><?cs 90 if:idx % 2 || fullrow ?><?cs 91 if:idx < num_fields - 1 ?></tr><tr><?cs 92 /if ?><?cs 93 elif:idx == num_fields - 1 ?><th class="col2"></th><td></td><?cs 94 /if ?><?cs set:idx = idx + #fullrow + 1 ?><?cs 95 /if ?><?cs 96 /each ?></tr> 97 </table> 70 98 </fieldset> 71 99 100 <script type="text/javascript" src="<?cs 101 var:htdocs_location ?>js/wikitoolbar.js"></script> 102 72 103 <div class="buttons"> 73 <input type="submit" value="Preview" /> 74 <input type="submit" name="create"value="Submit ticket" />104 <input type="submit" name="preview" value="Preview" accesskey="r" /> 105 <input type="submit" value="Submit ticket" /> 75 106 </div> 76 107 </form> 77 108 78 <div id="help">79 <strong>Note:</strong> See <a href="<?cs var:$trac.href.wiki80 ?>/TracTickets">TracTickets</a> for help on using tickets.81 </div>109 <div id="help"> 110 <strong>Note:</strong> See <a href="<?cs 111 var:trac.href.wiki ?>/TracTickets">TracTickets</a> for help on using tickets. 112 </div> 82 113 </div> 83 114 -
trac/trunk/templates/query.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/report.css' ?>2 1 <?cs include:"header.cs" ?> 3 2 <?cs include:"macros.cs" ?> 4 3 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> 4 <div id="ctxtnav" class="nav"><?cs 5 if:query.report_href ?><ul> 6 <li class="first"><a href="<?cs 7 var:query.report_href ?>">Available Reports</a></li> 8 <li class="last">Custom Query</li></ul><?cs 9 /if ?> 10 </div> 10 11 11 12 <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" /> 13 <h1><?cs var:title ?> <span class="numrows">(<?cs alt:query.num_matches ?>No<?cs /alt ?> match<?cs 14 if:query.num_matches != 1 ?>es<?cs /if ?>)</span></h1> 15 16 <form id="query" method="post" action="<?cs var:trac.href.query ?>"> 17 <fieldset id="filters"> 18 <legend>Filters</legend> 19 <?cs def:checkbox_checked(constraint, option) ?><?cs 20 each:value = constraint.values ?><?cs 21 if:value == option ?> checked="checked"<?cs 22 /if ?><?cs 23 /each ?><?cs 24 /def ?> 25 <table summary="Query filters"><?cs each:field = query.fields ?><?cs 26 each:constraint = query.constraints ?><?cs 27 if:name(field) == name(constraint) ?> 28 <tbody><tr class="<?cs var:name(field) ?>"> 29 <th scope="row"><label><?cs var:field.label ?></label></th><?cs 30 if:field.type != "radio" && field.type != "checkbox" ?> 31 <td class="mode"> 32 <select name="<?cs var:name(field) ?>_mode"><?cs 33 each:mode = query.modes[field.type] ?> 34 <option value="<?cs var:mode.value ?>"<?cs 35 if:mode.value == constraint.mode ?> selected="selected"<?cs 36 /if ?>><?cs var:mode.name ?></option><?cs 37 /each ?> 38 </select> 39 </td><?cs 40 /if ?> 41 <td class="filter"<?cs 42 if:field.type == "radio" || field.type == "checkbox" ?> colspan="2"<?cs 43 /if ?>><?cs 44 if:field.type == "select" ?><?cs 45 each:value = constraint.values ?> 46 <select name="<?cs var:name(constraint) ?>"><option></option><?cs 47 each:option = field.options ?> 48 <option<?cs if:option == value ?> selected="selected"<?cs /if ?>><?cs 49 var:option ?></option><?cs 50 /each ?></select><?cs 51 if:name(value) != len(constraint.values) - 1 ?> 52 </td> 53 <td class="actions"><input type="submit" name="rm_filter_<?cs 54 var:name(field) ?>_<?cs var:name(value) ?>" value="-" /></td> 55 </tr><tr class="<?cs var:name(field) ?>"> 56 <th colspan="2"><label>or</label></th> 57 <td class="filter"><?cs 58 /if ?><?cs 59 /each ?><?cs 60 elif:field.type == "radio" ?><?cs 61 each:option = field.options ?> 62 <input type="checkbox" id="<?cs var:name(field) ?>_<?cs 63 var:option ?>" name="<?cs var:name(field) ?>" value="<?cs 64 var:option ?>"<?cs call:checkbox_checked(constraint, option) ?> /> 65 <label for="<?cs var:name(field) ?>_<?cs var:option ?>"><?cs 66 alt:option ?>none<?cs /alt ?></label><?cs 67 /each ?><?cs 68 elif:field.type == "checkbox" ?> 69 <input type="radio" id="<?cs var:name(field) ?>_on" name="<?cs 70 var:name(field) ?>" value="1"<?cs 71 if:constraint.mode != '!' ?> checked="checked"<?cs /if ?> /> 72 <label for="<?cs var:name(field) ?>_on">yes</label> 73 <input type="radio" id="<?cs var:name(field) ?>_off" name="<?cs 74 var:name(field) ?>" value="!1"<?cs 75 if:constraint.mode == '!' ?> checked="checked"<?cs /if ?> /> 76 <label for="<?cs var:name(field) ?>_off">no</label><?cs 77 elif:field.type == "text" ?><?cs 78 each:value = constraint.values ?> 79 <input type="text" name="<?cs var:name(field) ?>" value="<?cs 80 var:value ?>" size="42" /><?cs 81 if:name(value) != len(constraint.values) - 1 ?> 82 </td> 83 <td class="actions"><input type="submit" name="rm_filter_<?cs 84 var:name(field) ?>_<?cs var:name(value) ?>" value="-" /></td> 85 </tr><tr class="<?cs var:name(field) ?>"> 86 <th colspan="2"><label>or</label></th> 87 <td class="filter"><?cs 88 /if ?><?cs 89 /each ?><?cs 90 /if ?> 91 </td> 92 <td class="actions"><input type="submit" name="rm_filter_<?cs 93 var:name(field) ?><?cs 94 if:field.type != 'radio' ?>_<?cs 95 var:len(constraint.values) - 1 ?><?cs 96 /if ?>" value="-" /></td> 97 </tr></tbody><?cs /if ?><?cs 98 /each ?><?cs 99 /each ?> 100 <tbody><tr class="actions"> 101 <td class="actions" colspan="4" style="text-align: right"> 102 <label for="add_filter">Add filter</label> 103 <select name="add_filter" id="add_filter"> 104 <option></option><?cs 105 each:field = query.fields ?> 106 <option value="<?cs var:name(field) ?>"<?cs 107 if:field.type == "radio" ?><?cs 108 if:len(query.constraints[name(field)]) != 0 ?> disabled="disabled"<?cs 109 /if ?><?cs 110 /if ?>><?cs var:field.label ?></option><?cs 111 /each ?> 112 </select> 113 <input type="submit" name="add" value="+" /> 114 </td> 115 </tr></tbody> 116 </table> 117 </fieldset> 118 <p class="option"> 119 <label for="group">Group results by</label> 120 <select name="group" id="group"> 121 <option></option><?cs 122 each:field = query.fields ?><?cs 123 if:field.type == 'select' || field.type == 'radio' || 124 name(field) == 'owner' ?> 125 <option value="<?cs var:name(field) ?>"<?cs 126 if:name(field) == query.group ?> selected="selected"<?cs /if ?>><?cs 127 var:field.label ?></option><?cs 128 /if ?><?cs 129 /each ?> 130 </select> 131 <input type="checkbox" name="groupdesc" id="groupdesc"<?cs 132 if:query.groupdesc ?> checked="checked"<?cs /if ?> /> 133 <label for="groupdesc">descending</label> 134 <script type="text/javascript"> 135 var group = document.getElementById("group"); 136 var updateGroupDesc = function() { 137 enableControl('groupdesc', group.selectedIndex > 0); 138 } 139 addEvent(window, 'load', updateGroupDesc); 140 addEvent(group, 'change', updateGroupDesc); 141 </script> 142 </p> 143 <p class="option"> 144 <input type="checkbox" name="verbose" id="verbose"<?cs 145 if:query.verbose ?> checked="checked"<?cs /if ?> /> 146 <label for="verbose">Show full description under each result</label> 147 </p> 148 <div class="buttons"> 19 149 <input type="hidden" name="order" value="<?cs var:query.order ?>" /> 20 150 <?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 151 <input type="submit" name="update" value="Update" /> 152 </div> 153 <hr /> 154 </form> 155 <script type="text/javascript" src="<?cs 156 var:htdocs_location ?>js/query.js"></script> 157 <script type="text/javascript"><?cs set:idx = 0 ?> 158 var properties={<?cs each:field = query.fields ?><?cs 159 var:name(field) ?>:{type:"<?cs var:field.type ?>",label:"<?cs 160 var:field.label ?>",options:[<?cs 161 each:option = field.options ?>"<?cs var:option ?>"<?cs 162 if:name(option) < len(field.options) -1 ?>,<?cs /if ?><?cs 163 /each ?>]}<?cs 164 set:idx = idx + 1 ?><?cs if:idx < len(query.fields) ?>,<?cs /if ?><?cs 165 /each ?>};<?cs set:idx = 0 ?> 166 var modes = {<?cs each:type = query.modes ?><?cs var:name(type) ?>:[<?cs 167 each:mode = type ?>{text:"<?cs var:mode.name ?>",value:"<?cs var:mode.value ?>"}<?cs 168 if:name(mode) < len(type) -1 ?>,<?cs /if ?><?cs 169 /each ?>]<?cs 170 set:idx = idx + 1 ?><?cs if:idx < len(query.modes) ?>,<?cs /if ?><?cs 171 /each ?>}; 172 initializeFilters(); 173 </script> 174 175 <?cs def:thead() ?> 176 <thead><tr><?cs each:header = query.headers ?><?cs 177 if:name(header) == 0 ?><?cs 178 call:sortable_th(query.order, query.desc, 'id', 'ticket', query.href) ?><?cs 179 else ?><?cs 180 call:sortable_th(query.order, query.desc, header.name, header.name, query.href) ?><?cs 100 181 /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> 182 <?cs /each ?></tr></thead> 183 <?cs /def ?> 184 185 <?cs if:len(query.results) ?><?cs 186 if:!query.group ?> 187 <table class="listing tickets"> 188 <?cs call:thead() ?><tbody><?cs 189 /if ?><?cs 190 each:result = query.results ?><?cs 191 if:result[query.group] != prev_group ?> 192 <?cs if:prev_group ?></tbody></table><?cs /if ?> 193 <h2><?cs 194 each:field = query.fields ?><?cs 195 if:name(field) == query.group ?><?cs 196 var:field.label ?><?cs 197 /if ?><?cs 198 /each ?>: <?cs var:result[query.group] ?></h2> 199 <table class="listing tickets"> 200 <?cs call:thead() ?><tbody><?cs 201 /if ?> 202 <tr class="<?cs 203 if:name(result) % 2 ?>odd<?cs else ?>even<?cs /if ?> prio<?cs 204 var:result.priority_value ?><?cs 205 if:result.added ?> added<?cs /if ?><?cs 206 if:result.changed ?> changed<?cs /if ?><?cs 207 if:result.removed ?> removed<?cs /if ?>"><?cs 208 each:header = query.headers ?><?cs 209 if:name(header) == 0 ?><td class="id"><a href="<?cs 210 var:result.href ?>" title="View ticket"><?cs var:result.id ?></a></td><?cs 211 else ?><td class="<?cs var:header.name ?>"><?cs 212 if:header.name == 'summary' ?><a href="<?cs 213 var:result.href ?>" title="View ticket"><?cs 214 var:result.summary ?></a><?cs 215 else ?><span><?cs var:result[header.name] ?></span><?cs 216 /if ?></td><?cs 217 /if ?><?cs 218 /each ?> 219 <?cs if:query.verbose ?> 220 </tr><tr class="fullrow"><td colspan="<?cs var:len(query.headers) ?>"> 221 <p class="meta">Reported by <strong><?cs var:result.reporter ?></strong>, 222 <?cs var:result.time ?><?cs if:result.description ?>:<?cs /if ?></p> 223 <?cs if:result.description ?><p><?cs var:result.description ?></p><?cs /if ?> 224 </td> 225 <?cs /if ?><?cs set:prev_group = result[query.group] ?> 226 </tr><?cs /each ?> 227 </tbody></table><?cs 228 /if ?> 229 230 <div id="help"> 231 <strong>Note:</strong> See <a href="<?cs var:$trac.href.wiki ?>/TracQuery">TracQuery</a> 232 for help on using queries. 233 </div> 160 234 161 235 </div> -
trac/trunk/templates/report.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/report.css' ?>2 1 <?cs include "header.cs" ?> 3 2 <?cs include "macros.cs" ?> … … 5 4 <div id="ctxtnav" class="nav"> 6 5 <h2>Report Navigation</h2> 7 <ul> 8 <?cs if report.edit_href || report.copy_href || report.delete_href ?> 9 <li><b>This report:</b> 10 <ul> 11 <?cs if report.edit_href 12 ?><li <?cs if !report.delete_href && !report.copy_href ?>class="last"<?cs /if 13 ?>><a href="<?cs var:report.edit_href ?>">Edit</a></li><?cs 14 /if ?><?cs 15 if report.copy_href ?><li <?cs if !report.delete_href ?>class="last"<?cs /if 16 ?>><a href="<?cs var:report.copy_href ?>">Copy</a></li><?cs /if ?><?cs 17 if report.delete_href ?><li class="last"><a href="<?cs var:report.delete_href ?>">Delete</a></li><?cs /if ?></ul></li> 18 <?cs /if ?> 19 <?cs if:report.create_href ?> 20 <li><a href="<?cs var:report.create_href ?>">New Report</a></li> 21 <?cs /if ?> 22 <li class="last"><a href="<?cs var:$trac.href.query ?>">Custom Query</a></li> 23 </ul> 6 <ul><li class="first"><?cs 7 if:chrome.links.up.0.href ?><a href="<?cs 8 var:chrome.links.up.0.href ?>">Available Reports</a><?cs 9 else ?>Available Reports<?cs 10 /if ?></li><?cs 11 if:report.query_href ?><li class="last"><a href="<?cs 12 var:report.query_href ?>">Custom Query</a></li><?cs 13 /if ?></ul> 24 14 </div> 25 15 26 16 <div id="content" class="report"> 27 17 28 <?cs if report.message ?>29 <div class="error"><?cs var report.message ?></div>30 <?cs else ?>31 18 <?cs def:report_hdr(header) ?> 32 19 <?cs if $header ?> … … 37 24 <?cs if:header ?><h2><?cs var:header ?></h2><?cs /if ?> 38 25 <?cs if $report.id == -1 ?> 39 <table id="reportlist" class="listing">26 <table class="listing reports"> 40 27 <?cs else ?> 41 <table id="tktlist" class="listing">28 <table class="listing tickets"> 42 29 <?cs /if ?> 43 30 <thead> … … 99 86 if:report.numrows && report.id != -1 ?><span class="numrows"> (<?cs 100 87 var:report.numrows ?> matches)</span><?cs 101 /if ?></h1> 102 <?csif:report.description ?><div id="description"><?cs88 /if ?></h1><?cs 89 if:report.description ?><div id="description"><?cs 103 90 var:report.description ?></div><?cs 91 /if ?><?cs 92 if:report.id != -1 ?><?cs 93 if:report.can_create || report.can_modify || report.can_delete ?> 94 <div class="buttons"><?cs 95 if:report.can_modify ?><form action="" method="get"><div> 96 <input type="hidden" name="action" value="edit" /> 97 <input type="submit" value="Edit report" accesskey="e" /> 98 </div></form><?cs /if ?><?cs 99 if:report.can_create ?><form action="" method="get"><div> 100 <input type="hidden" name="action" value="copy" /> 101 <input type="submit" value="Copy report" /> 102 </div></form><?cs /if ?><?cs 103 if:report.can_delete ?><form action="" method="get"><div> 104 <input type="hidden" name="action" value="delete" /> 105 <input type="submit" value="Delete report" /> 106 </div></form><?cs /if ?> 107 </div><?cs 108 /if ?><?cs 104 109 /if ?> 105 110 … … 139 144 <?cs each cell = row ?> 140 145 <?cs if cell.hidden || cell.hidehtml ?> 141 <?cs elif name(cell) == "ticket" ?>146 <?cs elif name(cell) == "ticket" || name(cell) == "id" ?> 142 147 <?cs call:report_cell('ticket', 143 148 '<a title="View ticket" href="'+ … … 169 174 <?cs /each ?> 170 175 </tbody> 171 </table> 172 173 <?cs if $idx == #0 ?> 174 <div id="report-notfound">No matches found.</div> 175 <?cs /if ?> 176 177 <?cs elif report.mode == "delete" ?> 176 </table><?cs 177 if:report.id == -1 && report.can_create?><div class="buttons"> 178 <form action="" method="get"><div> 179 <input type="hidden" name="action" value="new" /> 180 <input type="submit" value="Create new report" /> 181 </div></form></div><?cs 182 /if ?><?cs 183 if report.message ?> 184 <div class="system-message"><?cs var report.message ?></div><?cs 185 elif:idx == #0 ?> 186 <div id="report-notfound">No matches found.</div><?cs 187 /if ?> 188 189 <?cs elif:report.mode == "delete" ?> 178 190 179 191 <h1><?cs var:title ?></h1> 180 <form action="<?cs var:cgi_location ?>" method="post"> 181 <input type="hidden" name="mode" value="report" /> 192 <form action="<?cs var:report.href ?>" method="post"> 182 193 <input type="hidden" name="id" value="<?cs var:report.id ?>" /> 183 <input type="hidden" name="action" value=" confirm_delete" />194 <input type="hidden" name="action" value="delete" /> 184 195 <p><strong>Are you sure you want to delete this report?</strong></p> 185 196 <div class="buttons"> 186 197 <input type="submit" name="cancel" value="Cancel" /> 187 <input type="submit" value="Delete Report" />198 <input type="submit" value="Delete report" /> 188 199 </div> 189 200 </form> 190 201 191 <?cs elif report.mode == "editor" ?>202 <?cs elif:report.mode == "edit" ?> 192 203 193 204 <h1><?cs var:title ?></h1> 194 195 <form action="<?cs var:cgi_location ?>" method="post"> 205 <form action="<?cs var:report.href ?>" method="post"> 196 206 <div> 197 <input type="hidden" name="mode" value="report" />198 <input type="hidden" name="id" value="<?cs var:report.id ?>" />199 207 <input type="hidden" name="action" value="<?cs var:report.action ?>" /> 200 208 <div class="field"> … … 208 216 var:$trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here) 209 217 </label><br /> 210 <textarea id="description" name="description" c ols="85" rows="5"><?cs218 <textarea id="description" name="description" class="wikitext" rows="10" cols="78"><?cs 211 219 var:report.description ?></textarea> 212 <?cs call:wiki_toolbar('description') ?>213 220 </div> 214 221 <div class="field"> … … 219 226 </div> 220 227 <div class="buttons"> 221 <input type="submit" value="Save " />228 <input type="submit" value="Save report" /> 222 229 <input type="submit" name="cancel" value="Cancel" /> 223 230 </div> 224 231 </div> 232 <script type="text/javascript" src="<?cs 233 var:htdocs_location ?>js/wikitoolbar.js"></script> 225 234 </form> 226 235 <?cs /if?> … … 232 241 </div> 233 242 234 <?cs /if ?><?cs #report.message ?>235 236 243 </div> 237 244 <?cs include "footer.cs" ?> -
trac/trunk/templates/report_rss.cs
r2581 r3036 1 1 <?xml version="1.0"?> 2 <!-- RSS generated by Trac v<?cs var:$trac.version ?> on <?cs var:$trac.time ?> -->3 2 <rss version="2.0"> 4 <?cs set base_url = $HTTP.Protocol+'://'+$HTTP.Host ?> 5 <?cs if $HTTP.Port ?> 6 <?cs set base_url = $base_url + ':' + $HTTP.Port ?> 7 <?cs /if ?> 8 <channel> 9 <?cs if $project.name.encoded ?> 10 <title><?cs var:$project.name.encoded ?>: <?cs var:$report.title ?></title> 11 12 <?cs else ?> 13 <title><?cs var:$title ?></title> 14 <?cs /if ?> 15 <link><?cs var:$base_url ?><?cs var:$trac.href.report ?>/<?cs var:$report.id ?></link> 16 <description>Trac Report - <?cs var:$report.title ?></description> 17 <language>en-us</language> 18 <generator>Trac v<?cs var:$trac.version ?></generator> 19 <?cs each:row = $report.items ?> 20 <?cs set title = '' ?> 21 <?cs set descr = '' ?> 22 <?cs set author = '' ?> 23 <?cs set pubdate = '' ?> 24 <?cs each:item = $row ?> 25 <?cs if name(item) == 'ticket' ?> 26 <?cs set link = $base_url+$item.ticket_href ?> 27 <?cs set id = $item ?> 28 <?cs elif name(item) == 'summary' ?> 29 <?cs set title = $item ?> 30 <?cs elif name(item) == 'description' ?> 31 <?cs set descr = $item ?> 32 <?cs elif name(item) == 'reporter' ?> 33 <?cs set author = $item.rss ?> 34 <?cs elif name(item) == 'time' || name(item) == 'changetime' 35 || name(item) == 'created' || name(item) == 'modified' ?> 36 <?cs set pubdate = $item.gmt ?> 37 <?cs /if ?> 38 <?cs /each ?> 39 <item> 40 <?cs if:$author ?> 41 <author><?cs var:$author ?></author> 42 <?cs /if ?> 43 <pubDate><?cs var:$pubdate ?></pubDate> 44 <title><?cs var:'#'+$id+': '+$title ?></title> 45 <link><?cs var:$link ?></link> 46 <description><?cs var:$descr ?></description> 47 <category>Report</category> 48 </item> 49 <?cs /each ?> 50 </channel> 3 <channel><?cs 4 if:project.name_encoded ?> 5 <title><?cs var:project.name_encoded ?>: <?cs var:report.title ?></title><?cs 6 else ?> 7 <title><?cs var:title ?></title><?cs 8 /if ?> 9 <link><?cs var:base_host ?><?cs var:trac.href.report ?>/<?cs var:report.id ?></link> 10 <description>Trac Report - <?cs var:report.title ?></description> 11 <language>en-us</language> 12 <generator>Trac v<?cs var:trac.version ?></generator><?cs 13 each:row = report.items ?><?cs 14 set title = '' ?><?cs 15 set descr = '' ?><?cs 16 set author = '' ?><?cs 17 set pubdate = '' ?><?cs 18 each:item = row ?><?cs 19 if name(item) == 'ticket' ?><?cs 20 set:link = base_host + item.ticket_href ?><?cs 21 set:id = item ?><?cs 22 elif:name(item) == 'summary' ?><?cs 23 set:title = item ?><?cs 24 elif:name(item) == 'description' ?><?cs 25 set:descr = item.parsed ?><?cs 26 elif:name(item) == 'reporter' ?><?cs 27 set:author = item.rss ?><?cs 28 elif:name(item) == 'time' || name(item) == 'changetime' 29 || name(item) == 'created' || name(item) == 'modified' ?><?cs 30 set pubdate = item.gmt ?><?cs 31 /if ?><?cs 32 /each ?> 33 <item> 34 <?cs if:author ?><author><?cs var:author ?></author><?cs /if ?> 35 <pubDate><?cs var:pubdate ?></pubDate> 36 <title><?cs var:'#' + id + ': ' + title ?></title> 37 <link><?cs var:link ?></link> 38 <description><?cs var:descr ?></description> 39 <category>Report</category> 40 </item><?cs 41 /each ?></channel> 51 42 </rss> -
trac/trunk/templates/roadmap.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/roadmap.css' ?>2 1 <?cs include "header.cs"?> 3 2 <?cs include "macros.cs"?> 4 3 5 <div id="ctxtnav" class="nav"> 6 <ul> 7 <?cs if:roadmap.href.newmilestone ?><li><a href="<?cs 8 var:roadmap.href.newmilestone ?>">Add New Milestone</a></li><?cs /if ?> 9 <li class="last"><a href="<?cs var:roadmap.href.list ?>"><?cs 10 if:roadmap.showall ?>Show All Milestones<?cs 11 else ?>Show Upcoming Milestones<?cs /if ?></a></li> 12 </ul> 13 </div> 4 <div id="ctxtnav" class="nav"></div> 14 5 15 6 <div id="content" class="roadmap"> 16 7 <h1>Roadmap</h1> 8 9 <form id="prefs" method="get" action=""> 10 <div> 11 <input type="checkbox" id="showall" name="show" value="all"<?cs 12 if:roadmap.showall ?> checked="checked"<?cs /if ?> /> 13 <label for="showall">Show already completed milestones</label> 14 </div> 15 <div class="buttons"> 16 <input type="submit" value="Update" /> 17 </div> 18 </form> 17 19 18 20 <ul class="milestones"><?cs each:milestone = roadmap.milestones ?> … … 21 23 <h2><a href="<?cs var:milestone.href ?>">Milestone: <em><?cs 22 24 var:milestone.name ?></em></a></h2> 23 <p class="date"><?cs if:milestone.date ?> 24 <?cs var:milestone.date ?><?cs else ?>No date set<?cs /if ?> 25 </p> 26 <?cs with:stats = milestone.stats ?> 27 <?cs if:#stats.total_tickets > #0 ?> 25 <p class="date"<?cs 26 if:milestone.completed_date ?> title="<?cs var:milestone.completed_date ?>"> 27 Completed <?cs var:milestone.completed_delta ?> ago<?cs 28 elif:milestone.due_date ?> title="<?cs var:milestone.due_date ?>"><?cs 29 if:milestone.late ?> 30 <strong><?cs var:milestone.due_delta ?> late</strong><?cs 31 else ?> 32 Due in <?cs var:milestone.due_delta ?><?cs 33 /if ?><?cs 34 else ?>> 35 No date set<?cs 36 /if ?> 37 </p><?cs 38 with:stats = milestone.stats ?><?cs 39 if:#stats.total_tickets > #0 ?> 28 40 <div class="progress"> 29 <div style="width: <?cs var:#stats.percent_complete ?>%"></div> 41 <a class="closed" href="<?cs 42 var:milestone.queries.closed_tickets ?>" style="width: <?cs 43 var:#stats.percent_closed ?>%" title="<?cs 44 var:#stats.closed_tickets ?> of <?cs 45 var:#stats.total_tickets ?> ticket<?cs 46 if:#stats.total_tickets != #1 ?>s<?cs /if ?> closed"></a> 47 <a class="open" href="<?cs 48 var:milestone.queries.active_tickets ?>" style="width: <?cs 49 var:#stats.percent_active - 1 ?>%" title="<?cs 50 var:#stats.active_tickets ?> of <?cs 51 var:#stats.total_tickets ?> ticket<?cs 52 if:#stats.total_tickets != #1 ?>s<?cs /if ?> active"></a> 30 53 </div> 31 <p class="percent"><?cs var:#stats.percent_c omplete?>%</p>54 <p class="percent"><?cs var:#stats.percent_closed ?>%</p> 32 55 <dl> 56 <dt>Closed tickets:</dt> 57 <dd><a href="<?cs var:milestone.queries.closed_tickets ?>"><?cs 58 var:stats.closed_tickets ?></a></dd> 33 59 <dt>Active tickets:</dt> 34 60 <dd><a href="<?cs var:milestone.queries.active_tickets ?>"><?cs 35 61 var:stats.active_tickets ?></a></dd> 36 <dt>Closed tickets:</dt> 37 <dd><a href="<?cs var:milestone.queries.closed_tickets ?>"><?cs 38 var:stats.closed_tickets ?></a></dd> 39 </dl> 40 <?cs /if ?> 41 <?cs /with ?> 62 </dl><?cs 63 /if ?><?cs 64 /with ?> 42 65 </div> 43 <div class="descr"><?cs var:milestone.descr ?></div> 44 </li> 45 <?cs /each ?></ul> 66 <div class="description"><?cs var:milestone.description ?></div> 67 </li><?cs 68 /each ?></ul><?cs 69 if:trac.acl.MILESTONE_CREATE ?> 70 <div class="buttons"> 71 <form method="get" action="<?cs var:trac.href.milestone ?>"><div> 72 <input type="hidden" name="action" value="new" /> 73 <input type="submit" value="Add new milestone" /> 74 </div></form> 75 </div><?cs 76 /if ?> 46 77 47 78 <div id="help"> -
trac/trunk/templates/search.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/search.css' ?> 2 <?cs include "header.cs"?> 1 <?cs include:"header.cs"?> 3 2 <script type="text/javascript"> 4 3 addEvent(window, 'load', function() { document.getElementById('q').focus()}); 5 4 </script> 6 7 <div id="ctxtnav" class="nav"> 8 <h2>Search Navigation</h2> 9 <ul><?cs 10 if:len(links.prev) ?> 11 <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>"> 12 <a href="<?cs var:links.prev.0.href ?>" title="<?cs 13 var:links.prev.0.title ?>">Previous Page</a> 14 </li><?cs 5 <div id="ctxtnav" class="nav"><?cs 6 with:links = chrome.links ?><?cs 7 if:len(links.prev) || len(links.next) ?><ul><?cs 8 if:len(links.prev) ?> 9 <li class="first<?cs if:!len(links.up) && !len(links.next) ?> last<?cs /if ?>"> 10 ← <a href="<?cs var:links.prev.0.href ?>"><?cs 11 var:links.prev.0.title ?></a> 12 </li><?cs 13 /if ?><?cs 14 if:len(links.next) ?> 15 <li class="<?cs if:!len(links.prev) && !len(links.up) ?>first <?cs /if ?>last"> 16 <a href="<?cs var:links.next.0.href ?>"><?cs 17 var:links.next.0.title ?></a> → 18 </li><?cs 19 /if ?></ul><?cs 15 20 /if ?><?cs 16 if:len(links.next) ?> 17 <li class="<?cs if:len(links.prev) ?>first <?cs /if ?>last"> 18 <a href="<?cs var:links.next.0.href ?>" title="<?cs 19 var:links.next.0.title ?>">Next Page</a> 20 </li><?cs 21 /if ?> 22 </ul> 21 /with ?> 23 22 </div> 24 23 … … 32 31 </p> 33 32 <p><?cs 34 if:trac.acl.WIKI_VIEW ?> 35 <input type="checkbox" id="wiki" name="wiki" <?cs 36 if:search.wiki ?>checked="checked"<?cs /if ?> /> 37 <label for="wiki">Wiki</label><?cs 38 /if ?><?cs 39 if:trac.acl.TICKET_VIEW ?> 40 <input type="checkbox" id="ticket" name="ticket" <?cs 41 if:search.ticket ?>checked="checked"<?cs /if ?> /> 42 <label for="ticket">Tickets</label><?cs 43 /if ?><?cs 44 if:trac.acl.CHANGESET_VIEW ?> 45 <input type="checkbox" id="changeset" name="changeset" <?cs 46 if:search.changeset ?>checked="checked"<?cs /if ?> /> 47 <label for="changeset">Changesets</label><?cs 48 /if ?> 33 each filter=search.filters ?> 34 <input type="checkbox" id="<?cs var:filter.name?>" 35 name="<?cs var:filter.name?>" <?cs 36 if:filter.active ?>checked="checked"<?cs /if ?> /> 37 <label for="<?cs var:filter.name ?>"><?cs var:filter.label?></label><?cs 38 /each ?> 49 39 </p> 50 40 </form> 51 52 <?cs def result(title, keywords, body, link) ?> 53 <dt><a href="<?cs var:link ?>"><?cs var:title ?></a></dt> 54 <dd><?cs var:body ?></dd> 41 <?cs if:len(search.result) ?> 42 <hr /> 43 <h2>Search results <?cs 44 if:search.n_pages > 1 ?>(<?cs 45 var:(search.page-1) * search.page_size + 1 ?> - <?cs 46 var:(search.page-1) * search.page_size + len(search.result) ?> 47 of <?cs var:search.n_hits?>)<?cs 48 /if ?></h2> 49 <div id="searchable"> 50 <dl id="results"><?cs 51 each item=search.result ?> 52 <dt><a href="<?cs var:item.href ?>"><?cs var:item.title ?></a></dt> 53 <dd><?cs var:item.excerpt ?></dd> 55 54 <dd> 56 55 <span class="author">By <?cs var:item.author ?></span> — 57 <span class="date"><?cs var:item.date time?></span><?cs56 <span class="date"><?cs var:item.date ?></span><?cs 58 57 if:item.keywords ?> &mdash 59 58 <span class="keywords">Keywords: <em><?cs var:item.keywords ?></em></span><?cs 60 59 /if ?> 61 </dd> 62 <?cs /def ?> 63 64 <?cs if:len(search.result) ?> 65 <hr /> 66 <h2>Search results <?cs 67 if:len(links.prev) || len(links.next) ?>(<?cs 68 var:search.result_page * search.results_per_page + 1 ?> - <?cs 69 var:search.result_page * search.results_per_page + len(search.result) ?>)<?cs 70 /if ?></h2> 71 <div id="searchable"> 72 <dl id="results"><?cs 73 each item=search.result ?><?cs 74 if:item.type == 1 ?><?cs 75 call:result('[' + item.data + ']: ' + item.shortmsg, item.keywords, 76 item.message, item.changeset_href) ?><?cs 77 elif:item.type == 2 ?><?cs 78 call:result('#' + item.data + ': ' + item.title, item.keywords, 79 item.message, item.ticket_href) ?><?cs 80 elif:item.type == 3 ?><?cs 81 call:result(item.data + ': ' + item.shortmsg, item.keywords, 82 item.message, item.wiki_href) ?><?cs 83 /if ?><?cs 60 </dd><?cs 84 61 /each ?> 85 62 </dl> 86 63 <hr /> 87 </div> 88 <?cs if:len(links.prev) || len(links.next)?>89 <div id="paging" class="nav">90 <ul><?cs91 if:len(links.prev) ?>92 <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>">93 <a href="<?cs var:links.prev.0.href ?>" title="<?cs94 var:links.prev.0.title ?>">Previous Page</a>95 </li><?cs96 /if ?><?cs97 if:len(links.next) ?>98 <li class="<?cs if:len(links.prev) ?>first <?cs /if ?>last">99 <a href="<?cs var:links.next.0.href ?>" title="<?cs100 var:links.next.0.title ?>">Next Page</a>101 </li><?cs102 /if ?>103 </ul>104 </div> 105 <?cs /if ?>64 </div><?cs 65 if search.n_pages > 1 ?> 66 <div id="paging"><?cs 67 if len(chrome.links.prev) ?> 68 <a href="<?cs var:chrome.links.prev.0.href ?>" title="<?cs 69 var:chrome.links.prev.0.title ?>">←</a> <?cs 70 /if ?><?cs 71 loop:p = 1, search.n_pages ?><?cs 72 if p == search.page ?><?cs var:p ?><?cs 73 else ?><a href="<?cs var:search.page_href + "&page=" + p?>"><?cs 74 var:p ?></a><?cs 75 /if ?> <?cs 76 /loop ?><?cs 77 if len(chrome.links.next) ?> 78 <a href="<?cs var:chrome.links.next.0.href ?>" title="<?cs 79 var:chrome.links.next.0.title ?>">→</a><?cs 80 /if ?> 81 </div><?cs 82 /if ?><?cs 106 83 107 <?cs elif $search.q ?>108 <div id="notfound">No matches found.</div> 109 <?cs/if ?>84 elif:search.q ?> 85 <div id="notfound">No matches found.</div><?cs 86 /if ?> 110 87 111 <div id="help"> 112 <strong>Note:</strong> See <a href="<?cs var:$trac.href.wiki ?>/TracSearch">TracSearch</a> for help on searching. 113 </div> 88 <div id="help"> 89 <strong>Note:</strong> See <a href="<?cs 90 var:trac.href.wiki ?>/TracSearch">TracSearch</a> for help on searching. 91 </div> 114 92 115 93 </div> 116 <?cs include "footer.cs"?>94 <?cs include:"footer.cs"?> -
trac/trunk/templates/settings.cs
r3004 r3036 2 2 <?cs include "macros.cs"?> 3 3 4 <div id="c ontextnav" class="nav"></div>4 <div id="ctxtnav" class="nav"></div> 5 5 6 6 <div id="content" class="settings"> … … 14 14 stored in a browser cookie. The cookie lets Trac restore your settings 15 15 </p> 16 <form method=" get" action="<?cs var:trac.href.settings ?>">16 <form method="post" action=""> 17 17 <div> 18 18 <h3>Personal Information</h3> … … 21 21 <label for="name">Name:</label> 22 22 <input type="text" id="name" name="name" class="textwidget" size="30" 23 value="<?cs var: trac.session.var.name ?>" />23 value="<?cs var:settings.name ?>" /> 24 24 </div> 25 25 <div> 26 26 <label for="email">Email:</label> 27 27 <input type="text" id="email" name="email" class="textwidget" size="30" 28 value="<?cs var:trac.session.var.email ?>" /> 29 </div> 30 31 <h3>Session</h3> 32 <div> 33 <label for="newsid">Session Key:</label> 34 <input type="text" id="newsid" name="newsid" class="textwidget" size="30" 35 value="<?cs var:trac.session.id ?>" /> 36 <p> 37 The session key is used to identify stored custom settings and session 38 data on the server. Automatically generated by default, you may change it 39 to something easier to remember at any time if you wish to use your 40 settings in a different web browser. 41 </p> 42 </div> 43 28 value="<?cs var:settings.email ?>" /> 29 </div><?cs 30 if:settings.session_id ?> 31 <h3>Session</h3> 32 <div> 33 <label for="newsid">Session Key:</label> 34 <input type="text" id="newsid" name="newsid" class="textwidget" size="30" 35 value="<?cs var:settings.session_id ?>" /> 36 <p>The session key is used to identify stored custom settings and session 37 data on the server. Automatically generated by default, you may change it 38 to something easier to remember at any time if you wish to use your settings 39 in a different web browser.</p> 40 </div><?cs 41 /if ?> 44 42 <div> 45 43 <br /> 46 <input type="submit" value="S ave Changes" />44 <input type="submit" value="Submit changes" /> 47 45 </div > 48 46 </div> 49 </form> 50 51 <hr /> 52 53 <h2>Load Session</h2> 54 <p> 55 You may load a previously created session by entering the corresponding 56 session key below and clicking 'Recover'. This lets you share settings between 57 multiple computers and/or web browsers. 58 </p> 59 <form method="get" action="<?cs var:trac.href.settings ?>"> 47 </form><?cs 48 if:settings.session_id ?> 49 <hr /> 50 <h2>Load Session</h2> 51 <p>You may load a previously created session by entering the corresponding 52 session key below and clicking 'Recover'. This lets you share settings between 53 multiple computers and/or web browsers.</p> 54 <form method="post" action=""> 60 55 <div> 61 56 <input type="hidden" name="action" value="load" /> … … 65 60 <input type="submit" value="Recover" /> 66 61 </div> 67 </form> 62 </form><?cs 63 /if ?> 68 64 69 65 </div> -
trac/trunk/templates/ticket.cs
r2999 r3036 1 <?cs set:html.stylesheet = 'css/ticket.css' ?>2 1 <?cs include "header.cs" ?> 3 2 <?cs include "macros.cs" ?> 4 3 5 4 <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 5 <h2>Ticket Navigation</h2><?cs 6 with:links = chrome.links ?><?cs 7 if:len(links.prev) || len(links.up) || len(links.next) ?><ul><?cs 8 if:len(links.prev) ?> 9 <li class="first<?cs if:!len(links.up) && !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.up) ?> 15 <li class="<?cs if:!len(links.prev) ?>first<?cs /if ?><?cs 16 if:!len(links.next) ?> last<?cs /if ?>"> 17 <a href="<?cs var:links.up.0.href ?>" title="<?cs 18 var:links.up.0.title ?>">Back to Query</a> 19 </li><?cs 20 /if ?><?cs 21 if:len(links.next) ?> 22 <li class="<?cs if:!len(links.prev) && !len(links.up) ?>first <?cs /if ?>last"> 23 <a href="<?cs var:links.next.0.href ?>" title="<?cs 24 var:links.next.0.title ?>">Next Ticket</a> → 25 </li><?cs 26 /if ?></ul><?cs 27 /if ?><?cs 28 /with ?> 29 </div> 30 31 <div id="content" class="ticket"> 32 33 <h1>Ticket #<?cs var:ticket.id ?> <?cs 34 if:ticket.type ?>(<?cs var:ticket.type ?>)<?cs /if ?></h1> 35 36 <div id="searchable"> 37 <div id="ticket"> 38 <div class="date"> 39 <p title="<?cs var:ticket.opened ?>">Opened <?cs var:ticket.opened_delta ?> ago</p><?cs 40 if:ticket.lastmod ?> 41 <p title="<?cs var:ticket.lastmod ?>">Last modified <?cs var:ticket.lastmod_delta ?> ago</p> 42 <?cs /if ?> 43 </div> 44 <h2 class="summary"><?cs var:ticket.summary ?></h2> 45 <h3 class="status">Status: <strong><?cs var:ticket.status ?><?cs 46 if:ticket.resolution ?> (<?cs var:ticket.resolution ?>)<?cs 47 /if ?></strong></h3> 48 <table class="properties"> 49 <tr> 50 <th id="h_reporter">Reported by:</th> 51 <td headers="h_reporter"><?cs var:ticket.reporter ?></td> 52 <th id="h_owner">Assigned to:</th> 53 <td headers="h_owner"><?cs var:ticket.owner ?><?cs 54 if:ticket.status == 'assigned' ?> (accepted)<?cs /if ?></td> 55 </tr><tr><?cs 56 each:field = ticket.fields ?><?cs 57 if:!field.skip ?><?cs 58 set:num_fields = num_fields + 1 ?><?cs 59 /if ?><?cs 60 /each ?><?cs 61 set:idx = 0 ?><?cs 62 each:field = ticket.fields ?><?cs 63 if:!field.skip ?><?cs set:fullrow = field.type == 'textarea' ?><?cs 64 if:fullrow && idx % 2 ?><th></th><td></td></tr><tr><?cs /if ?> 65 <th id="h_<?cs var:name(field) ?>"><?cs var:field.label ?>:</th> 66 <td<?cs if:fullrow ?> colspan="3"<?cs /if ?> headers="h_<?cs 67 var:name(field) ?>"><?cs var:ticket[name(field)] ?></td><?cs 68 if:idx % 2 || fullrow ?></tr><tr><?cs 69 elif:idx == num_fields - 1 ?><th></th><td></td><?cs 70 /if ?><?cs set:idx = idx + #fullrow + 1 ?><?cs 71 /if ?><?cs 72 /each ?></tr> 73 </table> 74 <?cs if:ticket.description ?><div class="description"> 75 <?cs var:ticket.description.formatted ?> 76 </div><?cs /if ?> 77 </div> 78 79 <?cs if:ticket.attach_href || len(ticket.attachments) ?> 80 <h2>Attachments</h2><?cs 81 if:len(ticket.attachments) ?><div id="attachments"> 82 <dl class="attachments"><?cs each:attachment = ticket.attachments ?> 83 <dt><a href="<?cs var:attachment.href ?>" title="View attachment"><?cs 84 var:attachment.filename ?></a> (<?cs var:attachment.size ?>) - added by <em><?cs 85 var:attachment.author ?></em> on <?cs 86 var:attachment.time ?>.</dt><?cs 87 if:attachment.description ?> 88 <dd><?cs var:attachment.description ?></dd><?cs 89 /if ?><?cs 90 /each ?></dl><?cs 91 /if ?><?cs 92 if:ticket.attach_href ?> 93 <form method="get" action="<?cs var:ticket.attach_href ?>"><div> 94 <input type="hidden" name="action" value="new" /> 95 <input type="submit" value="Attach File" /> 96 </div></form><?cs 97 /if ?><?cs if:len(ticket.attachments) ?></div><?cs /if ?> 98 <?cs /if ?> 99 100 <?cs if:len(ticket.changes) ?><h2>Change History</h2> 101 <div id="changelog"><?cs 102 each:change = ticket.changes ?> 103 <h3 id="change_<?cs var:name(change) ?>" class="change"><?cs 104 var:change.date ?>: Modified by <?cs var:change.author ?></h3><?cs 105 if:len(change.fields) ?> 106 <ul class="changes"><?cs 107 each:field = change.fields ?> 108 <li><strong><?cs var:name(field) ?></strong> <?cs 109 if:name(field) == 'attachment' ?><em><?cs var:field.new ?></em> added<?cs 110 elif:field.old && field.new ?>changed from <em><?cs 111 var:field.old ?></em> to <em><?cs var:field.new ?></em><?cs 112 elif:!field.old && field.new ?>set to <em><?cs var:field.new ?></em><?cs 113 elif:field.old && !field.new ?>deleted<?cs 114 else ?>changed<?cs 115 /if ?>.</li> 116 <?cs 117 /each ?> 118 </ul><?cs 19 119 /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 ?> <?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"> 120 <div class="comment"><?cs var:change.comment ?></div><?cs 121 /each ?></div><?cs 122 /if ?> 123 124 <?cs if:trac.acl.TICKET_CHGPROP || trac.acl.TICKET_APPEND ?> 125 <form action="<?cs var:ticket.href ?>#preview" method="post"> 134 126 <hr /> 135 127 <h3><a name="edit" onfocus="document.getElementById('comment').focus()">Add/Change #<?cs 136 128 var:ticket.id ?> (<?cs var:ticket.summary ?>)</a></h3> 137 129 <div class="field"> 138 <input type="hidden" name="mode" value="ticket" />139 <input type="hidden" name="id" value="<?cs var:ticket.id ?>" />140 130 <label for="author">Your email or username:</label><br /> 141 131 <input type="text" id="author" name="author" size="40" … … 145 135 <fieldset class="iefix"> 146 136 <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') ?> 137 var:trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here):</label><br /> 138 <p><textarea id="comment" name="comment" class="wikitext" rows="10" cols="78"><?cs 139 var:ticket.comment ?></textarea></p> 151 140 </fieldset><?cs 152 141 if ticket.comment_preview ?> … … 158 147 </div> 159 148 160 < fieldset id="properties">149 <?cs if:trac.acl.TICKET_CHGPROP ?><fieldset id="properties"> 161 150 <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 151 <table><tr> 152 <th><label for="summary">Summary:</label></th> 153 <td class="fullrow" colspan="3"><input type="text" id="summary" name="summary" value="<?cs 154 var:ticket.summary ?>" size="70" /></td> 155 </tr><?cs 156 if:len(ticket.fields.type.options) ?> 157 <tr> 158 <th><label for="type">Type:</label></th> 159 <td><?cs 160 call:hdf_select(ticket.fields.type.options, 'type', ticket.type, 0) ?> 161 </td> 162 </tr><?cs 163 /if ?><?cs 164 if:trac.acl.TICKET_ADMIN ?><tr> 165 <th><label for="description">Description:</label></th> 166 <td class="fullrow" colspan="3"> 167 <textarea id="description" name="description" class="wikitext" rows="10" cols="68"><?cs 168 var:ticket.description ?></textarea> 169 </td> 170 </tr><tr> 171 <th><label for="reporter">Reporter:</label></th> 172 <td class="fullrow" colspan="3"><input type="text" value="<?cs 173 var:ticket.reporter ?>" id="reporter" name="reporter" size="70" /></td> 174 </tr><?cs 178 175 /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 176 <tr><?cs set:num_fields = 0 ?><?cs 177 each:field = ticket.fields ?><?cs 178 if:!field.skip ?><?cs 179 set:num_fields = num_fields + 1 ?><?cs 180 /if ?><?cs 181 /each ?><?cs set:idx = 0 ?><?cs 182 each:field = ticket.fields ?><?cs 183 if:!field.skip ?><?cs set:fullrow = field.type == 'textarea' ?><?cs 184 if:fullrow && idx % 2 ?><?cs set:idx = idx + 1 ?><th class="col2"></th><td></td></tr><tr><?cs /if ?> 185 <th class="col<?cs var:idx % 2 + 1 ?>"><?cs 186 if:field.type != 'radio' ?><label for="<?cs var:name(field) ?>"><?cs 187 /if ?><?cs alt:field.label ?><?cs var:field.name ?><?cs /alt ?>:<?cs 188 if:field.type != 'radio' ?></label><?cs /if ?></th> 189 <td<?cs if:fullrow ?> colspan="3"<?cs /if ?>><?cs 190 if:field.type == 'text' ?><input type="text" id="<?cs 191 var:name(field) ?>" name="<?cs 192 var:name(field) ?>" value="<?cs var:ticket[name(field)] ?>" /><?cs 193 elif:field.type == 'select' ?><select id="<?cs 194 var:name(field) ?>" name="<?cs 195 var:name(field) ?>"><?cs 196 if:field.optional ?><option></option><?cs /if ?><?cs 197 each:option = field.options ?><option<?cs 198 if:option == ticket[name(field)] ?> selected="selected"<?cs /if ?>><?cs 199 var:option ?></option><?cs 200 /each ?></select><?cs 201 elif:field.type == 'checkbox' ?><input type="hidden" name="checkbox_<?cs 202 var:name(field) ?>" /><input type="checkbox" id="<?cs 203 var:name(field) ?>" name="<?cs 204 var:name(field) ?>" value="1"<?cs 205 if:ticket[name(field)] ?> checked="checked"<?cs /if ?> /><?cs 206 elif:field.type == 'textarea' ?><textarea id="<?cs 207 var:name(field) ?>" name="<?cs 208 var:name(field) ?>"<?cs 209 if:field.height ?> rows="<?cs var:field.height ?>"<?cs /if ?><?cs 210 if:field.width ?> cols="<?cs var:field.width ?>"<?cs /if ?>><?cs 211 var:ticket[name(field)] ?></textarea><?cs 212 elif:field.type == 'radio' ?><?cs set:optidx = 0 ?><?cs 213 each:option = field.options ?><label><input type="radio" id="<?cs 214 var:name(field) ?>" name="<?cs 215 var:name(field) ?>" value="<?cs var:option ?>"<?cs 216 if:ticket[name(field)] == option ?> checked="checked"<?cs /if ?> /> <?cs 217 var:option ?></label> <?cs set:optidx = optidx + 1 ?><?cs 218 /each ?><?cs 219 /if ?></td><?cs 220 if:idx % 2 || fullrow ?><?cs 221 if:idx < num_fields - 1 ?></tr><tr><?cs 222 /if ?><?cs 223 elif:idx == num_fields - 1 ?><th class="col2"></th><td></td><?cs 224 /if ?><?cs set:idx = idx + #fullrow + 1 ?><?cs 225 /if ?><?cs 226 /each ?></tr> 227 </table> 228 </fieldset><?cs /if ?> 229 230 <?cs if:ticket.actions.accept || ticket.actions.reopen || 231 ticket.actions.resolve || ticket.actions.reassign ?> 210 232 <fieldset id="action"> 211 233 <legend>Action</legend><?cs … … 214 236 def:action_radio(id) ?> 215 237 <input type="radio" id="<?cs var:id ?>" name="action" value="<?cs 216 var:id ?>"<?cs if: $ticket.action == $id ?> checked="checked"<?cs238 var:id ?>"<?cs if:ticket.action == id ?> checked="checked"<?cs 217 239 /if ?> /><?cs 218 240 /def ?> 219 241 <?cs call:action_radio('leave') ?> 220 <label for="leave">leave as <?cs var:ticket.status ?></label><br /><?cs221 if $ticket.status == "new" ?>222 <?cscall:action_radio('accept') ?>242 <label for="leave">leave as <?cs var:ticket.status ?></label><br /><?cs 243 if:ticket.actions.accept ?><?cs 244 call:action_radio('accept') ?> 223 245 <label for="accept">accept ticket</label><br /><?cs 224 246 /if ?><?cs 225 if $ticket.status == "closed" ?>226 <?cscall:action_radio('reopen') ?>247 if:ticket.actions.reopen ?><?cs 248 call:action_radio('reopen') ?> 227 249 <label for="reopen">reopen ticket</label><br /><?cs 228 250 /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') ?> 251 if:ticket.actions.resolve ?><?cs 252 call:action_radio('resolve') ?> 253 <label for="resolve">resolve</label><?cs 254 if:len(ticket.fields.resolution.options) ?> 255 <label for="resolve_resolution">as:</label> 256 <?cs call:hdf_select(ticket.fields.resolution.options, "resolve_resolution", 257 ticket.resolve_resolution, 0) ?><br /><?cs 258 /if ?><?cs 259 /if ?><?cs 260 if:ticket.actions.reassign ?><?cs 261 call:action_radio('reassign') ?> 235 262 <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"); 263 <label>to:<?cs 264 if:len(ticket.fields.owner.options) ?><?cs 265 call:hdf_select(ticket.fields.owner.options, "reassign_owner", 266 ticket.reassign_owner, 1) ?><?cs 267 else ?> 268 <input type="text" id="reassign_owner" name="reassign_owner" size="40" value="<?cs 269 var:ticket.reassign_owner ?>" /><?cs 270 /if ?></label><?cs 271 /if ?><?cs 272 if ticket.actions.resolve || ticket.actions.reassign ?> 273 <script type="text/javascript"><?cs 274 each:action = ticket.actions ?> 275 var <?cs var:name(action) ?> = document.getElementById("<?cs var:name(action) ?>");<?cs 276 /each ?> 245 277 var updateActionFields = function() { 246 enableControl('resolve_resolution', resolve.checked);247 enableControl('reassign_owner', reassign.checked);278 <?cs if:ticket.actions.resolve ?> enableControl('resolve_resolution', resolve.checked);<?cs /if ?> 279 <?cs if:ticket.actions.reassign ?> enableControl('reassign_owner', reassign.checked);<?cs /if ?> 248 280 }; 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); 281 addEvent(window, 'load', updateActionFields);<?cs 282 each:action = ticket.actions ?> 283 addEvent(<?cs var:name(action) ?>, 'click', updateActionFields);<?cs 284 /each ?> 256 285 </script><?cs 257 286 /if ?> 258 </fieldset> 287 </fieldset><?cs 288 else ?> 289 <input type="hidden" name="action" value="leave" /><?cs 290 /if ?> 291 292 <script type="text/javascript" src="<?cs 293 var:htdocs_location ?>js/wikitoolbar.js"></script> 259 294 260 295 <div class="buttons"> 261 <input type=" reset" value="Reset" /> 262 <input type="submit" name="preview" value="Preview" /> 263 <input type="submit" value="Submit changes" /> 296 <input type="hidden" name="ts" value="<?cs var:ticket.ts ?>" /> 297 <input type="submit" name="preview" value="Preview" accesskey="r" /> 298 <input type="submit" value="Submit changes" /> 264 299 </div> 265 300 </form> -
trac/trunk/templates/timeline.cs
r2581 r3036 1 <?cs set:html.stylesheet = 'css/timeline.css' ?>2 1 <?cs include "header.cs"?> 3 2 … … 5 4 6 5 <div id="content" class="timeline"> 7 <h1>Timeline</h1>6 <h1>Timeline</h1> 8 7 9 <form id="prefs" action="<?cs var:trac.href.timeline ?>"> 10 <div> 11 <label for="from">View changes from</label> 12 <input type="text" size="10" id="from" name="from" 13 value="<?cs var:timeline.from ?>" /> and <input type="text" size="3" 14 id="daysback" name="daysback" value="<?cs var:timeline.daysback ?>" /> 15 <label for="daysback">days back</label>. 16 </div> 17 <fieldset> 18 <?cs if:trac.acl.TICKET_VIEW ?><div class="field"> 19 <input type="checkbox" id="ticket" name="ticket" <?cs 20 if:timeline.ticket ?>checked="checked"<?cs /if ?> /> 21 <label for="ticket">Ticket changes</label> 22 </div><?cs /if ?> 23 <?cs if:trac.acl.CHANGESET_VIEW ?><div class="field"> 24 <input type="checkbox" id="changeset" name="changeset" <?cs 25 if:timeline.changeset ?>checked="checked"<?cs /if ?> /> 26 <label for="changeset">Repository checkins</label> 27 </div><?cs /if ?> 28 <?cs if:trac.acl.WIKI_VIEW ?><div class="field"> 29 <input type="checkbox" id="wiki" name="wiki" <?cs 30 if:timeline.wiki ?>checked="checked"<?cs /if ?> /> 31 <label for="wiki">Wiki changes</label> 32 </div><?cs /if ?> 33 <?cs if:trac.acl.MILESTONE_VIEW ?><div class="field"> 34 <input type="checkbox" id="milestone" name="milestone" <?cs 35 if:timeline.milestone ?>checked="checked"<?cs /if ?> /> 36 <label for="milestone">Milestones</label> 37 </div><?cs /if ?> 38 </fieldset> 39 <div class="buttons"> 40 <input type="submit" value="Update" /> 41 </div> 42 </form> 8 <form id="prefs" method="get" action="<?cs var:trac.href.timeline ?>"> 9 <div> 10 <label>View changes from <input type="text" size="10" name="from" value="<?cs 11 var:timeline.from ?>" /></label> and 12 <label><input type="text" size="3" name="daysback" value="<?cs 13 var:timeline.daysback ?>" /> days back</label>. 14 </div> 15 <fieldset><?cs 16 each:filter = timeline.filters ?> 17 <label><input type="checkbox" name="<?cs var:filter.name ?>"<?cs 18 if:filter.enabled ?> checked="checked"<?cs /if ?> /> <?cs 19 var:filter.label ?></label><?cs 20 /each ?> 21 </fieldset> 22 <div class="buttons"> 23 <input type="submit" name="update" value="Update" /> 24 </div> 25 </form><?cs 43 26 44 <?cs def:day_separator(date) ?> 45 <?cs if: $date != $current_date ?> 46 <?cs if: $current_date ?></dl><?cs /if ?> 47 <?cs set: $current_date = $date ?> 48 <h2><?cs var:date ?>:</h2> 49 <dl> 50 <?cs /if ?> 51 <?cs /def ?> 52 53 <?cs def:tlitem(url, type, msg, descr) ?> 54 <dt class="<?cs var:type ?>"> 55 <a href="<?cs var:url ?>"><span class="time"><?cs 56 var:item.time ?></span> <?cs var:msg ?></a> 57 </dt> 58 <?cs if:descr ?><dd><?cs var:descr ?></dd><?cs /if ?> 59 <?cs /def ?> 60 61 <?cs each:item = timeline.items ?> 62 <?cs call:day_separator(item.date) ?> 63 <?cs if:item.type == #1 ?><!-- Changeset --> 64 <?cs call:tlitem(item.href, 'changeset', 65 'Changeset <em>['+$item.idata+']</em> by '+$item.author,$item.node_list+item.message) ?> 66 <?cs elif:item.type == #2 ?><!-- New ticket --> 67 <?cs call:tlitem(item.href, 'newticket', 68 'Ticket <em>#'+$item.idata+'</em> created by '+$item.author, item.message) ?> 69 <?cs elif:item.type == #3 ?><!-- Closed ticket --> 70 <?cs if:item.message ?> 71 <?cs set:imessage = ' - ' + $item.message ?> 72 <?cs else ?> 73 <?cs set:imessage = '' ?> 74 <?cs /if ?> 75 <?cs call:tlitem(item.href, 'closedticket', 76 'Ticket <em>#'+$item.idata+'</em> resolved by '+$item.author, 77 $item.tdata+$imessage) ?> 78 <?cs elif:item.type == #4 ?><!-- Reopened ticket --> 79 <?cs call:tlitem(item.href, 'newticket', 80 'Ticket <em>#'+$item.idata+'</em> reopened by '+$item.author, '') ?> 81 <?cs elif:item.type == #5 ?><!-- Wiki change --> 82 <?cs call:tlitem(item.href, 'wiki', 83 '<em>'+$item.tdata+'</em> edited by '+$item.author, item.message) ?> 84 <?cs elif:item.type == #6 ?><!-- milestone --> 85 <?cs call:tlitem(item.href, 'milestone', 86 '<em>Milestone '+$item.message+'</em> reached', '') ?> 87 <?cs /if ?> 88 <?cs /each ?> 89 <?cs if:len(timeline.items) ?></dl><?cs /if ?> 27 def:day_separator(date) ?><?cs 28 if:date != current_date ?><?cs 29 if:current_date ?></dl><?cs /if ?><?cs 30 set:current_date = date ?> 31 <h2><?cs var:date ?>:</h2><dl><?cs 32 /if ?><?cs 33 /def ?><?cs 34 each:event = timeline.events ?><?cs 35 call:day_separator(event.date) ?><dt class="<?cs 36 var:event.kind ?>"><a href="<?cs var:event.href ?>"><span class="time"><?cs 37 var:event.time ?></span> <?cs var:event.title ?></a></dt><?cs 38 if:event.message ?><dd class="<?cs var:event.kind ?>"><?cs 39 var:event.message ?></dd><?cs 40 /if ?><?cs 41 /each ?><?cs 42 if:len(timeline.events) ?></dl><?cs /if ?> 90 43 91 44 <div id="help"> 92 45 <hr /> 93 <strong>Note:</strong> See <a href="<?cs var: $trac.href.wiki ?>/TracTimeline">TracTimeline</a>46 <strong>Note:</strong> See <a href="<?cs var:trac.href.wiki ?>/TracTimeline">TracTimeline</a> 94 47 for information about the timeline view. 95 48 </div> -
trac/trunk/templates/timeline_rss.cs
r2581 r3036 1 1 <?xml version="1.0"?> 2 <!-- RSS generated by Trac v<?cs var:$trac.version ?> on <?cs var:$trac.time ?> -->3 2 <rss version="2.0"> 4 <?cs set base_url = $HTTP.Protocol+'://'+$HTTP.Host ?> 5 <?cs if $HTTP.Port ?> 6 <?cs set base_url = $base_url + ':' + $HTTP.Port ?> 7 <?cs /if ?> 8 <?cs def:rss_item(category,title, link, descr) ?> 9 <item> 10 <?cs if:$item.author.rss ?> 11 <author><?cs var:$item.author.rss ?></author> 12 <?cs /if ?> 13 <pubDate><?cs var:$item.datetime ?></pubDate> 14 <title><?cs var:$title ?></title> 15 <link><?cs var:$base_url ?><?cs var:$link ?></link> 16 <description><?cs var:$descr ?></description> 17 <category><?cs var:$category ?></category> 18 </item> 19 <?cs /def ?> 20 <channel> 21 <?cs if $project.name.encoded ?> 22 <title><?cs var:$project.name.encoded ?>: <?cs var:$title ?></title> 23 <?cs else ?> 24 <title><?cs var:$title ?></title> 25 <?cs /if ?> 26 <link><?cs var:$base_url ?><?cs var:$trac.href.timeline ?></link> 27 <description>Trac Timeline</description> 28 <language>en-us</language> 29 <generator>Trac v<?cs var:$trac.version ?></generator> 30 <image> 31 <title><?cs var:$project.name.encoded ?></title> 32 <url><?cs if !$header_logo.src_abs ?><?cs var:$base_url ?><?cs /if ?><?cs var $header_logo.src ?></url> 33 <link><?cs var:$base_url ?><?cs var:$trac.href.timeline ?></link> 34 </image> 35 <?cs each:item = $timeline.items ?><?cs 36 if:item.type == #1 37 ?><!-- Changeset --><?cs call:rss_item('Changeset', 38 'Changeset ['+$item.idata+'] by '+$item.author, 39 $item.href, $item.msg_escwiki) 40 ?><?cs elif:item.type == #2 41 ?><!-- New ticket --> <?cs call:rss_item('Ticket', 42 'Ticket #'+$item.idata+' created by '+$item.author, 43 $item.href, $item.msg_escwiki) 44 ?><?cs elif:item.type == #3 45 ?><!-- Closed ticket --> <?cs call:rss_item('Ticket', 46 'Ticket #'+$item.idata+' resolved: '+$item.shortmsg, 47 $item.href, $item.msg_escwiki) 48 ?><?cs elif:item.type == #4 49 ?><!-- Reopened ticket --><?cs call:rss_item('Ticket', 50 '#'+$item.idata+' reopened: '+$item.shortmsg, 51 $item.href, $item.msg_escwiki) 52 ?><?cs elif:item.type == #5 53 ?><!-- Wiki change --><?cs call:rss_item('Wiki', 54 $item.tdata+" page edited.", 55 $item.href, 56 'Wiki page <a href="'+$base_url+$item.href+'">'+$item.tdata+'</a> edited by '+$item.author) ?> 57 <?cs elif:item.type == #6 ?><!-- Milestones --> 58 <?cs call:rss_item('Milestone', 59 'Milestone ' + $item.message.rss + ' reached.', 60 '', 61 'Milestone ' + $item.tdata + ' reached.') ?> 62 <?cs /if ?> 63 <?cs /each ?> 64 </channel> 3 <channel><?cs 4 if:project.name_encoded ?> 5 <title><?cs var:project.name_encoded ?>: <?cs var:title ?></title><?cs 6 else ?> 7 <title><?cs var:title ?></title><?cs 8 /if ?> 9 <link><?cs var:base_host ?><?cs var:trac.href.timeline ?></link> 10 <description>Trac Timeline</description> 11 <language>en-us</language> 12 <generator>Trac v<?cs var:trac.version ?></generator> 13 <image> 14 <title><?cs var:project.name_encoded ?></title> 15 <url><?cs if:!header_logo.src_abs ?><?cs var:base_host ?><?cs /if ?><?cs 16 var:header_logo.src ?></url> 17 <link><?cs var:base_host ?><?cs var:trac.href.timeline ?></link> 18 </image><?cs 19 each:event = timeline.events ?> 20 <item> 21 <title><?cs var:event.title ?></title><?cs 22 if:event.author.email ?> 23 <author><?cs var:event.author.email ?></author><?cs 24 /if ?> 25 <pubDate><?cs var:event.date ?></pubDate> 26 <link><?cs var:event.href ?></link> 27 <description><?cs var:event.message ?></description> 28 </item><?cs 29 /each ?> 30 </channel> 65 31 </rss> -
trac/trunk/templates/wiki.cs
r2999 r3036 1 <?cs set:html.stylesheet = 'css/wiki.css' ?>2 1 <?cs include "header.cs" ?> 3 2 <?cs include "macros.cs" ?> … … 9 8 <li class="redirect"> 10 9 Redirected from: 11 <a href="<?cs var: $trac.href.wiki ?>/<?cs var:args.redirectedfrom ?>?redirect=no">10 <a href="<?cs var:trac.href.wiki ?>/<?cs var:args.redirectedfrom ?>?redirect=no"> 12 11 <?cs var:args.redirectedfrom ?></a> 13 12 (<a href="<?cs var:args.page ?>">hide</a>) … … 15 14 <?cs /if ?> 16 15 17 <li><a href="<?cs var: $trac.href.wiki ?>">Start Page</a></li>18 <li><a href="<?cs var: $trac.href.wiki ?>/TitleIndex">Title Index</a></li>19 <li><a href="<?cs var: $trac.href.wiki ?>/RecentChanges">Recent Changes</a></li>16 <li><a href="<?cs var:trac.href.wiki ?>">Start Page</a></li> 17 <li><a href="<?cs var:trac.href.wiki ?>/TitleIndex">Title Index</a></li> 18 <li><a href="<?cs var:trac.href.wiki ?>/RecentChanges">Recent Changes</a></li> 20 19 <?cs if:wiki.history_href ?> 21 20 <li class="last"><a href="<?cs var:wiki.history_href ?>">Page History</a></li> … … 29 28 <div id="content" class="wiki"> 30 29 31 <?cs if:wiki.action == "diff" ?> 32 <h1>Changes in Version <?cs var:wiki.edit_version?> of <a href="<?cs 30 <?cs if wiki.action == "delete" ?> 31 <h1>Delete <?cs 32 if:?wiki.version ?>version <?cs var:wiki.version ?> of <?cs /if ?><a href="<?cs 33 33 var:wiki.current_href ?>"><?cs var:wiki.page_name ?></a></h1> 34 <form action="<?cs var:wiki.href ?>" method="post"> 35 <input type="hidden" name="action" value="delete" /> 36 <p><strong>Are you sure you want to <?cs 37 if:!?wiki.version ?>completely <?cs /if ?>delete <?cs 38 if:?wiki.version ?>version <?cs var:wiki.version ?> of <?cs 39 /if ?>this page?</strong><br /><?cs 40 if:wiki.only_version ?> 41 This is the only version the page, so the page will be removed 42 completely!<?cs 43 /if ?><?cs 44 if:?wiki.version ?> 45 <input type="hidden" name="version" value="<?cs var:wiki.version ?>" /><?cs 46 /if ?> 47 This is an irreversible operation.</p> 48 <div class="buttons"> 49 <input type="submit" name="cancel" value="Cancel" /> 50 <input type="submit" value="Delete <?cs 51 if:?wiki.version ?>this version<?cs else ?>page<?cs /if ?>" /> 52 </div> 53 </form> 54 55 <?cs elif:wiki.action == "diff" ?> 56 <h1>Changes between Version <?cs var:wiki.old_version?> and <?cs 57 var:wiki.version?> of <a href="<?cs var:wiki.current_href ?>"><?cs 58 var:wiki.page_name ?></a></h1> 34 59 <form method="post" id="prefs" action="<?cs var:wiki.current_href ?>"> 35 60 <div> 36 <input type="hidden" name="mode" value="wiki" /> 37 <input type="hidden" name="diff" value="yes" /> 38 <input type="hidden" name="version" value="<?cs var:wiki.edit_version?>" /> 39 <input type="hidden" name="update" value="yes" /> 40 <label for="type">View differences</label> 41 <select name="style" onchange="this.form.submit()"> 61 <input type="hidden" name="action" value="diff" /> 62 <input type="hidden" name="version" value="<?cs var:wiki.version ?>" /> 63 <label>View differences <select name="style"> 42 64 <option value="inline"<?cs 43 65 if:diff.style == 'inline' ?> selected="selected"<?cs … … 46 68 if:diff.style == 'sidebyside' ?> selected="selected"<?cs 47 69 /if ?>>side by side</option> 48 </select> 49 <noscript><div class="buttons"> 50 <input type="submit" value="Update" /> 51 </div></noscript> 70 </select></label> 71 <div class="field"> 72 Show <input type="text" name="contextlines" id="contextlines" size="2" 73 maxlength="3" value="<?cs var:diff.options.contextlines ?>" /> 74 <label for="contextlines">lines around each change</label> 75 </div> 76 <fieldset id="ignore"> 77 <legend>Ignore:</legend> 78 <div class="field"> 79 <input type="checkbox" id="blanklines" name="ignoreblanklines"<?cs 80 if:diff.options.ignoreblanklines ?> checked="checked"<?cs /if ?> /> 81 <label for="blanklines">Blank lines</label> 82 </div> 83 <div class="field"> 84 <input type="checkbox" id="case" name="ignorecase"<?cs 85 if:diff.options.ignorecase ?> checked="checked"<?cs /if ?> /> 86 <label for="case">Case changes</label> 87 </div> 88 <div class="field"> 89 <input type="checkbox" id="whitespace" name="ignorewhitespace"<?cs 90 if:diff.options.ignorewhitespace ?> checked="checked"<?cs /if ?> /> 91 <label for="whitespace">White space changes</label> 92 </div> 93 </fieldset> 94 <div class="buttons"> 95 <input type="submit" name="update" value="Update" /> 96 </div> 52 97 </div> 53 98 </form> 54 99 <dl id="overview"> 55 100 <dt class="author">Author:</dt> 56 <dd><?cs var:wiki.diff.author ?></dd> 101 <dd class="author"><?cs 102 if:wiki.num_changes > 1 ?><em class="multi">(multiple changes)</em><?cs 103 else ?><?cs var:wiki.author ?> <span class="ipnr">(IP: <?cs 104 var:wiki.ipnr ?>)</span><?cs 105 /if ?></dd> 57 106 <dt class="time">Timestamp:</dt> 58 <dd><?cs var:wiki.diff.time ?></dd> 59 <?cs if:wiki.diff.comment ?> 60 <dt class="comment">Comment:</dt> 61 <dd><?cs var:wiki.diff.comment ?></dd> 62 <?cs /if ?> 107 <dd class="time"><?cs 108 if:wiki.num_changes > 1 ?><em class="multi">(multiple changes)</em><?cs 109 elif:wiki.time ?><?cs var:wiki.time ?> (<?cs var:wiki.time_delta ?> ago)<?cs 110 else ?>--<?cs 111 /if ?></dd> 112 <dt class="comment">Comment:</dt> 113 <dd class="comment"><?cs 114 if:wiki.num_changes > 1 ?><em class="multi">(multiple changes)</em><?cs 115 else ?><?cs var:wiki.comment ?><?cs /if ?></dd> 63 116 </dl> 64 117 <div class="diff"> … … 72 125 </dl> 73 126 </div> 74 <ul >75 <li >76 <h2><?cs var:wiki. diff.name.new ?></h2>77 <?csif:diff.style == 'sidebyside' ?>127 <ul class="entries"> 128 <li class="entry"> 129 <h2><?cs var:wiki.page_name ?></h2><?cs 130 if:diff.style == 'sidebyside' ?> 78 131 <table class="sidebyside" summary="Differences"> 79 <colgroup class="base"> 80 <col class="lineno" /><col class="content" /> 81 <colgroup class="chg"> 82 <col class="lineno" /><col class="content" /> 83 </colgroup> 132 <colgroup class="l"><col class="lineno" /><col class="content" /></colgroup> 133 <colgroup class="r"><col class="lineno" /><col class="content" /></colgroup> 84 134 <thead><tr> 85 <th colspan="2">Version <?cs var:wiki.diff.rev.old ?></th> 86 <th colspan="2">Version <?cs var:wiki.diff.rev.new ?></th> 87 </tr></thead> 88 <?cs each:change = wiki.diff.changes ?> 89 <tbody> 90 <?cs call:diff_display(change, diff.style) ?> 91 </tbody> 92 <?cs /each ?> 93 </table> 94 <?cs else ?> 135 <th colspan="2">Version <?cs var:wiki.old_version ?></th> 136 <th colspan="2">Version <?cs var:wiki.version ?></th> 137 </tr></thead><?cs 138 each:change = wiki.diff ?><?cs 139 call:diff_display(change, diff.style) ?><?cs 140 /each ?> 141 </table><?cs 142 else ?> 95 143 <table class="inline" summary="Differences"> 96 <colgroup> 97 <col class="lineno" /> 98 <col class="lineno" /> 99 <col class="content" /> 100 </colgroup> 144 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup> 101 145 <thead><tr> 102 <th title="Version <?cs var:wiki. diff.rev.old?>">v<?cs103 var:wiki. diff.rev.old?></th>104 <th title="Version <?cs var:wiki. diff.rev.new?>">v<?cs105 var:wiki. diff.rev.new?></th>106 <th> </th>107 </tr></thead> 108 <?cs each:change = wiki.diff.changes ?>109 <?cs call:diff_display(change, diff.style) ?>110 <?cs/each ?>111 </table> 112 <?cs/if ?>146 <th title="Version <?cs var:wiki.old_version ?>">v<?cs 147 var:wiki.old_version ?></th> 148 <th title="Version <?cs var:wiki.version ?>">v<?cs 149 var:wiki.version ?></th> 150 <th> </th> 151 </tr></thead><?cs 152 each:change = wiki.diff ?><?cs 153 call:diff_display(change, diff.style) ?><?cs 154 /each ?> 155 </table><?cs 156 /if ?> 113 157 </li> 114 158 </ul> … … 118 162 <h1>Change History of <a href="<?cs var:wiki.current_href ?>"><?cs 119 163 var:wiki.page_name ?></a></h1> 120 <?cs if:wiki.history ?> 164 <?cs if:len(wiki.history) ?><form method="get" action=""> 165 <input type="hidden" name="action" value="diff" /> 121 166 <table id="wikihist" class="listing" summary="Change history"> 122 167 <thead><tr> 168 <th class="diff"></th> 169 <th class="version">Version</th> 123 170 <th class="date">Date</th> 124 <th class="version">Version</th>125 171 <th class="author">Author</th> 126 172 <th class="comment">Comment</th> … … 128 174 <tbody><?cs each:item = wiki.history ?> 129 175 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 176 <td class="diff"><input type="radio" name="old_version" value="<?cs 177 var:item.version ?>"<?cs 178 if:name(item) == 1 ?> checked="checked"<?cs 179 /if ?> /> <input type="radio" name="version" value="<?cs 180 var:item.version ?>"<?cs 181 if:name(item) == 0 ?> checked="checked"<?cs 182 /if ?> /></td> 183 <td class="version"><a href="<?cs 184 var:item.url ?>" title="View this version"><?cs 185 var:item.version ?></a></td> 130 186 <td class="date"><?cs var:item.time ?></td> 131 <td class="version"> 132 <a href="<?cs var:item.url ?>" title="View version"><?cs 133 var:item.version ?></a> 134 (<a href="<?cs var:item.diff_url ?>" title="Compare to previous version">diff</a>) 135 </td> 136 <td class="author" title="IP-Address: <?cs var:item.ipaddr ?>"> 137 <?cs var:item.author ?> 138 </td> 187 <td class="author" title="IP-Address: <?cs var:item.ipaddr ?>"><?cs 188 var:item.author ?></td> 139 189 <td class="comment"><?cs var:item.comment ?></td> 140 190 </tr> 141 191 <?cs /each ?></tbody> 142 192 </table> 143 <?cs /if ?> 193 <div class="buttons"> 194 <input type="submit" value="View changes" /> 195 </div> 196 </form><?cs /if ?> 144 197 145 198 <?cs else ?> 146 <?cs if wiki.action == "edit" || wiki.action == "preview" ?> 147 <h3>Editing "<?cs var:wiki.page_name ?>"</h3> 148 <form id="edit" action="<?cs var:wiki.current_href ?>#preview" method="post"> 199 <?cs if wiki.action == "edit" || wiki.action == "preview" || wiki.action == "collision" ?> 200 <h1>Editing "<?cs var:wiki.page_name ?>"</h1><?cs 201 if wiki.action == "preview" ?> 202 <fieldset id="preview"> 203 <legend>Preview (<a href="#edit">skip</a>)</legend> 204 <div class="wikipage"><?cs var:wiki.page_html ?></div> 205 </fieldset><?cs 206 elif wiki.action =="collision"?> 207 <div class="system-message"> 208 Sorry, this page has been modified by somebody else since you started 209 editing. Your changes cannot be saved. 210 </div><?cs 211 /if ?> 212 <form id="edit" action="<?cs var:wiki.current_href ?>" method="post"> 149 213 <fieldset class="iefix"> 150 <input type="hidden" name=" edit_version" value="<?cs151 var:wiki.edit_version ?>" />214 <input type="hidden" name="action" value="edit" /> 215 <input type="hidden" name="version" value="<?cs var:wiki.version ?>" /> 152 216 <input type="hidden" id="scroll_bar_pos" name="scroll_bar_pos" value="<?cs 153 217 var:wiki.scroll_bar_pos ?>" /> … … 163 227 </select> 164 228 </div> 165 <p><textarea id="text" name="text" cols="80" rows="<?cs229 <p><textarea id="text" class="wikitext" name="text" cols="80" rows="<?cs 166 230 var:wiki.edit_rows ?>"><?cs var:wiki.page_source ?></textarea></p> 167 <?cs call:wiki_toolbar('text') ?>168 231 <script type="text/javascript"> 169 232 var scrollBarPos = document.getElementById("scroll_bar_pos"); … … 183 246 <legend>Change information</legend> 184 247 <div class="field"> 185 <label for="author">Your email or username:</label>186 < br /><input id="author" type="text" name="author" size="30" value="<?cs187 var:wiki.author ?>" /> 188 </div> 189 <div class="field"> 190 <label for="comment">Comment about this change (optional):</label>191 < br /><input id="comment" type="text" name="comment" size="60" value="<?cs192 var:wiki.comment?>" /> 248 <label>Your email or username:<br /> 249 <input id="author" type="text" name="author" size="30" value="<?cs 250 var:wiki.author ?>" /></label> 251 </div> 252 <div class="field"> 253 <label>Comment about this change (optional):<br /> 254 <input id="comment" type="text" name="comment" size="60" value="<?cs 255 var:wiki.comment?>" /></label> 193 256 </div><br /> 194 257 <?cs if trac.acl.WIKI_ADMIN ?> 195 258 <div class="options"> 196 < input type="checkbox" name="readonly" id="readonly"<?cs259 <label><input type="checkbox" name="readonly" id="readonly"<?cs 197 260 if wiki.readonly == "1"?>checked="checked"<?cs /if ?> /> 198 <label for="readonly">Page is read-only</label>261 Page is read-only</label> 199 262 </div> 200 263 <?cs /if ?> 201 264 </fieldset> 202 <div class="buttons"> 203 <input type="submit" name="save" value="Save changes" /> 204 <input type="submit" name="preview" value="Preview" /> 265 <div class="buttons"><?cs 266 if wiki.action == "collision" ?> 267 <input type="submit" name="preview" value="Preview" disabled="disabled" /> 268 <input type="submit" name="save" value="Submit changes" disabled="disabled" /> 269 <?cs else ?> 270 <input type="submit" name="preview" value="Preview" accesskey="r" /> 271 <input type="submit" name="save" value="Submit changes" /> 272 <?cs /if ?> 205 273 <input type="submit" name="cancel" value="Cancel" /> 206 </div><?cs 207 if wiki.action == "preview" ?> 208 <fieldset id="preview"> 209 <legend>Preview</legend> 210 <div class="wikipage"><?cs var:wiki.page_html ?></div> 211 </fieldset><?cs 212 /if ?> 274 </div> 275 <script type="text/javascript" src="<?cs 276 var:htdocs_location ?>js/wikitoolbar.js"></script> 213 277 </form> 214 278 <?cs /if ?> … … 217 281 <div id="searchable"><?cs var:wiki.page_html ?></div> 218 282 </div> 219 <?cs if $wiki.attachments.0.name?>283 <?cs if:len(wiki.attachments) ?> 220 284 <h3 id="tkt-changes-hdr">Attachments</h3> 221 <ul class="tkt-chg-list"> 222 <?cs each:a = wiki.attachments ?> 223 <li class="tkt-chg-change"><a href="<?cs var:a.href ?>"> 224 <?cs var:a.name ?></a> (<?cs var:a.size ?>) - 225 <?cs var:a.descr ?>, 226 added by <?cs var:a.author ?> on <?cs var:a.time ?>.</li> 227 <?cs /each ?> 228 </ul> 285 <ul class="tkt-chg-list"><?cs 286 each:attachment = wiki.attachments ?><li class="tkt-chg-change"><a href="<?cs 287 var:attachment.href ?>"><?cs 288 var:attachment.filename ?></a> (<?cs var:attachment.size ?>) -<?cs 289 if:attachment.description ?><q><?cs var:attachment.description ?></q>,<?cs 290 /if ?> added by <?cs var:attachment.author ?> on <?cs 291 var:attachment.time ?>.</li><?cs 292 /each ?> 293 </ul> 229 294 <?cs /if ?> 230 295 <?cs if wiki.action == "view" && (trac.acl.WIKI_MODIFY || trac.acl.WIKI_DELETE) 231 296 && (wiki.readonly == "0" || trac.acl.WIKI_ADMIN) ?> 232 <div class="buttons"> 233 <?cs if:trac.acl.WIKI_MODIFY ?> 234 <form method="get" action=""><div> 235 <input type="hidden" name="edit" value="yes" /> 236 <input type="submit" value="Edit This Page" /> 237 </div></form> 238 <form method="get" action="<?cs var:wiki.attach_href ?>"><div> 239 <input type="submit" value="Attach File" /> 297 <div class="buttons"><?cs 298 if:trac.acl.WIKI_MODIFY ?> 299 <form method="get" action="<?cs var:wiki.current_href ?>"><div> 300 <input type="hidden" name="action" value="edit" /> 301 <input type="submit" value="<?cs if:wiki.exists ?>Edit<?cs 302 else ?>Create<?cs /if ?> this page" accesskey="e" /> 303 </div></form><?cs 304 if:wiki.exists ?> 305 <form method="get" action="<?cs var:wiki.attach_href ?>"><div> 306 <input type="hidden" name="action" value="new" /> 307 <input type="submit" value="Attach file" /> 308 </div></form><?cs 309 /if ?><?cs 310 /if ?><?cs 311 if:wiki.exists && trac.acl.WIKI_DELETE ?> 312 <form method="get" action="<?cs var:wiki.current_href ?>"><div id="delete"> 313 <input type="hidden" name="action" value="delete" /> 314 <input type="hidden" name="version" value="<?cs var:wiki.version ?>" /> 315 <input type="submit" name="delete_version" value="Delete this version" /> 316 <input type="submit" value="Delete page" /> 240 317 </div></form> 241 318 <?cs /if ?> 242 <?cs if:trac.acl.WIKI_DELETE ?> 243 <form method="post" action=""><div id="delete"> 244 <input type="hidden" name="edit_version" value="<?cs 245 var:wiki.edit_version?>" /> 246 <input type="submit" name="delete_ver" id="delete_ver" value="Delete This Version" onclick="return confirm('Do you really want to delete version <?cs var:wiki.edit_version?> of this page?\nThis is an irreversible operation.')" /> 247 <input type="submit" name="delete_page" value="Delete Page" onclick="return confirm('Do you really want to delete all versions of this page?\nThis is an irreversible operation.')" /> 248 </div></form> 249 <?cs /if ?> 250 </div> 251 <?cs /if ?> 319 </div> 320 <?cs /if ?> 321 <script type="text/javascript"> 322 addHeadingLinks(document.getElementById("searchable")); 323 </script> 252 324 <?cs /if ?> 253 325 <?cs /if ?> 254 326 </div> 327 255 328 <?cs include "footer.cs" ?>
Note: See TracChangeset
for help on using the changeset viewer.
