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