##// END OF EJS Templates
Fixed url bug when using numeric revision in file browser,...
marcink -
r884:322b53be beta
parent child Browse files
Show More
@@ -1,258 +1,273
1 1 # -*- coding: utf-8 -*-
2 2 """
3 3 rhodecode.controllers.files
4 4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 5
6 6 Files controller for RhodeCode
7 7
8 8 :created_on: Apr 21, 2010
9 9 :author: marcink
10 10 :copyright: (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
11 11 :license: GPLv3, see COPYING for more details.
12 12 """
13 13 # This program is free software; you can redistribute it and/or
14 14 # modify it under the terms of the GNU General Public License
15 15 # as published by the Free Software Foundation; version 2
16 16 # of the License or (at your opinion) any later version of the license.
17 17 #
18 18 # This program is distributed in the hope that it will be useful,
19 19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 21 # GNU General Public License for more details.
22 22 #
23 23 # You should have received a copy of the GNU General Public License
24 24 # along with this program; if not, write to the Free Software
25 25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
26 26 # MA 02110-1301, USA.
27 27 import tempfile
28 28 import logging
29 29 import rhodecode.lib.helpers as h
30 30
31 31 from mercurial import archival
32 32
33 33 from pylons import request, response, session, tmpl_context as c, url
34 34 from pylons.i18n.translation import _
35 35 from pylons.controllers.util import redirect
36 36
37 37 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
38 38 from rhodecode.lib.base import BaseController, render
39 39 from rhodecode.lib.utils import EmptyChangeset
40 40 from rhodecode.model.scm import ScmModel
41 41
42 42 from vcs.exceptions import RepositoryError, ChangesetError, ChangesetDoesNotExistError
43 43 from vcs.nodes import FileNode
44 44 from vcs.utils import diffs as differ
45 45
46 46 log = logging.getLogger(__name__)
47 47
48 48 class FilesController(BaseController):
49 49
50 50 @LoginRequired()
51 51 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
52 52 'repository.admin')
53 53 def __before__(self):
54 54 super(FilesController, self).__before__()
55 55 c.cut_off_limit = self.cut_off_limit
56 56
57 57 def index(self, repo_name, revision, f_path):
58 58 hg_model = ScmModel()
59 59 c.repo = hg_model.get_repo(c.repo_name)
60 revision = request.POST.get('at_rev', None) or revision
61
62 c.f_path = f_path
63 60
64 61 try:
62 #reditect to given revision from form
63 post_revision = request.POST.get('at_rev', None)
64 if post_revision:
65 post_revision = c.repo.get_changeset(post_revision).raw_id
66 redirect(url('files_home', repo_name=c.repo_name,
67 revision=post_revision, f_path=f_path))
68
69 c.branch = request.GET.get('branch', None)
70
71 c.f_path = f_path
72
65 73 c.changeset = c.repo.get_changeset(revision)
66 74 cur_rev = c.changeset.revision
67 75
76 #prev link
68 77 try:
69 prev_rev = c.repo.get_changeset(cur_rev).prev().raw_id
78 prev_rev = c.repo.get_changeset(cur_rev).prev(c.branch).raw_id
70 79 c.url_prev = url('files_home', repo_name=c.repo_name,
71 80 revision=prev_rev, f_path=f_path)
81 if c.branch:
82 c.url_prev += '?branch=%s' % c.branch
72 83 except ChangesetDoesNotExistError:
73 84 c.url_prev = '#'
74 85
86 #next link
75 87 try:
76 next_rev = c.repo.get_changeset(cur_rev).next().raw_id
88 next_rev = c.repo.get_changeset(cur_rev).next(c.branch).raw_id
77 89 c.url_next = url('files_home', repo_name=c.repo_name,
78 90 revision=next_rev, f_path=f_path)
91 if c.branch:
92 c.url_next += '?branch=%s' % c.branch
79 93 except ChangesetDoesNotExistError:
80 94 c.url_next = '#'
81 95
96 #files
82 97 try:
83 98 c.files_list = c.changeset.get_node(f_path)
84 99 c.file_history = self._get_history(c.repo, c.files_list, f_path)
85 100 except RepositoryError, e:
86 101 h.flash(str(e), category='warning')
87 102 redirect(h.url('files_home', repo_name=repo_name, revision=revision))
88 103
89 104 except RepositoryError, e:
90 105 h.flash(str(e), category='warning')
91 106 redirect(h.url('files_home', repo_name=repo_name, revision='tip'))
92 107
93 108
94 109
95 110 return render('files/files.html')
96 111
97 112 def rawfile(self, repo_name, revision, f_path):
98 113 hg_model = ScmModel()
99 114 c.repo = hg_model.get_repo(c.repo_name)
100 115 file_node = c.repo.get_changeset(revision).get_node(f_path)
101 116 response.content_type = file_node.mimetype
102 117 response.content_disposition = 'attachment; filename=%s' \
103 118 % f_path.split('/')[-1]
104 119 return file_node.content
105 120
106 121 def raw(self, repo_name, revision, f_path):
107 122 hg_model = ScmModel()
108 123 c.repo = hg_model.get_repo(c.repo_name)
109 124 file_node = c.repo.get_changeset(revision).get_node(f_path)
110 125 response.content_type = 'text/plain'
111 126
112 127 return file_node.content
113 128
114 129 def annotate(self, repo_name, revision, f_path):
115 130 hg_model = ScmModel()
116 131 c.repo = hg_model.get_repo(c.repo_name)
117 132
118 133 try:
119 134 c.cs = c.repo.get_changeset(revision)
120 135 c.file = c.cs.get_node(f_path)
121 136 except RepositoryError, e:
122 137 h.flash(str(e), category='warning')
123 138 redirect(h.url('files_home', repo_name=repo_name, revision=revision))
124 139
125 140 c.file_history = self._get_history(c.repo, c.file, f_path)
126 141
127 142 c.f_path = f_path
128 143
129 144 return render('files/files_annotate.html')
130 145
131 146 def archivefile(self, repo_name, fname):
132 147 info = fname.split('.')
133 148 revision, fileformat = info[0], '.' + '.'.join(info[1:])
134 149 archive_specs = {
135 150 '.tar.bz2': ('application/x-tar', 'tbz2'),
136 151 '.tar.gz': ('application/x-tar', 'tgz'),
137 152 '.zip': ('application/zip', 'zip'),
138 153 }
139 154 if not archive_specs.has_key(fileformat):
140 155 return _('Unknown archive type %s') % fileformat
141 156
142 157 repo = ScmModel().get_repo(repo_name)
143 158
144 159 try:
145 160 repo.get_changeset(revision)
146 161 except ChangesetDoesNotExistError:
147 162 return _('Unknown revision %s') % revision
148 163
149 164 archive = tempfile.TemporaryFile()
150 165 localrepo = repo.repo
151 166 fname = '%s-%s%s' % (repo_name, revision, fileformat)
152 167 archival.archive(localrepo, archive, revision, archive_specs[fileformat][1],
153 168 prefix='%s-%s' % (repo_name, revision))
154 169 response.content_type = archive_specs[fileformat][0]
155 170 response.content_disposition = 'attachment; filename=%s' % fname
156 171 archive.seek(0)
157 172
158 173 def read_in_chunks(file_object, chunk_size=1024 * 40):
159 174 """Lazy function (generator) to read a file piece by piece.
160 175 Default chunk size: 40k."""
161 176 while True:
162 177 data = file_object.read(chunk_size)
163 178 if not data:
164 179 break
165 180 yield data
166 181
167 182 return read_in_chunks(archive)
168 183
169 184 def diff(self, repo_name, f_path):
170 185 hg_model = ScmModel()
171 186 diff1 = request.GET.get('diff1')
172 187 diff2 = request.GET.get('diff2')
173 188 c.action = request.GET.get('diff')
174 189 c.no_changes = diff1 == diff2
175 190 c.f_path = f_path
176 191 c.repo = hg_model.get_repo(c.repo_name)
177 192
178 193 try:
179 194 if diff1 not in ['', None, 'None', '0' * 12, '0' * 40]:
180 195 c.changeset_1 = c.repo.get_changeset(diff1)
181 196 node1 = c.changeset_1.get_node(f_path)
182 197 else:
183 198 c.changeset_1 = EmptyChangeset()
184 199 node1 = FileNode('.', '', changeset=c.changeset_1)
185 200
186 201 if diff2 not in ['', None, 'None', '0' * 12, '0' * 40]:
187 202 c.changeset_2 = c.repo.get_changeset(diff2)
188 203 node2 = c.changeset_2.get_node(f_path)
189 204 else:
190 205 c.changeset_2 = EmptyChangeset()
191 206 node2 = FileNode('.', '', changeset=c.changeset_2)
192 207 except RepositoryError:
193 208 return redirect(url('files_home',
194 209 repo_name=c.repo_name, f_path=f_path))
195 210
196 211 f_udiff = differ.get_udiff(node1, node2)
197 212 diff = differ.DiffProcessor(f_udiff)
198 213
199 214 if c.action == 'download':
200 215 diff_name = '%s_vs_%s.diff' % (diff1, diff2)
201 216 response.content_type = 'text/plain'
202 217 response.content_disposition = 'attachment; filename=%s' \
203 218 % diff_name
204 219 return diff.raw_diff()
205 220
206 221 elif c.action == 'raw':
207 222 response.content_type = 'text/plain'
208 223 return diff.raw_diff()
209 224
210 225 elif c.action == 'diff':
211 226 if node1.size > self.cut_off_limit or node2.size > self.cut_off_limit:
212 227 c.cur_diff = _('Diff is to big to display')
213 228 else:
214 229 c.cur_diff = diff.as_html()
215 230 else:
216 231 #default option
217 232 if node1.size > self.cut_off_limit or node2.size > self.cut_off_limit:
218 233 c.cur_diff = _('Diff is to big to display')
219 234 else:
220 235 c.cur_diff = diff.as_html()
221 236
222 237 if not c.cur_diff: c.no_changes = True
223 238 return render('files/file_diff.html')
224 239
225 240 def _get_history(self, repo, node, f_path):
226 241 from vcs.nodes import NodeKind
227 242 if not node.kind is NodeKind.FILE:
228 243 return []
229 244 changesets = node.history
230 245 hist_l = []
231 246
232 247 changesets_group = ([], _("Changesets"))
233 248 branches_group = ([], _("Branches"))
234 249 tags_group = ([], _("Tags"))
235 250
236 251 for chs in changesets:
237 252 n_desc = 'r%s:%s' % (chs.revision, chs.short_id)
238 253 changesets_group[0].append((chs.raw_id, n_desc,))
239 254
240 255 hist_l.append(changesets_group)
241 256
242 257 for name, chs in c.repository_branches.items():
243 258 #chs = chs.split(':')[-1]
244 259 branches_group[0].append((chs, name),)
245 260 hist_l.append(branches_group)
246 261
247 262 for name, chs in c.repository_tags.items():
248 263 #chs = chs.split(':')[-1]
249 264 tags_group[0].append((chs, name),)
250 265 hist_l.append(tags_group)
251 266
252 267 return hist_l
253 268
254 269 # [
255 270 # ([("u1", "User1"), ("u2", "User2")], "Users"),
256 271 # ([("g1", "Group1"), ("g2", "Group2")], "Groups")
257 272 # ]
258 273
@@ -1,2414 +1,2423
1 1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td {
2 2 border:0;
3 3 outline:0;
4 4 font-size:100%;
5 5 vertical-align:baseline;
6 6 background:transparent;
7 7 margin:0;
8 8 padding:0;
9 9 }
10 10
11 11 body {
12 12 line-height:1;
13 13 height:100%;
14 14 background:url("../images/background.png") repeat scroll 0 0 #B0B0B0;
15 15 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
16 16 font-size:12px;
17 17 color:#000;
18 18 margin:0;
19 19 padding:0;
20 20 }
21 21
22 22 ol,ul {
23 23 list-style:none;
24 24 }
25 25
26 26 blockquote,q {
27 27 quotes:none;
28 28 }
29 29
30 30 blockquote:before,blockquote:after,q:before,q:after {
31 31 content:none;
32 32 }
33 33
34 34 :focus {
35 35 outline:0;
36 36 }
37 37
38 38 del {
39 39 text-decoration:line-through;
40 40 }
41 41
42 42 table {
43 43 border-collapse:collapse;
44 44 border-spacing:0;
45 45 }
46 46
47 47 html {
48 48 height:100%;
49 49 }
50 50
51 51 a {
52 52 color:#003367;
53 53 text-decoration:none;
54 54 cursor:pointer;
55 55 font-weight:700;
56 56 }
57 57
58 58 a:hover {
59 59 color:#316293;
60 60 text-decoration:underline;
61 61 }
62 62
63 63 h1,h2,h3,h4,h5,h6 {
64 64 color:#292929;
65 65 font-weight:700;
66 66 }
67 67
68 68 h1 {
69 69 font-size:22px;
70 70 }
71 71
72 72 h2 {
73 73 font-size:20px;
74 74 }
75 75
76 76 h3 {
77 77 font-size:18px;
78 78 }
79 79
80 80 h4 {
81 81 font-size:16px;
82 82 }
83 83
84 84 h5 {
85 85 font-size:14px;
86 86 }
87 87
88 88 h6 {
89 89 font-size:11px;
90 90 }
91 91
92 92 ul.circle {
93 93 list-style-type:circle;
94 94 }
95 95
96 96 ul.disc {
97 97 list-style-type:disc;
98 98 }
99 99
100 100 ul.square {
101 101 list-style-type:square;
102 102 }
103 103
104 104 ol.lower-roman {
105 105 list-style-type:lower-roman;
106 106 }
107 107
108 108 ol.upper-roman {
109 109 list-style-type:upper-roman;
110 110 }
111 111
112 112 ol.lower-alpha {
113 113 list-style-type:lower-alpha;
114 114 }
115 115
116 116 ol.upper-alpha {
117 117 list-style-type:upper-alpha;
118 118 }
119 119
120 120 ol.decimal {
121 121 list-style-type:decimal;
122 122 }
123 123
124 124 div.color {
125 125 clear:both;
126 126 overflow:hidden;
127 127 position:absolute;
128 128 background:#FFF;
129 129 margin:7px 0 0 60px;
130 130 padding:1px 1px 1px 0;
131 131 }
132 132
133 133 div.color a {
134 134 width:15px;
135 135 height:15px;
136 136 display:block;
137 137 float:left;
138 138 margin:0 0 0 1px;
139 139 padding:0;
140 140 }
141 141
142 142 div.options {
143 143 clear:both;
144 144 overflow:hidden;
145 145 position:absolute;
146 146 background:#FFF;
147 147 margin:7px 0 0 162px;
148 148 padding:0;
149 149 }
150 150
151 151 div.options a {
152 152 height:1%;
153 153 display:block;
154 154 text-decoration:none;
155 155 margin:0;
156 156 padding:3px 8px;
157 157 }
158 158
159 159 .top-left-rounded-corner {
160 160 -webkit-border-top-left-radius: 8px;
161 161 -khtml-border-radius-topleft: 8px;
162 162 -moz-border-radius-topleft: 8px;
163 163 border-top-left-radius: 8px;
164 164 }
165 165
166 166 .top-right-rounded-corner {
167 167 -webkit-border-top-right-radius: 8px;
168 168 -khtml-border-radius-topright: 8px;
169 169 -moz-border-radius-topright: 8px;
170 170 border-top-right-radius: 8px;
171 171 }
172 172
173 173 .bottom-left-rounded-corner {
174 174 -webkit-border-bottom-left-radius: 8px;
175 175 -khtml-border-radius-bottomleft: 8px;
176 176 -moz-border-radius-bottomleft: 8px;
177 177 border-bottom-left-radius: 8px;
178 178 }
179 179
180 180 .bottom-right-rounded-corner {
181 181 -webkit-border-bottom-right-radius: 8px;
182 182 -khtml-border-radius-bottomright: 8px;
183 183 -moz-border-radius-bottomright: 8px;
184 184 border-bottom-right-radius: 8px;
185 185 }
186 186
187 187
188 188 #header {
189 189 margin:0;
190 190 padding:0 30px;
191 191 }
192 192
193 193
194 194 #header ul#logged-user{
195 195 margin-bottom:5px !important;
196 196 -webkit-border-radius: 0px 0px 8px 8px;
197 197 -khtml-border-radius: 0px 0px 8px 8px;
198 198 -moz-border-radius: 0px 0px 8px 8px;
199 199 border-radius: 0px 0px 8px 8px;
200 200 height:37px;
201 201 background:url("../images/header_inner.png") repeat-x scroll 0 0 #003367
202 202 }
203 203
204 204 #header ul#logged-user li {
205 205 list-style:none;
206 206 float:left;
207 207 margin:8px 0 0;
208 208 padding:4px 12px;
209 209 border-left: 1px solid #316293;
210 210 }
211 211
212 212 #header ul#logged-user li.first {
213 213 border-left:none;
214 214 margin:4px;
215 215 }
216 216
217 217 #header ul#logged-user li.first div.gravatar {
218 218 margin-top:-2px;
219 219 }
220 220
221 221 #header ul#logged-user li.first div.account {
222 222 padding-top:4px;
223 223 float:left;
224 224 }
225 225
226 226 #header ul#logged-user li.last {
227 227 border-right:none;
228 228 }
229 229
230 230 #header ul#logged-user li a {
231 231 color:#fff;
232 232 font-weight:700;
233 233 text-decoration:none;
234 234 }
235 235
236 236 #header ul#logged-user li a:hover {
237 237 text-decoration:underline;
238 238 }
239 239
240 240 #header ul#logged-user li.highlight a {
241 241 color:#fff;
242 242 }
243 243
244 244 #header ul#logged-user li.highlight a:hover {
245 245 color:#FFF;
246 246 }
247 247
248 248 #header #header-inner {
249 249 height:40px;
250 250 clear:both;
251 251 position:relative;
252 252 background:#003367 url("../images/header_inner.png") repeat-x;
253 253 border-bottom:2px solid #fff;
254 254 margin:0;
255 255 padding:0;
256 256 }
257 257
258 258 #header #header-inner #home a {
259 259 height:40px;
260 260 width:46px;
261 261 display:block;
262 262 background:url("../images/button_home.png");
263 263 background-position:0 0;
264 264 margin:0;
265 265 padding:0;
266 266 }
267 267
268 268 #header #header-inner #home a:hover {
269 269 background-position:0 -40px;
270 270 }
271 271
272 272 #header #header-inner #logo h1 {
273 273 color:#FFF;
274 274 font-size:18px;
275 275 margin:10px 0 0 13px;
276 276 padding:0;
277 277 }
278 278
279 279 #header #header-inner #logo a {
280 280 color:#fff;
281 281 text-decoration:none;
282 282 }
283 283
284 284 #header #header-inner #logo a:hover {
285 285 color:#bfe3ff;
286 286 }
287 287
288 288 #header #header-inner #quick,#header #header-inner #quick ul {
289 289 position:relative;
290 290 float:right;
291 291 list-style-type:none;
292 292 list-style-position:outside;
293 293 margin:10px 5px 0 0;
294 294 padding:0;
295 295 }
296 296
297 297 #header #header-inner #quick li {
298 298 position:relative;
299 299 float:left;
300 300 margin:0 5px 0 0;
301 301 padding:0;
302 302 }
303 303
304 304 #header #header-inner #quick li a {
305 305 top:0;
306 306 left:0;
307 307 height:1%;
308 308 display:block;
309 309 clear:both;
310 310 overflow:hidden;
311 311 color:#FFF;
312 312 font-weight:700;
313 313 text-decoration:none;
314 314 background:#369 url("../../images/quick_l.png") no-repeat top left;
315 315 padding:0;
316 316 }
317 317
318 318 #header #header-inner #quick li span.short {
319 319 padding:9px 6px 8px 6px;
320 320 }
321 321
322 322 #header #header-inner #quick li span {
323 323 top:0;
324 324 right:0;
325 325 height:1%;
326 326 display:block;
327 327 float:left;
328 328 background:url("../../images/quick_r.png") no-repeat top right;
329 329 border-left:1px solid #3f6f9f;
330 330 margin:0;
331 331 padding:10px 12px 8px 10px;
332 332 }
333 333
334 334 #header #header-inner #quick li span.normal {
335 335 border:none;
336 336 padding:10px 12px 8px;
337 337 }
338 338
339 339 #header #header-inner #quick li span.icon {
340 340 top:0;
341 341 left:0;
342 342 border-left:none;
343 343 background:url("../../images/quick_l.png") no-repeat top left;
344 344 border-right:1px solid #2e5c89;
345 345 padding:8px 8px 4px;
346 346 }
347 347
348 348 #header #header-inner #quick li span.icon_short {
349 349 top:0;
350 350 left:0;
351 351 border-left:none;
352 352 background:url("../../images/quick_l.png") no-repeat top left;
353 353 border-right:1px solid #2e5c89;
354 354 padding:9px 4px 4px;
355 355 }
356 356
357 357 #header #header-inner #quick li a:hover {
358 358 background:#4e4e4e url("../../images/quick_l_selected.png") no-repeat top left;
359 359 }
360 360
361 361 #header #header-inner #quick li a:hover span {
362 362 border-left:1px solid #545454;
363 363 background:url("../../images/quick_r_selected.png") no-repeat top right;
364 364 }
365 365
366 366 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short {
367 367 border-left:none;
368 368 border-right:1px solid #464646;
369 369 background:url("../../images/quick_l_selected.png") no-repeat top left;
370 370 }
371 371
372 372
373 373 #header #header-inner #quick ul {
374 374 top:29px;
375 375 right:0;
376 376 min-width:200px;
377 377 display:none;
378 378 position:absolute;
379 379 background:#FFF;
380 380 border:1px solid #666;
381 381 border-top:1px solid #003367;
382 382 z-index:100;
383 383 margin:0;
384 384 padding:0;
385 385 }
386 386
387 387 #header #header-inner #quick ul.repo_switcher {
388 388 max-height:275px;
389 389 overflow-x:hidden;
390 390 overflow-y:auto;
391 391 }
392 392
393 393 #header #header-inner #quick .repo_switcher_type{
394 394 position:absolute;
395 395 left:0;
396 396 top:9px;
397 397
398 398 }
399 399 #header #header-inner #quick li ul li {
400 400 border-bottom:1px solid #ddd;
401 401 }
402 402
403 403 #header #header-inner #quick li ul li a {
404 404 width:182px;
405 405 height:auto;
406 406 display:block;
407 407 float:left;
408 408 background:#FFF;
409 409 color:#003367;
410 410 font-weight:400;
411 411 margin:0;
412 412 padding:7px 9px;
413 413 }
414 414
415 415 #header #header-inner #quick li ul li a:hover {
416 416 color:#000;
417 417 background:#FFF;
418 418 }
419 419
420 420 #header #header-inner #quick ul ul {
421 421 top:auto;
422 422 }
423 423
424 424 #header #header-inner #quick li ul ul {
425 425 right:200px;
426 426 max-height:275px;
427 427 overflow:auto;
428 428 overflow-x:hidden;
429 429 white-space:normal;
430 430 }
431 431
432 432 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover {
433 433 background:url("../images/icons/book.png") no-repeat scroll 4px 9px #FFF;
434 434 width:167px;
435 435 margin:0;
436 436 padding:12px 9px 7px 24px;
437 437 }
438 438
439 439 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover {
440 440 background:url("../images/icons/lock.png") no-repeat scroll 4px 9px #FFF;
441 441 min-width:167px;
442 442 margin:0;
443 443 padding:12px 9px 7px 24px;
444 444 }
445 445
446 446 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover {
447 447 background:url("../images/icons/lock_open.png") no-repeat scroll 4px 9px #FFF;
448 448 min-width:167px;
449 449 margin:0;
450 450 padding:12px 9px 7px 24px;
451 451 }
452 452
453 453 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover {
454 454 background:url("../images/icons/hgicon.png") no-repeat scroll 4px 9px #FFF;
455 455 min-width:167px;
456 456 margin:0 0 0 14px;
457 457 padding:12px 9px 7px 24px;
458 458 }
459 459
460 460 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover {
461 461 background:url("../images/icons/giticon.png") no-repeat scroll 4px 9px #FFF;
462 462 min-width:167px;
463 463 margin:0 0 0 14px;
464 464 padding:12px 9px 7px 24px;
465 465 }
466 466
467 467 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover {
468 468 background:url("../images/icons/database_edit.png") no-repeat scroll 4px 9px #FFF;
469 469 width:167px;
470 470 margin:0;
471 471 padding:12px 9px 7px 24px;
472 472 }
473 473
474 474 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover {
475 475 background:#FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
476 476 width:167px;
477 477 margin:0;
478 478 padding:12px 9px 7px 24px;
479 479 }
480 480
481 481 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover {
482 482 background:#FFF url("../images/icons/cog.png") no-repeat 4px 9px;
483 483 width:167px;
484 484 margin:0;
485 485 padding:12px 9px 7px 24px;
486 486 }
487 487
488 488 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover {
489 489 background:#FFF url("../images/icons/key.png") no-repeat 4px 9px;
490 490 width:167px;
491 491 margin:0;
492 492 padding:12px 9px 7px 24px;
493 493 }
494 494
495 495 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover {
496 496 background:#FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
497 497 width:167px;
498 498 margin:0;
499 499 padding:12px 9px 7px 24px;
500 500 }
501 501
502 502 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover {
503 503 background:#FFF url("../images/icons/arrow_divide.png") no-repeat 4px 9px;
504 504 width:167px;
505 505 margin:0;
506 506 padding:12px 9px 7px 24px;
507 507 }
508 508
509 509 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover {
510 510 background:#FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
511 511 width:167px;
512 512 margin:0;
513 513 padding:12px 9px 7px 24px;
514 514 }
515 515
516 516 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover {
517 517 background:#FFF url("../images/icons/delete.png") no-repeat 4px 9px;
518 518 width:167px;
519 519 margin:0;
520 520 padding:12px 9px 7px 24px;
521 521 }
522 522
523 523 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover {
524 524 background:#FFF url("../images/icons/arrow_branch.png") no-repeat 4px 9px;
525 525 width:167px;
526 526 margin:0;
527 527 padding:12px 9px 7px 24px;
528 528 }
529 529
530 530 #header #header-inner #quick li ul li a.tags,#header #header-inner #quick li ul li a.tags:hover {
531 531 background:#FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
532 532 width:167px;
533 533 margin:0;
534 534 padding:12px 9px 7px 24px;
535 535 }
536 536
537 537 #header #header-inner #quick li ul li a.admin,#header #header-inner #quick li ul li a.admin:hover {
538 538 background:#FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
539 539 width:167px;
540 540 margin:0;
541 541 padding:12px 9px 7px 24px;
542 542 }
543 543
544 544 #content #left {
545 545 left:0;
546 546 width:280px;
547 547 position:absolute;
548 548 }
549 549
550 550 #content #right {
551 551 margin:0 60px 10px 290px;
552 552 }
553 553
554 554 #content div.box {
555 555 clear:both;
556 556 overflow:hidden;
557 557 background:#fff;
558 558 margin:0 0 10px;
559 559 padding:0 0 10px;
560 560 }
561 561
562 562 #content div.box-left {
563 563 width:49%;
564 564 clear:none;
565 565 float:left;
566 566 margin:0 0 10px;
567 567 }
568 568
569 569 #content div.box-right {
570 570 width:49%;
571 571 clear:none;
572 572 float:right;
573 573 margin:0 0 10px;
574 574 }
575 575
576 576 #content div.box div.title {
577 577 clear:both;
578 578 overflow:hidden;
579 579 background:#369 url("../images/header_inner.png") repeat-x;
580 580 margin:0 0 20px;
581 581 padding:0;
582 582 }
583 583
584 584 #content div.box div.title h5 {
585 585 float:left;
586 586 border:none;
587 587 color:#fff;
588 588 text-transform:uppercase;
589 589 margin:0;
590 590 padding:11px 0 11px 10px;
591 591 }
592 592
593 593 #content div.box div.title ul.links li {
594 594 list-style:none;
595 595 float:left;
596 596 margin:0;
597 597 padding:0;
598 598 }
599 599
600 600 #content div.box div.title ul.links li a {
601 601 height:1%;
602 602 display:block;
603 603 float:left;
604 604 border-left:1px solid #316293;
605 605 color:#fff;
606 606 font-size:11px;
607 607 font-weight:700;
608 608 text-decoration:none;
609 609 margin:0;
610 610 padding:13px 16px 12px;
611 611 }
612 612
613 613 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6 {
614 614 clear:both;
615 615 overflow:hidden;
616 616 border-bottom:1px solid #DDD;
617 617 margin:10px 20px;
618 618 padding:0 0 15px;
619 619 }
620 620
621 621 #content div.box p {
622 622 color:#5f5f5f;
623 623 font-size:12px;
624 624 line-height:150%;
625 625 margin:0 24px 10px;
626 626 padding:0;
627 627 }
628 628
629 629 #content div.box blockquote {
630 630 border-left:4px solid #DDD;
631 631 color:#5f5f5f;
632 632 font-size:11px;
633 633 line-height:150%;
634 634 margin:0 34px;
635 635 padding:0 0 0 14px;
636 636 }
637 637
638 638 #content div.box blockquote p {
639 639 margin:10px 0;
640 640 padding:0;
641 641 }
642 642
643 643 #content div.box dl {
644 644 margin:10px 24px;
645 645 }
646 646
647 647 #content div.box dt {
648 648 font-size:12px;
649 649 margin:0;
650 650 }
651 651
652 652 #content div.box dd {
653 653 font-size:12px;
654 654 margin:0;
655 655 padding:8px 0 8px 15px;
656 656 }
657 657
658 658 #content div.box li {
659 659 font-size:12px;
660 660 padding:4px 0;
661 661 }
662 662
663 663 #content div.box ul.disc,#content div.box ul.circle {
664 664 margin:10px 24px 10px 38px;
665 665 }
666 666
667 667 #content div.box ul.square {
668 668 margin:10px 24px 10px 40px;
669 669 }
670 670
671 671 #content div.box img.left {
672 672 border:none;
673 673 float:left;
674 674 margin:10px 10px 10px 0;
675 675 }
676 676
677 677 #content div.box img.right {
678 678 border:none;
679 679 float:right;
680 680 margin:10px 0 10px 10px;
681 681 }
682 682
683 683 #content div.box div.messages {
684 684 clear:both;
685 685 overflow:hidden;
686 686 margin:0 20px;
687 687 padding:0;
688 688 }
689 689
690 690 #content div.box div.message {
691 691 clear:both;
692 692 overflow:hidden;
693 693 margin:0;
694 694 padding:10px 0;
695 695 }
696 696
697 697 #content div.box div.message a {
698 698 font-weight:400 !important;
699 699 }
700 700
701 701 #content div.box div.message div.image {
702 702 float:left;
703 703 margin:9px 0 0 5px;
704 704 padding:6px;
705 705 }
706 706
707 707 #content div.box div.message div.image img {
708 708 vertical-align:middle;
709 709 margin:0;
710 710 }
711 711
712 712 #content div.box div.message div.text {
713 713 float:left;
714 714 margin:0;
715 715 padding:9px 6px;
716 716 }
717 717
718 718 #content div.box div.message div.dismiss a {
719 719 height:16px;
720 720 width:16px;
721 721 display:block;
722 722 background:url("../images/icons/cross.png") no-repeat;
723 723 margin:15px 14px 0 0;
724 724 padding:0;
725 725 }
726 726
727 727 #content div.box div.message div.text h1,#content div.box div.message div.text h2,#content div.box div.message div.text h3,#content div.box div.message div.text h4,#content div.box div.message div.text h5,#content div.box div.message div.text h6 {
728 728 border:none;
729 729 margin:0;
730 730 padding:0;
731 731 }
732 732
733 733 #content div.box div.message div.text span {
734 734 height:1%;
735 735 display:block;
736 736 margin:0;
737 737 padding:5px 0 0;
738 738 }
739 739
740 740 #content div.box div.message-error {
741 741 height:1%;
742 742 clear:both;
743 743 overflow:hidden;
744 744 background:#FBE3E4;
745 745 border:1px solid #FBC2C4;
746 746 color:#860006;
747 747 }
748 748
749 749 #content div.box div.message-error h6 {
750 750 color:#860006;
751 751 }
752 752
753 753 #content div.box div.message-warning {
754 754 height:1%;
755 755 clear:both;
756 756 overflow:hidden;
757 757 background:#FFF6BF;
758 758 border:1px solid #FFD324;
759 759 color:#5f5200;
760 760 }
761 761
762 762 #content div.box div.message-warning h6 {
763 763 color:#5f5200;
764 764 }
765 765
766 766 #content div.box div.message-notice {
767 767 height:1%;
768 768 clear:both;
769 769 overflow:hidden;
770 770 background:#8FBDE0;
771 771 border:1px solid #6BACDE;
772 772 color:#003863;
773 773 }
774 774
775 775 #content div.box div.message-notice h6 {
776 776 color:#003863;
777 777 }
778 778
779 779 #content div.box div.message-success {
780 780 height:1%;
781 781 clear:both;
782 782 overflow:hidden;
783 783 background:#E6EFC2;
784 784 border:1px solid #C6D880;
785 785 color:#4e6100;
786 786 }
787 787
788 788 #content div.box div.message-success h6 {
789 789 color:#4e6100;
790 790 }
791 791
792 792 #content div.box div.form div.fields div.field {
793 793 height:1%;
794 794 border-bottom:1px solid #DDD;
795 795 clear:both;
796 796 margin:0;
797 797 padding:10px 0;
798 798 }
799 799
800 800 #content div.box div.form div.fields div.field-first {
801 801 padding:0 0 10px;
802 802 }
803 803
804 804 #content div.box div.form div.fields div.field-noborder {
805 805 border-bottom:0 !important;
806 806 }
807 807
808 808 #content div.box div.form div.fields div.field span.error-message {
809 809 height:1%;
810 810 display:inline-block;
811 811 color:red;
812 812 margin:8px 0 0 4px;
813 813 padding:0;
814 814 }
815 815
816 816 #content div.box div.form div.fields div.field span.success {
817 817 height:1%;
818 818 display:block;
819 819 color:#316309;
820 820 margin:8px 0 0;
821 821 padding:0;
822 822 }
823 823
824 824 #content div.box div.form div.fields div.field div.label {
825 825 left:80px;
826 826 width:auto;
827 827 position:absolute;
828 828 margin:0;
829 829 padding:8px 0 0 5px;
830 830 }
831 831
832 832 #content div.box-left div.form div.fields div.field div.label,#content div.box-right div.form div.fields div.field div.label {
833 833 clear:both;
834 834 overflow:hidden;
835 835 left:0;
836 836 width:auto;
837 837 position:relative;
838 838 margin:0;
839 839 padding:0 0 8px;
840 840 }
841 841
842 842 #content div.box div.form div.fields div.field div.label-select {
843 843 padding:5px 0 0 5px;
844 844 }
845 845
846 846 #content div.box-left div.form div.fields div.field div.label-select,#content div.box-right div.form div.fields div.field div.label-select {
847 847 padding:0 0 8px;
848 848 }
849 849
850 850 #content div.box-left div.form div.fields div.field div.label-textarea,#content div.box-right div.form div.fields div.field div.label-textarea {
851 851 padding:0 0 8px !important;
852 852 }
853 853
854 854 #content div.box div.form div.fields div.field div.label label {
855 855 color:#393939;
856 856 font-weight:700;
857 857 }
858 858
859 859 #content div.box div.form div.fields div.field div.input {
860 860 margin:0 0 0 200px;
861 861 }
862 862 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input {
863 863 margin:0 0 0 0px;
864 864 }
865 865
866 866 #content div.box div.form div.fields div.field div.input input {
867 867 background:#FFF;
868 868 border-top:1px solid #b3b3b3;
869 869 border-left:1px solid #b3b3b3;
870 870 border-right:1px solid #eaeaea;
871 871 border-bottom:1px solid #eaeaea;
872 872 color:#000;
873 873 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
874 874 font-size:11px;
875 875 margin:0;
876 876 padding:7px 7px 6px;
877 877 }
878 878
879 879
880 880
881 881 #content div.box div.form div.fields div.field div.input input.small {
882 882 width:30%;
883 883 }
884 884
885 885 #content div.box div.form div.fields div.field div.input input.medium {
886 886 width:55%;
887 887 }
888 888
889 889 #content div.box div.form div.fields div.field div.input input.large {
890 890 width:85%;
891 891 }
892 892
893 893 #content div.box div.form div.fields div.field div.input input.date {
894 894 width:177px;
895 895 }
896 896
897 897 #content div.box div.form div.fields div.field div.input input.button {
898 898 background:#D4D0C8;
899 899 border-top:1px solid #FFF;
900 900 border-left:1px solid #FFF;
901 901 border-right:1px solid #404040;
902 902 border-bottom:1px solid #404040;
903 903 color:#000;
904 904 margin:0;
905 905 padding:4px 8px;
906 906 }
907 907
908 908 #content div.box div.form div.fields div.field div.input a.ui-input-file {
909 909 width:28px;
910 910 height:28px;
911 911 display:inline;
912 912 position:absolute;
913 913 overflow:hidden;
914 914 cursor:pointer;
915 915 background:#e5e3e3 url("../images/button_browse.png") no-repeat;
916 916 border:none;
917 917 text-decoration:none;
918 918 margin:0 0 0 6px;
919 919 padding:0;
920 920 }
921 921
922 922 #content div.box div.form div.fields div.field div.textarea {
923 923 border-top:1px solid #b3b3b3;
924 924 border-left:1px solid #b3b3b3;
925 925 border-right:1px solid #eaeaea;
926 926 border-bottom:1px solid #eaeaea;
927 927 margin:0 0 0 200px;
928 928 padding:10px;
929 929 }
930 930
931 931 #content div.box div.form div.fields div.field div.textarea-editor {
932 932 border:1px solid #ddd;
933 933 padding:0;
934 934 }
935 935
936 936 #content div.box div.form div.fields div.field div.textarea textarea {
937 937 width:100%;
938 938 height:220px;
939 939 overflow:hidden;
940 940 background:#FFF;
941 941 color:#000;
942 942 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
943 943 font-size:11px;
944 944 outline:none;
945 945 border-width:0;
946 946 margin:0;
947 947 padding:0;
948 948 }
949 949
950 950 #content div.box-left div.form div.fields div.field div.textarea textarea,#content div.box-right div.form div.fields div.field div.textarea textarea {
951 951 width:100%;
952 952 height:100px;
953 953 }
954 954
955 955 #content div.box div.form div.fields div.field div.textarea table {
956 956 width:100%;
957 957 border:none;
958 958 margin:0;
959 959 padding:0;
960 960 }
961 961
962 962 #content div.box div.form div.fields div.field div.textarea table td {
963 963 background:#DDD;
964 964 border:none;
965 965 padding:0;
966 966 }
967 967
968 968 #content div.box div.form div.fields div.field div.textarea table td table {
969 969 width:auto;
970 970 border:none;
971 971 margin:0;
972 972 padding:0;
973 973 }
974 974
975 975 #content div.box div.form div.fields div.field div.textarea table td table td {
976 976 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
977 977 font-size:11px;
978 978 padding:5px 5px 5px 0;
979 979 }
980 980
981 981 #content div.box div.form div.fields div.field div.textarea table td table td a.mceButtonActive {
982 982 background:#b1b1b1;
983 983 }
984 984
985 985 #content div.box div.form div.fields div.field div.select a.ui-selectmenu {
986 986 color:#565656;
987 987 text-decoration:none;
988 988 }
989 989
990 990 #content div.box div.form div.fields div.field input[type=text]:focus,#content div.box div.form div.fields div.field input[type=password]:focus,#content div.box div.form div.fields div.field input[type=file]:focus,#content div.box div.form div.fields div.field textarea:focus,#content div.box div.form div.fields div.field select:focus {
991 991 background:#f6f6f6;
992 992 border-color:#666;
993 993 }
994 994
995 995 div.form div.fields div.field div.button {
996 996 margin:0;
997 997 padding:0 0 0 8px;
998 998 }
999 999
1000 1000 div.form div.fields div.field div.highlight .ui-state-default {
1001 1001 background:#4e85bb url("../images/button_highlight.png") repeat-x;
1002 1002 border-top:1px solid #5c91a4;
1003 1003 border-left:1px solid #2a6f89;
1004 1004 border-right:1px solid #2b7089;
1005 1005 border-bottom:1px solid #1a6480;
1006 1006 color:#FFF;
1007 1007 margin:0;
1008 1008 padding:6px 12px;
1009 1009 }
1010 1010
1011 1011 div.form div.fields div.field div.highlight .ui-state-hover {
1012 1012 background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x;
1013 1013 border-top:1px solid #78acbf;
1014 1014 border-left:1px solid #34819e;
1015 1015 border-right:1px solid #35829f;
1016 1016 border-bottom:1px solid #257897;
1017 1017 color:#FFF;
1018 1018 margin:0;
1019 1019 padding:6px 12px;
1020 1020 }
1021 1021
1022 1022 #content div.box div.form div.fields div.buttons div.highlight input.ui-state-default {
1023 1023 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
1024 1024 border-top:1px solid #5c91a4;
1025 1025 border-left:1px solid #2a6f89;
1026 1026 border-right:1px solid #2b7089;
1027 1027 border-bottom:1px solid #1a6480;
1028 1028 color:#fff;
1029 1029 margin:0;
1030 1030 padding:6px 12px;
1031 1031 }
1032 1032
1033 1033 #content div.box div.form div.fields div.buttons div.highlight input.ui-state-hover {
1034 1034 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
1035 1035 border-top:1px solid #78acbf;
1036 1036 border-left:1px solid #34819e;
1037 1037 border-right:1px solid #35829f;
1038 1038 border-bottom:1px solid #257897;
1039 1039 color:#fff;
1040 1040 margin:0;
1041 1041 padding:6px 12px;
1042 1042 }
1043 1043
1044 1044 #content div.box table {
1045 1045 width:100%;
1046 1046 border-collapse:collapse;
1047 1047 margin:0;
1048 1048 padding:0;
1049 1049 }
1050 1050
1051 1051 #content div.box table th {
1052 1052 background:#eee;
1053 1053 border-bottom:1px solid #ddd;
1054 1054 padding:5px 0px 5px 5px;
1055 1055 }
1056 1056
1057 1057 #content div.box table th.left {
1058 1058 text-align:left;
1059 1059 }
1060 1060
1061 1061 #content div.box table th.right {
1062 1062 text-align:right;
1063 1063 }
1064 1064
1065 1065 #content div.box table th.center {
1066 1066 text-align:center;
1067 1067 }
1068 1068
1069 1069 #content div.box table th.selected {
1070 1070 vertical-align:middle;
1071 1071 padding:0;
1072 1072 }
1073 1073
1074 1074 #content div.box table td {
1075 1075 background:#fff;
1076 1076 border-bottom:1px solid #cdcdcd;
1077 1077 vertical-align:middle;
1078 1078 padding:5px;
1079 1079 }
1080 1080
1081 1081 #content div.box table tr.selected td {
1082 1082 background:#FFC;
1083 1083 }
1084 1084
1085 1085 #content div.box table td.selected {
1086 1086 width:3%;
1087 1087 text-align:center;
1088 1088 vertical-align:middle;
1089 1089 padding:0;
1090 1090 }
1091 1091
1092 1092 #content div.box table td.action {
1093 1093 width:45%;
1094 1094 text-align:left;
1095 1095 }
1096 1096
1097 1097 #content div.box table td.date {
1098 1098 width:33%;
1099 1099 text-align:center;
1100 1100 }
1101 1101
1102 1102 #content div.box div.action {
1103 1103 float:right;
1104 1104 background:#FFF;
1105 1105 text-align:right;
1106 1106 margin:10px 0 0;
1107 1107 padding:0;
1108 1108 }
1109 1109
1110 1110 #content div.box div.action select {
1111 1111 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1112 1112 font-size:11px;
1113 1113 margin:0;
1114 1114 }
1115 1115
1116 1116 #content div.box div.action .ui-selectmenu {
1117 1117 margin:0;
1118 1118 padding:0;
1119 1119 }
1120 1120
1121 1121 #content div.box div.pagination {
1122 1122 height:1%;
1123 1123 clear:both;
1124 1124 overflow:hidden;
1125 1125 margin:10px 0 0;
1126 1126 padding:0;
1127 1127 }
1128 1128
1129 1129 #content div.box div.pagination ul.pager {
1130 1130 float:right;
1131 1131 text-align:right;
1132 1132 margin:0;
1133 1133 padding:0;
1134 1134 }
1135 1135
1136 1136 #content div.box div.pagination ul.pager li {
1137 1137 height:1%;
1138 1138 float:left;
1139 1139 list-style:none;
1140 1140 background:#ebebeb url("../images/pager.png") repeat-x;
1141 1141 border-top:1px solid #dedede;
1142 1142 border-left:1px solid #cfcfcf;
1143 1143 border-right:1px solid #c4c4c4;
1144 1144 border-bottom:1px solid #c4c4c4;
1145 1145 color:#4A4A4A;
1146 1146 font-weight:700;
1147 1147 margin:0 0 0 4px;
1148 1148 padding:0;
1149 1149 }
1150 1150
1151 1151 #content div.box div.pagination ul.pager li.separator {
1152 1152 padding:6px;
1153 1153 }
1154 1154
1155 1155 #content div.box div.pagination ul.pager li.current {
1156 1156 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1157 1157 border-top:1px solid #ccc;
1158 1158 border-left:1px solid #bebebe;
1159 1159 border-right:1px solid #b1b1b1;
1160 1160 border-bottom:1px solid #afafaf;
1161 1161 color:#515151;
1162 1162 padding:6px;
1163 1163 }
1164 1164
1165 1165 #content div.box div.pagination ul.pager li a {
1166 1166 height:1%;
1167 1167 display:block;
1168 1168 float:left;
1169 1169 color:#515151;
1170 1170 text-decoration:none;
1171 1171 margin:0;
1172 1172 padding:6px;
1173 1173 }
1174 1174
1175 1175 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active {
1176 1176 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1177 1177 border-top:1px solid #ccc;
1178 1178 border-left:1px solid #bebebe;
1179 1179 border-right:1px solid #b1b1b1;
1180 1180 border-bottom:1px solid #afafaf;
1181 1181 margin:-1px;
1182 1182 }
1183 1183
1184 1184 #content div.box div.pagination-wh {
1185 1185 height:1%;
1186 1186 clear:both;
1187 1187 overflow:hidden;
1188 1188 text-align:right;
1189 1189 margin:10px 0 0;
1190 1190 padding:0;
1191 1191 }
1192 1192
1193 1193 #content div.box div.pagination-right {
1194 1194 float:right;
1195 1195 }
1196 1196
1197 1197 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot {
1198 1198 height:1%;
1199 1199 float:left;
1200 1200 background:#ebebeb url("../images/pager.png") repeat-x;
1201 1201 border-top:1px solid #dedede;
1202 1202 border-left:1px solid #cfcfcf;
1203 1203 border-right:1px solid #c4c4c4;
1204 1204 border-bottom:1px solid #c4c4c4;
1205 1205 color:#4A4A4A;
1206 1206 font-weight:700;
1207 1207 margin:0 0 0 4px;
1208 1208 padding:6px;
1209 1209 }
1210 1210
1211 1211 #content div.box div.pagination-wh span.pager_curpage {
1212 1212 height:1%;
1213 1213 float:left;
1214 1214 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1215 1215 border-top:1px solid #ccc;
1216 1216 border-left:1px solid #bebebe;
1217 1217 border-right:1px solid #b1b1b1;
1218 1218 border-bottom:1px solid #afafaf;
1219 1219 color:#515151;
1220 1220 font-weight:700;
1221 1221 margin:0 0 0 4px;
1222 1222 padding:6px;
1223 1223 }
1224 1224
1225 1225 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active {
1226 1226 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1227 1227 border-top:1px solid #ccc;
1228 1228 border-left:1px solid #bebebe;
1229 1229 border-right:1px solid #b1b1b1;
1230 1230 border-bottom:1px solid #afafaf;
1231 1231 text-decoration:none;
1232 1232 }
1233 1233
1234 1234 #content div.box div.traffic div.legend {
1235 1235 clear:both;
1236 1236 overflow:hidden;
1237 1237 border-bottom:1px solid #ddd;
1238 1238 margin:0 0 10px;
1239 1239 padding:0 0 10px;
1240 1240 }
1241 1241
1242 1242 #content div.box div.traffic div.legend h6 {
1243 1243 float:left;
1244 1244 border:none;
1245 1245 margin:0;
1246 1246 padding:0;
1247 1247 }
1248 1248
1249 1249 #content div.box div.traffic div.legend li {
1250 1250 list-style:none;
1251 1251 float:left;
1252 1252 font-size:11px;
1253 1253 margin:0;
1254 1254 padding:0 8px 0 4px;
1255 1255 }
1256 1256
1257 1257 #content div.box div.traffic div.legend li.visits {
1258 1258 border-left:12px solid #edc240;
1259 1259 }
1260 1260
1261 1261 #content div.box div.traffic div.legend li.pageviews {
1262 1262 border-left:12px solid #afd8f8;
1263 1263 }
1264 1264
1265 1265 #content div.box div.traffic table {
1266 1266 width:auto;
1267 1267 }
1268 1268
1269 1269 #content div.box div.traffic table td {
1270 1270 background:transparent;
1271 1271 border:none;
1272 1272 padding:2px 3px 3px;
1273 1273 }
1274 1274
1275 1275 #content div.box div.traffic table td.legendLabel {
1276 1276 padding:0 3px 2px;
1277 1277 }
1278 1278
1279 1279 #footer {
1280 1280 clear:both;
1281 1281 overflow:hidden;
1282 1282 text-align:right;
1283 1283 margin:0;
1284 1284 padding:0 30px 4px;
1285 1285 margin:-10px 0 0;
1286 1286 }
1287 1287
1288 1288 #footer div#footer-inner {
1289 1289 background:url("../images/header_inner.png") repeat-x scroll 0 0 #003367;
1290 1290 border-top:2px solid #FFFFFF;
1291 1291 }
1292 1292
1293 1293 #footer div#footer-inner p {
1294 1294 padding:15px 25px 15px 0;
1295 1295 color:#FFF;
1296 1296 font-weight:700;
1297 1297 }
1298 1298 #footer div#footer-inner .footer-link {
1299 1299 float:left;
1300 1300 padding-left:10px;
1301 1301 }
1302 1302 #footer div#footer-inner .footer-link a {
1303 1303 color:#FFF;
1304 1304 }
1305 1305
1306 1306 #login div.title {
1307 1307 width:420px;
1308 1308 clear:both;
1309 1309 overflow:hidden;
1310 1310 position:relative;
1311 1311 background:#003367 url("../../images/header_inner.png") repeat-x;
1312 1312 margin:0 auto;
1313 1313 padding:0;
1314 1314 }
1315 1315
1316 1316 #login div.inner {
1317 1317 width:380px;
1318 1318 background:#FFF url("../images/login.png") no-repeat top left;
1319 1319 border-top:none;
1320 1320 border-bottom:none;
1321 1321 margin:0 auto;
1322 1322 padding:20px;
1323 1323 }
1324 1324
1325 1325 #login div.form div.fields div.field div.label {
1326 1326 width:173px;
1327 1327 float:left;
1328 1328 text-align:right;
1329 1329 margin:2px 10px 0 0;
1330 1330 padding:5px 0 0 5px;
1331 1331 }
1332 1332
1333 1333 #login div.form div.fields div.field div.input input {
1334 1334 width:176px;
1335 1335 background:#FFF;
1336 1336 border-top:1px solid #b3b3b3;
1337 1337 border-left:1px solid #b3b3b3;
1338 1338 border-right:1px solid #eaeaea;
1339 1339 border-bottom:1px solid #eaeaea;
1340 1340 color:#000;
1341 1341 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1342 1342 font-size:11px;
1343 1343 margin:0;
1344 1344 padding:7px 7px 6px;
1345 1345 }
1346 1346
1347 1347 #login div.form div.fields div.buttons {
1348 1348 clear:both;
1349 1349 overflow:hidden;
1350 1350 border-top:1px solid #DDD;
1351 1351 text-align:right;
1352 1352 margin:0;
1353 1353 padding:10px 0 0;
1354 1354 }
1355 1355
1356 1356 #login div.form div.links {
1357 1357 clear:both;
1358 1358 overflow:hidden;
1359 1359 margin:10px 0 0;
1360 1360 padding:0 0 2px;
1361 1361 }
1362 1362
1363 1363 #register div.title {
1364 1364 clear:both;
1365 1365 overflow:hidden;
1366 1366 position:relative;
1367 1367 background:#003367 url("../images/header_inner.png") repeat-x;
1368 1368 margin:0 auto;
1369 1369 padding:0;
1370 1370 }
1371 1371
1372 1372 #register div.inner {
1373 1373 background:#FFF;
1374 1374 border-top:none;
1375 1375 border-bottom:none;
1376 1376 margin:0 auto;
1377 1377 padding:20px;
1378 1378 }
1379 1379
1380 1380 #register div.form div.fields div.field div.label {
1381 1381 width:135px;
1382 1382 float:left;
1383 1383 text-align:right;
1384 1384 margin:2px 10px 0 0;
1385 1385 padding:5px 0 0 5px;
1386 1386 }
1387 1387
1388 1388 #register div.form div.fields div.field div.input input {
1389 1389 width:300px;
1390 1390 background:#FFF;
1391 1391 border-top:1px solid #b3b3b3;
1392 1392 border-left:1px solid #b3b3b3;
1393 1393 border-right:1px solid #eaeaea;
1394 1394 border-bottom:1px solid #eaeaea;
1395 1395 color:#000;
1396 1396 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1397 1397 font-size:11px;
1398 1398 margin:0;
1399 1399 padding:7px 7px 6px;
1400 1400 }
1401 1401
1402 1402 #register div.form div.fields div.buttons {
1403 1403 clear:both;
1404 1404 overflow:hidden;
1405 1405 border-top:1px solid #DDD;
1406 1406 text-align:left;
1407 1407 margin:0;
1408 1408 padding:10px 0 0 150px;
1409 1409 }
1410 1410
1411 1411 #register div.form div.fields div.buttons div.highlight input.ui-state-default {
1412 1412 background:url("../images/button_highlight.png") repeat-x scroll 0 0 #4E85BB;
1413 1413 color:#FFF;
1414 1414 border-color:#5C91A4 #2B7089 #1A6480 #2A6F89;
1415 1415 border-style:solid;
1416 1416 border-width:1px;
1417 1417 }
1418 1418
1419 1419 #register div.form div.activation_msg {
1420 1420 padding-top:4px;
1421 1421 padding-bottom:4px;
1422 1422 }
1423 1423
1424 1424 .trending_language_tbl,.trending_language_tbl td {
1425 1425 border:0 !important;
1426 1426 margin:0 !important;
1427 1427 padding:0 !important;
1428 1428 }
1429 1429
1430 1430 .trending_language {
1431 1431 background-color:#003367;
1432 1432 color:#FFF;
1433 1433 display:block;
1434 1434 min-width:20px;
1435 1435 text-decoration:none;
1436 1436 height:12px;
1437 1437 margin-bottom:4px;
1438 1438 margin-left:5px;
1439 1439 white-space:pre;
1440 1440 padding:3px;
1441 1441 }
1442 1442
1443 1443 h3.files_location {
1444 1444 font-size:1.8em;
1445 1445 font-weight:700;
1446 1446 border-bottom:none !important;
1447 1447 margin:10px 0 !important;
1448 1448 }
1449 1449
1450 1450 #files_data dl dt {
1451 1451 float:left;
1452 1452 width:115px;
1453 1453 margin:0 !important;
1454 1454 padding:5px;
1455 1455 }
1456 1456
1457 1457 #files_data dl dd {
1458 1458 margin:0 !important;
1459 1459 padding:5px !important;
1460 1460 }
1461 1461
1462 1462 #changeset_content {
1463 1463 border:1px solid #CCC;
1464 1464 padding:5px;
1465 1465 }
1466 1466
1467 1467 #changeset_content .container {
1468 1468 min-height:120px;
1469 1469 font-size:1.2em;
1470 1470 overflow:hidden;
1471 1471 }
1472 1472
1473 1473 #changeset_content .container .right {
1474 1474 float:right;
1475 1475 width:25%;
1476 1476 text-align:right;
1477 1477 }
1478 1478
1479 1479 #changeset_content .container .left .message {
1480 1480 font-style:italic;
1481 1481 color:#556CB5;
1482 1482 white-space:pre-wrap;
1483 1483 }
1484 1484
1485 1485 .cs_files .cs_added {
1486 1486 background:url("../images/icons/page_white_add.png") no-repeat scroll 3px;
1487 1487 height:16px;
1488 1488 padding-left:20px;
1489 1489 margin-top:7px;
1490 1490 text-align:left;
1491 1491 }
1492 1492
1493 1493 .cs_files .cs_changed {
1494 1494 background:url("../images/icons/page_white_edit.png") no-repeat scroll 3px;
1495 1495 height:16px;
1496 1496 padding-left:20px;
1497 1497 margin-top:7px;
1498 1498 text-align:left;
1499 1499 }
1500 1500
1501 1501 .cs_files .cs_removed {
1502 1502 background:url("../images/icons/page_white_delete.png") no-repeat scroll 3px;
1503 1503 height:16px;
1504 1504 padding-left:20px;
1505 1505 margin-top:7px;
1506 1506 text-align:left;
1507 1507 }
1508 1508
1509 1509 #graph {
1510 1510 overflow:hidden;
1511 1511 }
1512 1512
1513 1513 #graph_nodes {
1514 1514 width:160px;
1515 1515 float:left;
1516 1516 margin-left:-50px;
1517 1517 margin-top:5px;
1518 1518 }
1519 1519
1520 1520 #graph_content {
1521 1521 width:800px;
1522 1522 float:left;
1523 1523 }
1524 1524
1525 1525 #graph_content .container_header {
1526 1526 border:1px solid #CCC;
1527 1527 padding:10px;
1528 1528 }
1529 1529
1530 1530 #graph_content .container {
1531 1531 border-bottom:1px solid #CCC;
1532 1532 border-left:1px solid #CCC;
1533 1533 border-right:1px solid #CCC;
1534 1534 min-height:80px;
1535 1535 overflow:hidden;
1536 1536 font-size:1.2em;
1537 1537 }
1538 1538
1539 1539 #graph_content .container .right {
1540 1540 float:right;
1541 1541 width:28%;
1542 1542 text-align:right;
1543 1543 padding-bottom:5px;
1544 1544 }
1545 1545
1546 1546 #graph_content .container .left .date {
1547 1547 font-weight:700;
1548 1548 padding-bottom:5px;
1549 1549 }
1550 1550
1551 1551 #graph_content .container .left .message {
1552 1552 font-size:100%;
1553 1553 padding-top:3px;
1554 1554 white-space:pre-wrap;
1555 1555 }
1556 1556
1557 1557 .right div {
1558 1558 clear:both;
1559 1559 }
1560 1560
1561 1561 .right .changes .added,.changed,.removed {
1562 1562 border:1px solid #DDD;
1563 1563 display:block;
1564 1564 float:right;
1565 1565 text-align:center;
1566 1566 min-width:15px;
1567 1567 cursor: help;
1568 1568 }
1569 1569
1570 1570 .right .changes .added {
1571 1571 background:#BFB;
1572 1572 }
1573 1573
1574 1574 .right .changes .changed {
1575 1575 background:#FD8;
1576 1576 }
1577 1577
1578 1578 .right .changes .removed {
1579 1579 background:#F88;
1580 1580 }
1581 1581
1582 1582 .right .merge {
1583 1583 vertical-align:top;
1584 1584 font-size:0.75em;
1585 1585 font-weight:700;
1586 1586 }
1587 1587
1588 1588 .right .parent {
1589 1589 font-size:90%;
1590 1590 font-family:monospace;
1591 1591 }
1592 1592
1593 1593 .right .logtags .branchtag {
1594 1594 background:#FFF url("../images/icons/arrow_branch.png") no-repeat right 6px;
1595 1595 display:block;
1596 1596 font-size:0.8em;
1597 1597 padding:11px 16px 0 0;
1598 1598 }
1599 1599
1600 1600 .right .logtags .tagtag {
1601 1601 background:#FFF url("../images/icons/tag_blue.png") no-repeat right 6px;
1602 1602 display:block;
1603 1603 font-size:0.8em;
1604 1604 padding:11px 16px 0 0;
1605 1605 }
1606 1606
1607 1607 div.browserblock {
1608 1608 overflow:hidden;
1609 1609 border:1px solid #ccc;
1610 1610 background:#f8f8f8;
1611 1611 font-size:100%;
1612 1612 line-height:125%;
1613 1613 padding:0;
1614 1614 }
1615 1615
1616 1616 div.browserblock .browser-header {
1617 border-bottom:1px solid #CCC;
1618 1617 background:#FFF;
1619 color:blue;
1620 1618 padding:10px 0;
1619 float:left;
1620 }
1621
1622 div.browserblock .browser-branch {
1623 background:#FFF;
1624 padding:20px 0 0 0;
1625 float:left;
1626 }
1627 div.browserblock .browser-branch label {
1628 color:#4A4A4A;
1621 1629 }
1622 1630
1623 1631 div.browserblock .browser-header span {
1624 1632 margin-left:25px;
1625 1633 font-weight:700;
1626 1634 }
1627 1635
1628 1636 div.browserblock .browser-body {
1629 1637 background:#EEE;
1638 border-top:1px solid #CCC;
1630 1639 }
1631 1640
1632 1641 table.code-browser {
1633 1642 border-collapse:collapse;
1634 1643 width:100%;
1635 1644 }
1636 1645
1637 1646 table.code-browser tr {
1638 1647 margin:3px;
1639 1648 }
1640 1649
1641 1650 table.code-browser thead th {
1642 1651 background-color:#EEE;
1643 1652 height:20px;
1644 1653 font-size:1.1em;
1645 1654 font-weight:700;
1646 1655 text-align:left;
1647 1656 padding-left:10px;
1648 1657 }
1649 1658
1650 1659 table.code-browser tbody td {
1651 1660 padding-left:10px;
1652 1661 height:20px;
1653 1662 }
1654 1663
1655 1664 table.code-browser .browser-file {
1656 1665 background:url("../images/icons/document_16.png") no-repeat scroll 3px;
1657 1666 height:16px;
1658 1667 padding-left:20px;
1659 1668 text-align:left;
1660 1669 }
1661 1670 .diffblock .changeset_file{
1662 1671 background:url("../images/icons/file.png") no-repeat scroll 3px;
1663 1672 height:16px;
1664 1673 padding-left:22px;
1665 1674 text-align:left;
1666 1675 font-size: 14px;
1667 1676 }
1668 1677
1669 1678 .diffblock .changeset_header{
1670 1679 margin-left: 6px !important;
1671 1680 }
1672 1681
1673 1682 table.code-browser .browser-dir {
1674 1683 background:url("../images/icons/folder_16.png") no-repeat scroll 3px;
1675 1684 height:16px;
1676 1685 padding-left:20px;
1677 1686 text-align:left;
1678 1687 }
1679 1688
1680 1689 .box .search {
1681 1690 clear:both;
1682 1691 overflow:hidden;
1683 1692 margin:0;
1684 1693 padding:0 20px 10px;
1685 1694 }
1686 1695
1687 1696 .box .search div.search_path {
1688 1697 background:none repeat scroll 0 0 #EEE;
1689 1698 border:1px solid #CCC;
1690 1699 color:blue;
1691 1700 margin-bottom:10px;
1692 1701 padding:10px 0;
1693 1702 }
1694 1703
1695 1704 .box .search div.search_path div.link {
1696 1705 font-weight:700;
1697 1706 margin-left:25px;
1698 1707 }
1699 1708
1700 1709 .box .search div.search_path div.link a {
1701 1710 color:#003367;
1702 1711 cursor:pointer;
1703 1712 text-decoration:none;
1704 1713 }
1705 1714
1706 1715 #path_unlock {
1707 1716 color:red;
1708 1717 font-size:1.2em;
1709 1718 padding-left:4px;
1710 1719 }
1711 1720
1712 1721 .info_box * {
1713 1722 background:url("../../images/pager.png") repeat-x scroll 0 0 #EBEBEB;
1714 1723 color:#4A4A4A;
1715 1724 font-weight:700;
1716 1725 height:1%;
1717 1726 display:inline;
1718 1727 border-color:#DEDEDE #C4C4C4 #C4C4C4 #CFCFCF;
1719 1728 border-style:solid;
1720 1729 border-width:1px;
1721 1730 padding:4px 6px;
1722 1731 }
1723 1732
1724 1733 .info_box span {
1725 1734 margin-left:3px;
1726 1735 margin-right:3px;
1727 1736 }
1728 1737
1729 1738 .info_box input#at_rev {
1730 1739 text-align:center;
1731 1740 padding:5px 3px 3px 2px;
1732 1741 }
1733 1742
1734 1743 .info_box input#view {
1735 1744 text-align:center;
1736 1745 padding:4px 3px 2px 2px;
1737 1746 }
1738 1747
1739 1748 .yui-overlay,.yui-panel-container {
1740 1749 visibility:hidden;
1741 1750 position:absolute;
1742 1751 z-index:2;
1743 1752 }
1744 1753
1745 1754 .yui-tt {
1746 1755 visibility:hidden;
1747 1756 position:absolute;
1748 1757 color:#666;
1749 1758 background-color:#FFF;
1750 1759 font-family:arial, helvetica, verdana, sans-serif;
1751 1760 border:2px solid #003367;
1752 1761 font:100% sans-serif;
1753 1762 width:auto;
1754 1763 opacity:1px;
1755 1764 padding:8px;
1756 1765 white-space: pre;
1757 1766 }
1758 1767
1759 1768 .ac {
1760 1769 vertical-align:top;
1761 1770 }
1762 1771
1763 1772 .ac .yui-ac {
1764 1773 position:relative;
1765 1774 font-family:arial;
1766 1775 font-size:100%;
1767 1776 }
1768 1777
1769 1778 .ac .perm_ac {
1770 1779 width:15em;
1771 1780 }
1772 1781
1773 1782 .ac .yui-ac-input {
1774 1783 width:100%;
1775 1784 }
1776 1785
1777 1786 .ac .yui-ac-container {
1778 1787 position:absolute;
1779 1788 top:1.6em;
1780 1789 width:100%;
1781 1790 }
1782 1791
1783 1792 .ac .yui-ac-content {
1784 1793 position:absolute;
1785 1794 width:100%;
1786 1795 border:1px solid gray;
1787 1796 background:#fff;
1788 1797 overflow:hidden;
1789 1798 z-index:9050;
1790 1799 }
1791 1800
1792 1801 .ac .yui-ac-shadow {
1793 1802 position:absolute;
1794 1803 width:100%;
1795 1804 background:#000;
1796 1805 -moz-opacity:0.1px;
1797 1806 opacity:.10;
1798 1807 filter:alpha(opacity = 10);
1799 1808 z-index:9049;
1800 1809 margin:.3em;
1801 1810 }
1802 1811
1803 1812 .ac .yui-ac-content ul {
1804 1813 width:100%;
1805 1814 margin:0;
1806 1815 padding:0;
1807 1816 }
1808 1817
1809 1818 .ac .yui-ac-content li {
1810 1819 cursor:default;
1811 1820 white-space:nowrap;
1812 1821 margin:0;
1813 1822 padding:2px 5px;
1814 1823 }
1815 1824
1816 1825 .ac .yui-ac-content li.yui-ac-prehighlight {
1817 1826 background:#B3D4FF;
1818 1827 }
1819 1828
1820 1829 .ac .yui-ac-content li.yui-ac-highlight {
1821 1830 background:#556CB5;
1822 1831 color:#FFF;
1823 1832 }
1824 1833
1825 1834 .follow{
1826 1835 background:url("../images/icons/heart_add.png") no-repeat scroll 3px;
1827 1836 height: 16px;
1828 1837 width: 20px;
1829 1838 cursor: pointer;
1830 1839 display: block;
1831 1840 float: right;
1832 1841 margin-top: 2px;
1833 1842 }
1834 1843
1835 1844 .following{
1836 1845 background:url("../images/icons/heart_delete.png") no-repeat scroll 3px;
1837 1846 height: 16px;
1838 1847 width: 20px;
1839 1848 cursor: pointer;
1840 1849 display: block;
1841 1850 float: right;
1842 1851 margin-top: 2px;
1843 1852 }
1844 1853
1845 1854 .currently_following{
1846 1855 padding-left: 10px;
1847 1856 padding-bottom:5px;
1848 1857 }
1849 1858
1850 1859 .journal_highlight{
1851 1860 font-weight: bold;
1852 1861 text-decoration: underline;
1853 1862 }
1854 1863
1855 1864 .add_icon {
1856 1865 background:url("../images/icons/add.png") no-repeat scroll 3px;
1857 1866 height:16px;
1858 1867 padding-left:20px;
1859 1868 padding-top:1px;
1860 1869 text-align:left;
1861 1870 }
1862 1871
1863 1872 .edit_icon {
1864 1873 background:url("../images/icons/folder_edit.png") no-repeat scroll 3px;
1865 1874 height:16px;
1866 1875 padding-left:20px;
1867 1876 padding-top:1px;
1868 1877 text-align:left;
1869 1878 }
1870 1879
1871 1880 .delete_icon {
1872 1881 background:url("../images/icons/delete.png") no-repeat scroll 3px;
1873 1882 height:16px;
1874 1883 padding-left:20px;
1875 1884 padding-top:1px;
1876 1885 text-align:left;
1877 1886 }
1878 1887
1879 1888 .refresh_icon {
1880 1889 background:url("../images/icons/arrow_refresh.png") no-repeat scroll 3px;
1881 1890 height:16px;
1882 1891 padding-left:20px;
1883 1892 padding-top:1px;
1884 1893 text-align:left;
1885 1894 }
1886 1895
1887 1896 .rss_icon {
1888 1897 background:url("../images/icons/rss_16.png") no-repeat scroll 3px;
1889 1898 height:16px;
1890 1899 padding-left:20px;
1891 1900 padding-top:1px;
1892 1901 text-align:left;
1893 1902 }
1894 1903
1895 1904 .atom_icon {
1896 1905 background:url("../images/icons/atom.png") no-repeat scroll 3px;
1897 1906 height:16px;
1898 1907 padding-left:20px;
1899 1908 padding-top:1px;
1900 1909 text-align:left;
1901 1910 }
1902 1911
1903 1912 .archive_icon {
1904 1913 background:url("../images/icons/compress.png") no-repeat scroll 3px;
1905 1914 height:16px;
1906 1915 padding-left:20px;
1907 1916 text-align:left;
1908 1917 padding-top:1px;
1909 1918 }
1910 1919
1911 1920 .action_button {
1912 1921 border:0;
1913 1922 display:block;
1914 1923 }
1915 1924
1916 1925 .action_button:hover {
1917 1926 border:0;
1918 1927 text-decoration:underline;
1919 1928 cursor:pointer;
1920 1929 }
1921 1930
1922 1931 #switch_repos {
1923 1932 position:absolute;
1924 1933 height:25px;
1925 1934 z-index:1;
1926 1935 }
1927 1936
1928 1937 #switch_repos select {
1929 1938 min-width:150px;
1930 1939 max-height:250px;
1931 1940 z-index:1;
1932 1941 }
1933 1942
1934 1943 .breadcrumbs {
1935 1944 border:medium none;
1936 1945 color:#FFF;
1937 1946 float:left;
1938 1947 text-transform:uppercase;
1939 1948 font-weight:700;
1940 1949 font-size:14px;
1941 1950 margin:0;
1942 1951 padding:11px 0 11px 10px;
1943 1952 }
1944 1953
1945 1954 .breadcrumbs a {
1946 1955 color:#FFF;
1947 1956 }
1948 1957
1949 1958 .flash_msg ul {
1950 1959 margin:0;
1951 1960 padding:0 0 10px;
1952 1961 }
1953 1962
1954 1963 .error_msg {
1955 1964 background-color:#FFCFCF;
1956 1965 background-image:url("../../images/icons/error_msg.png");
1957 1966 border:1px solid #FF9595;
1958 1967 color:#C30;
1959 1968 }
1960 1969
1961 1970 .warning_msg {
1962 1971 background-color:#FFFBCC;
1963 1972 background-image:url("../../images/icons/warning_msg.png");
1964 1973 border:1px solid #FFF35E;
1965 1974 color:#C69E00;
1966 1975 }
1967 1976
1968 1977 .success_msg {
1969 1978 background-color:#D5FFCF;
1970 1979 background-image:url("../../images/icons/success_msg.png");
1971 1980 border:1px solid #97FF88;
1972 1981 color:#090;
1973 1982 }
1974 1983
1975 1984 .notice_msg {
1976 1985 background-color:#DCE3FF;
1977 1986 background-image:url("../../images/icons/notice_msg.png");
1978 1987 border:1px solid #93A8FF;
1979 1988 color:#556CB5;
1980 1989 }
1981 1990
1982 1991 .success_msg,.error_msg,.notice_msg,.warning_msg {
1983 1992 background-position:10px center;
1984 1993 background-repeat:no-repeat;
1985 1994 font-size:12px;
1986 1995 font-weight:700;
1987 1996 min-height:14px;
1988 1997 line-height:14px;
1989 1998 margin-bottom:0;
1990 1999 margin-top:0;
1991 2000 display:block;
1992 2001 overflow:auto;
1993 2002 padding:6px 10px 6px 40px;
1994 2003 }
1995 2004
1996 2005 #msg_close {
1997 2006 background:transparent url("../../icons/cross_grey_small.png") no-repeat scroll 0 0;
1998 2007 cursor:pointer;
1999 2008 height:16px;
2000 2009 position:absolute;
2001 2010 right:5px;
2002 2011 top:5px;
2003 2012 width:16px;
2004 2013 }
2005 2014
2006 2015 div#legend_container table,div#legend_choices table {
2007 2016 width:auto !important;
2008 2017 }
2009 2018
2010 2019 table#permissions_manage {
2011 2020 width:0 !important;
2012 2021 }
2013 2022
2014 2023 table#permissions_manage span.private_repo_msg {
2015 2024 font-size:0.8em;
2016 2025 opacity:0.6px;
2017 2026 }
2018 2027
2019 2028 table#permissions_manage td.private_repo_msg {
2020 2029 font-size:0.8em;
2021 2030 }
2022 2031
2023 2032 table#permissions_manage tr#add_perm_input td {
2024 2033 vertical-align:middle;
2025 2034 }
2026 2035
2027 2036 div.gravatar {
2028 2037 background-color:#FFF;
2029 2038 border:1px solid #D0D0D0;
2030 2039 float:left;
2031 2040 margin-right:0.7em;
2032 2041 padding:2px 2px 0;
2033 2042 }
2034 2043
2035 2044 #header,#content,#footer {
2036 2045 min-width:1024px;
2037 2046 }
2038 2047
2039 2048 #content {
2040 2049 min-height:100%;
2041 2050 clear:both;
2042 2051 overflow:hidden;
2043 2052 padding:14px 30px;
2044 2053 }
2045 2054
2046 2055 #content div.box div.title div.search {
2047 2056 background:url("../../images/title_link.png") no-repeat top left;
2048 2057 border-left:1px solid #316293;
2049 2058 }
2050 2059
2051 2060 #content div.box div.title div.search div.input input {
2052 2061 border:1px solid #316293;
2053 2062 }
2054 2063
2055 2064 #content div.box div.title div.search div.button input.ui-state-default {
2056 2065 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
2057 2066 border:1px solid #316293;
2058 2067 border-left:none;
2059 2068 color:#FFF;
2060 2069 }
2061 2070
2062 2071 #content div.box div.title div.search div.button input.ui-state-hover {
2063 2072 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
2064 2073 border:1px solid #316293;
2065 2074 border-left:none;
2066 2075 color:#FFF;
2067 2076 }
2068 2077
2069 2078 #content div.box div.form div.fields div.field div.highlight .ui-state-default {
2070 2079 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
2071 2080 border-top:1px solid #5c91a4;
2072 2081 border-left:1px solid #2a6f89;
2073 2082 border-right:1px solid #2b7089;
2074 2083 border-bottom:1px solid #1a6480;
2075 2084 color:#fff;
2076 2085 }
2077 2086
2078 2087 #content div.box div.form div.fields div.field div.highlight .ui-state-hover {
2079 2088 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
2080 2089 border-top:1px solid #78acbf;
2081 2090 border-left:1px solid #34819e;
2082 2091 border-right:1px solid #35829f;
2083 2092 border-bottom:1px solid #257897;
2084 2093 color:#fff;
2085 2094 }
2086 2095
2087 2096 ins,div.options a:hover {
2088 2097 text-decoration:none;
2089 2098 }
2090 2099
2091 2100 img,#header #header-inner #quick li a:hover span.normal,#header #header-inner #quick li ul li.last,#content div.box div.form div.fields div.field div.textarea table td table td a,#clone_url {
2092 2101 border:none;
2093 2102 }
2094 2103
2095 2104 img.icon,.right .merge img {
2096 2105 vertical-align:bottom;
2097 2106 }
2098 2107
2099 2108 #header ul#logged-user,#content div.box div.title ul.links,#content div.box div.message div.dismiss,#content div.box div.traffic div.legend ul {
2100 2109 float:right;
2101 2110 margin:0;
2102 2111 padding:0;
2103 2112 }
2104 2113
2105 2114 #header #header-inner #home,#header #header-inner #logo,#content div.box ul.left,#content div.box ol.left,#content div.box div.pagination-left,div#commit_history,div#legend_data,div#legend_container,div#legend_choices {
2106 2115 float:left;
2107 2116 }
2108 2117
2109 2118 #header #header-inner #quick li:hover ul ul,#header #header-inner #quick li:hover ul ul ul,#header #header-inner #quick li:hover ul ul ul ul,#content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow {
2110 2119 display:none;
2111 2120 }
2112 2121
2113 2122 #header #header-inner #quick li:hover ul,#header #header-inner #quick li li:hover ul,#header #header-inner #quick li li li:hover ul,#header #header-inner #quick li li li li:hover ul,#content #left #menu ul.opened,#content #left #menu li ul.expanded {
2114 2123 display:block;
2115 2124 }
2116 2125
2117 2126 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a {
2118 2127 color:#bfe3ff;
2119 2128 }
2120 2129
2121 2130 #content div.box ol.lower-roman,#content div.box ol.upper-roman,#content div.box ol.lower-alpha,#content div.box ol.upper-alpha,#content div.box ol.decimal {
2122 2131 margin:10px 24px 10px 44px;
2123 2132 }
2124 2133
2125 2134 #content div.box div.form,#content div.box div.table,#content div.box div.traffic {
2126 2135 clear:both;
2127 2136 overflow:hidden;
2128 2137 margin:0;
2129 2138 padding:0 20px 10px;
2130 2139 }
2131 2140
2132 2141 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields {
2133 2142 clear:both;
2134 2143 overflow:hidden;
2135 2144 margin:0;
2136 2145 padding:0;
2137 2146 }
2138 2147
2139 2148 #content div.box div.form div.fields div.field div.label span,#login div.form div.fields div.field div.label span,#register div.form div.fields div.field div.label span {
2140 2149 height:1%;
2141 2150 display:block;
2142 2151 color:#363636;
2143 2152 margin:0;
2144 2153 padding:2px 0 0;
2145 2154 }
2146 2155
2147 2156 #content div.box div.form div.fields div.field div.input input.error,#login div.form div.fields div.field div.input input.error,#register div.form div.fields div.field div.input input.error {
2148 2157 background:#FBE3E4;
2149 2158 border-top:1px solid #e1b2b3;
2150 2159 border-left:1px solid #e1b2b3;
2151 2160 border-right:1px solid #FBC2C4;
2152 2161 border-bottom:1px solid #FBC2C4;
2153 2162 }
2154 2163
2155 2164 #content div.box div.form div.fields div.field div.input input.success,#login div.form div.fields div.field div.input input.success,#register div.form div.fields div.field div.input input.success {
2156 2165 background:#E6EFC2;
2157 2166 border-top:1px solid #cebb98;
2158 2167 border-left:1px solid #cebb98;
2159 2168 border-right:1px solid #c6d880;
2160 2169 border-bottom:1px solid #c6d880;
2161 2170 }
2162 2171
2163 2172 #content div.box-left div.form div.fields div.field div.textarea,#content div.box-right div.form div.fields div.field div.textarea,#content div.box div.form div.fields div.field div.select select,#content div.box table th.selected input,#content div.box table td.selected input {
2164 2173 margin:0;
2165 2174 }
2166 2175
2167 2176 #content div.box-left div.form div.fields div.field div.select,#content div.box-left div.form div.fields div.field div.checkboxes,#content div.box-left div.form div.fields div.field div.radios,#content div.box-right div.form div.fields div.field div.select,#content div.box-right div.form div.fields div.field div.checkboxes,#content div.box-right div.form div.fields div.field div.radios{
2168 2177 margin:0 0 0 0px !important;
2169 2178 padding:0;
2170 2179 }
2171 2180
2172 2181 #content div.box div.form div.fields div.field div.select,#content div.box div.form div.fields div.field div.checkboxes,#content div.box div.form div.fields div.field div.radios {
2173 2182 margin:0 0 0 200px;
2174 2183 padding:0;
2175 2184 }
2176 2185
2177 2186
2178 2187 #content div.box div.form div.fields div.field div.select a:hover,#content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover,#content div.box div.action a:hover {
2179 2188 color:#000;
2180 2189 text-decoration:none;
2181 2190 }
2182 2191
2183 2192 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus {
2184 2193 border:1px solid #666;
2185 2194 }
2186 2195
2187 2196 #content div.box div.form div.fields div.field div.checkboxes div.checkbox,#content div.box div.form div.fields div.field div.radios div.radio {
2188 2197 clear:both;
2189 2198 overflow:hidden;
2190 2199 margin:0;
2191 2200 padding:8px 0 2px;
2192 2201 }
2193 2202
2194 2203 #content div.box div.form div.fields div.field div.checkboxes div.checkbox input,#content div.box div.form div.fields div.field div.radios div.radio input {
2195 2204 float:left;
2196 2205 margin:0;
2197 2206 }
2198 2207
2199 2208 #content div.box div.form div.fields div.field div.checkboxes div.checkbox label,#content div.box div.form div.fields div.field div.radios div.radio label {
2200 2209 height:1%;
2201 2210 display:block;
2202 2211 float:left;
2203 2212 margin:2px 0 0 4px;
2204 2213 }
2205 2214
2206 2215 div.form div.fields div.field div.button input,#content div.box div.form div.fields div.buttons input,div.form div.fields div.buttons input,#content div.box div.action div.button input {
2207 2216 color:#000;
2208 2217 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
2209 2218 font-size:11px;
2210 2219 font-weight:700;
2211 2220 margin:0;
2212 2221 }
2213 2222
2214 2223 div.form div.fields div.field div.button .ui-state-default,#content div.box div.form div.fields div.buttons input.ui-state-default {
2215 2224 background:#e5e3e3 url("../images/button.png") repeat-x;
2216 2225 border-top:1px solid #DDD;
2217 2226 border-left:1px solid #c6c6c6;
2218 2227 border-right:1px solid #DDD;
2219 2228 border-bottom:1px solid #c6c6c6;
2220 2229 color:#515151;
2221 2230 outline:none;
2222 2231 margin:0;
2223 2232 padding:6px 12px;
2224 2233 }
2225 2234
2226 2235 div.form div.fields div.field div.button .ui-state-hover,#content div.box div.form div.fields div.buttons input.ui-state-hover {
2227 2236 background:#b4b4b4 url("../images/button_selected.png") repeat-x;
2228 2237 border-top:1px solid #ccc;
2229 2238 border-left:1px solid #bebebe;
2230 2239 border-right:1px solid #b1b1b1;
2231 2240 border-bottom:1px solid #afafaf;
2232 2241 color:#515151;
2233 2242 outline:none;
2234 2243 margin:0;
2235 2244 padding:6px 12px;
2236 2245 }
2237 2246
2238 2247 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight {
2239 2248 display:inline;
2240 2249 }
2241 2250
2242 2251 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons {
2243 2252 margin:10px 0 0 200px;
2244 2253 padding:0;
2245 2254 }
2246 2255
2247 2256 #content div.box-left div.form div.fields div.buttons,#content div.box-right div.form div.fields div.buttons,div.box-left div.form div.fields div.buttons,div.box-right div.form div.fields div.buttons {
2248 2257 margin:10px 0 0;
2249 2258 }
2250 2259
2251 2260 #content div.box table td.user,#content div.box table td.address {
2252 2261 width:10%;
2253 2262 text-align:center;
2254 2263 }
2255 2264
2256 2265 #content div.box div.action div.button,#login div.form div.fields div.field div.input div.link,#register div.form div.fields div.field div.input div.link {
2257 2266 text-align:right;
2258 2267 margin:6px 0 0;
2259 2268 padding:0;
2260 2269 }
2261 2270
2262 2271 #content div.box div.action div.button input.ui-state-default,#login div.form div.fields div.buttons input.ui-state-default,#register div.form div.fields div.buttons input.ui-state-default {
2263 2272 background:#e5e3e3 url("../images/button.png") repeat-x;
2264 2273 border-top:1px solid #DDD;
2265 2274 border-left:1px solid #c6c6c6;
2266 2275 border-right:1px solid #DDD;
2267 2276 border-bottom:1px solid #c6c6c6;
2268 2277 color:#515151;
2269 2278 margin:0;
2270 2279 padding:6px 12px;
2271 2280 }
2272 2281
2273 2282 #content div.box div.action div.button input.ui-state-hover,#login div.form div.fields div.buttons input.ui-state-hover,#register div.form div.fields div.buttons input.ui-state-hover {
2274 2283 background:#b4b4b4 url("../images/button_selected.png") repeat-x;
2275 2284 border-top:1px solid #ccc;
2276 2285 border-left:1px solid #bebebe;
2277 2286 border-right:1px solid #b1b1b1;
2278 2287 border-bottom:1px solid #afafaf;
2279 2288 color:#515151;
2280 2289 margin:0;
2281 2290 padding:6px 12px;
2282 2291 }
2283 2292
2284 2293 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results {
2285 2294 text-align:left;
2286 2295 float:left;
2287 2296 margin:0;
2288 2297 padding:0;
2289 2298 }
2290 2299
2291 2300 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span {
2292 2301 height:1%;
2293 2302 display:block;
2294 2303 float:left;
2295 2304 background:#ebebeb url("../images/pager.png") repeat-x;
2296 2305 border-top:1px solid #dedede;
2297 2306 border-left:1px solid #cfcfcf;
2298 2307 border-right:1px solid #c4c4c4;
2299 2308 border-bottom:1px solid #c4c4c4;
2300 2309 color:#4A4A4A;
2301 2310 font-weight:700;
2302 2311 margin:0;
2303 2312 padding:6px 8px;
2304 2313 }
2305 2314
2306 2315 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled {
2307 2316 color:#B4B4B4;
2308 2317 padding:6px;
2309 2318 }
2310 2319
2311 2320 #login,#register {
2312 2321 width:520px;
2313 2322 margin:10% auto 0;
2314 2323 padding:0;
2315 2324 }
2316 2325
2317 2326 #login div.color,#register div.color {
2318 2327 clear:both;
2319 2328 overflow:hidden;
2320 2329 background:#FFF;
2321 2330 margin:10px auto 0;
2322 2331 padding:3px 3px 3px 0;
2323 2332 }
2324 2333
2325 2334 #login div.color a,#register div.color a {
2326 2335 width:20px;
2327 2336 height:20px;
2328 2337 display:block;
2329 2338 float:left;
2330 2339 margin:0 0 0 3px;
2331 2340 padding:0;
2332 2341 }
2333 2342
2334 2343 #login div.title h5,#register div.title h5 {
2335 2344 color:#fff;
2336 2345 margin:10px;
2337 2346 padding:0;
2338 2347 }
2339 2348
2340 2349 #login div.form div.fields div.field,#register div.form div.fields div.field {
2341 2350 clear:both;
2342 2351 overflow:hidden;
2343 2352 margin:0;
2344 2353 padding:0 0 10px;
2345 2354 }
2346 2355
2347 2356 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message {
2348 2357 height:1%;
2349 2358 display:block;
2350 2359 color:red;
2351 2360 margin:8px 0 0;
2352 2361 padding:0;
2353 2362 max-width: 320px;
2354 2363 }
2355 2364
2356 2365 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label {
2357 2366 color:#000;
2358 2367 font-weight:700;
2359 2368 }
2360 2369
2361 2370 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input {
2362 2371 float:left;
2363 2372 margin:0;
2364 2373 padding:0;
2365 2374 }
2366 2375
2367 2376 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox {
2368 2377 margin:0 0 0 184px;
2369 2378 padding:0;
2370 2379 }
2371 2380
2372 2381 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label {
2373 2382 color:#565656;
2374 2383 font-weight:700;
2375 2384 }
2376 2385
2377 2386 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input {
2378 2387 color:#000;
2379 2388 font-size:1em;
2380 2389 font-weight:700;
2381 2390 font-family:Verdana, Helvetica, Sans-Serif;
2382 2391 margin:0;
2383 2392 }
2384 2393
2385 2394 #changeset_content .container .wrapper,#graph_content .container .wrapper {
2386 2395 width:600px;
2387 2396 }
2388 2397
2389 2398 #changeset_content .container .left,#graph_content .container .left {
2390 2399 float:left;
2391 2400 width:70%;
2392 2401 padding-left:5px;
2393 2402 }
2394 2403
2395 2404 #changeset_content .container .left .date,.ac .match {
2396 2405 font-weight:700;
2397 2406 padding-top: 5px;
2398 2407 padding-bottom:5px;
2399 2408 }
2400 2409
2401 2410 div#legend_container table td,div#legend_choices table td {
2402 2411 border:none !important;
2403 2412 height:20px !important;
2404 2413 padding:0 !important;
2405 2414 }
2406 2415
2407 2416 #q_filter{
2408 2417 border:0 none;
2409 2418 color:#AAAAAA;
2410 2419 margin-bottom:-4px;
2411 2420 margin-top:-4px;
2412 2421 padding-left:3px;
2413 2422 }
2414 2423
@@ -1,80 +1,98
1 1 <%def name="file_class(node)">
2 2 %if node.is_file():
3 3 <%return "browser-file" %>
4 4 %else:
5 5 <%return "browser-dir"%>
6 6 %endif
7 7 </%def>
8 8 <div id="body" class="browserblock">
9 9 <div class="browser-header">
10 10 ${h.form(h.url.current())}
11 11 <div class="info_box">
12 12 <span >${_('view')}@rev</span>
13 13 <a href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
14 14 ${h.text('at_rev',value=c.changeset.revision,size=3)}
15 15 <a href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
16 16 ${h.submit('view','view')}
17 17 </div>
18 18 ${h.end_form()}
19 19 </div>
20 <div class="browser-branch">
21 ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
22 <label>${_('follow current branch')}</label>
23 <script type="text/javascript">
24 YUE.on('stay_at_branch','click',function(e){
25 if(e.target.checked){
26 var uri = "${h.url.current(branch='__BRANCH__')}"
27 uri = uri.replace('__BRANCH__',e.target.value);
28 window.location = uri;
29 }
30 else{
31 window.location = "${h.url.current()}";
32 }
33
34 })
35 </script>
36 </div>
37 <div style="clear:both"></div>
20 38 <div class="browser-body">
21 39 <table class="code-browser">
22 40 <thead>
23 41 <tr>
24 42 <th>${_('Name')}</th>
25 43 <th>${_('Size')}</th>
26 44 <th>${_('Mimetype')}</th>
27 45 <th>${_('Revision')}</th>
28 46 <th>${_('Last modified')}</th>
29 47 <th>${_('Last commiter')}</th>
30 48 </tr>
31 49 </thead>
32 50
33 51 %if c.files_list.parent:
34 52 <tr class="parity0">
35 53 <td>
36 54 ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.files_list.parent.path),class_="browser-dir")}
37 55 </td>
38 56 <td></td>
39 57 <td></td>
40 58 <td></td>
41 59 <td></td>
42 60 <td></td>
43 61 </tr>
44 62 %endif
45 63
46 64 %for cnt,node in enumerate(c.files_list):
47 65 <tr class="parity${cnt+1%2}">
48 66 <td>
49 67 ${h.link_to(node.name,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=node.path),class_=file_class(node))}
50 68 </td>
51 69 <td>
52 70 %if node.is_file():
53 71 ${h.format_byte_size(node.size,binary=True)}
54 72 %endif
55 73 </td>
56 74 <td>
57 75 %if node.is_file():
58 76 ${node.mimetype}
59 77 %endif
60 78 </td>
61 79 <td>
62 80 %if node.is_file():
63 81 <span class="tooltip" tooltip_title="${node.last_changeset.raw_id}">${node.last_changeset.revision}</span>
64 82 %endif
65 83 </td>
66 84 <td>
67 85 %if node.is_file():
68 86 ${node.last_changeset.date} - ${h.age(node.last_changeset.date)}
69 87 %endif
70 88 </td>
71 89 <td>
72 90 %if node.is_file():
73 91 ${node.last_changeset.author}
74 92 %endif
75 93 </td>
76 94 </tr>
77 95 %endfor
78 96 </table>
79 97 </div>
80 98 </div> No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now