##// END OF EJS Templates
removed obsolete _static flag from url, and fixed urls in webhelpers
marcink -
r1050:cabe887a beta
parent child Browse files
Show More
@@ -1,589 +1,592
1 1 """Helper functions
2 2
3 3 Consists of functions to typically be used within templates, but also
4 4 available to Controllers. This module is available to both as 'h'.
5 5 """
6 6 import random
7 7 import hashlib
8 8 import StringIO
9 9 from pygments.formatters import HtmlFormatter
10 10 from pygments import highlight as code_highlight
11 11 from pylons import url
12 12 from pylons.i18n.translation import _, ungettext
13 13 from vcs.utils.annotate import annotate_highlight
14 14 from rhodecode.lib.utils import repo_name_slug
15 15
16 16 from webhelpers.html import literal, HTML, escape
17 17 from webhelpers.html.tools import *
18 18 from webhelpers.html.builder import make_tag
19 19 from webhelpers.html.tags import auto_discovery_link, checkbox, css_classes, \
20 20 end_form, file, form, hidden, image, javascript_link, link_to, link_to_if, \
21 21 link_to_unless, ol, required_legend, select, stylesheet_link, submit, text, \
22 22 password, textarea, title, ul, xml_declaration, radio
23 23 from webhelpers.html.tools import auto_link, button_to, highlight, js_obfuscate, \
24 24 mail_to, strip_links, strip_tags, tag_re
25 25 from webhelpers.number import format_byte_size, format_bit_size
26 26 from webhelpers.pylonslib import Flash as _Flash
27 27 from webhelpers.pylonslib.secure_form import secure_form
28 28 from webhelpers.text import chop_at, collapse, convert_accented_entities, \
29 29 convert_misc_entities, lchop, plural, rchop, remove_formatting, \
30 30 replace_whitespace, urlify, truncate, wrap_paragraphs
31 31 from webhelpers.date import time_ago_in_words
32 32
33 33 from webhelpers.html.tags import _set_input_attrs, _set_id_attr, \
34 34 convert_boolean_attrs, NotGiven
35 35
36 36 def _reset(name, value=None, id=NotGiven, type="reset", **attrs):
37 37 """Reset button
38 38 """
39 39 _set_input_attrs(attrs, type, name, value)
40 40 _set_id_attr(attrs, id, name)
41 41 convert_boolean_attrs(attrs, ["disabled"])
42 42 return HTML.input(**attrs)
43 43
44 44 reset = _reset
45 45
46 46
47 47 def get_token():
48 48 """Return the current authentication token, creating one if one doesn't
49 49 already exist.
50 50 """
51 51 token_key = "_authentication_token"
52 52 from pylons import session
53 53 if not token_key in session:
54 54 try:
55 55 token = hashlib.sha1(str(random.getrandbits(128))).hexdigest()
56 56 except AttributeError: # Python < 2.4
57 57 token = hashlib.sha1(str(random.randrange(2 ** 128))).hexdigest()
58 58 session[token_key] = token
59 59 if hasattr(session, 'save'):
60 60 session.save()
61 61 return session[token_key]
62 62
63 63 class _GetError(object):
64 64 """Get error from form_errors, and represent it as span wrapped error
65 65 message
66 66
67 67 :param field_name: field to fetch errors for
68 68 :param form_errors: form errors dict
69 69 """
70 70
71 71 def __call__(self, field_name, form_errors):
72 72 tmpl = """<span class="error_msg">%s</span>"""
73 73 if form_errors and form_errors.has_key(field_name):
74 74 return literal(tmpl % form_errors.get(field_name))
75 75
76 76 get_error = _GetError()
77 77
78 78 class _ToolTip(object):
79 79
80 80 def __call__(self, tooltip_title, trim_at=50):
81 81 """Special function just to wrap our text into nice formatted
82 82 autowrapped text
83 83
84 84 :param tooltip_title:
85 85 """
86 86
87 87 return wrap_paragraphs(escape(tooltip_title), trim_at)\
88 88 .replace('\n', '<br/>')
89 89
90 90 def activate(self):
91 91 """Adds tooltip mechanism to the given Html all tooltips have to have
92 92 set class `tooltip` and set attribute `tooltip_title`.
93 93 Then a tooltip will be generated based on that. All with yui js tooltip
94 94 """
95 95
96 96 js = '''
97 97 YAHOO.util.Event.onDOMReady(function(){
98 98 function toolTipsId(){
99 99 var ids = [];
100 100 var tts = YAHOO.util.Dom.getElementsByClassName('tooltip');
101 101
102 102 for (var i = 0; i < tts.length; i++) {
103 103 //if element doesn't not have and id autogenerate one for tooltip
104 104
105 105 if (!tts[i].id){
106 106 tts[i].id='tt'+i*100;
107 107 }
108 108 ids.push(tts[i].id);
109 109 }
110 110 return ids
111 111 };
112 112 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
113 113 context: toolTipsId(),
114 114 monitorresize:false,
115 115 xyoffset :[0,0],
116 116 autodismissdelay:300000,
117 117 hidedelay:5,
118 118 showdelay:20,
119 119 });
120 120
121 121 // Set the text for the tooltip just before we display it. Lazy method
122 122 myToolTips.contextTriggerEvent.subscribe(
123 123 function(type, args) {
124 124
125 125 var context = args[0];
126 126
127 127 //positioning of tooltip
128 128 var tt_w = this.element.clientWidth;//tooltip width
129 129 var tt_h = this.element.clientHeight;//tooltip height
130 130
131 131 var context_w = context.offsetWidth;
132 132 var context_h = context.offsetHeight;
133 133
134 134 var pos_x = YAHOO.util.Dom.getX(context);
135 135 var pos_y = YAHOO.util.Dom.getY(context);
136 136
137 137 var display_strategy = 'right';
138 138 var xy_pos = [0,0];
139 139 switch (display_strategy){
140 140
141 141 case 'top':
142 142 var cur_x = (pos_x+context_w/2)-(tt_w/2);
143 143 var cur_y = (pos_y-tt_h-4);
144 144 xy_pos = [cur_x,cur_y];
145 145 break;
146 146 case 'bottom':
147 147 var cur_x = (pos_x+context_w/2)-(tt_w/2);
148 148 var cur_y = pos_y+context_h+4;
149 149 xy_pos = [cur_x,cur_y];
150 150 break;
151 151 case 'left':
152 152 var cur_x = (pos_x-tt_w-4);
153 153 var cur_y = pos_y-((tt_h/2)-context_h/2);
154 154 xy_pos = [cur_x,cur_y];
155 155 break;
156 156 case 'right':
157 157 var cur_x = (pos_x+context_w+4);
158 158 var cur_y = pos_y-((tt_h/2)-context_h/2);
159 159 xy_pos = [cur_x,cur_y];
160 160 break;
161 161 default:
162 162 var cur_x = (pos_x+context_w/2)-(tt_w/2);
163 163 var cur_y = pos_y-tt_h-4;
164 164 xy_pos = [cur_x,cur_y];
165 165 break;
166 166
167 167 }
168 168
169 169 this.cfg.setProperty("xy",xy_pos);
170 170
171 171 });
172 172
173 173 //Mouse out
174 174 myToolTips.contextMouseOutEvent.subscribe(
175 175 function(type, args) {
176 176 var context = args[0];
177 177
178 178 });
179 179 });
180 180 '''
181 181 return literal(js)
182 182
183 183 tooltip = _ToolTip()
184 184
185 185 class _FilesBreadCrumbs(object):
186 186
187 187 def __call__(self, repo_name, rev, paths):
188 188 if isinstance(paths, str):
189 189 paths = paths.decode('utf-8')
190 190 url_l = [link_to(repo_name, url('files_home',
191 191 repo_name=repo_name,
192 192 revision=rev, f_path=''))]
193 193 paths_l = paths.split('/')
194 194 for cnt, p in enumerate(paths_l):
195 195 if p != '':
196 196 url_l.append(link_to(p, url('files_home',
197 197 repo_name=repo_name,
198 198 revision=rev,
199 199 f_path='/'.join(paths_l[:cnt + 1]))))
200 200
201 201 return literal('/'.join(url_l))
202 202
203 203 files_breadcrumbs = _FilesBreadCrumbs()
204 204
205 205 class CodeHtmlFormatter(HtmlFormatter):
206 206 """My code Html Formatter for source codes
207 207 """
208 208
209 209 def wrap(self, source, outfile):
210 210 return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
211 211
212 212 def _wrap_code(self, source):
213 213 for cnt, it in enumerate(source):
214 214 i, t = it
215 215 t = '<div id="L%s">%s</div>' % (cnt + 1, t)
216 216 yield i, t
217 217
218 218 def _wrap_tablelinenos(self, inner):
219 219 dummyoutfile = StringIO.StringIO()
220 220 lncount = 0
221 221 for t, line in inner:
222 222 if t:
223 223 lncount += 1
224 224 dummyoutfile.write(line)
225 225
226 226 fl = self.linenostart
227 227 mw = len(str(lncount + fl - 1))
228 228 sp = self.linenospecial
229 229 st = self.linenostep
230 230 la = self.lineanchors
231 231 aln = self.anchorlinenos
232 232 nocls = self.noclasses
233 233 if sp:
234 234 lines = []
235 235
236 236 for i in range(fl, fl + lncount):
237 237 if i % st == 0:
238 238 if i % sp == 0:
239 239 if aln:
240 240 lines.append('<a href="#%s%d" class="special">%*d</a>' %
241 241 (la, i, mw, i))
242 242 else:
243 243 lines.append('<span class="special">%*d</span>' % (mw, i))
244 244 else:
245 245 if aln:
246 246 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i))
247 247 else:
248 248 lines.append('%*d' % (mw, i))
249 249 else:
250 250 lines.append('')
251 251 ls = '\n'.join(lines)
252 252 else:
253 253 lines = []
254 254 for i in range(fl, fl + lncount):
255 255 if i % st == 0:
256 256 if aln:
257 257 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i))
258 258 else:
259 259 lines.append('%*d' % (mw, i))
260 260 else:
261 261 lines.append('')
262 262 ls = '\n'.join(lines)
263 263
264 264 # in case you wonder about the seemingly redundant <div> here: since the
265 265 # content in the other cell also is wrapped in a div, some browsers in
266 266 # some configurations seem to mess up the formatting...
267 267 if nocls:
268 268 yield 0, ('<table class="%stable">' % self.cssclass +
269 269 '<tr><td><div class="linenodiv" '
270 270 'style="background-color: #f0f0f0; padding-right: 10px">'
271 271 '<pre style="line-height: 125%">' +
272 272 ls + '</pre></div></td><td class="code">')
273 273 else:
274 274 yield 0, ('<table class="%stable">' % self.cssclass +
275 275 '<tr><td class="linenos"><div class="linenodiv"><pre>' +
276 276 ls + '</pre></div></td><td class="code">')
277 277 yield 0, dummyoutfile.getvalue()
278 278 yield 0, '</td></tr></table>'
279 279
280 280
281 281 def pygmentize(filenode, **kwargs):
282 282 """pygmentize function using pygments
283 283
284 284 :param filenode:
285 285 """
286 286
287 287 return literal(code_highlight(filenode.content,
288 288 filenode.lexer, CodeHtmlFormatter(**kwargs)))
289 289
290 290 def pygmentize_annotation(filenode, **kwargs):
291 291 """pygmentize function for annotation
292 292
293 293 :param filenode:
294 294 """
295 295
296 296 color_dict = {}
297 297 def gen_color(n=10000):
298 298 """generator for getting n of evenly distributed colors using
299 299 hsv color and golden ratio. It always return same order of colors
300 300
301 301 :returns: RGB tuple
302 302 """
303 303 import colorsys
304 304 golden_ratio = 0.618033988749895
305 305 h = 0.22717784590367374
306 306
307 307 for c in xrange(n):
308 308 h += golden_ratio
309 309 h %= 1
310 310 HSV_tuple = [h, 0.95, 0.95]
311 311 RGB_tuple = colorsys.hsv_to_rgb(*HSV_tuple)
312 312 yield map(lambda x:str(int(x * 256)), RGB_tuple)
313 313
314 314 cgenerator = gen_color()
315 315
316 316 def get_color_string(cs):
317 317 if color_dict.has_key(cs):
318 318 col = color_dict[cs]
319 319 else:
320 320 col = color_dict[cs] = cgenerator.next()
321 321 return "color: rgb(%s)! important;" % (', '.join(col))
322 322
323 323 def url_func(changeset):
324 324 tooltip_html = "<div style='font-size:0.8em'><b>Author:</b>" + \
325 325 " %s<br/><b>Date:</b> %s</b><br/><b>Message:</b> %s<br/></div>"
326 326
327 327 tooltip_html = tooltip_html % (changeset.author,
328 328 changeset.date,
329 329 tooltip(changeset.message))
330 330 lnk_format = '%5s:%s' % ('r%s' % changeset.revision,
331 331 short_id(changeset.raw_id))
332 332 uri = link_to(
333 333 lnk_format,
334 334 url('changeset_home', repo_name=changeset.repository.name,
335 335 revision=changeset.raw_id),
336 336 style=get_color_string(changeset.raw_id),
337 337 class_='tooltip',
338 338 title=tooltip_html
339 339 )
340 340
341 341 uri += '\n'
342 342 return uri
343 343 return literal(annotate_highlight(filenode, url_func, **kwargs))
344 344
345 345 def get_changeset_safe(repo, rev):
346 346 from vcs.backends.base import BaseRepository
347 347 from vcs.exceptions import RepositoryError
348 348 if not isinstance(repo, BaseRepository):
349 349 raise Exception('You must pass an Repository '
350 350 'object as first argument got %s', type(repo))
351 351
352 352 try:
353 353 cs = repo.get_changeset(rev)
354 354 except RepositoryError:
355 355 from rhodecode.lib.utils import EmptyChangeset
356 356 cs = EmptyChangeset()
357 357 return cs
358 358
359 359
360 360 def is_following_repo(repo_name, user_id):
361 361 from rhodecode.model.scm import ScmModel
362 362 return ScmModel().is_following_repo(repo_name, user_id)
363 363
364 364 flash = _Flash()
365 365
366 366
367 367 #==============================================================================
368 368 # MERCURIAL FILTERS available via h.
369 369 #==============================================================================
370 370 from mercurial import util
371 371 from mercurial.templatefilters import person as _person
372 372
373 373 def _age(curdate):
374 374 """turns a datetime into an age string."""
375 375
376 376 if not curdate:
377 377 return ''
378 378
379 379 from datetime import timedelta, datetime
380 380
381 381 agescales = [("year", 3600 * 24 * 365),
382 382 ("month", 3600 * 24 * 30),
383 383 ("day", 3600 * 24),
384 384 ("hour", 3600),
385 385 ("minute", 60),
386 386 ("second", 1), ]
387 387
388 388 age = datetime.now() - curdate
389 389 age_seconds = (age.days * agescales[2][1]) + age.seconds
390 390 pos = 1
391 391 for scale in agescales:
392 392 if scale[1] <= age_seconds:
393 393 if pos == 6:pos = 5
394 394 return time_ago_in_words(curdate, agescales[pos][0]) + ' ' + _('ago')
395 395 pos += 1
396 396
397 397 return _('just now')
398 398
399 399 age = lambda x:_age(x)
400 400 capitalize = lambda x: x.capitalize()
401 401 email = util.email
402 402 email_or_none = lambda x: util.email(x) if util.email(x) != x else None
403 403 person = lambda x: _person(x)
404 404 short_id = lambda x: x[:12]
405 405
406 406
407 407 def bool2icon(value):
408 408 """Returns True/False values represented as small html image of true/false
409 409 icons
410 410
411 411 :param value: bool value
412 412 """
413 413
414 414 if value is True:
415 return HTML.tag('img', src="/images/icons/accept.png", alt=_('True'))
415 return HTML.tag('img', src=url("/images/icons/accept.png"),
416 alt=_('True'))
416 417
417 418 if value is False:
418 return HTML.tag('img', src="/images/icons/cancel.png", alt=_('False'))
419 return HTML.tag('img', src=url("/images/icons/cancel.png"),
420 alt=_('False'))
419 421
420 422 return value
421 423
422 424
423 425 def action_parser(user_log):
424 426 """This helper will map the specified string action into translated
425 427 fancy names with icons and links
426 428
427 429 :param user_log: user log instance
428 430 """
429 431
430 432 action = user_log.action
431 433 action_params = ' '
432 434
433 435 x = action.split(':')
434 436
435 437 if len(x) > 1:
436 438 action, action_params = x
437 439
438 440 def get_cs_links():
439 441 revs_limit = 5 #display this amount always
440 442 revs_top_limit = 50 #show upto this amount of changesets hidden
441 443 revs = action_params.split(',')
442 444 repo_name = user_log.repository.repo_name
443 445
444 446 from rhodecode.model.scm import ScmModel
445 447 repo, dbrepo = ScmModel().get(repo_name, retval='repo',
446 448 invalidation_list=[])
447 449
448 450 message = lambda rev: get_changeset_safe(repo, rev).message
449 451
450 452 cs_links = " " + ', '.join ([link_to(rev,
451 453 url('changeset_home',
452 454 repo_name=repo_name,
453 455 revision=rev), title=tooltip(message(rev)),
454 456 class_='tooltip') for rev in revs[:revs_limit] ])
455 457
456 458 compare_view = (' <div class="compare_view tooltip" title="%s">'
457 459 '<a href="%s">%s</a> '
458 460 '</div>' % (_('Show all combined changesets %s->%s' \
459 461 % (revs[0], revs[-1])),
460 462 url('changeset_home', repo_name=repo_name,
461 463 revision='%s...%s' % (revs[0], revs[-1])
462 464 ),
463 465 _('compare view'))
464 466 )
465 467
466 468 if len(revs) > revs_limit:
467 469 uniq_id = revs[0]
468 470 html_tmpl = ('<span> %s '
469 471 '<a class="show_more" id="_%s" href="#more">%s</a> '
470 472 '%s</span>')
471 473 cs_links += html_tmpl % (_('and'), uniq_id, _('%s more') \
472 474 % (len(revs) - revs_limit),
473 475 _('revisions'))
474 476
475 477 html_tmpl = '<span id="%s" style="display:none"> %s </span>'
476 478 cs_links += html_tmpl % (uniq_id, ', '.join([link_to(rev,
477 479 url('changeset_home',
478 480 repo_name=repo_name, revision=rev),
479 481 title=message(rev), class_='tooltip')
480 482 for rev in revs[revs_limit:revs_top_limit]]))
481 483 cs_links += _(' into')
482 484 if len(revs) > 1:
483 485 cs_links += compare_view
484 486 return cs_links
485 487
486 488 def get_fork_name():
487 489 repo_name = action_params
488 490 return str(link_to(action_params, url('summary_home',
489 491 repo_name=repo_name,)))
490 492
491 493 map = {'user_deleted_repo':(_('[deleted] repository'), None),
492 494 'user_created_repo':(_('[created] repository'), None),
493 495 'user_forked_repo':(_('[forked] repository as:'), get_fork_name),
494 496 'user_updated_repo':(_('[updated] repository'), None),
495 497 'admin_deleted_repo':(_('[delete] repository'), None),
496 498 'admin_created_repo':(_('[created] repository'), None),
497 499 'admin_forked_repo':(_('[forked] repository'), None),
498 500 'admin_updated_repo':(_('[updated] repository'), None),
499 501 'push':(_('[pushed]'), get_cs_links),
500 502 'pull':(_('[pulled]'), None),
501 503 'started_following_repo':(_('[started following] repository'), None),
502 504 'stopped_following_repo':(_('[stopped following] repository'), None),
503 505 }
504 506
505 507 action_str = map.get(action, action)
506 508 action = action_str[0].replace('[', '<span class="journal_highlight">')\
507 509 .replace(']', '</span>')
508 510 if action_str[1] is not None:
509 511 action = action + " " + action_str[1]()
510 512
511 513 return literal(action)
512 514
513 515 def action_parser_icon(user_log):
514 516 action = user_log.action
515 517 action_params = None
516 518 x = action.split(':')
517 519
518 520 if len(x) > 1:
519 521 action, action_params = x
520 522
521 tmpl = """<img src="/images/icons/%s" alt="%s"/>"""
523 tmpl = """<img src="%s/%s" alt="%s"/>"""
522 524 map = {'user_deleted_repo':'database_delete.png',
523 525 'user_created_repo':'database_add.png',
524 526 'user_forked_repo':'arrow_divide.png',
525 527 'user_updated_repo':'database_edit.png',
526 528 'admin_deleted_repo':'database_delete.png',
527 529 'admin_created_repo':'database_add.png',
528 530 'admin_forked_repo':'arrow_divide.png',
529 531 'admin_updated_repo':'database_edit.png',
530 532 'push':'script_add.png',
531 533 'pull':'down_16.png',
532 534 'started_following_repo':'heart_add.png',
533 535 'stopped_following_repo':'heart_delete.png',
534 536 }
535 return literal(tmpl % (map.get(action, action), action))
537 return literal(tmpl % ((url('/images/icons/')),
538 map.get(action, action), action))
536 539
537 540
538 541 #==============================================================================
539 542 # PERMS
540 543 #==============================================================================
541 544 from rhodecode.lib.auth import HasPermissionAny, HasPermissionAll, \
542 545 HasRepoPermissionAny, HasRepoPermissionAll
543 546
544 547 #==============================================================================
545 548 # GRAVATAR URL
546 549 #==============================================================================
547 550 import hashlib
548 551 import urllib
549 552 from pylons import request
550 553
551 554 def gravatar_url(email_address, size=30):
552 555 ssl_enabled = 'https' == request.environ.get('wsgi.url_scheme')
553 556 default = 'identicon'
554 557 baseurl_nossl = "http://www.gravatar.com/avatar/"
555 558 baseurl_ssl = "https://secure.gravatar.com/avatar/"
556 559 baseurl = baseurl_ssl if ssl_enabled else baseurl_nossl
557 560
558 561
559 562 # construct the url
560 563 gravatar_url = baseurl + hashlib.md5(email_address.lower()).hexdigest() + "?"
561 564 gravatar_url += urllib.urlencode({'d':default, 's':str(size)})
562 565
563 566 return gravatar_url
564 567
565 568 def safe_unicode(str):
566 569 """safe unicode function. In case of UnicodeDecode error we try to return
567 570 unicode with errors replace, if this failes we return unicode with
568 571 string_escape decoding """
569 572
570 573 try:
571 574 u_str = unicode(str)
572 575 except UnicodeDecodeError:
573 576 try:
574 577 u_str = unicode(str, 'utf-8', 'replace')
575 578 except UnicodeDecodeError:
576 579 #incase we have a decode error just represent as byte string
577 580 u_str = unicode(str(str).encode('string_escape'))
578 581
579 582 return u_str
580 583
581 584 def changed_tooltip(nodes):
582 585 if nodes:
583 586 pref = ': <br/> '
584 587 suf = ''
585 588 if len(nodes) > 30:
586 589 suf = '<br/>' + _(' and %s more') % (len(nodes) - 30)
587 590 return literal(pref + '<br/> '.join([x.path for x in nodes[:30]]) + suf)
588 591 else:
589 592 return ': ' + _('No Files')
@@ -1,2481 +1,2481
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 background:#369 url("../../images/quick_l.png") no-repeat top left;
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 background:url("../../images/quick_r.png") no-repeat top right;
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 background:url("../../images/quick_l.png") no-repeat top left;
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 background:url("../../images/quick_l.png") no-repeat top left;
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 background:#4e4e4e url("../../images/quick_l_selected.png") no-repeat top left;
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 background:url("../../images/quick_r_selected.png") no-repeat top right;
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 background:url("../../images/quick_l_selected.png") no-repeat top left;
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.groups,#header #header-inner #quick li ul li a.groups:hover {
482 482 background:#FFF url("../images/icons/group_edit.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.settings,#header #header-inner #quick li ul li a.settings:hover {
489 489 background:#FFF url("../images/icons/cog.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.permissions,#header #header-inner #quick li ul li a.permissions:hover {
496 496 background:#FFF url("../images/icons/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.ldap,#header #header-inner #quick li ul li a.ldap:hover {
503 503 background:#FFF url("../images/icons/server_key.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.fork,#header #header-inner #quick li ul li a.fork:hover {
510 510 background:#FFF url("../images/icons/arrow_divide.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.search,#header #header-inner #quick li ul li a.search:hover {
517 517 background:#FFF url("../images/icons/search_16.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.delete,#header #header-inner #quick li ul li a.delete:hover {
524 524 background:#FFF url("../images/icons/delete.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.branches,#header #header-inner #quick li ul li a.branches:hover {
531 531 background:#FFF url("../images/icons/arrow_branch.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.tags,#header #header-inner #quick li ul li a.tags:hover {
538 538 background:#FFF url("../images/icons/tag_blue.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 #header #header-inner #quick li ul li a.admin,#header #header-inner #quick li ul li a.admin:hover {
545 545 background:#FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
546 546 width:167px;
547 547 margin:0;
548 548 padding:12px 9px 7px 24px;
549 549 }
550 550
551 551 #content #left {
552 552 left:0;
553 553 width:280px;
554 554 position:absolute;
555 555 }
556 556
557 557 #content #right {
558 558 margin:0 60px 10px 290px;
559 559 }
560 560
561 561 #content div.box {
562 562 clear:both;
563 563 overflow:hidden;
564 564 background:#fff;
565 565 margin:0 0 10px;
566 566 padding:0 0 10px;
567 567 }
568 568
569 569 #content div.box-left {
570 570 width:49%;
571 571 clear:none;
572 572 float:left;
573 573 margin:0 0 10px;
574 574 }
575 575
576 576 #content div.box-right {
577 577 width:49%;
578 578 clear:none;
579 579 float:right;
580 580 margin:0 0 10px;
581 581 }
582 582
583 583 #content div.box div.title {
584 584 clear:both;
585 585 overflow:hidden;
586 586 background:#369 url("../images/header_inner.png") repeat-x;
587 587 margin:0 0 20px;
588 588 padding:0;
589 589 }
590 590
591 591 #content div.box div.title h5 {
592 592 float:left;
593 593 border:none;
594 594 color:#fff;
595 595 text-transform:uppercase;
596 596 margin:0;
597 597 padding:11px 0 11px 10px;
598 598 }
599 599
600 600 #content div.box div.title ul.links li {
601 601 list-style:none;
602 602 float:left;
603 603 margin:0;
604 604 padding:0;
605 605 }
606 606
607 607 #content div.box div.title ul.links li a {
608 608 height:1%;
609 609 display:block;
610 610 float:left;
611 611 border-left:1px solid #316293;
612 612 color:#fff;
613 613 font-size:11px;
614 614 font-weight:700;
615 615 text-decoration:none;
616 616 margin:0;
617 617 padding:13px 16px 12px;
618 618 }
619 619
620 620 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6 {
621 621 clear:both;
622 622 overflow:hidden;
623 623 border-bottom:1px solid #DDD;
624 624 margin:10px 20px;
625 625 padding:0 0 15px;
626 626 }
627 627
628 628 #content div.box p {
629 629 color:#5f5f5f;
630 630 font-size:12px;
631 631 line-height:150%;
632 632 margin:0 24px 10px;
633 633 padding:0;
634 634 }
635 635
636 636 #content div.box blockquote {
637 637 border-left:4px solid #DDD;
638 638 color:#5f5f5f;
639 639 font-size:11px;
640 640 line-height:150%;
641 641 margin:0 34px;
642 642 padding:0 0 0 14px;
643 643 }
644 644
645 645 #content div.box blockquote p {
646 646 margin:10px 0;
647 647 padding:0;
648 648 }
649 649
650 650 #content div.box dl {
651 651 margin:10px 24px;
652 652 }
653 653
654 654 #content div.box dt {
655 655 font-size:12px;
656 656 margin:0;
657 657 }
658 658
659 659 #content div.box dd {
660 660 font-size:12px;
661 661 margin:0;
662 662 padding:8px 0 8px 15px;
663 663 }
664 664
665 665 #content div.box li {
666 666 font-size:12px;
667 667 padding:4px 0;
668 668 }
669 669
670 670 #content div.box ul.disc,#content div.box ul.circle {
671 671 margin:10px 24px 10px 38px;
672 672 }
673 673
674 674 #content div.box ul.square {
675 675 margin:10px 24px 10px 40px;
676 676 }
677 677
678 678 #content div.box img.left {
679 679 border:none;
680 680 float:left;
681 681 margin:10px 10px 10px 0;
682 682 }
683 683
684 684 #content div.box img.right {
685 685 border:none;
686 686 float:right;
687 687 margin:10px 0 10px 10px;
688 688 }
689 689
690 690 #content div.box div.messages {
691 691 clear:both;
692 692 overflow:hidden;
693 693 margin:0 20px;
694 694 padding:0;
695 695 }
696 696
697 697 #content div.box div.message {
698 698 clear:both;
699 699 overflow:hidden;
700 700 margin:0;
701 701 padding:10px 0;
702 702 }
703 703
704 704 #content div.box div.message a {
705 705 font-weight:400 !important;
706 706 }
707 707
708 708 #content div.box div.message div.image {
709 709 float:left;
710 710 margin:9px 0 0 5px;
711 711 padding:6px;
712 712 }
713 713
714 714 #content div.box div.message div.image img {
715 715 vertical-align:middle;
716 716 margin:0;
717 717 }
718 718
719 719 #content div.box div.message div.text {
720 720 float:left;
721 721 margin:0;
722 722 padding:9px 6px;
723 723 }
724 724
725 725 #content div.box div.message div.dismiss a {
726 726 height:16px;
727 727 width:16px;
728 728 display:block;
729 729 background:url("../images/icons/cross.png") no-repeat;
730 730 margin:15px 14px 0 0;
731 731 padding:0;
732 732 }
733 733
734 734 #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 {
735 735 border:none;
736 736 margin:0;
737 737 padding:0;
738 738 }
739 739
740 740 #content div.box div.message div.text span {
741 741 height:1%;
742 742 display:block;
743 743 margin:0;
744 744 padding:5px 0 0;
745 745 }
746 746
747 747 #content div.box div.message-error {
748 748 height:1%;
749 749 clear:both;
750 750 overflow:hidden;
751 751 background:#FBE3E4;
752 752 border:1px solid #FBC2C4;
753 753 color:#860006;
754 754 }
755 755
756 756 #content div.box div.message-error h6 {
757 757 color:#860006;
758 758 }
759 759
760 760 #content div.box div.message-warning {
761 761 height:1%;
762 762 clear:both;
763 763 overflow:hidden;
764 764 background:#FFF6BF;
765 765 border:1px solid #FFD324;
766 766 color:#5f5200;
767 767 }
768 768
769 769 #content div.box div.message-warning h6 {
770 770 color:#5f5200;
771 771 }
772 772
773 773 #content div.box div.message-notice {
774 774 height:1%;
775 775 clear:both;
776 776 overflow:hidden;
777 777 background:#8FBDE0;
778 778 border:1px solid #6BACDE;
779 779 color:#003863;
780 780 }
781 781
782 782 #content div.box div.message-notice h6 {
783 783 color:#003863;
784 784 }
785 785
786 786 #content div.box div.message-success {
787 787 height:1%;
788 788 clear:both;
789 789 overflow:hidden;
790 790 background:#E6EFC2;
791 791 border:1px solid #C6D880;
792 792 color:#4e6100;
793 793 }
794 794
795 795 #content div.box div.message-success h6 {
796 796 color:#4e6100;
797 797 }
798 798
799 799 #content div.box div.form div.fields div.field {
800 800 height:1%;
801 801 border-bottom:1px solid #DDD;
802 802 clear:both;
803 803 margin:0;
804 804 padding:10px 0;
805 805 }
806 806
807 807 #content div.box div.form div.fields div.field-first {
808 808 padding:0 0 10px;
809 809 }
810 810
811 811 #content div.box div.form div.fields div.field-noborder {
812 812 border-bottom:0 !important;
813 813 }
814 814
815 815 #content div.box div.form div.fields div.field span.error-message {
816 816 height:1%;
817 817 display:inline-block;
818 818 color:red;
819 819 margin:8px 0 0 4px;
820 820 padding:0;
821 821 }
822 822
823 823 #content div.box div.form div.fields div.field span.success {
824 824 height:1%;
825 825 display:block;
826 826 color:#316309;
827 827 margin:8px 0 0;
828 828 padding:0;
829 829 }
830 830
831 831 #content div.box div.form div.fields div.field div.label {
832 832 left:80px;
833 833 width:auto;
834 834 position:absolute;
835 835 margin:0;
836 836 padding:8px 0 0 5px;
837 837 }
838 838
839 839 #content div.box-left div.form div.fields div.field div.label,#content div.box-right div.form div.fields div.field div.label {
840 840 clear:both;
841 841 overflow:hidden;
842 842 left:0;
843 843 width:auto;
844 844 position:relative;
845 845 margin:0;
846 846 padding:0 0 8px;
847 847 }
848 848
849 849 #content div.box div.form div.fields div.field div.label-select {
850 850 padding:5px 0 0 5px;
851 851 }
852 852
853 853 #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 {
854 854 padding:0 0 8px;
855 855 }
856 856
857 857 #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 {
858 858 padding:0 0 8px !important;
859 859 }
860 860
861 861 #content div.box div.form div.fields div.field div.label label {
862 862 color:#393939;
863 863 font-weight:700;
864 864 }
865 865
866 866 #content div.box div.form div.fields div.field div.input {
867 867 margin:0 0 0 200px;
868 868 }
869 869 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input {
870 870 margin:0 0 0 0px;
871 871 }
872 872
873 873 #content div.box div.form div.fields div.field div.input input {
874 874 background:#FFF;
875 875 border-top:1px solid #b3b3b3;
876 876 border-left:1px solid #b3b3b3;
877 877 border-right:1px solid #eaeaea;
878 878 border-bottom:1px solid #eaeaea;
879 879 color:#000;
880 880 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
881 881 font-size:11px;
882 882 margin:0;
883 883 padding:7px 7px 6px;
884 884 }
885 885
886 886
887 887
888 888 #content div.box div.form div.fields div.field div.input input.small {
889 889 width:30%;
890 890 }
891 891
892 892 #content div.box div.form div.fields div.field div.input input.medium {
893 893 width:55%;
894 894 }
895 895
896 896 #content div.box div.form div.fields div.field div.input input.large {
897 897 width:85%;
898 898 }
899 899
900 900 #content div.box div.form div.fields div.field div.input input.date {
901 901 width:177px;
902 902 }
903 903
904 904 #content div.box div.form div.fields div.field div.input input.button {
905 905 background:#D4D0C8;
906 906 border-top:1px solid #FFF;
907 907 border-left:1px solid #FFF;
908 908 border-right:1px solid #404040;
909 909 border-bottom:1px solid #404040;
910 910 color:#000;
911 911 margin:0;
912 912 padding:4px 8px;
913 913 }
914 914
915 915 #content div.box div.form div.fields div.field div.textarea {
916 916 border-top:1px solid #b3b3b3;
917 917 border-left:1px solid #b3b3b3;
918 918 border-right:1px solid #eaeaea;
919 919 border-bottom:1px solid #eaeaea;
920 920 margin:0 0 0 200px;
921 921 padding:10px;
922 922 }
923 923
924 924 #content div.box div.form div.fields div.field div.textarea-editor {
925 925 border:1px solid #ddd;
926 926 padding:0;
927 927 }
928 928
929 929 #content div.box div.form div.fields div.field div.textarea textarea {
930 930 width:100%;
931 931 height:220px;
932 932 overflow:hidden;
933 933 background:#FFF;
934 934 color:#000;
935 935 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
936 936 font-size:11px;
937 937 outline:none;
938 938 border-width:0;
939 939 margin:0;
940 940 padding:0;
941 941 }
942 942
943 943 #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 {
944 944 width:100%;
945 945 height:100px;
946 946 }
947 947
948 948 #content div.box div.form div.fields div.field div.textarea table {
949 949 width:100%;
950 950 border:none;
951 951 margin:0;
952 952 padding:0;
953 953 }
954 954
955 955 #content div.box div.form div.fields div.field div.textarea table td {
956 956 background:#DDD;
957 957 border:none;
958 958 padding:0;
959 959 }
960 960
961 961 #content div.box div.form div.fields div.field div.textarea table td table {
962 962 width:auto;
963 963 border:none;
964 964 margin:0;
965 965 padding:0;
966 966 }
967 967
968 968 #content div.box div.form div.fields div.field div.textarea table td table td {
969 969 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
970 970 font-size:11px;
971 971 padding:5px 5px 5px 0;
972 972 }
973 973
974 974 #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 {
975 975 background:#f6f6f6;
976 976 border-color:#666;
977 977 }
978 978
979 979 div.form div.fields div.field div.button {
980 980 margin:0;
981 981 padding:0 0 0 8px;
982 982 }
983 983
984 984 div.form div.fields div.field div.highlight .ui-button {
985 985 background:#4e85bb url("../images/button_highlight.png") repeat-x;
986 986 border-top:1px solid #5c91a4;
987 987 border-left:1px solid #2a6f89;
988 988 border-right:1px solid #2b7089;
989 989 border-bottom:1px solid #1a6480;
990 990 color:#FFF;
991 991 margin:0;
992 992 padding:6px 12px;
993 993 }
994 994
995 995 div.form div.fields div.field div.highlight .ui-state-hover {
996 996 background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x;
997 997 border-top:1px solid #78acbf;
998 998 border-left:1px solid #34819e;
999 999 border-right:1px solid #35829f;
1000 1000 border-bottom:1px solid #257897;
1001 1001 color:#FFF;
1002 1002 margin:0;
1003 1003 padding:6px 12px;
1004 1004 }
1005 1005
1006 1006 #content div.box div.form div.fields div.buttons div.highlight input.ui-button {
1007 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
1007 background:#4e85bb url("../images/button_highlight.png") repeat-x;
1008 1008 border-top:1px solid #5c91a4;
1009 1009 border-left:1px solid #2a6f89;
1010 1010 border-right:1px solid #2b7089;
1011 1011 border-bottom:1px solid #1a6480;
1012 1012 color:#fff;
1013 1013 margin:0;
1014 1014 padding:6px 12px;
1015 1015 }
1016 1016
1017 1017 #content div.box div.form div.fields div.buttons div.highlight input.ui-state-hover {
1018 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
1018 background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x;
1019 1019 border-top:1px solid #78acbf;
1020 1020 border-left:1px solid #34819e;
1021 1021 border-right:1px solid #35829f;
1022 1022 border-bottom:1px solid #257897;
1023 1023 color:#fff;
1024 1024 margin:0;
1025 1025 padding:6px 12px;
1026 1026 }
1027 1027
1028 1028 #content div.box table {
1029 1029 width:100%;
1030 1030 border-collapse:collapse;
1031 1031 margin:0;
1032 1032 padding:0;
1033 1033 }
1034 1034
1035 1035 #content div.box table th {
1036 1036 background:#eee;
1037 1037 border-bottom:1px solid #ddd;
1038 1038 padding:5px 0px 5px 5px;
1039 1039 }
1040 1040
1041 1041 #content div.box table th.left {
1042 1042 text-align:left;
1043 1043 }
1044 1044
1045 1045 #content div.box table th.right {
1046 1046 text-align:right;
1047 1047 }
1048 1048
1049 1049 #content div.box table th.center {
1050 1050 text-align:center;
1051 1051 }
1052 1052
1053 1053 #content div.box table th.selected {
1054 1054 vertical-align:middle;
1055 1055 padding:0;
1056 1056 }
1057 1057
1058 1058 #content div.box table td {
1059 1059 background:#fff;
1060 1060 border-bottom:1px solid #cdcdcd;
1061 1061 vertical-align:middle;
1062 1062 padding:5px;
1063 1063 }
1064 1064
1065 1065 #content div.box table tr.selected td {
1066 1066 background:#FFC;
1067 1067 }
1068 1068
1069 1069 #content div.box table td.selected {
1070 1070 width:3%;
1071 1071 text-align:center;
1072 1072 vertical-align:middle;
1073 1073 padding:0;
1074 1074 }
1075 1075
1076 1076 #content div.box table td.action {
1077 1077 width:45%;
1078 1078 text-align:left;
1079 1079 }
1080 1080
1081 1081 #content div.box table td.date {
1082 1082 width:33%;
1083 1083 text-align:center;
1084 1084 }
1085 1085
1086 1086 #content div.box div.action {
1087 1087 float:right;
1088 1088 background:#FFF;
1089 1089 text-align:right;
1090 1090 margin:10px 0 0;
1091 1091 padding:0;
1092 1092 }
1093 1093
1094 1094 #content div.box div.action select {
1095 1095 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1096 1096 font-size:11px;
1097 1097 margin:0;
1098 1098 }
1099 1099
1100 1100 #content div.box div.action .ui-selectmenu {
1101 1101 margin:0;
1102 1102 padding:0;
1103 1103 }
1104 1104
1105 1105 #content div.box div.pagination {
1106 1106 height:1%;
1107 1107 clear:both;
1108 1108 overflow:hidden;
1109 1109 margin:10px 0 0;
1110 1110 padding:0;
1111 1111 }
1112 1112
1113 1113 #content div.box div.pagination ul.pager {
1114 1114 float:right;
1115 1115 text-align:right;
1116 1116 margin:0;
1117 1117 padding:0;
1118 1118 }
1119 1119
1120 1120 #content div.box div.pagination ul.pager li {
1121 1121 height:1%;
1122 1122 float:left;
1123 1123 list-style:none;
1124 1124 background:#ebebeb url("../images/pager.png") repeat-x;
1125 1125 border-top:1px solid #dedede;
1126 1126 border-left:1px solid #cfcfcf;
1127 1127 border-right:1px solid #c4c4c4;
1128 1128 border-bottom:1px solid #c4c4c4;
1129 1129 color:#4A4A4A;
1130 1130 font-weight:700;
1131 1131 margin:0 0 0 4px;
1132 1132 padding:0;
1133 1133 }
1134 1134
1135 1135 #content div.box div.pagination ul.pager li.separator {
1136 1136 padding:6px;
1137 1137 }
1138 1138
1139 1139 #content div.box div.pagination ul.pager li.current {
1140 1140 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1141 1141 border-top:1px solid #ccc;
1142 1142 border-left:1px solid #bebebe;
1143 1143 border-right:1px solid #b1b1b1;
1144 1144 border-bottom:1px solid #afafaf;
1145 1145 color:#515151;
1146 1146 padding:6px;
1147 1147 }
1148 1148
1149 1149 #content div.box div.pagination ul.pager li a {
1150 1150 height:1%;
1151 1151 display:block;
1152 1152 float:left;
1153 1153 color:#515151;
1154 1154 text-decoration:none;
1155 1155 margin:0;
1156 1156 padding:6px;
1157 1157 }
1158 1158
1159 1159 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active {
1160 1160 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1161 1161 border-top:1px solid #ccc;
1162 1162 border-left:1px solid #bebebe;
1163 1163 border-right:1px solid #b1b1b1;
1164 1164 border-bottom:1px solid #afafaf;
1165 1165 margin:-1px;
1166 1166 }
1167 1167
1168 1168 #content div.box div.pagination-wh {
1169 1169 height:1%;
1170 1170 clear:both;
1171 1171 overflow:hidden;
1172 1172 text-align:right;
1173 1173 margin:10px 0 0;
1174 1174 padding:0;
1175 1175 }
1176 1176
1177 1177 #content div.box div.pagination-right {
1178 1178 float:right;
1179 1179 }
1180 1180
1181 1181 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot {
1182 1182 height:1%;
1183 1183 float:left;
1184 1184 background:#ebebeb url("../images/pager.png") repeat-x;
1185 1185 border-top:1px solid #dedede;
1186 1186 border-left:1px solid #cfcfcf;
1187 1187 border-right:1px solid #c4c4c4;
1188 1188 border-bottom:1px solid #c4c4c4;
1189 1189 color:#4A4A4A;
1190 1190 font-weight:700;
1191 1191 margin:0 0 0 4px;
1192 1192 padding:6px;
1193 1193 }
1194 1194
1195 1195 #content div.box div.pagination-wh span.pager_curpage {
1196 1196 height:1%;
1197 1197 float:left;
1198 1198 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1199 1199 border-top:1px solid #ccc;
1200 1200 border-left:1px solid #bebebe;
1201 1201 border-right:1px solid #b1b1b1;
1202 1202 border-bottom:1px solid #afafaf;
1203 1203 color:#515151;
1204 1204 font-weight:700;
1205 1205 margin:0 0 0 4px;
1206 1206 padding:6px;
1207 1207 }
1208 1208
1209 1209 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active {
1210 1210 background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
1211 1211 border-top:1px solid #ccc;
1212 1212 border-left:1px solid #bebebe;
1213 1213 border-right:1px solid #b1b1b1;
1214 1214 border-bottom:1px solid #afafaf;
1215 1215 text-decoration:none;
1216 1216 }
1217 1217
1218 1218 #content div.box div.traffic div.legend {
1219 1219 clear:both;
1220 1220 overflow:hidden;
1221 1221 border-bottom:1px solid #ddd;
1222 1222 margin:0 0 10px;
1223 1223 padding:0 0 10px;
1224 1224 }
1225 1225
1226 1226 #content div.box div.traffic div.legend h6 {
1227 1227 float:left;
1228 1228 border:none;
1229 1229 margin:0;
1230 1230 padding:0;
1231 1231 }
1232 1232
1233 1233 #content div.box div.traffic div.legend li {
1234 1234 list-style:none;
1235 1235 float:left;
1236 1236 font-size:11px;
1237 1237 margin:0;
1238 1238 padding:0 8px 0 4px;
1239 1239 }
1240 1240
1241 1241 #content div.box div.traffic div.legend li.visits {
1242 1242 border-left:12px solid #edc240;
1243 1243 }
1244 1244
1245 1245 #content div.box div.traffic div.legend li.pageviews {
1246 1246 border-left:12px solid #afd8f8;
1247 1247 }
1248 1248
1249 1249 #content div.box div.traffic table {
1250 1250 width:auto;
1251 1251 }
1252 1252
1253 1253 #content div.box div.traffic table td {
1254 1254 background:transparent;
1255 1255 border:none;
1256 1256 padding:2px 3px 3px;
1257 1257 }
1258 1258
1259 1259 #content div.box div.traffic table td.legendLabel {
1260 1260 padding:0 3px 2px;
1261 1261 }
1262 1262
1263 1263 #footer {
1264 1264 clear:both;
1265 1265 overflow:hidden;
1266 1266 text-align:right;
1267 1267 margin:0;
1268 1268 padding:0 30px 4px;
1269 1269 margin:-10px 0 0;
1270 1270 }
1271 1271
1272 1272 #footer div#footer-inner {
1273 1273 background:url("../images/header_inner.png") repeat-x scroll 0 0 #003367;
1274 1274 border-top:2px solid #FFFFFF;
1275 1275 }
1276 1276
1277 1277 #footer div#footer-inner p {
1278 1278 padding:15px 25px 15px 0;
1279 1279 color:#FFF;
1280 1280 font-weight:700;
1281 1281 }
1282 1282 #footer div#footer-inner .footer-link {
1283 1283 float:left;
1284 1284 padding-left:10px;
1285 1285 }
1286 1286 #footer div#footer-inner .footer-link a {
1287 1287 color:#FFF;
1288 1288 }
1289 1289
1290 1290 #login div.title {
1291 1291 width:420px;
1292 1292 clear:both;
1293 1293 overflow:hidden;
1294 1294 position:relative;
1295 background:#003367 url("../../images/header_inner.png") repeat-x;
1295 background:#003367 url("../images/header_inner.png") repeat-x;
1296 1296 margin:0 auto;
1297 1297 padding:0;
1298 1298 }
1299 1299
1300 1300 #login div.inner {
1301 1301 width:380px;
1302 1302 background:#FFF url("../images/login.png") no-repeat top left;
1303 1303 border-top:none;
1304 1304 border-bottom:none;
1305 1305 margin:0 auto;
1306 1306 padding:20px;
1307 1307 }
1308 1308
1309 1309 #login div.form div.fields div.field div.label {
1310 1310 width:173px;
1311 1311 float:left;
1312 1312 text-align:right;
1313 1313 margin:2px 10px 0 0;
1314 1314 padding:5px 0 0 5px;
1315 1315 }
1316 1316
1317 1317 #login div.form div.fields div.field div.input input {
1318 1318 width:176px;
1319 1319 background:#FFF;
1320 1320 border-top:1px solid #b3b3b3;
1321 1321 border-left:1px solid #b3b3b3;
1322 1322 border-right:1px solid #eaeaea;
1323 1323 border-bottom:1px solid #eaeaea;
1324 1324 color:#000;
1325 1325 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1326 1326 font-size:11px;
1327 1327 margin:0;
1328 1328 padding:7px 7px 6px;
1329 1329 }
1330 1330
1331 1331 #login div.form div.fields div.buttons {
1332 1332 clear:both;
1333 1333 overflow:hidden;
1334 1334 border-top:1px solid #DDD;
1335 1335 text-align:right;
1336 1336 margin:0;
1337 1337 padding:10px 0 0;
1338 1338 }
1339 1339
1340 1340 #login div.form div.links {
1341 1341 clear:both;
1342 1342 overflow:hidden;
1343 1343 margin:10px 0 0;
1344 1344 padding:0 0 2px;
1345 1345 }
1346 1346
1347 1347 #register div.title {
1348 1348 clear:both;
1349 1349 overflow:hidden;
1350 1350 position:relative;
1351 1351 background:#003367 url("../images/header_inner.png") repeat-x;
1352 1352 margin:0 auto;
1353 1353 padding:0;
1354 1354 }
1355 1355
1356 1356 #register div.inner {
1357 1357 background:#FFF;
1358 1358 border-top:none;
1359 1359 border-bottom:none;
1360 1360 margin:0 auto;
1361 1361 padding:20px;
1362 1362 }
1363 1363
1364 1364 #register div.form div.fields div.field div.label {
1365 1365 width:135px;
1366 1366 float:left;
1367 1367 text-align:right;
1368 1368 margin:2px 10px 0 0;
1369 1369 padding:5px 0 0 5px;
1370 1370 }
1371 1371
1372 1372 #register div.form div.fields div.field div.input input {
1373 1373 width:300px;
1374 1374 background:#FFF;
1375 1375 border-top:1px solid #b3b3b3;
1376 1376 border-left:1px solid #b3b3b3;
1377 1377 border-right:1px solid #eaeaea;
1378 1378 border-bottom:1px solid #eaeaea;
1379 1379 color:#000;
1380 1380 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
1381 1381 font-size:11px;
1382 1382 margin:0;
1383 1383 padding:7px 7px 6px;
1384 1384 }
1385 1385
1386 1386 #register div.form div.fields div.buttons {
1387 1387 clear:both;
1388 1388 overflow:hidden;
1389 1389 border-top:1px solid #DDD;
1390 1390 text-align:left;
1391 1391 margin:0;
1392 1392 padding:10px 0 0 150px;
1393 1393 }
1394 1394
1395 1395 #register div.form div.fields div.buttons div.highlight input.ui-button {
1396 1396 background:url("../images/button_highlight.png") repeat-x scroll 0 0 #4E85BB;
1397 1397 color:#FFF;
1398 1398 border-color:#5C91A4 #2B7089 #1A6480 #2A6F89;
1399 1399 border-style:solid;
1400 1400 border-width:1px;
1401 1401 }
1402 1402
1403 1403 #register div.form div.activation_msg {
1404 1404 padding-top:4px;
1405 1405 padding-bottom:4px;
1406 1406 }
1407 1407
1408 1408 #journal .journal_day{
1409 1409 font-size:20px;
1410 1410 padding:10px 0px;
1411 1411 border-bottom:2px solid #DDD;
1412 1412 margin-left:10px;
1413 1413 margin-right:10px;
1414 1414 }
1415 1415
1416 1416 #journal .journal_user{
1417 1417 color: #747474;
1418 1418 font-size: 14px;
1419 1419 font-weight: bold;
1420 1420 height: 30px;
1421 1421 }
1422 1422 #journal .journal_icon{
1423 1423 clear: both;
1424 1424 float: left;
1425 1425 padding-left: 36px;
1426 1426 padding-right: 4px;
1427 1427 padding-top: 3px;
1428 1428 }
1429 1429 #journal .journal_action{
1430 1430 padding-top:4px;
1431 1431 min-height:2px;
1432 1432 float:left
1433 1433 }
1434 1434 #journal .journal_repo{
1435 1435 float: left;
1436 1436 margin-left: 6px;
1437 1437 padding-top: 3px;
1438 1438 }
1439 1439 #journal .date{
1440 1440 clear: both;
1441 1441 color: #777777;
1442 1442 font-size: 11px;
1443 1443 padding-left: 56px;
1444 1444 }
1445 1445 #journal .journal_repo .journal_repo_name{
1446 1446 font-weight: bold;
1447 1447 font-size: 1.1em;
1448 1448 }
1449 1449 #journal .compare_view{
1450 1450 padding: 5px 0px 5px 3px;
1451 1451 width: 95px;
1452 1452 }
1453 1453 .journal_highlight{
1454 1454 font-weight: bold;
1455 1455 padding: 0 2px;
1456 1456 vertical-align: bottom;
1457 1457 }
1458 1458 .trending_language_tbl,.trending_language_tbl td {
1459 1459 border:0 !important;
1460 1460 margin:0 !important;
1461 1461 padding:0 !important;
1462 1462 }
1463 1463
1464 1464 .trending_language {
1465 1465 background-color:#003367;
1466 1466 color:#FFF;
1467 1467 display:block;
1468 1468 min-width:20px;
1469 1469 text-decoration:none;
1470 1470 height:12px;
1471 1471 margin-bottom:4px;
1472 1472 margin-left:5px;
1473 1473 white-space:pre;
1474 1474 padding:3px;
1475 1475 }
1476 1476
1477 1477 h3.files_location {
1478 1478 font-size:1.8em;
1479 1479 font-weight:700;
1480 1480 border-bottom:none !important;
1481 1481 margin:10px 0 !important;
1482 1482 }
1483 1483
1484 1484 #files_data dl dt {
1485 1485 float:left;
1486 1486 width:115px;
1487 1487 margin:0 !important;
1488 1488 padding:5px;
1489 1489 }
1490 1490
1491 1491 #files_data dl dd {
1492 1492 margin:0 !important;
1493 1493 padding:5px !important;
1494 1494 }
1495 1495
1496 1496 #changeset_content {
1497 1497 border:1px solid #CCC;
1498 1498 padding:5px;
1499 1499 }
1500 1500 #changeset_compare_view_content{
1501 1501 border:1px solid #CCC;
1502 1502 padding:5px;
1503 1503 }
1504 1504
1505 1505 #changeset_content .container {
1506 1506 min-height:120px;
1507 1507 font-size:1.2em;
1508 1508 overflow:hidden;
1509 1509 }
1510 1510
1511 1511 #changeset_compare_view_content .compare_view_commits{
1512 1512 width: auto !important;
1513 1513 }
1514 1514
1515 1515 #changeset_compare_view_content .compare_view_commits td{
1516 1516 padding:0px 0px 0px 12px !important;
1517 1517 }
1518 1518
1519 1519 #changeset_content .container .right {
1520 1520 float:right;
1521 1521 width:25%;
1522 1522 text-align:right;
1523 1523 }
1524 1524
1525 1525 #changeset_content .container .left .message {
1526 1526 font-style:italic;
1527 1527 color:#556CB5;
1528 1528 white-space:pre-wrap;
1529 1529 }
1530 1530
1531 1531 .cs_files .cur_cs{
1532 1532 margin:10px 2px;
1533 1533 font-weight: bold;
1534 1534 }
1535 1535
1536 1536 .cs_files .cs_added {
1537 1537 background:url("../images/icons/page_white_add.png") no-repeat scroll 3px;
1538 1538 height:16px;
1539 1539 padding-left:20px;
1540 1540 margin-top:7px;
1541 1541 text-align:left;
1542 1542 }
1543 1543
1544 1544 .cs_files .cs_changed {
1545 1545 background:url("../images/icons/page_white_edit.png") no-repeat scroll 3px;
1546 1546 height:16px;
1547 1547 padding-left:20px;
1548 1548 margin-top:7px;
1549 1549 text-align:left;
1550 1550 }
1551 1551
1552 1552 .cs_files .cs_removed {
1553 1553 background:url("../images/icons/page_white_delete.png") no-repeat scroll 3px;
1554 1554 height:16px;
1555 1555 padding-left:20px;
1556 1556 margin-top:7px;
1557 1557 text-align:left;
1558 1558 }
1559 1559
1560 1560 #graph {
1561 1561 overflow:hidden;
1562 1562 }
1563 1563
1564 1564 #graph_nodes {
1565 1565 width:160px;
1566 1566 float:left;
1567 1567 margin-left:-50px;
1568 1568 margin-top:5px;
1569 1569 }
1570 1570
1571 1571 #graph_content {
1572 1572 width:800px;
1573 1573 float:left;
1574 1574 }
1575 1575
1576 1576 #graph_content .container_header {
1577 1577 border:1px solid #CCC;
1578 1578 padding:10px;
1579 1579 }
1580 1580 #graph_content #rev_range_container{
1581 1581 padding:10px 0px;
1582 1582 }
1583 1583 #graph_content .container {
1584 1584 border-bottom:1px solid #CCC;
1585 1585 border-left:1px solid #CCC;
1586 1586 border-right:1px solid #CCC;
1587 1587 min-height:80px;
1588 1588 overflow:hidden;
1589 1589 font-size:1.2em;
1590 1590 }
1591 1591
1592 1592 #graph_content .container .right {
1593 1593 float:right;
1594 1594 width:28%;
1595 1595 text-align:right;
1596 1596 padding-bottom:5px;
1597 1597 }
1598 1598
1599 1599 #graph_content .container .left .date {
1600 1600 font-weight:700;
1601 1601 padding-bottom:5px;
1602 1602 }
1603 1603 #graph_content .container .left .date span{
1604 1604 vertical-align: text-top;
1605 1605 }
1606 1606
1607 1607 #graph_content .container .left .message {
1608 1608 font-size:100%;
1609 1609 padding-top:3px;
1610 1610 white-space:pre-wrap;
1611 1611 }
1612 1612
1613 1613 .right div {
1614 1614 clear:both;
1615 1615 }
1616 1616
1617 1617 .right .changes .added,.changed,.removed {
1618 1618 border:1px solid #DDD;
1619 1619 display:block;
1620 1620 float:right;
1621 1621 text-align:center;
1622 1622 min-width:15px;
1623 1623 cursor: help;
1624 1624 }
1625 1625
1626 1626 .right .changes .added {
1627 1627 background:#BFB;
1628 1628 }
1629 1629
1630 1630 .right .changes .changed {
1631 1631 background:#FD8;
1632 1632 }
1633 1633
1634 1634 .right .changes .removed {
1635 1635 background:#F88;
1636 1636 }
1637 1637
1638 1638 .right .merge {
1639 1639 vertical-align:top;
1640 1640 font-size:0.75em;
1641 1641 font-weight:700;
1642 1642 }
1643 1643
1644 1644 .right .parent {
1645 1645 font-size:90%;
1646 1646 font-family:monospace;
1647 1647 }
1648 1648
1649 1649 .right .logtags .branchtag {
1650 1650 background:#FFF url("../images/icons/arrow_branch.png") no-repeat right 6px;
1651 1651 display:block;
1652 1652 font-size:0.8em;
1653 1653 padding:11px 16px 0 0;
1654 1654 }
1655 1655
1656 1656 .right .logtags .tagtag {
1657 1657 background:#FFF url("../images/icons/tag_blue.png") no-repeat right 6px;
1658 1658 display:block;
1659 1659 font-size:0.8em;
1660 1660 padding:11px 16px 0 0;
1661 1661 }
1662 1662
1663 1663 div.browserblock {
1664 1664 overflow:hidden;
1665 1665 border:1px solid #ccc;
1666 1666 background:#f8f8f8;
1667 1667 font-size:100%;
1668 1668 line-height:125%;
1669 1669 padding:0;
1670 1670 }
1671 1671
1672 1672 div.browserblock .browser-header {
1673 1673 background:#FFF;
1674 1674 padding:10px 0px 35px 0px;
1675 1675 width: 100%;
1676 1676 }
1677 1677 div.browserblock .browser-nav {
1678 1678 float:left
1679 1679 }
1680 1680
1681 1681 div.browserblock .browser-branch {
1682 1682 padding:10px 0 0 0;
1683 1683 float:left;
1684 1684 }
1685 1685 div.browserblock .browser-branch label {
1686 1686 color:#4A4A4A;
1687 1687 vertical-align:text-top;
1688 1688 }
1689 1689
1690 1690 div.browserblock .browser-header span {
1691 1691 margin-left:25px;
1692 1692 font-weight:700;
1693 1693 }
1694 1694
1695 1695 div.browserblock .browser-body {
1696 1696 background:#EEE;
1697 1697 border-top:1px solid #CCC;
1698 1698 }
1699 1699
1700 1700 table.code-browser {
1701 1701 border-collapse:collapse;
1702 1702 width:100%;
1703 1703 }
1704 1704
1705 1705 table.code-browser tr {
1706 1706 margin:3px;
1707 1707 }
1708 1708
1709 1709 table.code-browser thead th {
1710 1710 background-color:#EEE;
1711 1711 height:20px;
1712 1712 font-size:1.1em;
1713 1713 font-weight:700;
1714 1714 text-align:left;
1715 1715 padding-left:10px;
1716 1716 }
1717 1717
1718 1718 table.code-browser tbody td {
1719 1719 padding-left:10px;
1720 1720 height:20px;
1721 1721 }
1722 1722
1723 1723 table.code-browser .browser-file {
1724 1724 background:url("../images/icons/document_16.png") no-repeat scroll 3px;
1725 1725 height:16px;
1726 1726 padding-left:20px;
1727 1727 text-align:left;
1728 1728 }
1729 1729 .diffblock .changeset_file{
1730 1730 background:url("../images/icons/file.png") no-repeat scroll 3px;
1731 1731 height:16px;
1732 1732 padding-left:22px;
1733 1733 text-align:left;
1734 1734 font-size: 14px;
1735 1735 }
1736 1736
1737 1737 .diffblock .changeset_header{
1738 1738 margin-left: 6px !important;
1739 1739 }
1740 1740
1741 1741 table.code-browser .browser-dir {
1742 1742 background:url("../images/icons/folder_16.png") no-repeat scroll 3px;
1743 1743 height:16px;
1744 1744 padding-left:20px;
1745 1745 text-align:left;
1746 1746 }
1747 1747
1748 1748 .box .search {
1749 1749 clear:both;
1750 1750 overflow:hidden;
1751 1751 margin:0;
1752 1752 padding:0 20px 10px;
1753 1753 }
1754 1754
1755 1755 .box .search div.search_path {
1756 1756 background:none repeat scroll 0 0 #EEE;
1757 1757 border:1px solid #CCC;
1758 1758 color:blue;
1759 1759 margin-bottom:10px;
1760 1760 padding:10px 0;
1761 1761 }
1762 1762
1763 1763 .box .search div.search_path div.link {
1764 1764 font-weight:700;
1765 1765 margin-left:25px;
1766 1766 }
1767 1767
1768 1768 .box .search div.search_path div.link a {
1769 1769 color:#003367;
1770 1770 cursor:pointer;
1771 1771 text-decoration:none;
1772 1772 }
1773 1773
1774 1774 #path_unlock {
1775 1775 color:red;
1776 1776 font-size:1.2em;
1777 1777 padding-left:4px;
1778 1778 }
1779 1779
1780 1780 .info_box * {
1781 background:url("../../images/pager.png") repeat-x scroll 0 0 #EBEBEB;
1781 background:url("../images/pager.png") repeat-x scroll 0 0 #EBEBEB;
1782 1782 color:#4A4A4A;
1783 1783 font-weight:700;
1784 1784 height:1%;
1785 1785 display:inline;
1786 1786 border-color:#DEDEDE #C4C4C4 #C4C4C4 #CFCFCF;
1787 1787 border-style:solid;
1788 1788 border-width:1px;
1789 1789 padding:4px 6px;
1790 1790 }
1791 1791
1792 1792 .info_box span {
1793 1793 margin-left:3px;
1794 1794 margin-right:3px;
1795 1795 }
1796 1796
1797 1797 .info_box input#at_rev {
1798 1798 text-align:center;
1799 1799 padding:5px 3px 3px 2px;
1800 1800 }
1801 1801
1802 1802 .info_box input#view {
1803 1803 text-align:center;
1804 1804 padding:4px 3px 2px 2px;
1805 1805 }
1806 1806
1807 1807 .yui-overlay,.yui-panel-container {
1808 1808 visibility:hidden;
1809 1809 position:absolute;
1810 1810 z-index:2;
1811 1811 }
1812 1812
1813 1813 .yui-tt {
1814 1814 visibility:hidden;
1815 1815 position:absolute;
1816 1816 color:#666;
1817 1817 background-color:#FFF;
1818 1818 font-family:arial, helvetica, verdana, sans-serif;
1819 1819 border:2px solid #003367;
1820 1820 font:100% sans-serif;
1821 1821 width:auto;
1822 1822 opacity:1px;
1823 1823 padding:8px;
1824 1824 white-space: pre;
1825 1825 -webkit-border-radius: 8px 8px 8px 8px;
1826 1826 -khtml-border-radius: 8px 8px 8px 8px;
1827 1827 -moz-border-radius: 8px 8px 8px 8px;
1828 1828 border-radius: 8px 8px 8px 8px;
1829 1829 }
1830 1830
1831 1831 .ac {
1832 1832 vertical-align:top;
1833 1833 }
1834 1834
1835 1835 .ac .yui-ac {
1836 1836 position:relative;
1837 1837 font-family:arial;
1838 1838 font-size:100%;
1839 1839 }
1840 1840
1841 1841 .ac .perm_ac {
1842 1842 width:15em;
1843 1843 }
1844 1844
1845 1845 .ac .yui-ac-input {
1846 1846 width:100%;
1847 1847 }
1848 1848
1849 1849 .ac .yui-ac-container {
1850 1850 position:absolute;
1851 1851 top:1.6em;
1852 1852 width:100%;
1853 1853 }
1854 1854
1855 1855 .ac .yui-ac-content {
1856 1856 position:absolute;
1857 1857 width:100%;
1858 1858 border:1px solid gray;
1859 1859 background:#fff;
1860 1860 overflow:hidden;
1861 1861 z-index:9050;
1862 1862 }
1863 1863
1864 1864 .ac .yui-ac-shadow {
1865 1865 position:absolute;
1866 1866 width:100%;
1867 1867 background:#000;
1868 1868 -moz-opacity:0.1px;
1869 1869 opacity:.10;
1870 1870 filter:alpha(opacity = 10);
1871 1871 z-index:9049;
1872 1872 margin:.3em;
1873 1873 }
1874 1874
1875 1875 .ac .yui-ac-content ul {
1876 1876 width:100%;
1877 1877 margin:0;
1878 1878 padding:0;
1879 1879 }
1880 1880
1881 1881 .ac .yui-ac-content li {
1882 1882 cursor:default;
1883 1883 white-space:nowrap;
1884 1884 margin:0;
1885 1885 padding:2px 5px;
1886 1886 }
1887 1887
1888 1888 .ac .yui-ac-content li.yui-ac-prehighlight {
1889 1889 background:#B3D4FF;
1890 1890 }
1891 1891
1892 1892 .ac .yui-ac-content li.yui-ac-highlight {
1893 1893 background:#556CB5;
1894 1894 color:#FFF;
1895 1895 }
1896 1896
1897 1897 .follow{
1898 1898 background:url("../images/icons/heart_add.png") no-repeat scroll 3px;
1899 1899 height: 16px;
1900 1900 width: 20px;
1901 1901 cursor: pointer;
1902 1902 display: block;
1903 1903 float: right;
1904 1904 margin-top: 2px;
1905 1905 }
1906 1906
1907 1907 .following{
1908 1908 background:url("../images/icons/heart_delete.png") no-repeat scroll 3px;
1909 1909 height: 16px;
1910 1910 width: 20px;
1911 1911 cursor: pointer;
1912 1912 display: block;
1913 1913 float: right;
1914 1914 margin-top: 2px;
1915 1915 }
1916 1916
1917 1917 .currently_following{
1918 1918 padding-left: 10px;
1919 1919 padding-bottom:5px;
1920 1920 }
1921 1921
1922 1922 .add_icon {
1923 1923 background:url("../images/icons/add.png") no-repeat scroll 3px;
1924 1924 height:16px;
1925 1925 padding-left:20px;
1926 1926 padding-top:1px;
1927 1927 text-align:left;
1928 1928 }
1929 1929
1930 1930 .edit_icon {
1931 1931 background:url("../images/icons/folder_edit.png") no-repeat scroll 3px;
1932 1932 height:16px;
1933 1933 padding-left:20px;
1934 1934 padding-top:1px;
1935 1935 text-align:left;
1936 1936 }
1937 1937
1938 1938 .delete_icon {
1939 1939 background:url("../images/icons/delete.png") no-repeat scroll 3px;
1940 1940 height:16px;
1941 1941 padding-left:20px;
1942 1942 padding-top:1px;
1943 1943 text-align:left;
1944 1944 }
1945 1945
1946 1946 .refresh_icon {
1947 1947 background:url("../images/icons/arrow_refresh.png") no-repeat scroll 3px;
1948 1948 height:16px;
1949 1949 padding-left:20px;
1950 1950 padding-top:1px;
1951 1951 text-align:left;
1952 1952 }
1953 1953
1954 1954 .rss_icon {
1955 1955 background:url("../images/icons/rss_16.png") no-repeat scroll 3px;
1956 1956 height:16px;
1957 1957 padding-left:20px;
1958 1958 padding-top:1px;
1959 1959 text-align:left;
1960 1960 }
1961 1961
1962 1962 .atom_icon {
1963 1963 background:url("../images/icons/atom.png") no-repeat scroll 3px;
1964 1964 height:16px;
1965 1965 padding-left:20px;
1966 1966 padding-top:1px;
1967 1967 text-align:left;
1968 1968 }
1969 1969
1970 1970 .archive_icon {
1971 1971 background:url("../images/icons/compress.png") no-repeat scroll 3px;
1972 1972 height:16px;
1973 1973 padding-left:20px;
1974 1974 text-align:left;
1975 1975 padding-top:1px;
1976 1976 }
1977 1977
1978 1978 .action_button {
1979 1979 border:0;
1980 1980 display:block;
1981 1981 }
1982 1982
1983 1983 .action_button:hover {
1984 1984 border:0;
1985 1985 text-decoration:underline;
1986 1986 cursor:pointer;
1987 1987 }
1988 1988
1989 1989 #switch_repos {
1990 1990 position:absolute;
1991 1991 height:25px;
1992 1992 z-index:1;
1993 1993 }
1994 1994
1995 1995 #switch_repos select {
1996 1996 min-width:150px;
1997 1997 max-height:250px;
1998 1998 z-index:1;
1999 1999 }
2000 2000
2001 2001 .breadcrumbs {
2002 2002 border:medium none;
2003 2003 color:#FFF;
2004 2004 float:left;
2005 2005 text-transform:uppercase;
2006 2006 font-weight:700;
2007 2007 font-size:14px;
2008 2008 margin:0;
2009 2009 padding:11px 0 11px 10px;
2010 2010 }
2011 2011
2012 2012 .breadcrumbs a {
2013 2013 color:#FFF;
2014 2014 }
2015 2015
2016 2016 .flash_msg ul {
2017 2017 margin:0;
2018 2018 padding:0 0 10px;
2019 2019 }
2020 2020
2021 2021 .error_msg {
2022 2022 background-color:#FFCFCF;
2023 background-image:url("../../images/icons/error_msg.png");
2023 background-image:url("../images/icons/error_msg.png");
2024 2024 border:1px solid #FF9595;
2025 2025 color:#C30;
2026 2026 }
2027 2027
2028 2028 .warning_msg {
2029 2029 background-color:#FFFBCC;
2030 background-image:url("../../images/icons/warning_msg.png");
2030 background-image:url("../images/icons/warning_msg.png");
2031 2031 border:1px solid #FFF35E;
2032 2032 color:#C69E00;
2033 2033 }
2034 2034
2035 2035 .success_msg {
2036 2036 background-color:#D5FFCF;
2037 background-image:url("../../images/icons/success_msg.png");
2037 background-image:url("../images/icons/success_msg.png");
2038 2038 border:1px solid #97FF88;
2039 2039 color:#090;
2040 2040 }
2041 2041
2042 2042 .notice_msg {
2043 2043 background-color:#DCE3FF;
2044 background-image:url("../../images/icons/notice_msg.png");
2044 background-image:url("../images/icons/notice_msg.png");
2045 2045 border:1px solid #93A8FF;
2046 2046 color:#556CB5;
2047 2047 }
2048 2048
2049 2049 .success_msg,.error_msg,.notice_msg,.warning_msg {
2050 2050 background-position:10px center;
2051 2051 background-repeat:no-repeat;
2052 2052 font-size:12px;
2053 2053 font-weight:700;
2054 2054 min-height:14px;
2055 2055 line-height:14px;
2056 2056 margin-bottom:0;
2057 2057 margin-top:0;
2058 2058 display:block;
2059 2059 overflow:auto;
2060 2060 padding:6px 10px 6px 40px;
2061 2061 }
2062 2062
2063 2063 #msg_close {
2064 background:transparent url("../../icons/cross_grey_small.png") no-repeat scroll 0 0;
2064 background:transparent url("../icons/cross_grey_small.png") no-repeat scroll 0 0;
2065 2065 cursor:pointer;
2066 2066 height:16px;
2067 2067 position:absolute;
2068 2068 right:5px;
2069 2069 top:5px;
2070 2070 width:16px;
2071 2071 }
2072 2072
2073 2073 div#legend_container table,div#legend_choices table {
2074 2074 width:auto !important;
2075 2075 }
2076 2076
2077 2077 table#permissions_manage {
2078 2078 width:0 !important;
2079 2079 }
2080 2080
2081 2081 table#permissions_manage span.private_repo_msg {
2082 2082 font-size:0.8em;
2083 2083 opacity:0.6px;
2084 2084 }
2085 2085
2086 2086 table#permissions_manage td.private_repo_msg {
2087 2087 font-size:0.8em;
2088 2088 }
2089 2089
2090 2090 table#permissions_manage tr#add_perm_input td {
2091 2091 vertical-align:middle;
2092 2092 }
2093 2093
2094 2094 div.gravatar {
2095 2095 background-color:#FFF;
2096 2096 border:1px solid #D0D0D0;
2097 2097 float:left;
2098 2098 margin-right:0.7em;
2099 2099 padding:2px 2px 0;
2100 2100 }
2101 2101
2102 2102 #header,#content,#footer {
2103 2103 min-width:1024px;
2104 2104 }
2105 2105
2106 2106 #content {
2107 2107 min-height:100%;
2108 2108 clear:both;
2109 2109 overflow:hidden;
2110 2110 padding:14px 30px;
2111 2111 }
2112 2112
2113 2113 #content div.box div.title div.search {
2114 background:url("../../images/title_link.png") no-repeat top left;
2114 background:url("../images/title_link.png") no-repeat top left;
2115 2115 border-left:1px solid #316293;
2116 2116 }
2117 2117
2118 2118 #content div.box div.title div.search div.input input {
2119 2119 border:1px solid #316293;
2120 2120 }
2121 2121
2122 2122 #content div.box div.title div.search div.button input.ui-button {
2123 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
2123 background:#4e85bb url("../images/button_highlight.png") repeat-x;
2124 2124 border:1px solid #316293;
2125 2125 border-left:none;
2126 2126 color:#FFF;
2127 2127 }
2128 2128
2129 2129 #content div.box div.title div.search div.button input.ui-state-hover {
2130 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
2130 background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x;
2131 2131 border:1px solid #316293;
2132 2132 border-left:none;
2133 2133 color:#FFF;
2134 2134 }
2135 2135
2136 2136 #content div.box div.form div.fields div.field div.highlight .ui-button {
2137 background:#4e85bb url("../../images/button_highlight.png") repeat-x;
2137 background:#4e85bb url("../images/button_highlight.png") repeat-x;
2138 2138 border-top:1px solid #5c91a4;
2139 2139 border-left:1px solid #2a6f89;
2140 2140 border-right:1px solid #2b7089;
2141 2141 border-bottom:1px solid #1a6480;
2142 2142 color:#fff;
2143 2143 }
2144 2144
2145 2145 #content div.box div.form div.fields div.field div.highlight .ui-state-hover {
2146 background:#46a0c1 url("../../images/button_highlight_selected.png") repeat-x;
2146 background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x;
2147 2147 border-top:1px solid #78acbf;
2148 2148 border-left:1px solid #34819e;
2149 2149 border-right:1px solid #35829f;
2150 2150 border-bottom:1px solid #257897;
2151 2151 color:#fff;
2152 2152 }
2153 2153
2154 2154 ins,div.options a:hover {
2155 2155 text-decoration:none;
2156 2156 }
2157 2157
2158 2158 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 {
2159 2159 border:none;
2160 2160 }
2161 2161
2162 2162 img.icon,.right .merge img {
2163 2163 vertical-align:bottom;
2164 2164 }
2165 2165
2166 2166 #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 {
2167 2167 float:right;
2168 2168 margin:0;
2169 2169 padding:0;
2170 2170 }
2171 2171
2172 2172 #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 {
2173 2173 float:left;
2174 2174 }
2175 2175
2176 2176 #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 {
2177 2177 display:none;
2178 2178 }
2179 2179
2180 2180 #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 {
2181 2181 display:block;
2182 2182 }
2183 2183
2184 2184 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a {
2185 2185 color:#bfe3ff;
2186 2186 }
2187 2187
2188 2188 #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 {
2189 2189 margin:10px 24px 10px 44px;
2190 2190 }
2191 2191
2192 2192 #content div.box div.form,#content div.box div.table,#content div.box div.traffic {
2193 2193 clear:both;
2194 2194 overflow:hidden;
2195 2195 margin:0;
2196 2196 padding:0 20px 10px;
2197 2197 }
2198 2198
2199 2199 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields {
2200 2200 clear:both;
2201 2201 overflow:hidden;
2202 2202 margin:0;
2203 2203 padding:0;
2204 2204 }
2205 2205
2206 2206 #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 {
2207 2207 height:1%;
2208 2208 display:block;
2209 2209 color:#363636;
2210 2210 margin:0;
2211 2211 padding:2px 0 0;
2212 2212 }
2213 2213
2214 2214 #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 {
2215 2215 background:#FBE3E4;
2216 2216 border-top:1px solid #e1b2b3;
2217 2217 border-left:1px solid #e1b2b3;
2218 2218 border-right:1px solid #FBC2C4;
2219 2219 border-bottom:1px solid #FBC2C4;
2220 2220 }
2221 2221
2222 2222 #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 {
2223 2223 background:#E6EFC2;
2224 2224 border-top:1px solid #cebb98;
2225 2225 border-left:1px solid #cebb98;
2226 2226 border-right:1px solid #c6d880;
2227 2227 border-bottom:1px solid #c6d880;
2228 2228 }
2229 2229
2230 2230 #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 {
2231 2231 margin:0;
2232 2232 }
2233 2233
2234 2234 #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{
2235 2235 margin:0 0 0 0px !important;
2236 2236 padding:0;
2237 2237 }
2238 2238
2239 2239 #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 {
2240 2240 margin:0 0 0 200px;
2241 2241 padding:0;
2242 2242 }
2243 2243
2244 2244
2245 2245 #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 {
2246 2246 color:#000;
2247 2247 text-decoration:none;
2248 2248 }
2249 2249
2250 2250 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus {
2251 2251 border:1px solid #666;
2252 2252 }
2253 2253
2254 2254 #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 {
2255 2255 clear:both;
2256 2256 overflow:hidden;
2257 2257 margin:0;
2258 2258 padding:8px 0 2px;
2259 2259 }
2260 2260
2261 2261 #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 {
2262 2262 float:left;
2263 2263 margin:0;
2264 2264 }
2265 2265
2266 2266 #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 {
2267 2267 height:1%;
2268 2268 display:block;
2269 2269 float:left;
2270 2270 margin:2px 0 0 4px;
2271 2271 }
2272 2272
2273 2273 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 {
2274 2274 color:#000;
2275 2275 font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
2276 2276 font-size:11px;
2277 2277 font-weight:700;
2278 2278 margin:0;
2279 2279 }
2280 2280
2281 2281 div.form div.fields div.field div.button .ui-button,#content div.box div.form div.fields div.buttons input.ui-button {
2282 2282 background:#e5e3e3 url("../images/button.png") repeat-x;
2283 2283 border-top:1px solid #DDD;
2284 2284 border-left:1px solid #c6c6c6;
2285 2285 border-right:1px solid #DDD;
2286 2286 border-bottom:1px solid #c6c6c6;
2287 2287 color:#515151;
2288 2288 outline:none;
2289 2289 margin:0;
2290 2290 padding:6px 12px;
2291 2291 }
2292 2292
2293 2293 div.form div.fields div.field div.button .ui-state-hover,#content div.box div.form div.fields div.buttons input.ui-state-hover {
2294 2294 background:#b4b4b4 url("../images/button_selected.png") repeat-x;
2295 2295 border-top:1px solid #ccc;
2296 2296 border-left:1px solid #bebebe;
2297 2297 border-right:1px solid #b1b1b1;
2298 2298 border-bottom:1px solid #afafaf;
2299 2299 color:#515151;
2300 2300 outline:none;
2301 2301 margin:0;
2302 2302 padding:6px 12px;
2303 2303 }
2304 2304
2305 2305 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight {
2306 2306 display:inline;
2307 2307 }
2308 2308
2309 2309 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons {
2310 2310 margin:10px 0 0 200px;
2311 2311 padding:0;
2312 2312 }
2313 2313
2314 2314 #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 {
2315 2315 margin:10px 0 0;
2316 2316 }
2317 2317
2318 2318 #content div.box table td.user,#content div.box table td.address {
2319 2319 width:10%;
2320 2320 text-align:center;
2321 2321 }
2322 2322
2323 2323 #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 {
2324 2324 text-align:right;
2325 2325 margin:6px 0 0;
2326 2326 padding:0;
2327 2327 }
2328 2328
2329 2329 #content div.box div.action div.button input.ui-button,#login div.form div.fields div.buttons input.ui-button,#register div.form div.fields div.buttons input.ui-button {
2330 2330 background:#e5e3e3 url("../images/button.png") repeat-x;
2331 2331 border-top:1px solid #DDD;
2332 2332 border-left:1px solid #c6c6c6;
2333 2333 border-right:1px solid #DDD;
2334 2334 border-bottom:1px solid #c6c6c6;
2335 2335 color:#515151;
2336 2336 margin:0;
2337 2337 padding:6px 12px;
2338 2338 }
2339 2339
2340 2340 #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 {
2341 2341 background:#b4b4b4 url("../images/button_selected.png") repeat-x;
2342 2342 border-top:1px solid #ccc;
2343 2343 border-left:1px solid #bebebe;
2344 2344 border-right:1px solid #b1b1b1;
2345 2345 border-bottom:1px solid #afafaf;
2346 2346 color:#515151;
2347 2347 margin:0;
2348 2348 padding:6px 12px;
2349 2349 }
2350 2350
2351 2351 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results {
2352 2352 text-align:left;
2353 2353 float:left;
2354 2354 margin:0;
2355 2355 padding:0;
2356 2356 }
2357 2357
2358 2358 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span {
2359 2359 height:1%;
2360 2360 display:block;
2361 2361 float:left;
2362 2362 background:#ebebeb url("../images/pager.png") repeat-x;
2363 2363 border-top:1px solid #dedede;
2364 2364 border-left:1px solid #cfcfcf;
2365 2365 border-right:1px solid #c4c4c4;
2366 2366 border-bottom:1px solid #c4c4c4;
2367 2367 color:#4A4A4A;
2368 2368 font-weight:700;
2369 2369 margin:0;
2370 2370 padding:6px 8px;
2371 2371 }
2372 2372
2373 2373 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled {
2374 2374 color:#B4B4B4;
2375 2375 padding:6px;
2376 2376 }
2377 2377
2378 2378 #login,#register {
2379 2379 width:520px;
2380 2380 margin:10% auto 0;
2381 2381 padding:0;
2382 2382 }
2383 2383
2384 2384 #login div.color,#register div.color {
2385 2385 clear:both;
2386 2386 overflow:hidden;
2387 2387 background:#FFF;
2388 2388 margin:10px auto 0;
2389 2389 padding:3px 3px 3px 0;
2390 2390 }
2391 2391
2392 2392 #login div.color a,#register div.color a {
2393 2393 width:20px;
2394 2394 height:20px;
2395 2395 display:block;
2396 2396 float:left;
2397 2397 margin:0 0 0 3px;
2398 2398 padding:0;
2399 2399 }
2400 2400
2401 2401 #login div.title h5,#register div.title h5 {
2402 2402 color:#fff;
2403 2403 margin:10px;
2404 2404 padding:0;
2405 2405 }
2406 2406
2407 2407 #login div.form div.fields div.field,#register div.form div.fields div.field {
2408 2408 clear:both;
2409 2409 overflow:hidden;
2410 2410 margin:0;
2411 2411 padding:0 0 10px;
2412 2412 }
2413 2413
2414 2414 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message {
2415 2415 height:1%;
2416 2416 display:block;
2417 2417 color:red;
2418 2418 margin:8px 0 0;
2419 2419 padding:0;
2420 2420 max-width: 320px;
2421 2421 }
2422 2422
2423 2423 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label {
2424 2424 color:#000;
2425 2425 font-weight:700;
2426 2426 }
2427 2427
2428 2428 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input {
2429 2429 float:left;
2430 2430 margin:0;
2431 2431 padding:0;
2432 2432 }
2433 2433
2434 2434 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox {
2435 2435 margin:0 0 0 184px;
2436 2436 padding:0;
2437 2437 }
2438 2438
2439 2439 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label {
2440 2440 color:#565656;
2441 2441 font-weight:700;
2442 2442 }
2443 2443
2444 2444 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input {
2445 2445 color:#000;
2446 2446 font-size:1em;
2447 2447 font-weight:700;
2448 2448 font-family:Verdana, Helvetica, Sans-Serif;
2449 2449 margin:0;
2450 2450 }
2451 2451
2452 2452 #changeset_content .container .wrapper,#graph_content .container .wrapper {
2453 2453 width:600px;
2454 2454 }
2455 2455
2456 2456 #changeset_content .container .left,#graph_content .container .left {
2457 2457 float:left;
2458 2458 width:70%;
2459 2459 padding-left:5px;
2460 2460 }
2461 2461
2462 2462 #changeset_content .container .left .date,.ac .match {
2463 2463 font-weight:700;
2464 2464 padding-top: 5px;
2465 2465 padding-bottom:5px;
2466 2466 }
2467 2467
2468 2468 div#legend_container table td,div#legend_choices table td {
2469 2469 border:none !important;
2470 2470 height:20px !important;
2471 2471 padding:0 !important;
2472 2472 }
2473 2473
2474 2474 #q_filter{
2475 2475 border:0 none;
2476 2476 color:#AAAAAA;
2477 2477 margin-bottom:-4px;
2478 2478 margin-top:-4px;
2479 2479 padding-left:3px;
2480 2480 }
2481 2481
@@ -1,392 +1,392
1 1 ## -*- coding: utf-8 -*-
2 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 4 <head>
5 5 <title>${next.title()}</title>
6 <link rel="icon" href="${h.url('/images/icons/database_gear.png',_static=True)}" type="image/png" />
6 <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
7 7 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8 <meta name="robots" content="index, nofollow"/>
9 9 <!-- stylesheets -->
10 10 ${self.css()}
11 11 <!-- scripts -->
12 12 ${self.js()}
13 13 %if c.ga_code:
14 14 <script type="text/javascript">
15 15
16 16 var _gaq = _gaq || [];
17 17 _gaq.push(['_setAccount', '${c.ga_code}']);
18 18 _gaq.push(['_trackPageview']);
19 19
20 20 (function() {
21 21 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
22 22 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
23 23 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
24 24 })();
25 25
26 26
27 27 </script>
28 28 %endif
29 29 </head>
30 30 <body>
31 31 <!-- header -->
32 32 <div id="header">
33 33 <!-- user -->
34 34 <ul id="logged-user">
35 35 <li class="first">
36 36 <div class="gravatar">
37 37 <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,20)}" />
38 38 </div>
39 39 <div class="account">
40 40 %if c.rhodecode_user.username == 'default':
41 41 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
42 42 ${h.link_to('anonymous',h.url('register'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))}
43 43 %else:
44 44 ${h.link_to('anonymous',h.url('#'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))}
45 45 %endif
46 46
47 47 %else:
48 48 ${h.link_to(c.rhodecode_user.username,h.url('admin_settings_my_account'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))}
49 49 %endif
50 50 </div>
51 51 </li>
52 52 <li>
53 53 <a href="${h.url('home')}">${_('Home')}</a>
54 54 </li>
55 55 %if c.rhodecode_user.username != 'default':
56 56 <li>
57 57 <a href="${h.url('journal')}">${_('Journal')}</a>
58 58 ##(${c.unread_journal})</a>
59 59 </li>
60 60 %endif
61 61 %if c.rhodecode_user.username == 'default':
62 62 <li class="last highlight">${h.link_to(u'Login',h.url('login_home'))}</li>
63 63 %else:
64 64 <li class="last highlight">${h.link_to(u'Log Out',h.url('logout_home'))}</li>
65 65 %endif
66 66 </ul>
67 67 <!-- end user -->
68 68 <div id="header-inner" class="title top-left-rounded-corner top-right-rounded-corner">
69 69 <!-- logo -->
70 70 <div id="logo">
71 71 <h1><a href="${h.url('home')}">${c.rhodecode_name}</a></h1>
72 72 </div>
73 73 <!-- end logo -->
74 74 <!-- menu -->
75 75 ${self.page_nav()}
76 76 <!-- quick -->
77 77 </div>
78 78 </div>
79 79 <!-- end header -->
80 80
81 81 <!-- CONTENT -->
82 82 <div id="content">
83 83 <div class="flash_msg">
84 84 <% messages = h.flash.pop_messages() %>
85 85 % if messages:
86 86 <ul id="flash-messages">
87 87 % for message in messages:
88 88 <li class="${message.category}_msg">${message}</li>
89 89 % endfor
90 90 </ul>
91 91 % endif
92 92 </div>
93 93 <div id="main">
94 94 ${next.main()}
95 95 </div>
96 96 </div>
97 97 <!-- END CONTENT -->
98 98
99 99 <!-- footer -->
100 100 <div id="footer">
101 101 <div id="footer-inner" class="title bottom-left-rounded-corner bottom-right-rounded-corner">
102 102 <div>
103 103 <p class="footer-link">${h.link_to(_('Submit a bug'),h.url('bugtracker'))}</p>
104 104 <p class="footer-link">${h.link_to(_('GPL license'),h.url('gpl_license'))}</p>
105 105 <p>RhodeCode ${c.rhodecode_version} &copy; 2010-2011 by Marcin Kuzminski</p>
106 106 </div>
107 107 </div>
108 108 <script type="text/javascript">
109 109 function tooltip_activate(){
110 110 ${h.tooltip.activate()}
111 111 }
112 112 tooltip_activate();
113 113 </script>
114 114 </div>
115 115 <!-- end footer -->
116 116 </body>
117 117
118 118 </html>
119 119
120 120 ### MAKO DEFS ###
121 121 <%def name="page_nav()">
122 122 ${self.menu()}
123 123 </%def>
124 124
125 125 <%def name="menu(current=None)">
126 126 <%
127 127 def is_current(selected):
128 128 if selected == current:
129 129 return h.literal('class="current"')
130 130 %>
131 131 %if current not in ['home','admin']:
132 132 ##REGULAR MENU
133 133 <ul id="quick">
134 134 <!-- repo switcher -->
135 135 <li>
136 136 <a id="repo_switcher" title="${_('Switch repository')}" href="#">
137 137 <span class="icon">
138 138 <img src="/images/icons/database.png" alt="${_('Products')}" />
139 139 </span>
140 140 <span>&darr;</span>
141 141 </a>
142 142 <ul class="repo_switcher">
143 143 %for repo in c.cached_repo_list:
144 144
145 145 %if repo['dbrepo']['private']:
146 146 <li><img src="/images/icons/lock.png" alt="${_('Private repository')}" class="repo_switcher_type"/>${h.link_to(repo['repo'].name,h.url('summary_home',repo_name=repo['repo'].name),class_="%s" % repo['dbrepo']['repo_type'])}</li>
147 147 %else:
148 148 <li><img src="/images/icons/lock_open.png" alt="${_('Public repository')}" class="repo_switcher_type" />${h.link_to(repo['repo'].name,h.url('summary_home',repo_name=repo['repo'].name),class_="%s" % repo['dbrepo']['repo_type'])}</li>
149 149 %endif
150 150 %endfor
151 151 </ul>
152 152 </li>
153 153
154 154 <li ${is_current('summary')}>
155 155 <a title="${_('Summary')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
156 156 <span class="icon">
157 157 <img src="/images/icons/clipboard_16.png" alt="${_('Summary')}" />
158 158 </span>
159 159 <span>${_('Summary')}</span>
160 160 </a>
161 161 </li>
162 162 ##<li ${is_current('shortlog')}>
163 163 ## <a title="${_('Shortlog')}" href="${h.url('shortlog_home',repo_name=c.repo_name)}">
164 164 ## <span class="icon">
165 165 ## <img src="/images/icons/application_view_list.png" alt="${_('Shortlog')}" />
166 166 ## </span>
167 167 ## <span>${_('Shortlog')}</span>
168 168 ## </a>
169 169 ##</li>
170 170 <li ${is_current('changelog')}>
171 171 <a title="${_('Changelog')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
172 172 <span class="icon">
173 173 <img src="/images/icons/time.png" alt="${_('Changelog')}" />
174 174 </span>
175 175 <span>${_('Changelog')}</span>
176 176 </a>
177 177 </li>
178 178
179 179 <li ${is_current('switch_to')}>
180 180 <a title="${_('Switch to')}" href="#">
181 181 <span class="icon">
182 182 <img src="/images/icons/arrow_switch.png" alt="${_('Switch to')}" />
183 183 </span>
184 184 <span>${_('Switch to')}</span>
185 185 </a>
186 186 <ul>
187 187 <li>
188 188 ${h.link_to('%s (%s)' % (_('branches'),len(c.rhodecode_repo.branches.values()),),h.url('branches_home',repo_name=c.repo_name),class_='branches childs')}
189 189 <ul>
190 190 %if c.rhodecode_repo.branches.values():
191 191 %for cnt,branch in enumerate(c.rhodecode_repo.branches.items()):
192 192 <li>${h.link_to('%s - %s' % (branch[0],h.short_id(branch[1])),h.url('files_home',repo_name=c.repo_name,revision=branch[1]))}</li>
193 193 %endfor
194 194 %else:
195 195 <li>${h.link_to(_('There are no branches yet'),'#')}</li>
196 196 %endif
197 197 </ul>
198 198 </li>
199 199 <li>
200 200 ${h.link_to('%s (%s)' % (_('tags'),len(c.rhodecode_repo.tags.values()),),h.url('tags_home',repo_name=c.repo_name),class_='tags childs')}
201 201 <ul>
202 202 %if c.rhodecode_repo.tags.values():
203 203 %for cnt,tag in enumerate(c.rhodecode_repo.tags.items()):
204 204 <li>${h.link_to('%s - %s' % (tag[0],h.short_id(tag[1])),h.url('files_home',repo_name=c.repo_name,revision=tag[1]))}</li>
205 205 %endfor
206 206 %else:
207 207 <li>${h.link_to(_('There are no tags yet'),'#')}</li>
208 208 %endif
209 209 </ul>
210 210 </li>
211 211 </ul>
212 212 </li>
213 213 <li ${is_current('files')}>
214 214 <a title="${_('Files')}" href="${h.url('files_home',repo_name=c.repo_name)}">
215 215 <span class="icon">
216 216 <img src="/images/icons/file.png" alt="${_('Files')}" />
217 217 </span>
218 218 <span>${_('Files')}</span>
219 219 </a>
220 220 </li>
221 221
222 222 <li ${is_current('options')}>
223 223 <a title="${_('Options')}" href="#">
224 224 <span class="icon">
225 225 <img src="/images/icons/table_gear.png" alt="${_('Admin')}" />
226 226 </span>
227 227 <span>${_('Options')}</span>
228 228 </a>
229 229 <ul>
230 230 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
231 231 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
232 232 <li>${h.link_to(_('settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
233 233 %else:
234 234 <li>${h.link_to(_('settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
235 235 %endif
236 236 <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
237 237 %endif
238 238 <li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
239 239
240 240 %if h.HasPermissionAll('hg.admin')('access admin main page'):
241 241 <li>
242 242 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
243 243 <%def name="admin_menu()">
244 244 <ul>
245 245 <li>${h.link_to(_('journal'),h.url('admin_home'),class_='journal')}</li>
246 246 <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
247 247 <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
248 248 <li>${h.link_to(_('users groups'),h.url('users_groups'),class_='groups')}</li>
249 249 <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
250 250 <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
251 251 <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
252 252 </ul>
253 253 </%def>
254 254
255 255 ${admin_menu()}
256 256 </li>
257 257 %endif
258 258
259 259 </ul>
260 260 </li>
261 261
262 262 <li>
263 263 <a title="${_('Followers')}" href="#">
264 264 <span class="icon_short">
265 265 <img src="/images/icons/heart.png" alt="${_('Followers')}" />
266 266 </span>
267 267 <span class="short">${c.repository_followers}</span>
268 268 </a>
269 269 </li>
270 270 <li>
271 271 <a title="${_('Forks')}" href="#">
272 272 <span class="icon_short">
273 273 <img src="/images/icons/arrow_divide.png" alt="${_('Forks')}" />
274 274 </span>
275 275 <span class="short">${c.repository_forks}</span>
276 276 </a>
277 277 </li>
278 278
279 279
280 280
281 281 </ul>
282 282 %else:
283 283 ##ROOT MENU
284 284 <ul id="quick">
285 285 <li>
286 286 <a title="${_('Home')}" href="${h.url('home')}">
287 287 <span class="icon">
288 288 <img src="/images/icons/home_16.png" alt="${_('Home')}" />
289 289 </span>
290 290 <span>${_('Home')}</span>
291 291 </a>
292 292 </li>
293 293 %if c.rhodecode_user.username != 'default':
294 294 <li>
295 295 <a title="${_('Journal')}" href="${h.url('journal')}">
296 296 <span class="icon">
297 297 <img src="/images/icons/book.png" alt="${_('Journal')}" />
298 298 </span>
299 299 <span>${_('Journal')}</span>
300 300 </a>
301 301 </li>
302 302 %endif
303 303 <li>
304 304 <a title="${_('Search')}" href="${h.url('search')}">
305 305 <span class="icon">
306 306 <img src="/images/icons/search_16.png" alt="${_('Search')}" />
307 307 </span>
308 308 <span>${_('Search')}</span>
309 309 </a>
310 310 </li>
311 311
312 312 %if h.HasPermissionAll('hg.admin')('access admin main page'):
313 313 <li ${is_current('admin')}>
314 314 <a title="${_('Admin')}" href="${h.url('admin_home')}">
315 315 <span class="icon">
316 316 <img src="/images/icons/cog_edit.png" alt="${_('Admin')}" />
317 317 </span>
318 318 <span>${_('Admin')}</span>
319 319 </a>
320 320 ${admin_menu()}
321 321 </li>
322 322 %endif
323 323 </ul>
324 324 %endif
325 325 </%def>
326 326
327 327
328 328 <%def name="css()">
329 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css',_static=True)}" media="screen" />
330 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css',_static=True)}" />
331 <link rel="stylesheet" type="text/css" href="${h.url('/css/diff.css',_static=True)}" />
329 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen" />
330 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css')}" />
331 <link rel="stylesheet" type="text/css" href="${h.url('/css/diff.css')}" />
332 332 </%def>
333 333
334 334 <%def name="js()">
335 ##<script type="text/javascript" src="${h.url('/js/yui/utilities/utilities.js',_static=True)}"></script>
336 ##<script type="text/javascript" src="${h.url('/js/yui/container/container.js',_static=True)}"></script>
337 ##<script type="text/javascript" src="${h.url('/js/yui/datasource/datasource.js',_static=True)}"></script>
338 ##<script type="text/javascript" src="${h.url('/js/yui/autocomplete/autocomplete.js',_static=True)}"></script>
339 ##<script type="text/javascript" src="${h.url('/js/yui/selector/selector-min.js',_static=True)}"></script>
335 ##<script type="text/javascript" src="${h.url('/js/yui/utilities/utilities.js')}"></script>
336 ##<script type="text/javascript" src="${h.url('/js/yui/container/container.js')}"></script>
337 ##<script type="text/javascript" src="${h.url('/js/yui/datasource/datasource.js')}"></script>
338 ##<script type="text/javascript" src="${h.url('/js/yui/autocomplete/autocomplete.js')}"></script>
339 ##<script type="text/javascript" src="${h.url('/js/yui/selector/selector-min.js')}"></script>
340 340
341 <script type="text/javascript" src="${h.url('/js/yui2a.js',_static=True)}"></script>
342 <!--[if IE]><script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js',_static=True)}"></script><![endif]-->
343 <script type="text/javascript" src="${h.url('/js/yui.flot.js',_static=True)}"></script>
341 <script type="text/javascript" src="${h.url('/js/yui2a.js')}"></script>
342 <!--[if IE]><script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script><![endif]-->
343 <script type="text/javascript" src="${h.url('/js/yui.flot.js')}"></script>
344 344
345 345 <script type="text/javascript">
346 346 var base_url = "${h.url('toggle_following')}";
347 347 var YUC = YAHOO.util.Connect;
348 348 var YUD = YAHOO.util.Dom;
349 349 var YUE = YAHOO.util.Event;
350 350
351 351 function onSuccess(target){
352 352
353 353 var f = YUD.get(target.id);
354 354 if(f.getAttribute('class')=='follow'){
355 355 f.setAttribute('class','following');
356 356 f.setAttribute('title',"${_('Stop following this repository')}");
357 357 }
358 358 else{
359 359 f.setAttribute('class','follow');
360 360 f.setAttribute('title',"${_('Start following this repository')}");
361 361 }
362 362 }
363 363
364 364 function toggleFollowingUser(fallows_user_id,token){
365 365 args = 'follows_user_id='+fallows_user_id;
366 366 args+= '&amp;auth_token='+token;
367 367 YUC.asyncRequest('POST',base_url,{
368 368 success:function(o){
369 369 onSuccess();
370 370 }
371 371 },args); return false;
372 372 }
373 373
374 374 function toggleFollowingRepo(target,fallows_repo_id,token){
375 375
376 376 args = 'follows_repo_id='+fallows_repo_id;
377 377 args+= '&amp;auth_token='+token;
378 378 YUC.asyncRequest('POST',base_url,{
379 379 success:function(o){
380 380 onSuccess(target);
381 381 }
382 382 },args); return false;
383 383 }
384 384 </script>
385 385
386 386 </%def>
387 387
388 388 <%def name="breadcrumbs()">
389 389 <div class="breadcrumbs">
390 390 ${self.breadcrumbs_links()}
391 391 </div>
392 392 </%def> No newline at end of file
@@ -1,161 +1,161
1 1 ## -*- coding: utf-8 -*-
2 2
3 3 <%inherit file="/base/base.html"/>
4 4
5 5 <%def name="title()">
6 6 ${c.repo_name} ${_('Changelog')} - ${c.rhodecode_name}
7 7 </%def>
8 8
9 9 <%def name="breadcrumbs_links()">
10 10 ${h.link_to(u'Home',h.url('/'))}
11 11 &raquo;
12 12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
13 13 &raquo;
14 14 ${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
15 15 </%def>
16 16
17 17 <%def name="page_nav()">
18 18 ${self.menu('changelog')}
19 19 </%def>
20 20
21 21 <%def name="main()">
22 22 <div class="box">
23 23 <!-- box / title -->
24 24 <div class="title">
25 25 ${self.breadcrumbs()}
26 26 </div>
27 27 <div class="table">
28 28 % if c.pagination:
29 29 <div id="graph">
30 30 <div id="graph_nodes">
31 31 <canvas id="graph_canvas"></canvas>
32 32 </div>
33 33 <div id="graph_content">
34 34 <div class="container_header">
35 35 ${h.form(h.url.current(),method='get')}
36 36 <div class="info_box">
37 37 <span>${_('Show')}:</span>
38 38 ${h.text('size',size=1,value=c.size)}
39 39 <span>${_('revisions')}</span>
40 40 ${h.submit('set',_('set'))}
41 41
42 42 </div>
43 43 ${h.end_form()}
44 44 <div id="rev_range_container" style="display:none"></div>
45 45 </div>
46 46
47 47 %for cnt,cs in enumerate(c.pagination):
48 48 <div id="chg_${cnt+1}" class="container">
49 49 <div class="left">
50 50 <div class="date">
51 51 ${h.checkbox(cs.short_id,class_="changeset_range")}
52 52 <span>${_('commit')} ${cs.revision}: ${h.short_id(cs.raw_id)}@${cs.date}</span>
53 53 </div>
54 54 <div class="author">
55 55 <div class="gravatar">
56 56 <img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),20)}"/>
57 57 </div>
58 58 <span>${h.person(cs.author)}</span><br/>
59 59 <span><a href="mailto:${h.email_or_none(cs.author)}">${h.email_or_none(cs.author)}</a></span><br/>
60 60 </div>
61 61 <div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
62 62 </div>
63 63 <div class="right">
64 64 <div class="changes">
65 65 <span class="removed tooltip" title="<b>${_('removed')}</b>${h.changed_tooltip(cs.removed)}">${len(cs.removed)}</span>
66 66 <span class="changed tooltip" title="<b>${_('changed')}</b>${h.changed_tooltip(cs.changed)}">${len(cs.changed)}</span>
67 67 <span class="added tooltip" title="<b>${_('added')}</b>${h.changed_tooltip(cs.added)}">${len(cs.added)}</span>
68 68 </div>
69 69 %if len(cs.parents)>1:
70 70 <div class="merge">
71 71 ${_('merge')}<img alt="merge" src="/images/icons/arrow_join.png"/>
72 72 </div>
73 73 %endif
74 74 %if cs.parents:
75 75 %for p_cs in reversed(cs.parents):
76 76 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(h.short_id(p_cs.raw_id),
77 77 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
78 78 </div>
79 79 %endfor
80 80 %else:
81 81 <div class="parent">${_('No parents')}</div>
82 82 %endif
83 83
84 84 <span class="logtags">
85 85 %if cs.branch:
86 86 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
87 87 ${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
88 88 %endif
89 89 %for tag in cs.tags:
90 90 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
91 91 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
92 92 %endfor
93 93 </span>
94 94 </div>
95 95 </div>
96 96
97 97 %endfor
98 98 <div class="pagination-wh pagination-left">
99 99 ${c.pagination.pager('$link_previous ~2~ $link_next')}
100 100 </div>
101 101 </div>
102 102 </div>
103 103
104 <script type="text/javascript" src="${h.url('/js/graph.js',_static=True)}"></script>
104 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
105 105 <script type="text/javascript">
106 106 YAHOO.util.Event.onDOMReady(function(){
107 107
108 108 //Monitor range checkboxes and build a link to changesets
109 109 //ranges
110 110 var checkboxes = YUD.getElementsByClassName('changeset_range');
111 111 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
112 112 YUE.on(checkboxes,'click',function(e){
113 113 var checked_checkboxes = [];
114 114 for (pos in checkboxes){
115 115 if(checkboxes[pos].checked){
116 116 checked_checkboxes.push(checkboxes[pos]);
117 117 }
118 118 }
119 119 if(checked_checkboxes.length>1){
120 120 var rev_end = checked_checkboxes[0].name;
121 121 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
122 122
123 123 var url = url_tmpl.replace('__REVRANGE__',
124 124 rev_start+'...'+rev_end);
125 125
126 126 var link = "<a href="+url+">${_('Show selected changes __S -> __E')}</a>"
127 127 link = link.replace('__S',rev_start);
128 128 link = link.replace('__E',rev_end);
129 129 YUD.get('rev_range_container').innerHTML = link;
130 130 YUD.setStyle('rev_range_container','display','');
131 131 }
132 132 else{
133 133 YUD.setStyle('rev_range_container','display','none');
134 134
135 135 }
136 136 });
137 137
138 138 function set_canvas() {
139 139 var c = document.getElementById('graph_nodes');
140 140 var t = document.getElementById('graph_content');
141 141 canvas = document.getElementById('graph_canvas');
142 142 var div_h = t.clientHeight;
143 143 c.style.height=div_h+'px';
144 144 canvas.setAttribute('height',div_h);
145 145 canvas.setAttribute('width',160);
146 146 };
147 147 set_canvas();
148 148 var jsdata = ${c.jsdata|n};
149 149 var r = new BranchRenderer();
150 150 r.render(jsdata);
151 151
152 152
153 153
154 154 });
155 155 </script>
156 156 %else:
157 157 ${_('There are no changes yet')}
158 158 %endif
159 159 </div>
160 160 </div>
161 161 </%def> No newline at end of file
@@ -1,54 +1,54
1 1 ## -*- coding: utf-8 -*-
2 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 4 <head>
5 5 <title>Error - ${c.error_message}</title>
6 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 7 %if c.redirect_time:
8 8 <meta http-equiv="refresh" content="${c.redirect_time}; url=${c.url_redirect}"/>
9 9 %endif
10 10 <link rel="icon" href="/images/hgicon.png" type="image/png" />
11 11 <meta name="robots" content="index, nofollow"/>
12 12
13 13 <!-- stylesheets -->
14 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css',_static=True)}" media="screen" />
14 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen" />
15 15 <style type="text/css">
16 16 #main_div{
17 17 border: 0px solid #000;
18 18 width: 500px;
19 19 margin: auto;
20 20 text-align: center;
21 21 margin-top: 200px;
22 22 font-size: 1.6em;
23 23 }
24 24 .error_message{
25 25 text-align: center;
26 26 color:#003367;
27 27 font-size: 1.6em;
28 28 margin:10px;
29 29 }
30 30 </style>
31 31
32 32 </head>
33 33 <body>
34 34
35 35 <div id="login">
36 36 <div class="table">
37 37 <div id="main_div">
38 38 <div style="font-size:2.0em;margin: 10px">${c.rhodecode_name}</div>
39 39 <h1 class="error_message">${c.error_message}</h1>
40 40
41 41 <p>${c.error_explanation}</p>
42 42
43 43 %if c.redirect_time:
44 44 <p>${_('You will be redirected to %s in %s seconds') % (c.redirect_module,c.redirect_time)}</p>
45 45 %endif
46 46
47 47 </div>
48 48 </div>
49 49 <!-- end login -->
50 50 </div>
51 51 </body>
52 52
53 53 </html>
54 54
@@ -1,72 +1,72
1 1 ## -*- coding: utf-8 -*-
2 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 4 <head>
5 5 <title>${_('Sign In')} - ${c.rhodecode_name}</title>
6 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 7 <link rel="icon" href="/images/icons/database_gear.png" type="image/png" />
8 8 <meta name="robots" content="index, nofollow"/>
9 9
10 10 <!-- stylesheets -->
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css',_static=True)}" media="screen" />
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen" />
12 12
13 13 </head>
14 14 <body>
15 15 <div id="login">
16 16 <!-- login -->
17 17 <div class="title top-left-rounded-corner top-right-rounded-corner">
18 18 <h5>${_('Sign In to')} ${c.rhodecode_name}</h5>
19 19 </div>
20 20 <div class="inner">
21 21 ${h.form(h.url.current(came_from=c.came_from))}
22 22 <div class="form">
23 23 <!-- fields -->
24 24
25 25 <div class="fields">
26 26 <div class="field">
27 27 <div class="label">
28 28 <label for="username">${_('Username')}:</label>
29 29 </div>
30 30 <div class="input">
31 31 ${h.text('username',class_='focus',size=40)}
32 32 </div>
33 33
34 34 </div>
35 35 <div class="field">
36 36 <div class="label">
37 37 <label for="password">${_('Password')}:</label>
38 38 </div>
39 39 <div class="input">
40 40 ${h.password('password',class_='focus',size=40)}
41 41 </div>
42 42
43 43 </div>
44 44 ##<div class="field">
45 45 ## <div class="checkbox">
46 46 ## <input type="checkbox" id="remember" name="remember" />
47 47 ## <label for="remember">Remember me</label>
48 48 ## </div>
49 49 ##</div>
50 50 <div class="buttons">
51 51 ${h.submit('sign_in','Sign In',class_="ui-button")}
52 52 </div>
53 53 </div>
54 54 <!-- end fields -->
55 55 <!-- links -->
56 56 <div class="links">
57 57 ${h.link_to(_('Forgot your password ?'),h.url('reset_password'))}
58 58 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
59 59 /
60 60 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
61 61 %endif
62 62 </div>
63 63
64 64 <!-- end links -->
65 65 </div>
66 66 ${h.end_form()}
67 67 </div>
68 68 <!-- end login -->
69 69 </div>
70 70 </body>
71 71 </html>
72 72
@@ -1,48 +1,48
1 1 ## -*- coding: utf-8 -*-
2 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 4 <head>
5 5 <title>${_('Reset You password')} - ${c.rhodecode_name}</title>
6 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
8 8 <meta name="robots" content="index, nofollow"/>
9 9
10 10 <!-- stylesheets -->
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css',_static=True)}" media="screen" />
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen" />
12 12
13 13 </head>
14 14 <body>
15 15 <div id="register">
16 16
17 17 <div class="title top-left-rounded-corner top-right-rounded-corner">
18 18 <h5>${_('Reset You password to')} ${c.rhodecode_name}</h5>
19 19 </div>
20 20 <div class="inner">
21 21 ${h.form(url('password_reset'))}
22 22 <div class="form">
23 23 <!-- fields -->
24 24 <div class="fields">
25 25
26 26 <div class="field">
27 27 <div class="label">
28 28 <label for="email">${_('Email address')}:</label>
29 29 </div>
30 30 <div class="input">
31 31 ${h.text('email')}
32 32 </div>
33 33 </div>
34 34
35 35 <div class="buttons">
36 36 <div class="nohighlight">
37 37 ${h.submit('send','Reset my password',class_="ui-button")}
38 38 <div class="activation_msg">${_('Your new password will be send to matching email address')}</div>
39 39 </div>
40 40 </div>
41 41 </div>
42 42 </div>
43 43 ${h.end_form()}
44 44 </div>
45 45 </div>
46 46 </body>
47 47 </html>
48 48
@@ -1,96 +1,96
1 1 ## -*- coding: utf-8 -*-
2 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 3 <html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
4 4 <head>
5 5 <title>${_('Sign Up')} - ${c.rhodecode_name}</title>
6 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 7 <link rel="icon" href="/images/hgicon.png" type="image/png" />
8 8 <meta name="robots" content="index, nofollow"/>
9 9
10 10 <!-- stylesheets -->
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css',_static=True)}" media="screen" />
11 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen" />
12 12
13 13 </head>
14 14 <body>
15 15 <div id="register">
16 16
17 17 <div class="title top-left-rounded-corner top-right-rounded-corner">
18 18 <h5>${_('Sign Up to')} ${c.rhodecode_name}</h5>
19 19 </div>
20 20 <div class="inner">
21 21 ${h.form(url('register'))}
22 22 <div class="form">
23 23 <!-- fields -->
24 24 <div class="fields">
25 25 <div class="field">
26 26 <div class="label">
27 27 <label for="username">${_('Username')}:</label>
28 28 </div>
29 29 <div class="input">
30 30 ${h.text('username',class_="medium")}
31 31 </div>
32 32 </div>
33 33
34 34 <div class="field">
35 35 <div class="label">
36 36 <label for="password">${_('Password')}:</label>
37 37 </div>
38 38 <div class="input">
39 39 ${h.password('password',class_="medium")}
40 40 </div>
41 41 </div>
42 42
43 43 <div class="field">
44 44 <div class="label">
45 45 <label for="password">${_('Re-enter password')}:</label>
46 46 </div>
47 47 <div class="input">
48 48 ${h.password('password_confirmation',class_="medium")}
49 49 </div>
50 50 </div>
51 51
52 52 <div class="field">
53 53 <div class="label">
54 54 <label for="name">${_('First Name')}:</label>
55 55 </div>
56 56 <div class="input">
57 57 ${h.text('name',class_="medium")}
58 58 </div>
59 59 </div>
60 60
61 61 <div class="field">
62 62 <div class="label">
63 63 <label for="lastname">${_('Last Name')}:</label>
64 64 </div>
65 65 <div class="input">
66 66 ${h.text('lastname',class_="medium")}
67 67 </div>
68 68 </div>
69 69
70 70 <div class="field">
71 71 <div class="label">
72 72 <label for="email">${_('Email')}:</label>
73 73 </div>
74 74 <div class="input">
75 75 ${h.text('email',class_="medium")}
76 76 </div>
77 77 </div>
78 78
79 79 <div class="buttons">
80 80 <div class="nohighlight">
81 81 ${h.submit('sign_up','Sign Up',class_="ui-button")}
82 82 %if c.auto_active:
83 83 <div class="activation_msg">${_('Your account will be activated right after registration')}</div>
84 84 %else:
85 85 <div class="activation_msg">${_('Your account must wait for activation by administrator')}</div>
86 86 %endif
87 87 </div>
88 88 </div>
89 89 </div>
90 90 </div>
91 91 ${h.end_form()}
92 92 </div>
93 93 </div>
94 94 </body>
95 95 </html>
96 96
General Comments 0
You need to be logged in to leave comments. Login now