- Location:
- /trunk
- Files:
-
- 30 edited
-
htdocs/svntrac.css (modified) (9 diffs)
-
scripts/initdb.py (modified) (2 diffs)
-
svntrac.conf (modified) (1 diff)
-
svntrac/Browser.py (modified) (1 diff)
-
svntrac/Changeset.py (modified) (1 diff)
-
svntrac/File.py (modified) (1 diff)
-
svntrac/Log.py (modified) (1 diff)
-
svntrac/Menu.py (modified) (1 diff)
-
svntrac/Module.py (modified) (1 diff)
-
svntrac/Report.py (modified) (1 diff)
-
svntrac/Ticket.py (modified) (1 diff)
-
svntrac/Timeline.py (modified) (1 diff)
-
svntrac/Toolbar.py (modified) (1 diff)
-
svntrac/Wiki.py (modified) (6 diffs)
-
svntrac/auth.py (modified) (1 diff)
-
svntrac/db.py (modified) (1 diff)
-
svntrac/perm.py (modified) (1 diff)
-
svntrac/svntrac.py (modified) (3 diffs)
-
svntrac/util.py (modified) (1 diff)
-
templates/browser.template (modified) (1 diff)
-
templates/changeset.template (modified) (1 diff)
-
templates/footer.template (modified) (1 diff)
-
templates/header.template (modified) (2 diffs)
-
templates/log.template (modified) (1 diff)
-
templates/menu.template (modified) (1 diff)
-
templates/newticket.template (modified) (1 diff)
-
templates/report.template (modified) (1 diff)
-
templates/ticket.template (modified) (1 diff)
-
templates/timeline.template (modified) (1 diff)
-
templates/wiki.template (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
/trunk/htdocs/svntrac.css
r1 r3 1 body { 2 background-color: white; 3 } 4 5 body, table { 6 font-family: helvetica,arial; 7 font-size: 12pt; 8 } 9 10 pre.file-content { 11 border: thin solid black; 12 padding: 1em; 13 background-color: #eeeeee; 14 font-size: 10pt; 15 } 16 17 table.listing { 18 width: 600px; 19 background-color: white; 20 border: solid black 1px; 21 padding: 0px; 22 } 23 24 tr.listing-header { 25 background-color: white; 26 } 27 28 th.listing { 29 background-color: white; 30 border-bottom: thin solid black; 31 } 32 33 td.timeline-day { 34 padding-top: 1em; 35 font-weight: bold; 36 } 37 38 tr.item-row-even { 39 background-color: #ffffff; 40 } 41 42 tr.item-row-odd { 43 background-color: #f5f5f5; 44 } 45 46 td.size-column { 47 text-align: right; 48 width: 20%; 49 border-left: thin dotted #dddddd; 50 padding-right: 0.5em; 51 } 52 53 td.rev-column { 54 text-align: right; 55 width: 10%; 56 border-left: thin dotted #dddddd; 57 padding-right: 0.5em; 58 } 59 60 td.date-column { 61 text-align: left; 62 width: 20%; 63 border-left: thin dotted #dddddd; 64 padding-left: 0.5em; 65 padding-right: 0.5em; 66 } 67 68 table.toolbar { 69 border: thin solid black; 70 background-color: #dddddd; 71 padding: 1px; 72 width: 100%; 73 } 74 75 div.footer { 76 border-top: thin solid black; 77 margin-top: 3em; 78 } 79 80 td.rev-header { 81 text-align: right; 82 } 83 84 table.rev-headers { 85 background-color: #dddddd; 86 border: solid black 1px; 87 padding: 1px; 88 } 89 90 div.wikipage { } 91 92 table.wiki-history th { border-bottom: thin solid black; 93 background-color: white; 94 } 95 table.wiki-history { 96 float: right; 97 border: thin solid black; 98 visibility: hidden; 99 } 100 101 table.diff-table { background-color: #eeeeee; 102 border: thin solid black; 103 width: 100% } 1 body 2 { 3 background-color: white; 4 } 5 6 body, table 7 { 8 font-family: helvetica,arial; 9 font-size: 12pt; 10 } 11 12 pre.file-content 13 { 14 border: thin solid black; 15 padding: 1em; 16 background-color: #eeeeee; 17 font-size: 10pt; 18 } 19 20 table.listing 21 { 22 width: 600px; 23 background-color: white; 24 border: solid black 1px; 25 padding: 0px; 26 } 27 28 tr.listing-header 29 { 30 background-color: white; 31 } 32 33 th.listing 34 { 35 background-color: white; 36 border-bottom: thin solid black; 37 } 38 39 td.timeline-day 40 { 41 padding-top: 1em; 42 font-weight: bold; 43 } 44 45 tr.item-row-even 46 { 47 background-color: #ffffff; 48 } 49 50 tr.item-row-odd 51 { 52 background-color: #f5f5f5; 53 } 54 55 td.size-column 56 { 57 text-align: right; 58 width: 20%; 59 border-left: thin dotted #dddddd; 60 padding-right: 0.5em; 61 } 62 63 td.rev-column 64 { 65 text-align: right; 66 width: 10%; 67 border-left: thin dotted #dddddd; 68 padding-right: 0.5em; 69 } 70 71 td.date-column 72 { 73 text-align: left; 74 width: 20%; 75 border-left: thin dotted #dddddd; 76 padding-left: 0.5em; 77 padding-right: 0.5em; 78 } 79 80 table.toolbar 81 { 82 border: thin solid black; 83 background-color: #dddddd; 84 padding: 1px; 85 width: 100%; 86 } 87 88 div.footer 89 { 90 border-top: thin solid black; 91 margin-top: 3em; 92 } 93 94 td.rev-header 95 { 96 text-align: right; 97 } 98 99 table.rev-headers 100 { 101 background-color: #dddddd; 102 border: solid black 1px; 103 padding: 1px; 104 } 105 106 table.wiki-history th 107 { 108 border-bottom: thin solid black; 109 background-color: white; 110 } 111 112 table.wiki-history 113 { 114 float: right; 115 border: thin solid black; 116 visibility: hidden; 117 } 118 119 table.diff-table 120 { 121 background-color: #eeeeee; 122 border: thin solid black; 123 width: 100%; 124 } 125 104 126 td.diff-changed { background-color: #ffcc66; } 105 127 td.diff-unchanged { } … … 113 135 td.diff-changed, td.diff-unchanged, 114 136 td.diff-remove-left,td.diff-remove-right, 115 td.diff-add-left,td.diff-add-right { font-family: monospace; 116 vertical-align: top; } 117 118 119 /* xyche */ 120 body, p, td, div { 137 td.diff-add-left,td.diff-add-right 138 { 139 font-family: monospace; 140 vertical-align: top; 141 } 142 143 144 body, p, td, div 145 { 121 146 font: normal 12px Bitstream Vera Sans, Verdana, Helvetica, sans-serif; 122 147 color: black; 123 148 } 124 149 125 img { 126 border: none; 127 } 150 img { border: none; } 128 151 129 152 td img {display: block;} 130 153 131 table,td,tr { 132 margin: 0; 133 padding: 0; 134 } 135 136 a:link, a:visited { 154 table,td,tr 155 { 156 margin: 0; 157 padding: 0; 158 } 159 160 a:link, a:visited 161 { 137 162 color: #a00; 138 163 text-decoration: none; 139 # font-weight: bold; 140 } 141 142 a:active { 143 background-color: pink; 144 } 145 146 164 } 165 166 a:active { background-color: pink; } 147 167 148 168 /* … … 150 170 */ 151 171 152 #page-topbar,.topbar { 172 #page-topbar,.topbar 173 { 153 174 font: 9px Verdana, Helvetica, sans-serif; 154 175 color: #ddd; … … 160 181 } 161 182 162 a.topbar-link { 183 a.topbar-link 184 { 163 185 color: #ccc; 164 186 text-decoration: none; … … 172 194 */ 173 195 174 #page-navbar { 196 #page-navbar 197 { 175 198 background-color: black; 176 199 border: solid 1px #900; 177 200 border-width: 1px 0 0 0; 178 // white-space: nowrap;179 201 padding: 2px 5px; 180 202 margin: 0; 181 203 } 182 204 183 .navbar { 205 .navbar 206 { 184 207 color: white; 185 208 font: 11px Verdana, Helvetica, sans-serif; 186 } 187 188 a.navbar-link,a.navbar-link-active { 209 } 210 211 a.navbar-link,a.navbar-link-active 212 { 189 213 color: white; 190 214 text-decoration: none; … … 193 217 } 194 218 195 a.navbar-link-active { 196 background-color: #880000; 197 } 198 199 200 /* 201 * Languages 202 */ 203 .toplang, .bottomlang { 204 color: white; 205 font: 9px Verdana, Helvetica, sans-serif; 206 } 207 208 .bottomlang { 209 color: black; 210 text-align: right; 211 } 212 213 a.toplang-link { 214 color: white; 215 text-decoration: none; 216 font-weight: bold; 217 218 } 219 220 221 #page-header { 219 a.navbar-link-active { background-color: #880000; } 220 221 222 #page-header 223 { 222 224 background-color: #800; 223 225 margin: 0px; … … 225 227 } 226 228 227 228 #page-menu-bar { 229 background-color: black; 230 } 231 232 233 #page-content { } 229 #page-menu-bar { background-color: black; } 230 231 #page-content { margin: 1em; } 234 232 235 233 #content-main { margin: 0; padding: 1em; } 236 237 234 238 235 /* … … 282 279 } 283 280 284 285 /* Forms */ 281 /* 282 * Forms 283 */ 286 284 287 285 input, textarea, select { … … 289 287 } 290 288 291 option { 292 border-bottom: thin solid black; 293 } 294 295 td img {display: block;} 289 input[type="submit"], input[type="reset"] 290 { 291 background-color: lightgray; 292 } 293 294 option 295 { 296 border-bottom: thin solid black; 297 } 298 -
/trunk/scripts/initdb.py
r1 r3 3 3 # svntrac 4 4 # 5 # Copyright (C) 200 2, 2003 Jonas Borgström <jonas@codefactory.se>5 # Copyright (C) 2003 Xyche Software 6 6 # 7 7 # svntrac is free software; you can redistribute it and/or … … 19 19 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 20 # 21 # Author: Jonas Borgström <jonas@ codefactory.se>21 # Author: Jonas Borgström <jonas@xyche.com> 22 22 23 23 import sys -
/trunk/svntrac.conf
r1 r3 1 1 [general] 2 2 # The directory where svntrac is installed 3 svntrac_home = /home/jonas/ src/svntrac/3 svntrac_home = /home/jonas/badger/src/svntrac/ 4 4 htdocs_location = /svntrac/ 5 5 6 6 # The directory containing a subversion repository 7 repository_dir = /home/jonas/ src/svntrac/testrep7 repository_dir = /home/jonas/badger/src/svntrac/testrep 8 8 9 9 # sqlite database where svntrac stores data 10 database = /home/jonas/ src/svntrac/svntrac.db10 database = /home/jonas/badger/src/svntrac/svntrac.db 11 11 12 12 [ticket] -
/trunk/svntrac/Browser.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/svntrac/Changeset.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/svntrac/File.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/svntrac/Log.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/svntrac/Menu.py
r1 r3 2 2 # 3 3 # Copyright (C) 2003 Xyche Software 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # 5 6 # svntrac is free software; you can redistribute it and/or -
/trunk/svntrac/Module.py
r1 r3 2 2 # 3 3 # Copyright (C) 2003 Xyche Software 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # 5 6 # svntrac is free software; you can redistribute it and/or -
/trunk/svntrac/Report.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/svntrac/Ticket.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/svntrac/Timeline.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/svntrac/Toolbar.py
r1 r3 2 2 # 3 3 # Copyright (C) 2003 Xyche Software 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # 5 6 # svntrac is free software; you can redistribute it and/or -
/trunk/svntrac/Wiki.py
r1 r3 2 2 # 3 3 # Copyright (C) 2003 Xyche Software 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # 5 6 # svntrac is free software; you can redistribute it and/or … … 30 31 from xml.sax.saxutils import quoteattr, escape 31 32 32 33 h1_re = re.compile ('!!!(.*)!!!') 34 h2_re = re.compile ('!!(.*)!!') 35 h3_re = re.compile ('!(.*)!') 36 url_re = re.compile ('((((new|(ht|f)tp)s?://))([a-z0-9_-]+:[a-z0-9_-]+\@)?([a-z0-9]+(\-*[a-z0-9]+)*\.)+[a-z]{2,7}(/~?[a-z0-9_\.%\-]+)?(/[a-z0-9_\.%\-]+)*(/?[a-z0-9_\%\-]+(\.[a-z0-9]+)?(\#[a-zA-Z0-9_\.]+)?)(\?([a-z0-9_\.\%\-]+)\=[a-z0-9_\.\%\/\-]*)?(&([a-z0-9_\.\%\-]+)\=[a-z0-9_\.\%\/\-]*)?(#[a-z0-9]+)?)') 37 oldstylelink_re = re.compile ('([[A-Z][a-z]*(?:[A-Z][a-z]+)+)') 38 newstylelink_re = re.compile ('\[([^]*])\]') 39 list_re = re.compile ('^(([\*#])\\2*) (.*)$') 40 newline_re = re.compile ('(%%%)') 41 strong_re = re.compile ('\__([^ ]+)\__') 42 emph_re = re.compile ("''([^ ]+)''") 43 empty_line_re = re.compile ("^[ ]*$") 44 indented_re = re.compile ("^[ ]") 45 46 def format_wiki (text, out): 33 class Formatter: 47 34 """ 48 some basic wiki style text formatting35 A simple Wiki formatter 49 36 """ 50 def set_list_depth (stack, type, depth): 51 listdepth = len(stack) 52 diff = depth - listdepth 37 _rules = r"""(?:(?P<bold>''')""" \ 38 r"""|(?P<italic>'')""" \ 39 r"""|(?P<heading>^\s*(?P<hdepth>=+)\s.*\s(?P=hdepth)$)""" \ 40 r"""|(?P<listitem>^(?P<ldepth>\s+)(?:\*|[0-9]+\.) .*$)""" \ 41 r"""|(?P<wikilink>[[A-Z][a-z]*(?:[A-Z][a-z]+)+)""" \ 42 r"""|(?P<underline>__))""" 43 44 def _bold_formatter(self, match, fullmatch): 45 self._is_bold = not self._is_bold 46 return ['</strong>', '<strong>'][self._is_bold] 47 48 def _italic_formatter(self, match, fullmatch): 49 self._is_italic = not self._is_italic 50 return ['</i>', '<i>'][self._is_italic] 51 52 def _underline_formatter(self, match, fullmatch): 53 self._is_underline = not self._is_underline 54 return ['</u>', '<u>'][self._is_underline] 55 56 def _heading_formatter(self, match, fullmatch): 57 depth = min(len(fullmatch.group('hdepth')), 5) 58 self.is_heading = True 59 return '<h%d>%s</h%d>' % (depth, match[depth + 1:len(match) - depth - 1], depth) 60 61 def _set_list_depth(self, depth, type): 62 current_depth = len(self._list_stack) 63 diff = depth - current_depth 53 64 if diff > 0: 54 for i in range (diff):55 out.write('<%s>' % type)56 s tack.append('</%s>' % type)65 for i in range(diff): 66 self.out.write('<%s>' % type) 67 self._list_stack.append('</%s>' % type) 57 68 elif diff < 0: 58 for i in range (-diff): 59 out.write (stack.pop()) 60 if depth > 0 and stack[0][2:4] != type: 61 out.write (stack.pop()) 62 out.write ('<%s>' % type) 63 stack.append('</%s>' % type) 64 65 def handle_links (line): 66 line = oldstylelink_re.sub('<a href="?mode=wiki&page=\\1">\\1</a>', line) 67 line = url_re.sub('<a href="\\1">\\1</a>', line) 68 return line 69 70 newp = 1 71 inverb = 0 72 liststack = [] 73 74 for line in text.splitlines(): 75 line = escape(line) 76 if empty_line_re.match(line): 77 if not newp: 78 newp = 1 79 set_list_depth (liststack, None, 0) 80 if inverb: 81 inverb = 0 82 out.write ('</pre>\n') 83 out.write ('<p>\n') 84 continue 85 if newp and indented_re.match(line): 86 out.write('<pre>\n') 87 inverb = 1 88 newp = 0 89 90 match = list_re.match(line) 91 if match: 92 depth = len(match.group(1)) 93 if match.group(2) == '#': 94 type = 'ol' 95 else: 96 type = 'ul' 97 set_list_depth(liststack, type, depth) 98 line = list_re.sub('<li>\\3', line) 99 100 line = newline_re.sub('<br>', line) 101 line = handle_links(line) 102 line = h1_re.sub('<h1>\\1</h1>', line) 103 line = h2_re.sub('<h2>\\1</h2>', line) 104 line = h3_re.sub('<h3>\\1</h3>', line) 105 line = strong_re.sub('<strong>\\1</strong>', line) 106 line = emph_re.sub('<em>\\1</em>', line) 107 out.write(line + '\n') 108 if inverb: 109 out.write ('</pre>\n') 69 for i in range(-diff): 70 self.out.write(self._list_stack.pop()) 71 elif self._list_stack != [] and self._list_stack[0][2:4] != type: 72 self.out.write(self._list_stack.pop()) 73 self.out.write('<%s>' % type) 74 self._list_stack.append('</%s>' % type) 75 76 def _listitem_formatter(self, match, fullmatch): 77 depth = (len(fullmatch.group('ldepth')) + 1) / 2 78 type = ['ol', 'ul'][match[depth * 2 - 1] == '*'] 79 self._set_list_depth(depth, type) 80 81 return '<li>%s</li>' % match[depth * 2 + 1:] 82 83 def _wikilink_formatter(self, match, fullmatch): 84 return '<a href="?mode=wiki&page=%s">%s</a>' % (match, match) 85 86 def replace(self, fullmatch): 87 for type, match in fullmatch.groupdict().items(): 88 if match and not type in ('ldepth', 'hdepth'): 89 return getattr(self, '_' + type + '_formatter')(match, fullmatch) 90 91 def format(self, text, out): 92 self.out = out 93 rules = re.compile(Formatter._rules) 94 p_open = False 95 self.is_heading_p = False 96 self._list_stack = [] 97 for line in text.splitlines(): 98 self._is_bold = False 99 self._is_italic = False 100 self._is_underline = False 101 line = escape(line) 102 result = re.sub(rules, self.replace, line) 103 if (self.is_heading or result == '') and p_open: 104 self._set_list_depth(0, None) 105 out.write ('</p>') 106 p_open = False 107 elif not p_open and not self.is_heading: 108 p_open = True 109 out.write ('<p>') 110 111 out.write(result) 112 self.is_heading = False 110 113 111 114 … … 175 178 perm.assert_permission (perm.WIKI_VIEW) 176 179 out.write ('<div class="wikipage">') 177 format_wiki(self.text, out) 180 #format_wiki(self.text, out) 181 Formatter().format(self.text, out) 178 182 out.write ('</div>') 179 183 if edit_button and perm.has_permission (perm.WIKI_MODIFY): … … 187 191 perm.assert_permission (perm.WIKI_MODIFY) 188 192 189 out.write ('<h3>preview</h3>') 193 self.render_edit (out) 194 out.write ('<a name="preview" /><h3>preview</h3>') 190 195 self.render_view (out, edit_button=0) 191 self.render_edit (out)192 196 193 197 def render_history (self, out): … … 220 224 out.write ('</table>') 221 225 222 class Wiki (Module): 226 227 class Wiki(Module): 223 228 template_key = 'wiki_template' 224 229 … … 258 263 self.namespace['title'] = 'wiki - preview' 259 264 else: 260 out.write ('<h2><a href="%s">%s</a></h2>' %261 (wiki_href(page.name), page.name))262 265 page.render_view (out) 263 266 self.namespace['title'] = 'wiki - view' -
/trunk/svntrac/auth.py
r1 r3 2 2 # 3 3 # Copyright (C) 2003 Xyche Software 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # 5 6 # svntrac is free software; you can redistribute it and/or -
/trunk/svntrac/db.py
r1 r3 2 2 # 3 3 # Copyright (C) 2003 Xyche Software 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # 5 6 # svntrac is free software; you can redistribute it and/or -
/trunk/svntrac/perm.py
r1 r3 2 2 # 3 3 # Copyright (C) 2003 Xyche Software 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # 5 6 # svntrac is free software; you can redistribute it and/or -
/trunk/svntrac/svntrac.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # … … 34 35 import ConfigParser 35 36 config = ConfigParser.ConfigParser() 36 config.read('/home/jonas/ src/svntrac/svntrac.conf')37 config.read('/home/jonas/badger/src/svntrac/svntrac.conf') 37 38 return config 38 39 … … 52 53 53 54 def main(): 54 mode = ' menu' #default module55 mode = 'wiki' #default module 55 56 config = load_config() 56 57 -
/trunk/svntrac/util.py
r1 r3 1 1 # svntrac 2 2 # 3 # Copyright (C) 2003 Xyche Software 3 4 # Copyright (C) 2003 Jonas Borgström <jonas@xyche.com> 4 5 # -
/trunk/templates/browser.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h3>Revision %(revision)d: %(path_links)s</h3> -
/trunk/templates/changeset.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h3>Change set %(revision)s</h3> -
/trunk/templates/footer.template
r1 r3 1 < br />1 </div> 2 2 <table id="page-footer" width="100%%" bgcolor="#eeeeee"> 3 3 <tr> -
/trunk/templates/header.template
r1 r3 5 5 <link rel="stylesheet" type="text/css" href="%(htdocs_location)ssvntrac.css"> 6 6 </head> 7 <body> 7 <body marginheight="0" marginwidth="0" rightmargin="0" leftmargin="0" 8 topmargin="0" bottommargin="0" link="#aa0000" alink="#cc0000" vlink="#880000"> 8 9 <div id="page-header"> 9 10 <table bgcolor="#990000" id="page-topbar" border="0" … … 29 30 </table> 30 31 </div> 32 %(toolbar)s 33 <div id="page-content"> -
/trunk/templates/log.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h1>svntrac</h1> -
/trunk/templates/menu.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h1>svntrac</h1> -
/trunk/templates/newticket.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h3>New ticket:</h3> -
/trunk/templates/report.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h3>Reports</h3> -
/trunk/templates/ticket.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h1>svntrac</h1> -
/trunk/templates/timeline.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <h3>Timeline</h3> -
/trunk/templates/wiki.template
r1 r3 1 1 %(header)s 2 %(toolbar)s3 2 4 3 <script language="JavaScript" src="%(htdocs_location)ssvntrac.js">
Note:
See TracChangeset
for help on using the changeset viewer.
