##// END OF EJS Templates
- diff.css merge to main style.css...
marcink -
r1772:c83d3d42 beta
parent child Browse files
Show More
@@ -1,447 +1,447 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 rhodecode.lib.diffs
3 rhodecode.lib.diffs
4 ~~~~~~~~~~~~~~~~~~~
4 ~~~~~~~~~~~~~~~~~~~
5
5
6 Set of diffing helpers, previously part of vcs
6 Set of diffing helpers, previously part of vcs
7
7
8
8
9 :created_on: Dec 4, 2011
9 :created_on: Dec 4, 2011
10 :author: marcink
10 :author: marcink
11 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
11 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
12 :original copyright: 2007-2008 by Armin Ronacher
12 :original copyright: 2007-2008 by Armin Ronacher
13 :license: GPLv3, see COPYING for more details.
13 :license: GPLv3, see COPYING for more details.
14 """
14 """
15 # This program is free software: you can redistribute it and/or modify
15 # This program is free software: you can redistribute it and/or modify
16 # it under the terms of the GNU General Public License as published by
16 # it under the terms of the GNU General Public License as published by
17 # the Free Software Foundation, either version 3 of the License, or
17 # the Free Software Foundation, either version 3 of the License, or
18 # (at your option) any later version.
18 # (at your option) any later version.
19 #
19 #
20 # This program is distributed in the hope that it will be useful,
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
23 # GNU General Public License for more details.
24 #
24 #
25 # You should have received a copy of the GNU General Public License
25 # You should have received a copy of the GNU General Public License
26 # along with this program. If not, see <http://www.gnu.org/licenses/>.
26 # along with this program. If not, see <http://www.gnu.org/licenses/>.
27
27
28 import re
28 import re
29 import difflib
29 import difflib
30
30
31 from itertools import tee, imap
31 from itertools import tee, imap
32
32
33 from mercurial.match import match
33 from mercurial.match import match
34
34
35 from vcs.exceptions import VCSError
35 from vcs.exceptions import VCSError
36 from vcs.nodes import FileNode
36 from vcs.nodes import FileNode
37
37
38 def get_gitdiff(filenode_old, filenode_new, ignore_whitespace=True, context=3):
38 def get_gitdiff(filenode_old, filenode_new, ignore_whitespace=True, context=3):
39 """
39 """
40 Returns git style diff between given ``filenode_old`` and ``filenode_new``.
40 Returns git style diff between given ``filenode_old`` and ``filenode_new``.
41
41
42 :param ignore_whitespace: ignore whitespaces in diff
42 :param ignore_whitespace: ignore whitespaces in diff
43 """
43 """
44
44
45 for filenode in (filenode_old, filenode_new):
45 for filenode in (filenode_old, filenode_new):
46 if not isinstance(filenode, FileNode):
46 if not isinstance(filenode, FileNode):
47 raise VCSError("Given object should be FileNode object, not %s"
47 raise VCSError("Given object should be FileNode object, not %s"
48 % filenode.__class__)
48 % filenode.__class__)
49
49
50 old_raw_id = getattr(filenode_old.changeset, 'raw_id', '0' * 40)
50 old_raw_id = getattr(filenode_old.changeset, 'raw_id', '0' * 40)
51 new_raw_id = getattr(filenode_new.changeset, 'raw_id', '0' * 40)
51 new_raw_id = getattr(filenode_new.changeset, 'raw_id', '0' * 40)
52
52
53 repo = filenode_new.changeset.repository
53 repo = filenode_new.changeset.repository
54 vcs_gitdiff = repo._get_diff(old_raw_id, new_raw_id, filenode_new.path,
54 vcs_gitdiff = repo._get_diff(old_raw_id, new_raw_id, filenode_new.path,
55 ignore_whitespace, context)
55 ignore_whitespace, context)
56
56
57 return vcs_gitdiff
57 return vcs_gitdiff
58
58
59
59
60 class DiffProcessor(object):
60 class DiffProcessor(object):
61 """
61 """
62 Give it a unified diff and it returns a list of the files that were
62 Give it a unified diff and it returns a list of the files that were
63 mentioned in the diff together with a dict of meta information that
63 mentioned in the diff together with a dict of meta information that
64 can be used to render it in a HTML template.
64 can be used to render it in a HTML template.
65 """
65 """
66 _chunk_re = re.compile(r'@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)')
66 _chunk_re = re.compile(r'@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@(.*)')
67
67
68 def __init__(self, diff, differ='diff', format='udiff'):
68 def __init__(self, diff, differ='diff', format='udiff'):
69 """
69 """
70 :param diff: a text in diff format or generator
70 :param diff: a text in diff format or generator
71 :param format: format of diff passed, `udiff` or `gitdiff`
71 :param format: format of diff passed, `udiff` or `gitdiff`
72 """
72 """
73 if isinstance(diff, basestring):
73 if isinstance(diff, basestring):
74 diff = [diff]
74 diff = [diff]
75
75
76 self.__udiff = diff
76 self.__udiff = diff
77 self.__format = format
77 self.__format = format
78 self.adds = 0
78 self.adds = 0
79 self.removes = 0
79 self.removes = 0
80
80
81 if isinstance(self.__udiff, basestring):
81 if isinstance(self.__udiff, basestring):
82 self.lines = iter(self.__udiff.splitlines(1))
82 self.lines = iter(self.__udiff.splitlines(1))
83
83
84 elif self.__format == 'gitdiff':
84 elif self.__format == 'gitdiff':
85 udiff_copy = self.copy_iterator()
85 udiff_copy = self.copy_iterator()
86 self.lines = imap(self.escaper, self._parse_gitdiff(udiff_copy))
86 self.lines = imap(self.escaper, self._parse_gitdiff(udiff_copy))
87 else:
87 else:
88 udiff_copy = self.copy_iterator()
88 udiff_copy = self.copy_iterator()
89 self.lines = imap(self.escaper, udiff_copy)
89 self.lines = imap(self.escaper, udiff_copy)
90
90
91 # Select a differ.
91 # Select a differ.
92 if differ == 'difflib':
92 if differ == 'difflib':
93 self.differ = self._highlight_line_difflib
93 self.differ = self._highlight_line_difflib
94 else:
94 else:
95 self.differ = self._highlight_line_udiff
95 self.differ = self._highlight_line_udiff
96
96
97 def escaper(self, string):
97 def escaper(self, string):
98 return string.replace('<', '&lt;').replace('>', '&gt;')
98 return string.replace('<', '&lt;').replace('>', '&gt;')
99
99
100 def copy_iterator(self):
100 def copy_iterator(self):
101 """
101 """
102 make a fresh copy of generator, we should not iterate thru
102 make a fresh copy of generator, we should not iterate thru
103 an original as it's needed for repeating operations on
103 an original as it's needed for repeating operations on
104 this instance of DiffProcessor
104 this instance of DiffProcessor
105 """
105 """
106 self.__udiff, iterator_copy = tee(self.__udiff)
106 self.__udiff, iterator_copy = tee(self.__udiff)
107 return iterator_copy
107 return iterator_copy
108
108
109 def _extract_rev(self, line1, line2):
109 def _extract_rev(self, line1, line2):
110 """
110 """
111 Extract the filename and revision hint from a line.
111 Extract the filename and revision hint from a line.
112 """
112 """
113
113
114 try:
114 try:
115 if line1.startswith('--- ') and line2.startswith('+++ '):
115 if line1.startswith('--- ') and line2.startswith('+++ '):
116 l1 = line1[4:].split(None, 1)
116 l1 = line1[4:].split(None, 1)
117 old_filename = l1[0].lstrip('a/') if len(l1) >= 1 else None
117 old_filename = l1[0].lstrip('a/') if len(l1) >= 1 else None
118 old_rev = l1[1] if len(l1) == 2 else 'old'
118 old_rev = l1[1] if len(l1) == 2 else 'old'
119
119
120 l2 = line2[4:].split(None, 1)
120 l2 = line2[4:].split(None, 1)
121 new_filename = l2[0].lstrip('b/') if len(l1) >= 1 else None
121 new_filename = l2[0].lstrip('b/') if len(l1) >= 1 else None
122 new_rev = l2[1] if len(l2) == 2 else 'new'
122 new_rev = l2[1] if len(l2) == 2 else 'new'
123
123
124 filename = old_filename if (old_filename !=
124 filename = old_filename if (old_filename !=
125 'dev/null') else new_filename
125 'dev/null') else new_filename
126
126
127 return filename, new_rev, old_rev
127 return filename, new_rev, old_rev
128 except (ValueError, IndexError):
128 except (ValueError, IndexError):
129 pass
129 pass
130
130
131 return None, None, None
131 return None, None, None
132
132
133 def _parse_gitdiff(self, diffiterator):
133 def _parse_gitdiff(self, diffiterator):
134 def line_decoder(l):
134 def line_decoder(l):
135 if l.startswith('+') and not l.startswith('+++'):
135 if l.startswith('+') and not l.startswith('+++'):
136 self.adds += 1
136 self.adds += 1
137 elif l.startswith('-') and not l.startswith('---'):
137 elif l.startswith('-') and not l.startswith('---'):
138 self.removes += 1
138 self.removes += 1
139 return l.decode('utf8', 'replace')
139 return l.decode('utf8', 'replace')
140
140
141 output = list(diffiterator)
141 output = list(diffiterator)
142 size = len(output)
142 size = len(output)
143
143
144 if size == 2:
144 if size == 2:
145 l = []
145 l = []
146 l.extend([output[0]])
146 l.extend([output[0]])
147 l.extend(output[1].splitlines(1))
147 l.extend(output[1].splitlines(1))
148 return map(line_decoder, l)
148 return map(line_decoder, l)
149 elif size == 1:
149 elif size == 1:
150 return map(line_decoder, output[0].splitlines(1))
150 return map(line_decoder, output[0].splitlines(1))
151 elif size == 0:
151 elif size == 0:
152 return []
152 return []
153
153
154 raise Exception('wrong size of diff %s' % size)
154 raise Exception('wrong size of diff %s' % size)
155
155
156 def _highlight_line_difflib(self, line, next):
156 def _highlight_line_difflib(self, line, next):
157 """
157 """
158 Highlight inline changes in both lines.
158 Highlight inline changes in both lines.
159 """
159 """
160
160
161 if line['action'] == 'del':
161 if line['action'] == 'del':
162 old, new = line, next
162 old, new = line, next
163 else:
163 else:
164 old, new = next, line
164 old, new = next, line
165
165
166 oldwords = re.split(r'(\W)', old['line'])
166 oldwords = re.split(r'(\W)', old['line'])
167 newwords = re.split(r'(\W)', new['line'])
167 newwords = re.split(r'(\W)', new['line'])
168
168
169 sequence = difflib.SequenceMatcher(None, oldwords, newwords)
169 sequence = difflib.SequenceMatcher(None, oldwords, newwords)
170
170
171 oldfragments, newfragments = [], []
171 oldfragments, newfragments = [], []
172 for tag, i1, i2, j1, j2 in sequence.get_opcodes():
172 for tag, i1, i2, j1, j2 in sequence.get_opcodes():
173 oldfrag = ''.join(oldwords[i1:i2])
173 oldfrag = ''.join(oldwords[i1:i2])
174 newfrag = ''.join(newwords[j1:j2])
174 newfrag = ''.join(newwords[j1:j2])
175 if tag != 'equal':
175 if tag != 'equal':
176 if oldfrag:
176 if oldfrag:
177 oldfrag = '<del>%s</del>' % oldfrag
177 oldfrag = '<del>%s</del>' % oldfrag
178 if newfrag:
178 if newfrag:
179 newfrag = '<ins>%s</ins>' % newfrag
179 newfrag = '<ins>%s</ins>' % newfrag
180 oldfragments.append(oldfrag)
180 oldfragments.append(oldfrag)
181 newfragments.append(newfrag)
181 newfragments.append(newfrag)
182
182
183 old['line'] = "".join(oldfragments)
183 old['line'] = "".join(oldfragments)
184 new['line'] = "".join(newfragments)
184 new['line'] = "".join(newfragments)
185
185
186 def _highlight_line_udiff(self, line, next):
186 def _highlight_line_udiff(self, line, next):
187 """
187 """
188 Highlight inline changes in both lines.
188 Highlight inline changes in both lines.
189 """
189 """
190 start = 0
190 start = 0
191 limit = min(len(line['line']), len(next['line']))
191 limit = min(len(line['line']), len(next['line']))
192 while start < limit and line['line'][start] == next['line'][start]:
192 while start < limit and line['line'][start] == next['line'][start]:
193 start += 1
193 start += 1
194 end = -1
194 end = -1
195 limit -= start
195 limit -= start
196 while -end <= limit and line['line'][end] == next['line'][end]:
196 while -end <= limit and line['line'][end] == next['line'][end]:
197 end -= 1
197 end -= 1
198 end += 1
198 end += 1
199 if start or end:
199 if start or end:
200 def do(l):
200 def do(l):
201 last = end + len(l['line'])
201 last = end + len(l['line'])
202 if l['action'] == 'add':
202 if l['action'] == 'add':
203 tag = 'ins'
203 tag = 'ins'
204 else:
204 else:
205 tag = 'del'
205 tag = 'del'
206 l['line'] = '%s<%s>%s</%s>%s' % (
206 l['line'] = '%s<%s>%s</%s>%s' % (
207 l['line'][:start],
207 l['line'][:start],
208 tag,
208 tag,
209 l['line'][start:last],
209 l['line'][start:last],
210 tag,
210 tag,
211 l['line'][last:]
211 l['line'][last:]
212 )
212 )
213 do(line)
213 do(line)
214 do(next)
214 do(next)
215
215
216 def _parse_udiff(self):
216 def _parse_udiff(self):
217 """
217 """
218 Parse the diff an return data for the template.
218 Parse the diff an return data for the template.
219 """
219 """
220 lineiter = self.lines
220 lineiter = self.lines
221 files = []
221 files = []
222 try:
222 try:
223 line = lineiter.next()
223 line = lineiter.next()
224 # skip first context
224 # skip first context
225 skipfirst = True
225 skipfirst = True
226 while 1:
226 while 1:
227 # continue until we found the old file
227 # continue until we found the old file
228 if not line.startswith('--- '):
228 if not line.startswith('--- '):
229 line = lineiter.next()
229 line = lineiter.next()
230 continue
230 continue
231
231
232 chunks = []
232 chunks = []
233 filename, old_rev, new_rev = \
233 filename, old_rev, new_rev = \
234 self._extract_rev(line, lineiter.next())
234 self._extract_rev(line, lineiter.next())
235 files.append({
235 files.append({
236 'filename': filename,
236 'filename': filename,
237 'old_revision': old_rev,
237 'old_revision': old_rev,
238 'new_revision': new_rev,
238 'new_revision': new_rev,
239 'chunks': chunks
239 'chunks': chunks
240 })
240 })
241
241
242 line = lineiter.next()
242 line = lineiter.next()
243 while line:
243 while line:
244 match = self._chunk_re.match(line)
244 match = self._chunk_re.match(line)
245 if not match:
245 if not match:
246 break
246 break
247
247
248 lines = []
248 lines = []
249 chunks.append(lines)
249 chunks.append(lines)
250
250
251 old_line, old_end, new_line, new_end = \
251 old_line, old_end, new_line, new_end = \
252 [int(x or 1) for x in match.groups()[:-1]]
252 [int(x or 1) for x in match.groups()[:-1]]
253 old_line -= 1
253 old_line -= 1
254 new_line -= 1
254 new_line -= 1
255 context = len(match.groups()) == 5
255 context = len(match.groups()) == 5
256 old_end += old_line
256 old_end += old_line
257 new_end += new_line
257 new_end += new_line
258
258
259 if context:
259 if context:
260 if not skipfirst:
260 if not skipfirst:
261 lines.append({
261 lines.append({
262 'old_lineno': '...',
262 'old_lineno': '...',
263 'new_lineno': '...',
263 'new_lineno': '...',
264 'action': 'context',
264 'action': 'context',
265 'line': line,
265 'line': line,
266 })
266 })
267 else:
267 else:
268 skipfirst = False
268 skipfirst = False
269
269
270 line = lineiter.next()
270 line = lineiter.next()
271 while old_line < old_end or new_line < new_end:
271 while old_line < old_end or new_line < new_end:
272 if line:
272 if line:
273 command, line = line[0], line[1:]
273 command, line = line[0], line[1:]
274 else:
274 else:
275 command = ' '
275 command = ' '
276 affects_old = affects_new = False
276 affects_old = affects_new = False
277
277
278 # ignore those if we don't expect them
278 # ignore those if we don't expect them
279 if command in '#@':
279 if command in '#@':
280 continue
280 continue
281 elif command == '+':
281 elif command == '+':
282 affects_new = True
282 affects_new = True
283 action = 'add'
283 action = 'add'
284 elif command == '-':
284 elif command == '-':
285 affects_old = True
285 affects_old = True
286 action = 'del'
286 action = 'del'
287 else:
287 else:
288 affects_old = affects_new = True
288 affects_old = affects_new = True
289 action = 'unmod'
289 action = 'unmod'
290
290
291 old_line += affects_old
291 old_line += affects_old
292 new_line += affects_new
292 new_line += affects_new
293 lines.append({
293 lines.append({
294 'old_lineno': affects_old and old_line or '',
294 'old_lineno': affects_old and old_line or '',
295 'new_lineno': affects_new and new_line or '',
295 'new_lineno': affects_new and new_line or '',
296 'action': action,
296 'action': action,
297 'line': line
297 'line': line
298 })
298 })
299 line = lineiter.next()
299 line = lineiter.next()
300
300
301 except StopIteration:
301 except StopIteration:
302 pass
302 pass
303
303
304 # highlight inline changes
304 # highlight inline changes
305 for file in files:
305 for file in files:
306 for chunk in chunks:
306 for chunk in chunks:
307 lineiter = iter(chunk)
307 lineiter = iter(chunk)
308 #first = True
308 #first = True
309 try:
309 try:
310 while 1:
310 while 1:
311 line = lineiter.next()
311 line = lineiter.next()
312 if line['action'] != 'unmod':
312 if line['action'] != 'unmod':
313 nextline = lineiter.next()
313 nextline = lineiter.next()
314 if nextline['action'] == 'unmod' or \
314 if nextline['action'] == 'unmod' or \
315 nextline['action'] == line['action']:
315 nextline['action'] == line['action']:
316 continue
316 continue
317 self.differ(line, nextline)
317 self.differ(line, nextline)
318 except StopIteration:
318 except StopIteration:
319 pass
319 pass
320
320
321 return files
321 return files
322
322
323 def prepare(self):
323 def prepare(self):
324 """
324 """
325 Prepare the passed udiff for HTML rendering. It'l return a list
325 Prepare the passed udiff for HTML rendering. It'l return a list
326 of dicts
326 of dicts
327 """
327 """
328 return self._parse_udiff()
328 return self._parse_udiff()
329
329
330 def _safe_id(self, idstring):
330 def _safe_id(self, idstring):
331 """Make a string safe for including in an id attribute.
331 """Make a string safe for including in an id attribute.
332
332
333 The HTML spec says that id attributes 'must begin with
333 The HTML spec says that id attributes 'must begin with
334 a letter ([A-Za-z]) and may be followed by any number
334 a letter ([A-Za-z]) and may be followed by any number
335 of letters, digits ([0-9]), hyphens ("-"), underscores
335 of letters, digits ([0-9]), hyphens ("-"), underscores
336 ("_"), colons (":"), and periods (".")'. These regexps
336 ("_"), colons (":"), and periods (".")'. These regexps
337 are slightly over-zealous, in that they remove colons
337 are slightly over-zealous, in that they remove colons
338 and periods unnecessarily.
338 and periods unnecessarily.
339
339
340 Whitespace is transformed into underscores, and then
340 Whitespace is transformed into underscores, and then
341 anything which is not a hyphen or a character that
341 anything which is not a hyphen or a character that
342 matches \w (alphanumerics and underscore) is removed.
342 matches \w (alphanumerics and underscore) is removed.
343
343
344 """
344 """
345 # Transform all whitespace to underscore
345 # Transform all whitespace to underscore
346 idstring = re.sub(r'\s', "_", '%s' % idstring)
346 idstring = re.sub(r'\s', "_", '%s' % idstring)
347 # Remove everything that is not a hyphen or a member of \w
347 # Remove everything that is not a hyphen or a member of \w
348 idstring = re.sub(r'(?!-)\W', "", idstring).lower()
348 idstring = re.sub(r'(?!-)\W', "", idstring).lower()
349 return idstring
349 return idstring
350
350
351 def raw_diff(self):
351 def raw_diff(self):
352 """
352 """
353 Returns raw string as udiff
353 Returns raw string as udiff
354 """
354 """
355 udiff_copy = self.copy_iterator()
355 udiff_copy = self.copy_iterator()
356 if self.__format == 'gitdiff':
356 if self.__format == 'gitdiff':
357 udiff_copy = self._parse_gitdiff(udiff_copy)
357 udiff_copy = self._parse_gitdiff(udiff_copy)
358 return u''.join(udiff_copy)
358 return u''.join(udiff_copy)
359
359
360 def as_html(self, table_class='code-difftable', line_class='line',
360 def as_html(self, table_class='code-difftable', line_class='line',
361 new_lineno_class='lineno old', old_lineno_class='lineno new',
361 new_lineno_class='lineno old', old_lineno_class='lineno new',
362 code_class='code'):
362 code_class='code'):
363 """
363 """
364 Return udiff as html table with customized css classes
364 Return udiff as html table with customized css classes
365 """
365 """
366 def _link_to_if(condition, label, url):
366 def _link_to_if(condition, label, url):
367 """
367 """
368 Generates a link if condition is meet or just the label if not.
368 Generates a link if condition is meet or just the label if not.
369 """
369 """
370
370
371 if condition:
371 if condition:
372 return '''<a href="%(url)s">%(label)s</a>''' % {'url': url,
372 return '''<a href="%(url)s">%(label)s</a>''' % {'url': url,
373 'label': label}
373 'label': label}
374 else:
374 else:
375 return label
375 return label
376 diff_lines = self.prepare()
376 diff_lines = self.prepare()
377 _html_empty = True
377 _html_empty = True
378 _html = []
378 _html = []
379 _html.append('''<table class="%(table_class)s">\n''' \
379 _html.append('''<table class="%(table_class)s">\n''' \
380 % {'table_class': table_class})
380 % {'table_class': table_class})
381 for diff in diff_lines:
381 for diff in diff_lines:
382 for line in diff['chunks']:
382 for line in diff['chunks']:
383 _html_empty = False
383 _html_empty = False
384 for change in line:
384 for change in line:
385 _html.append('''<tr class="%(line_class)s %(action)s">\n''' \
385 _html.append('''<tr class="%(line_class)s %(action)s">\n''' \
386 % {'line_class': line_class,
386 % {'line_class': line_class,
387 'action': change['action']})
387 'action': change['action']})
388 anchor_old_id = ''
388 anchor_old_id = ''
389 anchor_new_id = ''
389 anchor_new_id = ''
390 anchor_old = "%(filename)s_o%(oldline_no)s" % \
390 anchor_old = "%(filename)s_o%(oldline_no)s" % \
391 {'filename': self._safe_id(diff['filename']),
391 {'filename': self._safe_id(diff['filename']),
392 'oldline_no': change['old_lineno']}
392 'oldline_no': change['old_lineno']}
393 anchor_new = "%(filename)s_n%(oldline_no)s" % \
393 anchor_new = "%(filename)s_n%(oldline_no)s" % \
394 {'filename': self._safe_id(diff['filename']),
394 {'filename': self._safe_id(diff['filename']),
395 'oldline_no': change['new_lineno']}
395 'oldline_no': change['new_lineno']}
396 cond_old = change['old_lineno'] != '...' and \
396 cond_old = change['old_lineno'] != '...' and \
397 change['old_lineno']
397 change['old_lineno']
398 cond_new = change['new_lineno'] != '...' and \
398 cond_new = change['new_lineno'] != '...' and \
399 change['new_lineno']
399 change['new_lineno']
400 if cond_old:
400 if cond_old:
401 anchor_old_id = 'id="%s"' % anchor_old
401 anchor_old_id = 'id="%s"' % anchor_old
402 if cond_new:
402 if cond_new:
403 anchor_new_id = 'id="%s"' % anchor_new
403 anchor_new_id = 'id="%s"' % anchor_new
404 ###########################################################
404 ###########################################################
405 # OLD LINE NUMBER
405 # OLD LINE NUMBER
406 ###########################################################
406 ###########################################################
407 _html.append('''\t<td %(a_id)s class="%(old_lineno_cls)s">''' \
407 _html.append('''\t<td %(a_id)s class="%(old_lineno_cls)s">''' \
408 % {'a_id': anchor_old_id,
408 % {'a_id': anchor_old_id,
409 'old_lineno_cls': old_lineno_class})
409 'old_lineno_cls': old_lineno_class})
410
410
411 _html.append('''<pre>%(link)s</pre>''' \
411 _html.append('''%(link)s''' \
412 % {'link':
412 % {'link':
413 _link_to_if(cond_old, change['old_lineno'], '#%s' \
413 _link_to_if(cond_old, change['old_lineno'], '#%s' \
414 % anchor_old)})
414 % anchor_old)})
415 _html.append('''</td>\n''')
415 _html.append('''</td>\n''')
416 ###########################################################
416 ###########################################################
417 # NEW LINE NUMBER
417 # NEW LINE NUMBER
418 ###########################################################
418 ###########################################################
419
419
420 _html.append('''\t<td %(a_id)s class="%(new_lineno_cls)s">''' \
420 _html.append('''\t<td %(a_id)s class="%(new_lineno_cls)s">''' \
421 % {'a_id': anchor_new_id,
421 % {'a_id': anchor_new_id,
422 'new_lineno_cls': new_lineno_class})
422 'new_lineno_cls': new_lineno_class})
423
423
424 _html.append('''<pre>%(link)s</pre>''' \
424 _html.append('''%(link)s''' \
425 % {'link':
425 % {'link':
426 _link_to_if(cond_new, change['new_lineno'], '#%s' \
426 _link_to_if(cond_new, change['new_lineno'], '#%s' \
427 % anchor_new)})
427 % anchor_new)})
428 _html.append('''</td>\n''')
428 _html.append('''</td>\n''')
429 ###########################################################
429 ###########################################################
430 # CODE
430 # CODE
431 ###########################################################
431 ###########################################################
432 _html.append('''\t<td class="%(code_class)s">''' \
432 _html.append('''\t<td class="%(code_class)s">''' \
433 % {'code_class': code_class})
433 % {'code_class': code_class})
434 _html.append('''\n\t\t<pre>%(code)s</pre>\n''' \
434 _html.append('''\n\t\t<pre>%(code)s</pre>\n''' \
435 % {'code': change['line']})
435 % {'code': change['line']})
436 _html.append('''\t</td>''')
436 _html.append('''\t</td>''')
437 _html.append('''\n</tr>\n''')
437 _html.append('''\n</tr>\n''')
438 _html.append('''</table>''')
438 _html.append('''</table>''')
439 if _html_empty:
439 if _html_empty:
440 return None
440 return None
441 return ''.join(_html)
441 return ''.join(_html)
442
442
443 def stat(self):
443 def stat(self):
444 """
444 """
445 Returns tuple of added, and removed lines for this instance
445 Returns tuple of added, and removed lines for this instance
446 """
446 """
447 return self.adds, self.removes
447 return self.adds, self.removes
@@ -1,3639 +1,3774 b''
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 {
2 {
3 border: 0;
3 border: 0;
4 outline: 0;
4 outline: 0;
5 font-size: 100%;
5 font-size: 100%;
6 vertical-align: baseline;
6 vertical-align: baseline;
7 background: transparent;
7 background: transparent;
8 margin: 0;
8 margin: 0;
9 padding: 0;
9 padding: 0;
10 }
10 }
11
11
12 body {
12 body {
13 line-height: 1;
13 line-height: 1;
14 height: 100%;
14 height: 100%;
15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
18 color: #000;
18 color: #000;
19 margin: 0;
19 margin: 0;
20 padding: 0;
20 padding: 0;
21 font-size: 12px;
21 font-size: 12px;
22 }
22 }
23
23
24 ol,ul {
24 ol,ul {
25 list-style: none;
25 list-style: none;
26 }
26 }
27
27
28 blockquote,q {
28 blockquote,q {
29 quotes: none;
29 quotes: none;
30 }
30 }
31
31
32 blockquote:before,blockquote:after,q:before,q:after {
32 blockquote:before,blockquote:after,q:before,q:after {
33 content: none;
33 content: none;
34 }
34 }
35
35
36 :focus {
36 :focus {
37 outline: 0;
37 outline: 0;
38 }
38 }
39
39
40 del {
40 del {
41 text-decoration: line-through;
41 text-decoration: line-through;
42 }
42 }
43
43
44 table {
44 table {
45 border-collapse: collapse;
45 border-collapse: collapse;
46 border-spacing: 0;
46 border-spacing: 0;
47 }
47 }
48
48
49 html {
49 html {
50 height: 100%;
50 height: 100%;
51 }
51 }
52
52
53 a {
53 a {
54 color: #003367;
54 color: #003367;
55 text-decoration: none;
55 text-decoration: none;
56 cursor: pointer;
56 cursor: pointer;
57 }
57 }
58
58
59 a:hover {
59 a:hover {
60 color: #316293;
60 color: #316293;
61 text-decoration: underline;
61 text-decoration: underline;
62 }
62 }
63
63
64 h1,h2,h3,h4,h5,h6 {
64 h1,h2,h3,h4,h5,h6 {
65 color: #292929;
65 color: #292929;
66 font-weight: 700;
66 font-weight: 700;
67 }
67 }
68
68
69 h1 {
69 h1 {
70 font-size: 22px;
70 font-size: 22px;
71 }
71 }
72
72
73 h2 {
73 h2 {
74 font-size: 20px;
74 font-size: 20px;
75 }
75 }
76
76
77 h3 {
77 h3 {
78 font-size: 18px;
78 font-size: 18px;
79 }
79 }
80
80
81 h4 {
81 h4 {
82 font-size: 16px;
82 font-size: 16px;
83 }
83 }
84
84
85 h5 {
85 h5 {
86 font-size: 14px;
86 font-size: 14px;
87 }
87 }
88
88
89 h6 {
89 h6 {
90 font-size: 11px;
90 font-size: 11px;
91 }
91 }
92
92
93 ul.circle {
93 ul.circle {
94 list-style-type: circle;
94 list-style-type: circle;
95 }
95 }
96
96
97 ul.disc {
97 ul.disc {
98 list-style-type: disc;
98 list-style-type: disc;
99 }
99 }
100
100
101 ul.square {
101 ul.square {
102 list-style-type: square;
102 list-style-type: square;
103 }
103 }
104
104
105 ol.lower-roman {
105 ol.lower-roman {
106 list-style-type: lower-roman;
106 list-style-type: lower-roman;
107 }
107 }
108
108
109 ol.upper-roman {
109 ol.upper-roman {
110 list-style-type: upper-roman;
110 list-style-type: upper-roman;
111 }
111 }
112
112
113 ol.lower-alpha {
113 ol.lower-alpha {
114 list-style-type: lower-alpha;
114 list-style-type: lower-alpha;
115 }
115 }
116
116
117 ol.upper-alpha {
117 ol.upper-alpha {
118 list-style-type: upper-alpha;
118 list-style-type: upper-alpha;
119 }
119 }
120
120
121 ol.decimal {
121 ol.decimal {
122 list-style-type: decimal;
122 list-style-type: decimal;
123 }
123 }
124
124
125 div.color {
125 div.color {
126 clear: both;
126 clear: both;
127 overflow: hidden;
127 overflow: hidden;
128 position: absolute;
128 position: absolute;
129 background: #FFF;
129 background: #FFF;
130 margin: 7px 0 0 60px;
130 margin: 7px 0 0 60px;
131 padding: 1px 1px 1px 0;
131 padding: 1px 1px 1px 0;
132 }
132 }
133
133
134 div.color a {
134 div.color a {
135 width: 15px;
135 width: 15px;
136 height: 15px;
136 height: 15px;
137 display: block;
137 display: block;
138 float: left;
138 float: left;
139 margin: 0 0 0 1px;
139 margin: 0 0 0 1px;
140 padding: 0;
140 padding: 0;
141 }
141 }
142
142
143 div.options {
143 div.options {
144 clear: both;
144 clear: both;
145 overflow: hidden;
145 overflow: hidden;
146 position: absolute;
146 position: absolute;
147 background: #FFF;
147 background: #FFF;
148 margin: 7px 0 0 162px;
148 margin: 7px 0 0 162px;
149 padding: 0;
149 padding: 0;
150 }
150 }
151
151
152 div.options a {
152 div.options a {
153 height: 1%;
153 height: 1%;
154 display: block;
154 display: block;
155 text-decoration: none;
155 text-decoration: none;
156 margin: 0;
156 margin: 0;
157 padding: 3px 8px;
157 padding: 3px 8px;
158 }
158 }
159
159
160 .top-left-rounded-corner {
160 .top-left-rounded-corner {
161 -webkit-border-top-left-radius: 8px;
161 -webkit-border-top-left-radius: 8px;
162 -khtml-border-radius-topleft: 8px;
162 -khtml-border-radius-topleft: 8px;
163 -moz-border-radius-topleft: 8px;
163 -moz-border-radius-topleft: 8px;
164 border-top-left-radius: 8px;
164 border-top-left-radius: 8px;
165 }
165 }
166
166
167 .top-right-rounded-corner {
167 .top-right-rounded-corner {
168 -webkit-border-top-right-radius: 8px;
168 -webkit-border-top-right-radius: 8px;
169 -khtml-border-radius-topright: 8px;
169 -khtml-border-radius-topright: 8px;
170 -moz-border-radius-topright: 8px;
170 -moz-border-radius-topright: 8px;
171 border-top-right-radius: 8px;
171 border-top-right-radius: 8px;
172 }
172 }
173
173
174 .bottom-left-rounded-corner {
174 .bottom-left-rounded-corner {
175 -webkit-border-bottom-left-radius: 8px;
175 -webkit-border-bottom-left-radius: 8px;
176 -khtml-border-radius-bottomleft: 8px;
176 -khtml-border-radius-bottomleft: 8px;
177 -moz-border-radius-bottomleft: 8px;
177 -moz-border-radius-bottomleft: 8px;
178 border-bottom-left-radius: 8px;
178 border-bottom-left-radius: 8px;
179 }
179 }
180
180
181 .bottom-right-rounded-corner {
181 .bottom-right-rounded-corner {
182 -webkit-border-bottom-right-radius: 8px;
182 -webkit-border-bottom-right-radius: 8px;
183 -khtml-border-radius-bottomright: 8px;
183 -khtml-border-radius-bottomright: 8px;
184 -moz-border-radius-bottomright: 8px;
184 -moz-border-radius-bottomright: 8px;
185 border-bottom-right-radius: 8px;
185 border-bottom-right-radius: 8px;
186 }
186 }
187
187
188 #header {
188 #header {
189 margin: 0;
189 margin: 0;
190 padding: 0 10px;
190 padding: 0 10px;
191 }
191 }
192
192
193 #header ul#logged-user {
193 #header ul#logged-user {
194 margin-bottom: 5px !important;
194 margin-bottom: 5px !important;
195 -webkit-border-radius: 0px 0px 8px 8px;
195 -webkit-border-radius: 0px 0px 8px 8px;
196 -khtml-border-radius: 0px 0px 8px 8px;
196 -khtml-border-radius: 0px 0px 8px 8px;
197 -moz-border-radius: 0px 0px 8px 8px;
197 -moz-border-radius: 0px 0px 8px 8px;
198 border-radius: 0px 0px 8px 8px;
198 border-radius: 0px 0px 8px 8px;
199 height: 37px;
199 height: 37px;
200 background-color: #eedc94;
200 background-color: #eedc94;
201 background-repeat: repeat-x;
201 background-repeat: repeat-x;
202 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
202 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
203 to(#eedc94) );
203 to(#eedc94) );
204 background-image: -moz-linear-gradient(top, #003b76, #00376e);
204 background-image: -moz-linear-gradient(top, #003b76, #00376e);
205 background-image: -ms-linear-gradient(top, #003b76, #00376e);
205 background-image: -ms-linear-gradient(top, #003b76, #00376e);
206 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
206 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
207 color-stop(100%, #00376e) );
207 color-stop(100%, #00376e) );
208 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
208 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
209 background-image: -o-linear-gradient(top, #003b76, #00376e) );
209 background-image: -o-linear-gradient(top, #003b76, #00376e) );
210 background-image: linear-gradient(top, #003b76, #00376e);
210 background-image: linear-gradient(top, #003b76, #00376e);
211 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
211 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
212 endColorstr='#00376e', GradientType=0 );
212 endColorstr='#00376e', GradientType=0 );
213 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
213 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
214 }
214 }
215
215
216 #header ul#logged-user li {
216 #header ul#logged-user li {
217 list-style: none;
217 list-style: none;
218 float: left;
218 float: left;
219 margin: 8px 0 0;
219 margin: 8px 0 0;
220 padding: 4px 12px;
220 padding: 4px 12px;
221 border-left: 1px solid #316293;
221 border-left: 1px solid #316293;
222 }
222 }
223
223
224 #header ul#logged-user li.first {
224 #header ul#logged-user li.first {
225 border-left: none;
225 border-left: none;
226 margin: 4px;
226 margin: 4px;
227 }
227 }
228
228
229 #header ul#logged-user li.first div.gravatar {
229 #header ul#logged-user li.first div.gravatar {
230 margin-top: -2px;
230 margin-top: -2px;
231 }
231 }
232
232
233 #header ul#logged-user li.first div.account {
233 #header ul#logged-user li.first div.account {
234 padding-top: 4px;
234 padding-top: 4px;
235 float: left;
235 float: left;
236 }
236 }
237
237
238 #header ul#logged-user li.last {
238 #header ul#logged-user li.last {
239 border-right: none;
239 border-right: none;
240 }
240 }
241
241
242 #header ul#logged-user li a {
242 #header ul#logged-user li a {
243 color: #fff;
243 color: #fff;
244 font-weight: 700;
244 font-weight: 700;
245 text-decoration: none;
245 text-decoration: none;
246 }
246 }
247
247
248 #header ul#logged-user li a:hover {
248 #header ul#logged-user li a:hover {
249 text-decoration: underline;
249 text-decoration: underline;
250 }
250 }
251
251
252 #header ul#logged-user li.highlight a {
252 #header ul#logged-user li.highlight a {
253 color: #fff;
253 color: #fff;
254 }
254 }
255
255
256 #header ul#logged-user li.highlight a:hover {
256 #header ul#logged-user li.highlight a:hover {
257 color: #FFF;
257 color: #FFF;
258 }
258 }
259
259
260 #header #header-inner {
260 #header #header-inner {
261 min-height: 40px;
261 min-height: 40px;
262 clear: both;
262 clear: both;
263 position: relative;
263 position: relative;
264 background-color: #eedc94;
264 background-color: #eedc94;
265 background-repeat: repeat-x;
265 background-repeat: repeat-x;
266 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
266 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
267 to(#eedc94) );
267 to(#eedc94) );
268 background-image: -moz-linear-gradient(top, #003b76, #00376e);
268 background-image: -moz-linear-gradient(top, #003b76, #00376e);
269 background-image: -ms-linear-gradient(top, #003b76, #00376e);
269 background-image: -ms-linear-gradient(top, #003b76, #00376e);
270 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
270 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
271 color-stop(100%, #00376e) );
271 color-stop(100%, #00376e) );
272 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
272 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
273 background-image: -o-linear-gradient(top, #003b76, #00376e) );
273 background-image: -o-linear-gradient(top, #003b76, #00376e) );
274 background-image: linear-gradient(top, #003b76, #00376e);
274 background-image: linear-gradient(top, #003b76, #00376e);
275 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
275 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
276 endColorstr='#00376e', GradientType=0 );
276 endColorstr='#00376e', GradientType=0 );
277 margin: 0;
277 margin: 0;
278 padding: 0;
278 padding: 0;
279 display: block;
279 display: block;
280 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
280 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
281 -webkit-border-radius: 4px 4px 4px 4px;
281 -webkit-border-radius: 4px 4px 4px 4px;
282 -khtml-border-radius: 4px 4px 4px 4px;
282 -khtml-border-radius: 4px 4px 4px 4px;
283 -moz-border-radius: 4px 4px 4px 4px;
283 -moz-border-radius: 4px 4px 4px 4px;
284 border-radius: 4px 4px 4px 4px;
284 border-radius: 4px 4px 4px 4px;
285 }
285 }
286 #header #header-inner.hover{
286 #header #header-inner.hover{
287 position: fixed !important;
287 position: fixed !important;
288 width: 100% !important;
288 width: 100% !important;
289 margin-left: -10px !important;
289 margin-left: -10px !important;
290 z-index: 10000;
290 z-index: 10000;
291 border-radius: 0px 0px 4px 4px;
291 border-radius: 0px 0px 4px 4px;
292 }
292 }
293 #header #header-inner #home a {
293 #header #header-inner #home a {
294 height: 40px;
294 height: 40px;
295 width: 46px;
295 width: 46px;
296 display: block;
296 display: block;
297 background: url("../images/button_home.png");
297 background: url("../images/button_home.png");
298 background-position: 0 0;
298 background-position: 0 0;
299 margin: 0;
299 margin: 0;
300 padding: 0;
300 padding: 0;
301 }
301 }
302
302
303 #header #header-inner #home a:hover {
303 #header #header-inner #home a:hover {
304 background-position: 0 -40px;
304 background-position: 0 -40px;
305 }
305 }
306
306
307 #header #header-inner #logo {
307 #header #header-inner #logo {
308 float: left;
308 float: left;
309 position: absolute;
309 position: absolute;
310 }
310 }
311
311
312 #header #header-inner #logo h1 {
312 #header #header-inner #logo h1 {
313 color: #FFF;
313 color: #FFF;
314 font-size: 18px;
314 font-size: 18px;
315 margin: 10px 0 0 13px;
315 margin: 10px 0 0 13px;
316 padding: 0;
316 padding: 0;
317 }
317 }
318
318
319 #header #header-inner #logo a {
319 #header #header-inner #logo a {
320 color: #fff;
320 color: #fff;
321 text-decoration: none;
321 text-decoration: none;
322 }
322 }
323
323
324 #header #header-inner #logo a:hover {
324 #header #header-inner #logo a:hover {
325 color: #bfe3ff;
325 color: #bfe3ff;
326 }
326 }
327
327
328 #header #header-inner #quick,#header #header-inner #quick ul {
328 #header #header-inner #quick,#header #header-inner #quick ul {
329 position: relative;
329 position: relative;
330 float: right;
330 float: right;
331 list-style-type: none;
331 list-style-type: none;
332 list-style-position: outside;
332 list-style-position: outside;
333 margin: 6px 5px 0 0;
333 margin: 6px 5px 0 0;
334 padding: 0;
334 padding: 0;
335 }
335 }
336
336
337 #header #header-inner #quick li {
337 #header #header-inner #quick li {
338 position: relative;
338 position: relative;
339 float: left;
339 float: left;
340 margin: 0 5px 0 0;
340 margin: 0 5px 0 0;
341 padding: 0;
341 padding: 0;
342 }
342 }
343
343
344 #header #header-inner #quick li a {
344 #header #header-inner #quick li a {
345 top: 0;
345 top: 0;
346 left: 0;
346 left: 0;
347 height: 1%;
347 height: 1%;
348 display: block;
348 display: block;
349 clear: both;
349 clear: both;
350 overflow: hidden;
350 overflow: hidden;
351 color: #FFF;
351 color: #FFF;
352 font-weight: 700;
352 font-weight: 700;
353 text-decoration: none;
353 text-decoration: none;
354 background: #369;
354 background: #369;
355 padding: 0;
355 padding: 0;
356 -webkit-border-radius: 4px 4px 4px 4px;
356 -webkit-border-radius: 4px 4px 4px 4px;
357 -khtml-border-radius: 4px 4px 4px 4px;
357 -khtml-border-radius: 4px 4px 4px 4px;
358 -moz-border-radius: 4px 4px 4px 4px;
358 -moz-border-radius: 4px 4px 4px 4px;
359 border-radius: 4px 4px 4px 4px;
359 border-radius: 4px 4px 4px 4px;
360 }
360 }
361
361
362 #header #header-inner #quick li span.short {
362 #header #header-inner #quick li span.short {
363 padding: 9px 6px 8px 6px;
363 padding: 9px 6px 8px 6px;
364 }
364 }
365
365
366 #header #header-inner #quick li span {
366 #header #header-inner #quick li span {
367 top: 0;
367 top: 0;
368 right: 0;
368 right: 0;
369 height: 1%;
369 height: 1%;
370 display: block;
370 display: block;
371 float: left;
371 float: left;
372 border-left: 1px solid #3f6f9f;
372 border-left: 1px solid #3f6f9f;
373 margin: 0;
373 margin: 0;
374 padding: 10px 12px 8px 10px;
374 padding: 10px 12px 8px 10px;
375 }
375 }
376
376
377 #header #header-inner #quick li span.normal {
377 #header #header-inner #quick li span.normal {
378 border: none;
378 border: none;
379 padding: 10px 12px 8px;
379 padding: 10px 12px 8px;
380 }
380 }
381
381
382 #header #header-inner #quick li span.icon {
382 #header #header-inner #quick li span.icon {
383 top: 0;
383 top: 0;
384 left: 0;
384 left: 0;
385 border-left: none;
385 border-left: none;
386 border-right: 1px solid #2e5c89;
386 border-right: 1px solid #2e5c89;
387 padding: 8px 6px 4px;
387 padding: 8px 6px 4px;
388 }
388 }
389
389
390 #header #header-inner #quick li span.icon_short {
390 #header #header-inner #quick li span.icon_short {
391 top: 0;
391 top: 0;
392 left: 0;
392 left: 0;
393 border-left: none;
393 border-left: none;
394 border-right: 1px solid #2e5c89;
394 border-right: 1px solid #2e5c89;
395 padding: 8px 6px 4px;
395 padding: 8px 6px 4px;
396 }
396 }
397
397
398 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
398 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
399 {
399 {
400 margin: 0px -2px 0px 0px;
400 margin: 0px -2px 0px 0px;
401 }
401 }
402
402
403 #header #header-inner #quick li a:hover {
403 #header #header-inner #quick li a:hover {
404 background: #4e4e4e no-repeat top left;
404 background: #4e4e4e no-repeat top left;
405 }
405 }
406
406
407 #header #header-inner #quick li a:hover span {
407 #header #header-inner #quick li a:hover span {
408 border-left: 1px solid #545454;
408 border-left: 1px solid #545454;
409 }
409 }
410
410
411 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
411 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
412 {
412 {
413 border-left: none;
413 border-left: none;
414 border-right: 1px solid #464646;
414 border-right: 1px solid #464646;
415 }
415 }
416
416
417 #header #header-inner #quick ul {
417 #header #header-inner #quick ul {
418 top: 29px;
418 top: 29px;
419 right: 0;
419 right: 0;
420 min-width: 200px;
420 min-width: 200px;
421 display: none;
421 display: none;
422 position: absolute;
422 position: absolute;
423 background: #FFF;
423 background: #FFF;
424 border: 1px solid #666;
424 border: 1px solid #666;
425 border-top: 1px solid #003367;
425 border-top: 1px solid #003367;
426 z-index: 100;
426 z-index: 100;
427 margin: 0;
427 margin: 0;
428 padding: 0;
428 padding: 0;
429 }
429 }
430
430
431 #header #header-inner #quick ul.repo_switcher {
431 #header #header-inner #quick ul.repo_switcher {
432 max-height: 275px;
432 max-height: 275px;
433 overflow-x: hidden;
433 overflow-x: hidden;
434 overflow-y: auto;
434 overflow-y: auto;
435 }
435 }
436
436
437 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
437 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
438 float: none;
438 float: none;
439 margin: 0;
439 margin: 0;
440 border-bottom: 2px solid #003367;
440 border-bottom: 2px solid #003367;
441 }
441 }
442
442
443 #header #header-inner #quick .repo_switcher_type {
443 #header #header-inner #quick .repo_switcher_type {
444 position: absolute;
444 position: absolute;
445 left: 0;
445 left: 0;
446 top: 9px;
446 top: 9px;
447 }
447 }
448
448
449 #header #header-inner #quick li ul li {
449 #header #header-inner #quick li ul li {
450 border-bottom: 1px solid #ddd;
450 border-bottom: 1px solid #ddd;
451 }
451 }
452
452
453 #header #header-inner #quick li ul li a {
453 #header #header-inner #quick li ul li a {
454 width: 182px;
454 width: 182px;
455 height: auto;
455 height: auto;
456 display: block;
456 display: block;
457 float: left;
457 float: left;
458 background: #FFF;
458 background: #FFF;
459 color: #003367;
459 color: #003367;
460 font-weight: 400;
460 font-weight: 400;
461 margin: 0;
461 margin: 0;
462 padding: 7px 9px;
462 padding: 7px 9px;
463 }
463 }
464
464
465 #header #header-inner #quick li ul li a:hover {
465 #header #header-inner #quick li ul li a:hover {
466 color: #000;
466 color: #000;
467 background: #FFF;
467 background: #FFF;
468 }
468 }
469
469
470 #header #header-inner #quick ul ul {
470 #header #header-inner #quick ul ul {
471 top: auto;
471 top: auto;
472 }
472 }
473
473
474 #header #header-inner #quick li ul ul {
474 #header #header-inner #quick li ul ul {
475 right: 200px;
475 right: 200px;
476 max-height: 275px;
476 max-height: 275px;
477 overflow: auto;
477 overflow: auto;
478 overflow-x: hidden;
478 overflow-x: hidden;
479 white-space: normal;
479 white-space: normal;
480 }
480 }
481
481
482 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
482 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
483 {
483 {
484 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
484 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
485 #FFF;
485 #FFF;
486 width: 167px;
486 width: 167px;
487 margin: 0;
487 margin: 0;
488 padding: 12px 9px 7px 24px;
488 padding: 12px 9px 7px 24px;
489 }
489 }
490
490
491 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
491 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
492 {
492 {
493 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
493 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
494 #FFF;
494 #FFF;
495 min-width: 167px;
495 min-width: 167px;
496 margin: 0;
496 margin: 0;
497 padding: 12px 9px 7px 24px;
497 padding: 12px 9px 7px 24px;
498 }
498 }
499
499
500 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
500 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
501 {
501 {
502 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
502 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
503 9px #FFF;
503 9px #FFF;
504 min-width: 167px;
504 min-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.hg,#header #header-inner #quick li ul li a.hg:hover
509 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover
510 {
510 {
511 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
511 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
512 #FFF;
512 #FFF;
513 min-width: 167px;
513 min-width: 167px;
514 margin: 0 0 0 14px;
514 margin: 0 0 0 14px;
515 padding: 12px 9px 7px 24px;
515 padding: 12px 9px 7px 24px;
516 }
516 }
517
517
518 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
518 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
519 {
519 {
520 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
520 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
521 #FFF;
521 #FFF;
522 min-width: 167px;
522 min-width: 167px;
523 margin: 0 0 0 14px;
523 margin: 0 0 0 14px;
524 padding: 12px 9px 7px 24px;
524 padding: 12px 9px 7px 24px;
525 }
525 }
526
526
527 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
527 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
528 {
528 {
529 background: url("../images/icons/database_edit.png") no-repeat scroll
529 background: url("../images/icons/database_edit.png") no-repeat scroll
530 4px 9px #FFF;
530 4px 9px #FFF;
531 width: 167px;
531 width: 167px;
532 margin: 0;
532 margin: 0;
533 padding: 12px 9px 7px 24px;
533 padding: 12px 9px 7px 24px;
534 }
534 }
535
535
536 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
536 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
537 {
537 {
538 background: url("../images/icons/database_link.png") no-repeat scroll
538 background: url("../images/icons/database_link.png") no-repeat scroll
539 4px 9px #FFF;
539 4px 9px #FFF;
540 width: 167px;
540 width: 167px;
541 margin: 0;
541 margin: 0;
542 padding: 12px 9px 7px 24px;
542 padding: 12px 9px 7px 24px;
543 }
543 }
544
544
545 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
545 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
546 {
546 {
547 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
547 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
548 width: 167px;
548 width: 167px;
549 margin: 0;
549 margin: 0;
550 padding: 12px 9px 7px 24px;
550 padding: 12px 9px 7px 24px;
551 }
551 }
552
552
553 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
553 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
554 {
554 {
555 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
555 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
556 width: 167px;
556 width: 167px;
557 margin: 0;
557 margin: 0;
558 padding: 12px 9px 7px 24px;
558 padding: 12px 9px 7px 24px;
559 }
559 }
560
560
561 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
561 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
562 {
562 {
563 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
563 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
564 width: 167px;
564 width: 167px;
565 margin: 0;
565 margin: 0;
566 padding: 12px 9px 7px 24px;
566 padding: 12px 9px 7px 24px;
567 }
567 }
568
568
569 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
569 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
570 {
570 {
571 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
571 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
572 width: 167px;
572 width: 167px;
573 margin: 0;
573 margin: 0;
574 padding: 12px 9px 7px 24px;
574 padding: 12px 9px 7px 24px;
575 }
575 }
576
576
577 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
577 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
578 {
578 {
579 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
579 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
580 width: 167px;
580 width: 167px;
581 margin: 0;
581 margin: 0;
582 padding: 12px 9px 7px 24px;
582 padding: 12px 9px 7px 24px;
583 }
583 }
584
584
585 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
585 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
586 {
586 {
587 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
587 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
588 9px;
588 9px;
589 width: 167px;
589 width: 167px;
590 margin: 0;
590 margin: 0;
591 padding: 12px 9px 7px 24px;
591 padding: 12px 9px 7px 24px;
592 }
592 }
593
593
594 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
594 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
595 {
595 {
596 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
596 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
597 width: 167px;
597 width: 167px;
598 margin: 0;
598 margin: 0;
599 padding: 12px 9px 7px 24px;
599 padding: 12px 9px 7px 24px;
600 }
600 }
601
601
602 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
602 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
603 {
603 {
604 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
604 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
605 width: 167px;
605 width: 167px;
606 margin: 0;
606 margin: 0;
607 padding: 12px 9px 7px 24px;
607 padding: 12px 9px 7px 24px;
608 }
608 }
609
609
610 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
610 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
611 {
611 {
612 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
612 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
613 9px;
613 9px;
614 width: 167px;
614 width: 167px;
615 margin: 0;
615 margin: 0;
616 padding: 12px 9px 7px 24px;
616 padding: 12px 9px 7px 24px;
617 }
617 }
618
618
619 #header #header-inner #quick li ul li a.tags,
619 #header #header-inner #quick li ul li a.tags,
620 #header #header-inner #quick li ul li a.tags:hover{
620 #header #header-inner #quick li ul li a.tags:hover{
621 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
621 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
622 width: 167px;
622 width: 167px;
623 margin: 0;
623 margin: 0;
624 padding: 12px 9px 7px 24px;
624 padding: 12px 9px 7px 24px;
625 }
625 }
626
626
627 #header #header-inner #quick li ul li a.bookmarks,
627 #header #header-inner #quick li ul li a.bookmarks,
628 #header #header-inner #quick li ul li a.bookmarks:hover{
628 #header #header-inner #quick li ul li a.bookmarks:hover{
629 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
629 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
630 width: 167px;
630 width: 167px;
631 margin: 0;
631 margin: 0;
632 padding: 12px 9px 7px 24px;
632 padding: 12px 9px 7px 24px;
633 }
633 }
634
634
635 #header #header-inner #quick li ul li a.admin,
635 #header #header-inner #quick li ul li a.admin,
636 #header #header-inner #quick li ul li a.admin:hover{
636 #header #header-inner #quick li ul li a.admin:hover{
637 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
637 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
638 width: 167px;
638 width: 167px;
639 margin: 0;
639 margin: 0;
640 padding: 12px 9px 7px 24px;
640 padding: 12px 9px 7px 24px;
641 }
641 }
642
642
643 .groups_breadcrumbs a {
643 .groups_breadcrumbs a {
644 color: #fff;
644 color: #fff;
645 }
645 }
646
646
647 .groups_breadcrumbs a:hover {
647 .groups_breadcrumbs a:hover {
648 color: #bfe3ff;
648 color: #bfe3ff;
649 text-decoration: none;
649 text-decoration: none;
650 }
650 }
651
651
652 .quick_repo_menu {
652 .quick_repo_menu {
653 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
653 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
654 cursor: pointer;
654 cursor: pointer;
655 width: 8px;
655 width: 8px;
656 border: 1px solid transparent;
656 border: 1px solid transparent;
657 }
657 }
658
658
659 .quick_repo_menu.active {
659 .quick_repo_menu.active {
660 background: url("../images/horizontal-indicator.png") no-repeat scroll 5px 50% #FFFFFF !important;
660 background: url("../images/horizontal-indicator.png") no-repeat scroll 5px 50% #FFFFFF !important;
661 border: 1px solid #003367;
661 border: 1px solid #003367;
662 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
662 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
663 cursor: pointer;
663 cursor: pointer;
664 }
664 }
665
665
666 .quick_repo_menu .menu_items {
666 .quick_repo_menu .menu_items {
667 margin-top: 10px;
667 margin-top: 10px;
668 margin-left:-6px;
668 margin-left:-6px;
669 width: 150px;
669 width: 150px;
670 position: absolute;
670 position: absolute;
671 background-color: #FFF;
671 background-color: #FFF;
672 background: none repeat scroll 0 0 #FFFFFF;
672 background: none repeat scroll 0 0 #FFFFFF;
673 border-color: #003367 #666666 #666666;
673 border-color: #003367 #666666 #666666;
674 border-right: 1px solid #666666;
674 border-right: 1px solid #666666;
675 border-style: solid;
675 border-style: solid;
676 border-width: 1px;
676 border-width: 1px;
677 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
677 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
678 border-top-style: none;
678 border-top-style: none;
679 }
679 }
680
680
681 .quick_repo_menu .menu_items li {
681 .quick_repo_menu .menu_items li {
682 padding: 0 !important;
682 padding: 0 !important;
683 }
683 }
684
684
685 .quick_repo_menu .menu_items a {
685 .quick_repo_menu .menu_items a {
686 display: block;
686 display: block;
687 padding: 4px 12px 4px 8px;
687 padding: 4px 12px 4px 8px;
688 }
688 }
689
689
690 .quick_repo_menu .menu_items a:hover {
690 .quick_repo_menu .menu_items a:hover {
691 background-color: #EEE;
691 background-color: #EEE;
692 text-decoration: none;
692 text-decoration: none;
693 }
693 }
694
694
695 .quick_repo_menu .menu_items .icon img {
695 .quick_repo_menu .menu_items .icon img {
696 margin-bottom: -2px;
696 margin-bottom: -2px;
697 }
697 }
698
698
699 .quick_repo_menu .menu_items.hidden {
699 .quick_repo_menu .menu_items.hidden {
700 display: none;
700 display: none;
701 }
701 }
702
702
703 #content #left {
703 #content #left {
704 left: 0;
704 left: 0;
705 width: 280px;
705 width: 280px;
706 position: absolute;
706 position: absolute;
707 }
707 }
708
708
709 #content #right {
709 #content #right {
710 margin: 0 60px 10px 290px;
710 margin: 0 60px 10px 290px;
711 }
711 }
712
712
713 #content div.box {
713 #content div.box {
714 clear: both;
714 clear: both;
715 overflow: hidden;
715 overflow: hidden;
716 background: #fff;
716 background: #fff;
717 margin: 0 0 10px;
717 margin: 0 0 10px;
718 padding: 0 0 10px;
718 padding: 0 0 10px;
719 -webkit-border-radius: 4px 4px 4px 4px;
719 -webkit-border-radius: 4px 4px 4px 4px;
720 -khtml-border-radius: 4px 4px 4px 4px;
720 -khtml-border-radius: 4px 4px 4px 4px;
721 -moz-border-radius: 4px 4px 4px 4px;
721 -moz-border-radius: 4px 4px 4px 4px;
722 border-radius: 4px 4px 4px 4px;
722 border-radius: 4px 4px 4px 4px;
723 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
723 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
724 }
724 }
725
725
726 #content div.box-left {
726 #content div.box-left {
727 width: 49%;
727 width: 49%;
728 clear: none;
728 clear: none;
729 float: left;
729 float: left;
730 margin: 0 0 10px;
730 margin: 0 0 10px;
731 }
731 }
732
732
733 #content div.box-right {
733 #content div.box-right {
734 width: 49%;
734 width: 49%;
735 clear: none;
735 clear: none;
736 float: right;
736 float: right;
737 margin: 0 0 10px;
737 margin: 0 0 10px;
738 }
738 }
739
739
740 #content div.box div.title {
740 #content div.box div.title {
741 clear: both;
741 clear: both;
742 overflow: hidden;
742 overflow: hidden;
743 background-color: #eedc94;
743 background-color: #eedc94;
744 background-repeat: repeat-x;
744 background-repeat: repeat-x;
745 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
745 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
746 to(#eedc94) );
746 to(#eedc94) );
747 background-image: -moz-linear-gradient(top, #003b76, #00376e);
747 background-image: -moz-linear-gradient(top, #003b76, #00376e);
748 background-image: -ms-linear-gradient(top, #003b76, #00376e);
748 background-image: -ms-linear-gradient(top, #003b76, #00376e);
749 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
749 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
750 color-stop(100%, #00376e) );
750 color-stop(100%, #00376e) );
751 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
751 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
752 background-image: -o-linear-gradient(top, #003b76, #00376e) );
752 background-image: -o-linear-gradient(top, #003b76, #00376e) );
753 background-image: linear-gradient(top, #003b76, #00376e);
753 background-image: linear-gradient(top, #003b76, #00376e);
754 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
754 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
755 endColorstr='#00376e', GradientType=0 );
755 endColorstr='#00376e', GradientType=0 );
756 margin: 0 0 20px;
756 margin: 0 0 20px;
757 padding: 0;
757 padding: 0;
758 }
758 }
759
759
760 #content div.box div.title h5 {
760 #content div.box div.title h5 {
761 float: left;
761 float: left;
762 border: none;
762 border: none;
763 color: #fff;
763 color: #fff;
764 text-transform: uppercase;
764 text-transform: uppercase;
765 margin: 0;
765 margin: 0;
766 padding: 11px 0 11px 10px;
766 padding: 11px 0 11px 10px;
767 }
767 }
768
768
769 #content div.box div.title .link-white{
769 #content div.box div.title .link-white{
770 color: #FFFFFF;
770 color: #FFFFFF;
771 }
771 }
772
772
773 #content div.box div.title ul.links li {
773 #content div.box div.title ul.links li {
774 list-style: none;
774 list-style: none;
775 float: left;
775 float: left;
776 margin: 0;
776 margin: 0;
777 padding: 0;
777 padding: 0;
778 }
778 }
779
779
780 #content div.box div.title ul.links li a {
780 #content div.box div.title ul.links li a {
781 border-left: 1px solid #316293;
781 border-left: 1px solid #316293;
782 color: #FFFFFF;
782 color: #FFFFFF;
783 display: block;
783 display: block;
784 float: left;
784 float: left;
785 font-size: 13px;
785 font-size: 13px;
786 font-weight: 700;
786 font-weight: 700;
787 height: 1%;
787 height: 1%;
788 margin: 0;
788 margin: 0;
789 padding: 11px 22px 12px;
789 padding: 11px 22px 12px;
790 text-decoration: none;
790 text-decoration: none;
791 }
791 }
792
792
793 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
793 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
794 {
794 {
795 clear: both;
795 clear: both;
796 overflow: hidden;
796 overflow: hidden;
797 border-bottom: 1px solid #DDD;
797 border-bottom: 1px solid #DDD;
798 margin: 10px 20px;
798 margin: 10px 20px;
799 padding: 0 0 15px;
799 padding: 0 0 15px;
800 }
800 }
801
801
802 #content div.box p {
802 #content div.box p {
803 color: #5f5f5f;
803 color: #5f5f5f;
804 font-size: 12px;
804 font-size: 12px;
805 line-height: 150%;
805 line-height: 150%;
806 margin: 0 24px 10px;
806 margin: 0 24px 10px;
807 padding: 0;
807 padding: 0;
808 }
808 }
809
809
810 #content div.box blockquote {
810 #content div.box blockquote {
811 border-left: 4px solid #DDD;
811 border-left: 4px solid #DDD;
812 color: #5f5f5f;
812 color: #5f5f5f;
813 font-size: 11px;
813 font-size: 11px;
814 line-height: 150%;
814 line-height: 150%;
815 margin: 0 34px;
815 margin: 0 34px;
816 padding: 0 0 0 14px;
816 padding: 0 0 0 14px;
817 }
817 }
818
818
819 #content div.box blockquote p {
819 #content div.box blockquote p {
820 margin: 10px 0;
820 margin: 10px 0;
821 padding: 0;
821 padding: 0;
822 }
822 }
823
823
824 #content div.box dl {
824 #content div.box dl {
825 margin: 10px 0px;
825 margin: 10px 0px;
826 }
826 }
827
827
828 #content div.box dt {
828 #content div.box dt {
829 font-size: 12px;
829 font-size: 12px;
830 margin: 0;
830 margin: 0;
831 }
831 }
832
832
833 #content div.box dd {
833 #content div.box dd {
834 font-size: 12px;
834 font-size: 12px;
835 margin: 0;
835 margin: 0;
836 padding: 8px 0 8px 15px;
836 padding: 8px 0 8px 15px;
837 }
837 }
838
838
839 #content div.box li {
839 #content div.box li {
840 font-size: 12px;
840 font-size: 12px;
841 padding: 4px 0;
841 padding: 4px 0;
842 }
842 }
843
843
844 #content div.box ul.disc,#content div.box ul.circle {
844 #content div.box ul.disc,#content div.box ul.circle {
845 margin: 10px 24px 10px 38px;
845 margin: 10px 24px 10px 38px;
846 }
846 }
847
847
848 #content div.box ul.square {
848 #content div.box ul.square {
849 margin: 10px 24px 10px 40px;
849 margin: 10px 24px 10px 40px;
850 }
850 }
851
851
852 #content div.box img.left {
852 #content div.box img.left {
853 border: none;
853 border: none;
854 float: left;
854 float: left;
855 margin: 10px 10px 10px 0;
855 margin: 10px 10px 10px 0;
856 }
856 }
857
857
858 #content div.box img.right {
858 #content div.box img.right {
859 border: none;
859 border: none;
860 float: right;
860 float: right;
861 margin: 10px 0 10px 10px;
861 margin: 10px 0 10px 10px;
862 }
862 }
863
863
864 #content div.box div.messages {
864 #content div.box div.messages {
865 clear: both;
865 clear: both;
866 overflow: hidden;
866 overflow: hidden;
867 margin: 0 20px;
867 margin: 0 20px;
868 padding: 0;
868 padding: 0;
869 }
869 }
870
870
871 #content div.box div.message {
871 #content div.box div.message {
872 clear: both;
872 clear: both;
873 overflow: hidden;
873 overflow: hidden;
874 margin: 0;
874 margin: 0;
875 padding: 10px 0;
875 padding: 10px 0;
876 }
876 }
877
877
878 #content div.box div.message a {
878 #content div.box div.message a {
879 font-weight: 400 !important;
879 font-weight: 400 !important;
880 }
880 }
881
881
882 #content div.box div.message div.image {
882 #content div.box div.message div.image {
883 float: left;
883 float: left;
884 margin: 9px 0 0 5px;
884 margin: 9px 0 0 5px;
885 padding: 6px;
885 padding: 6px;
886 }
886 }
887
887
888 #content div.box div.message div.image img {
888 #content div.box div.message div.image img {
889 vertical-align: middle;
889 vertical-align: middle;
890 margin: 0;
890 margin: 0;
891 }
891 }
892
892
893 #content div.box div.message div.text {
893 #content div.box div.message div.text {
894 float: left;
894 float: left;
895 margin: 0;
895 margin: 0;
896 padding: 9px 6px;
896 padding: 9px 6px;
897 }
897 }
898
898
899 #content div.box div.message div.dismiss a {
899 #content div.box div.message div.dismiss a {
900 height: 16px;
900 height: 16px;
901 width: 16px;
901 width: 16px;
902 display: block;
902 display: block;
903 background: url("../images/icons/cross.png") no-repeat;
903 background: url("../images/icons/cross.png") no-repeat;
904 margin: 15px 14px 0 0;
904 margin: 15px 14px 0 0;
905 padding: 0;
905 padding: 0;
906 }
906 }
907
907
908 #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
908 #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
909 {
909 {
910 border: none;
910 border: none;
911 margin: 0;
911 margin: 0;
912 padding: 0;
912 padding: 0;
913 }
913 }
914
914
915 #content div.box div.message div.text span {
915 #content div.box div.message div.text span {
916 height: 1%;
916 height: 1%;
917 display: block;
917 display: block;
918 margin: 0;
918 margin: 0;
919 padding: 5px 0 0;
919 padding: 5px 0 0;
920 }
920 }
921
921
922 #content div.box div.message-error {
922 #content div.box div.message-error {
923 height: 1%;
923 height: 1%;
924 clear: both;
924 clear: both;
925 overflow: hidden;
925 overflow: hidden;
926 background: #FBE3E4;
926 background: #FBE3E4;
927 border: 1px solid #FBC2C4;
927 border: 1px solid #FBC2C4;
928 color: #860006;
928 color: #860006;
929 }
929 }
930
930
931 #content div.box div.message-error h6 {
931 #content div.box div.message-error h6 {
932 color: #860006;
932 color: #860006;
933 }
933 }
934
934
935 #content div.box div.message-warning {
935 #content div.box div.message-warning {
936 height: 1%;
936 height: 1%;
937 clear: both;
937 clear: both;
938 overflow: hidden;
938 overflow: hidden;
939 background: #FFF6BF;
939 background: #FFF6BF;
940 border: 1px solid #FFD324;
940 border: 1px solid #FFD324;
941 color: #5f5200;
941 color: #5f5200;
942 }
942 }
943
943
944 #content div.box div.message-warning h6 {
944 #content div.box div.message-warning h6 {
945 color: #5f5200;
945 color: #5f5200;
946 }
946 }
947
947
948 #content div.box div.message-notice {
948 #content div.box div.message-notice {
949 height: 1%;
949 height: 1%;
950 clear: both;
950 clear: both;
951 overflow: hidden;
951 overflow: hidden;
952 background: #8FBDE0;
952 background: #8FBDE0;
953 border: 1px solid #6BACDE;
953 border: 1px solid #6BACDE;
954 color: #003863;
954 color: #003863;
955 }
955 }
956
956
957 #content div.box div.message-notice h6 {
957 #content div.box div.message-notice h6 {
958 color: #003863;
958 color: #003863;
959 }
959 }
960
960
961 #content div.box div.message-success {
961 #content div.box div.message-success {
962 height: 1%;
962 height: 1%;
963 clear: both;
963 clear: both;
964 overflow: hidden;
964 overflow: hidden;
965 background: #E6EFC2;
965 background: #E6EFC2;
966 border: 1px solid #C6D880;
966 border: 1px solid #C6D880;
967 color: #4e6100;
967 color: #4e6100;
968 }
968 }
969
969
970 #content div.box div.message-success h6 {
970 #content div.box div.message-success h6 {
971 color: #4e6100;
971 color: #4e6100;
972 }
972 }
973
973
974 #content div.box div.form div.fields div.field {
974 #content div.box div.form div.fields div.field {
975 height: 1%;
975 height: 1%;
976 border-bottom: 1px solid #DDD;
976 border-bottom: 1px solid #DDD;
977 clear: both;
977 clear: both;
978 margin: 0;
978 margin: 0;
979 padding: 10px 0;
979 padding: 10px 0;
980 }
980 }
981
981
982 #content div.box div.form div.fields div.field-first {
982 #content div.box div.form div.fields div.field-first {
983 padding: 0 0 10px;
983 padding: 0 0 10px;
984 }
984 }
985
985
986 #content div.box div.form div.fields div.field-noborder {
986 #content div.box div.form div.fields div.field-noborder {
987 border-bottom: 0 !important;
987 border-bottom: 0 !important;
988 }
988 }
989
989
990 #content div.box div.form div.fields div.field span.error-message {
990 #content div.box div.form div.fields div.field span.error-message {
991 height: 1%;
991 height: 1%;
992 display: inline-block;
992 display: inline-block;
993 color: red;
993 color: red;
994 margin: 8px 0 0 4px;
994 margin: 8px 0 0 4px;
995 padding: 0;
995 padding: 0;
996 }
996 }
997
997
998 #content div.box div.form div.fields div.field span.success {
998 #content div.box div.form div.fields div.field span.success {
999 height: 1%;
999 height: 1%;
1000 display: block;
1000 display: block;
1001 color: #316309;
1001 color: #316309;
1002 margin: 8px 0 0;
1002 margin: 8px 0 0;
1003 padding: 0;
1003 padding: 0;
1004 }
1004 }
1005
1005
1006 #content div.box div.form div.fields div.field div.label {
1006 #content div.box div.form div.fields div.field div.label {
1007 left: 70px;
1007 left: 70px;
1008 width: 155px;
1008 width: 155px;
1009 position: absolute;
1009 position: absolute;
1010 margin: 0;
1010 margin: 0;
1011 padding: 5px 0 0 0px;
1011 padding: 5px 0 0 0px;
1012 }
1012 }
1013
1013
1014 #content div.box div.form div.fields div.field div.label-summary {
1014 #content div.box div.form div.fields div.field div.label-summary {
1015 left: 30px;
1015 left: 30px;
1016 width: 155px;
1016 width: 155px;
1017 position: absolute;
1017 position: absolute;
1018 margin: 0;
1018 margin: 0;
1019 padding: 0px 0 0 0px;
1019 padding: 0px 0 0 0px;
1020 }
1020 }
1021
1021
1022 #content div.box-left div.form div.fields div.field div.label,
1022 #content div.box-left div.form div.fields div.field div.label,
1023 #content div.box-right div.form div.fields div.field div.label,
1023 #content div.box-right div.form div.fields div.field div.label,
1024 #content div.box-left div.form div.fields div.field div.label,
1024 #content div.box-left div.form div.fields div.field div.label,
1025 #content div.box-left div.form div.fields div.field div.label-summary,
1025 #content div.box-left div.form div.fields div.field div.label-summary,
1026 #content div.box-right div.form div.fields div.field div.label-summary,
1026 #content div.box-right div.form div.fields div.field div.label-summary,
1027 #content div.box-left div.form div.fields div.field div.label-summary
1027 #content div.box-left div.form div.fields div.field div.label-summary
1028 {
1028 {
1029 clear: both;
1029 clear: both;
1030 overflow: hidden;
1030 overflow: hidden;
1031 left: 0;
1031 left: 0;
1032 width: auto;
1032 width: auto;
1033 position: relative;
1033 position: relative;
1034 margin: 0;
1034 margin: 0;
1035 padding: 0 0 8px;
1035 padding: 0 0 8px;
1036 }
1036 }
1037
1037
1038 #content div.box div.form div.fields div.field div.label-select {
1038 #content div.box div.form div.fields div.field div.label-select {
1039 padding: 5px 0 0 5px;
1039 padding: 5px 0 0 5px;
1040 }
1040 }
1041
1041
1042 #content div.box-left div.form div.fields div.field div.label-select,
1042 #content div.box-left div.form div.fields div.field div.label-select,
1043 #content div.box-right div.form div.fields div.field div.label-select
1043 #content div.box-right div.form div.fields div.field div.label-select
1044 {
1044 {
1045 padding: 0 0 8px;
1045 padding: 0 0 8px;
1046 }
1046 }
1047
1047
1048 #content div.box-left div.form div.fields div.field div.label-textarea,
1048 #content div.box-left div.form div.fields div.field div.label-textarea,
1049 #content div.box-right div.form div.fields div.field div.label-textarea
1049 #content div.box-right div.form div.fields div.field div.label-textarea
1050 {
1050 {
1051 padding: 0 0 8px !important;
1051 padding: 0 0 8px !important;
1052 }
1052 }
1053
1053
1054 #content div.box div.form div.fields div.field div.label label,div.label label
1054 #content div.box div.form div.fields div.field div.label label,div.label label
1055 {
1055 {
1056 color: #393939;
1056 color: #393939;
1057 font-weight: 700;
1057 font-weight: 700;
1058 }
1058 }
1059 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1059 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1060 {
1060 {
1061 color: #393939;
1061 color: #393939;
1062 font-weight: 700;
1062 font-weight: 700;
1063 }
1063 }
1064 #content div.box div.form div.fields div.field div.input {
1064 #content div.box div.form div.fields div.field div.input {
1065 margin: 0 0 0 200px;
1065 margin: 0 0 0 200px;
1066 }
1066 }
1067
1067
1068 #content div.box div.form div.fields div.field div.input.summary {
1068 #content div.box div.form div.fields div.field div.input.summary {
1069 margin: 0 0 0 110px;
1069 margin: 0 0 0 110px;
1070 }
1070 }
1071 #content div.box div.form div.fields div.field div.input.summary-short {
1071 #content div.box div.form div.fields div.field div.input.summary-short {
1072 margin: 0 0 0 110px;
1072 margin: 0 0 0 110px;
1073 }
1073 }
1074 #content div.box div.form div.fields div.field div.file {
1074 #content div.box div.form div.fields div.field div.file {
1075 margin: 0 0 0 200px;
1075 margin: 0 0 0 200px;
1076 }
1076 }
1077
1077
1078 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1078 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1079 {
1079 {
1080 margin: 0 0 0 0px;
1080 margin: 0 0 0 0px;
1081 }
1081 }
1082
1082
1083 #content div.box div.form div.fields div.field div.input input {
1083 #content div.box div.form div.fields div.field div.input input {
1084 background: #FFF;
1084 background: #FFF;
1085 border-top: 1px solid #b3b3b3;
1085 border-top: 1px solid #b3b3b3;
1086 border-left: 1px solid #b3b3b3;
1086 border-left: 1px solid #b3b3b3;
1087 border-right: 1px solid #eaeaea;
1087 border-right: 1px solid #eaeaea;
1088 border-bottom: 1px solid #eaeaea;
1088 border-bottom: 1px solid #eaeaea;
1089 color: #000;
1089 color: #000;
1090 font-size: 11px;
1090 font-size: 11px;
1091 margin: 0;
1091 margin: 0;
1092 padding: 7px 7px 6px;
1092 padding: 7px 7px 6px;
1093 }
1093 }
1094
1094
1095 #content div.box div.form div.fields div.field div.input input#clone_url{
1095 #content div.box div.form div.fields div.field div.input input#clone_url{
1096 font-size: 16px;
1096 font-size: 16px;
1097 padding: 2px 7px 2px;
1097 padding: 2px 7px 2px;
1098 }
1098 }
1099
1099
1100 #content div.box div.form div.fields div.field div.file input {
1100 #content div.box div.form div.fields div.field div.file input {
1101 background: none repeat scroll 0 0 #FFFFFF;
1101 background: none repeat scroll 0 0 #FFFFFF;
1102 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1102 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1103 border-style: solid;
1103 border-style: solid;
1104 border-width: 1px;
1104 border-width: 1px;
1105 color: #000000;
1105 color: #000000;
1106 font-size: 11px;
1106 font-size: 11px;
1107 margin: 0;
1107 margin: 0;
1108 padding: 7px 7px 6px;
1108 padding: 7px 7px 6px;
1109 }
1109 }
1110
1110
1111 #content div.box div.form div.fields div.field div.input input.small {
1111 #content div.box div.form div.fields div.field div.input input.small {
1112 width: 30%;
1112 width: 30%;
1113 }
1113 }
1114
1114
1115 #content div.box div.form div.fields div.field div.input input.medium {
1115 #content div.box div.form div.fields div.field div.input input.medium {
1116 width: 55%;
1116 width: 55%;
1117 }
1117 }
1118
1118
1119 #content div.box div.form div.fields div.field div.input input.large {
1119 #content div.box div.form div.fields div.field div.input input.large {
1120 width: 85%;
1120 width: 85%;
1121 }
1121 }
1122
1122
1123 #content div.box div.form div.fields div.field div.input input.date {
1123 #content div.box div.form div.fields div.field div.input input.date {
1124 width: 177px;
1124 width: 177px;
1125 }
1125 }
1126
1126
1127 #content div.box div.form div.fields div.field div.input input.button {
1127 #content div.box div.form div.fields div.field div.input input.button {
1128 background: #D4D0C8;
1128 background: #D4D0C8;
1129 border-top: 1px solid #FFF;
1129 border-top: 1px solid #FFF;
1130 border-left: 1px solid #FFF;
1130 border-left: 1px solid #FFF;
1131 border-right: 1px solid #404040;
1131 border-right: 1px solid #404040;
1132 border-bottom: 1px solid #404040;
1132 border-bottom: 1px solid #404040;
1133 color: #000;
1133 color: #000;
1134 margin: 0;
1134 margin: 0;
1135 padding: 4px 8px;
1135 padding: 4px 8px;
1136 }
1136 }
1137
1137
1138 #content div.box div.form div.fields div.field div.textarea {
1138 #content div.box div.form div.fields div.field div.textarea {
1139 border-top: 1px solid #b3b3b3;
1139 border-top: 1px solid #b3b3b3;
1140 border-left: 1px solid #b3b3b3;
1140 border-left: 1px solid #b3b3b3;
1141 border-right: 1px solid #eaeaea;
1141 border-right: 1px solid #eaeaea;
1142 border-bottom: 1px solid #eaeaea;
1142 border-bottom: 1px solid #eaeaea;
1143 margin: 0 0 0 200px;
1143 margin: 0 0 0 200px;
1144 padding: 10px;
1144 padding: 10px;
1145 }
1145 }
1146
1146
1147 #content div.box div.form div.fields div.field div.textarea-editor {
1147 #content div.box div.form div.fields div.field div.textarea-editor {
1148 border: 1px solid #ddd;
1148 border: 1px solid #ddd;
1149 padding: 0;
1149 padding: 0;
1150 }
1150 }
1151
1151
1152 #content div.box div.form div.fields div.field div.textarea textarea {
1152 #content div.box div.form div.fields div.field div.textarea textarea {
1153 width: 100%;
1153 width: 100%;
1154 height: 220px;
1154 height: 220px;
1155 overflow: hidden;
1155 overflow: hidden;
1156 background: #FFF;
1156 background: #FFF;
1157 color: #000;
1157 color: #000;
1158 font-size: 11px;
1158 font-size: 11px;
1159 outline: none;
1159 outline: none;
1160 border-width: 0;
1160 border-width: 0;
1161 margin: 0;
1161 margin: 0;
1162 padding: 0;
1162 padding: 0;
1163 }
1163 }
1164
1164
1165 #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
1165 #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
1166 {
1166 {
1167 width: 100%;
1167 width: 100%;
1168 height: 100px;
1168 height: 100px;
1169 }
1169 }
1170
1170
1171 #content div.box div.form div.fields div.field div.textarea table {
1171 #content div.box div.form div.fields div.field div.textarea table {
1172 width: 100%;
1172 width: 100%;
1173 border: none;
1173 border: none;
1174 margin: 0;
1174 margin: 0;
1175 padding: 0;
1175 padding: 0;
1176 }
1176 }
1177
1177
1178 #content div.box div.form div.fields div.field div.textarea table td {
1178 #content div.box div.form div.fields div.field div.textarea table td {
1179 background: #DDD;
1179 background: #DDD;
1180 border: none;
1180 border: none;
1181 padding: 0;
1181 padding: 0;
1182 }
1182 }
1183
1183
1184 #content div.box div.form div.fields div.field div.textarea table td table
1184 #content div.box div.form div.fields div.field div.textarea table td table
1185 {
1185 {
1186 width: auto;
1186 width: auto;
1187 border: none;
1187 border: none;
1188 margin: 0;
1188 margin: 0;
1189 padding: 0;
1189 padding: 0;
1190 }
1190 }
1191
1191
1192 #content div.box div.form div.fields div.field div.textarea table td table td
1192 #content div.box div.form div.fields div.field div.textarea table td table td
1193 {
1193 {
1194 font-size: 11px;
1194 font-size: 11px;
1195 padding: 5px 5px 5px 0;
1195 padding: 5px 5px 5px 0;
1196 }
1196 }
1197
1197
1198 #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
1198 #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
1199 {
1199 {
1200 background: #f6f6f6;
1200 background: #f6f6f6;
1201 border-color: #666;
1201 border-color: #666;
1202 }
1202 }
1203
1203
1204 div.form div.fields div.field div.button {
1204 div.form div.fields div.field div.button {
1205 margin: 0;
1205 margin: 0;
1206 padding: 0 0 0 8px;
1206 padding: 0 0 0 8px;
1207 }
1207 }
1208 #content div.box table.noborder {
1208 #content div.box table.noborder {
1209 border: 1px solid transparent;
1209 border: 1px solid transparent;
1210 }
1210 }
1211
1211
1212 #content div.box table {
1212 #content div.box table {
1213 width: 100%;
1213 width: 100%;
1214 border-collapse: separate;
1214 border-collapse: separate;
1215 margin: 0;
1215 margin: 0;
1216 padding: 0;
1216 padding: 0;
1217 border: 1px solid #eee;
1217 border: 1px solid #eee;
1218 -webkit-border-radius: 4px;
1218 -webkit-border-radius: 4px;
1219 -moz-border-radius: 4px;
1219 -moz-border-radius: 4px;
1220 border-radius: 4px;
1220 border-radius: 4px;
1221 }
1221 }
1222
1222
1223 #content div.box table th {
1223 #content div.box table th {
1224 background: #eee;
1224 background: #eee;
1225 border-bottom: 1px solid #ddd;
1225 border-bottom: 1px solid #ddd;
1226 padding: 5px 0px 5px 5px;
1226 padding: 5px 0px 5px 5px;
1227 }
1227 }
1228
1228
1229 #content div.box table th.left {
1229 #content div.box table th.left {
1230 text-align: left;
1230 text-align: left;
1231 }
1231 }
1232
1232
1233 #content div.box table th.right {
1233 #content div.box table th.right {
1234 text-align: right;
1234 text-align: right;
1235 }
1235 }
1236
1236
1237 #content div.box table th.center {
1237 #content div.box table th.center {
1238 text-align: center;
1238 text-align: center;
1239 }
1239 }
1240
1240
1241 #content div.box table th.selected {
1241 #content div.box table th.selected {
1242 vertical-align: middle;
1242 vertical-align: middle;
1243 padding: 0;
1243 padding: 0;
1244 }
1244 }
1245
1245
1246 #content div.box table td {
1246 #content div.box table td {
1247 background: #fff;
1247 background: #fff;
1248 border-bottom: 1px solid #cdcdcd;
1248 border-bottom: 1px solid #cdcdcd;
1249 vertical-align: middle;
1249 vertical-align: middle;
1250 padding: 5px;
1250 padding: 5px;
1251 }
1251 }
1252
1252
1253 #content div.box table tr.selected td {
1253 #content div.box table tr.selected td {
1254 background: #FFC;
1254 background: #FFC;
1255 }
1255 }
1256
1256
1257 #content div.box table td.selected {
1257 #content div.box table td.selected {
1258 width: 3%;
1258 width: 3%;
1259 text-align: center;
1259 text-align: center;
1260 vertical-align: middle;
1260 vertical-align: middle;
1261 padding: 0;
1261 padding: 0;
1262 }
1262 }
1263
1263
1264 #content div.box table td.action {
1264 #content div.box table td.action {
1265 width: 45%;
1265 width: 45%;
1266 text-align: left;
1266 text-align: left;
1267 }
1267 }
1268
1268
1269 #content div.box table td.date {
1269 #content div.box table td.date {
1270 width: 33%;
1270 width: 33%;
1271 text-align: center;
1271 text-align: center;
1272 }
1272 }
1273
1273
1274 #content div.box div.action {
1274 #content div.box div.action {
1275 float: right;
1275 float: right;
1276 background: #FFF;
1276 background: #FFF;
1277 text-align: right;
1277 text-align: right;
1278 margin: 10px 0 0;
1278 margin: 10px 0 0;
1279 padding: 0;
1279 padding: 0;
1280 }
1280 }
1281
1281
1282 #content div.box div.action select {
1282 #content div.box div.action select {
1283 font-size: 11px;
1283 font-size: 11px;
1284 margin: 0;
1284 margin: 0;
1285 }
1285 }
1286
1286
1287 #content div.box div.action .ui-selectmenu {
1287 #content div.box div.action .ui-selectmenu {
1288 margin: 0;
1288 margin: 0;
1289 padding: 0;
1289 padding: 0;
1290 }
1290 }
1291
1291
1292 #content div.box div.pagination {
1292 #content div.box div.pagination {
1293 height: 1%;
1293 height: 1%;
1294 clear: both;
1294 clear: both;
1295 overflow: hidden;
1295 overflow: hidden;
1296 margin: 10px 0 0;
1296 margin: 10px 0 0;
1297 padding: 0;
1297 padding: 0;
1298 }
1298 }
1299
1299
1300 #content div.box div.pagination ul.pager {
1300 #content div.box div.pagination ul.pager {
1301 float: right;
1301 float: right;
1302 text-align: right;
1302 text-align: right;
1303 margin: 0;
1303 margin: 0;
1304 padding: 0;
1304 padding: 0;
1305 }
1305 }
1306
1306
1307 #content div.box div.pagination ul.pager li {
1307 #content div.box div.pagination ul.pager li {
1308 height: 1%;
1308 height: 1%;
1309 float: left;
1309 float: left;
1310 list-style: none;
1310 list-style: none;
1311 background: #ebebeb url("../images/pager.png") repeat-x;
1311 background: #ebebeb url("../images/pager.png") repeat-x;
1312 border-top: 1px solid #dedede;
1312 border-top: 1px solid #dedede;
1313 border-left: 1px solid #cfcfcf;
1313 border-left: 1px solid #cfcfcf;
1314 border-right: 1px solid #c4c4c4;
1314 border-right: 1px solid #c4c4c4;
1315 border-bottom: 1px solid #c4c4c4;
1315 border-bottom: 1px solid #c4c4c4;
1316 color: #4A4A4A;
1316 color: #4A4A4A;
1317 font-weight: 700;
1317 font-weight: 700;
1318 margin: 0 0 0 4px;
1318 margin: 0 0 0 4px;
1319 padding: 0;
1319 padding: 0;
1320 }
1320 }
1321
1321
1322 #content div.box div.pagination ul.pager li.separator {
1322 #content div.box div.pagination ul.pager li.separator {
1323 padding: 6px;
1323 padding: 6px;
1324 }
1324 }
1325
1325
1326 #content div.box div.pagination ul.pager li.current {
1326 #content div.box div.pagination ul.pager li.current {
1327 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1327 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1328 border-top: 1px solid #ccc;
1328 border-top: 1px solid #ccc;
1329 border-left: 1px solid #bebebe;
1329 border-left: 1px solid #bebebe;
1330 border-right: 1px solid #b1b1b1;
1330 border-right: 1px solid #b1b1b1;
1331 border-bottom: 1px solid #afafaf;
1331 border-bottom: 1px solid #afafaf;
1332 color: #515151;
1332 color: #515151;
1333 padding: 6px;
1333 padding: 6px;
1334 }
1334 }
1335
1335
1336 #content div.box div.pagination ul.pager li a {
1336 #content div.box div.pagination ul.pager li a {
1337 height: 1%;
1337 height: 1%;
1338 display: block;
1338 display: block;
1339 float: left;
1339 float: left;
1340 color: #515151;
1340 color: #515151;
1341 text-decoration: none;
1341 text-decoration: none;
1342 margin: 0;
1342 margin: 0;
1343 padding: 6px;
1343 padding: 6px;
1344 }
1344 }
1345
1345
1346 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1346 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1347 {
1347 {
1348 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1348 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1349 border-top: 1px solid #ccc;
1349 border-top: 1px solid #ccc;
1350 border-left: 1px solid #bebebe;
1350 border-left: 1px solid #bebebe;
1351 border-right: 1px solid #b1b1b1;
1351 border-right: 1px solid #b1b1b1;
1352 border-bottom: 1px solid #afafaf;
1352 border-bottom: 1px solid #afafaf;
1353 margin: -1px;
1353 margin: -1px;
1354 }
1354 }
1355
1355
1356 #content div.box div.pagination-wh {
1356 #content div.box div.pagination-wh {
1357 height: 1%;
1357 height: 1%;
1358 clear: both;
1358 clear: both;
1359 overflow: hidden;
1359 overflow: hidden;
1360 text-align: right;
1360 text-align: right;
1361 margin: 10px 0 0;
1361 margin: 10px 0 0;
1362 padding: 0;
1362 padding: 0;
1363 }
1363 }
1364
1364
1365 #content div.box div.pagination-right {
1365 #content div.box div.pagination-right {
1366 float: right;
1366 float: right;
1367 }
1367 }
1368
1368
1369 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1369 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1370 {
1370 {
1371 height: 1%;
1371 height: 1%;
1372 float: left;
1372 float: left;
1373 background: #ebebeb url("../images/pager.png") repeat-x;
1373 background: #ebebeb url("../images/pager.png") repeat-x;
1374 border-top: 1px solid #dedede;
1374 border-top: 1px solid #dedede;
1375 border-left: 1px solid #cfcfcf;
1375 border-left: 1px solid #cfcfcf;
1376 border-right: 1px solid #c4c4c4;
1376 border-right: 1px solid #c4c4c4;
1377 border-bottom: 1px solid #c4c4c4;
1377 border-bottom: 1px solid #c4c4c4;
1378 color: #4A4A4A;
1378 color: #4A4A4A;
1379 font-weight: 700;
1379 font-weight: 700;
1380 margin: 0 0 0 4px;
1380 margin: 0 0 0 4px;
1381 padding: 6px;
1381 padding: 6px;
1382 }
1382 }
1383
1383
1384 #content div.box div.pagination-wh span.pager_curpage {
1384 #content div.box div.pagination-wh span.pager_curpage {
1385 height: 1%;
1385 height: 1%;
1386 float: left;
1386 float: left;
1387 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1387 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1388 border-top: 1px solid #ccc;
1388 border-top: 1px solid #ccc;
1389 border-left: 1px solid #bebebe;
1389 border-left: 1px solid #bebebe;
1390 border-right: 1px solid #b1b1b1;
1390 border-right: 1px solid #b1b1b1;
1391 border-bottom: 1px solid #afafaf;
1391 border-bottom: 1px solid #afafaf;
1392 color: #515151;
1392 color: #515151;
1393 font-weight: 700;
1393 font-weight: 700;
1394 margin: 0 0 0 4px;
1394 margin: 0 0 0 4px;
1395 padding: 6px;
1395 padding: 6px;
1396 }
1396 }
1397
1397
1398 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1398 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1399 {
1399 {
1400 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1400 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1401 border-top: 1px solid #ccc;
1401 border-top: 1px solid #ccc;
1402 border-left: 1px solid #bebebe;
1402 border-left: 1px solid #bebebe;
1403 border-right: 1px solid #b1b1b1;
1403 border-right: 1px solid #b1b1b1;
1404 border-bottom: 1px solid #afafaf;
1404 border-bottom: 1px solid #afafaf;
1405 text-decoration: none;
1405 text-decoration: none;
1406 }
1406 }
1407
1407
1408 #content div.box div.traffic div.legend {
1408 #content div.box div.traffic div.legend {
1409 clear: both;
1409 clear: both;
1410 overflow: hidden;
1410 overflow: hidden;
1411 border-bottom: 1px solid #ddd;
1411 border-bottom: 1px solid #ddd;
1412 margin: 0 0 10px;
1412 margin: 0 0 10px;
1413 padding: 0 0 10px;
1413 padding: 0 0 10px;
1414 }
1414 }
1415
1415
1416 #content div.box div.traffic div.legend h6 {
1416 #content div.box div.traffic div.legend h6 {
1417 float: left;
1417 float: left;
1418 border: none;
1418 border: none;
1419 margin: 0;
1419 margin: 0;
1420 padding: 0;
1420 padding: 0;
1421 }
1421 }
1422
1422
1423 #content div.box div.traffic div.legend li {
1423 #content div.box div.traffic div.legend li {
1424 list-style: none;
1424 list-style: none;
1425 float: left;
1425 float: left;
1426 font-size: 11px;
1426 font-size: 11px;
1427 margin: 0;
1427 margin: 0;
1428 padding: 0 8px 0 4px;
1428 padding: 0 8px 0 4px;
1429 }
1429 }
1430
1430
1431 #content div.box div.traffic div.legend li.visits {
1431 #content div.box div.traffic div.legend li.visits {
1432 border-left: 12px solid #edc240;
1432 border-left: 12px solid #edc240;
1433 }
1433 }
1434
1434
1435 #content div.box div.traffic div.legend li.pageviews {
1435 #content div.box div.traffic div.legend li.pageviews {
1436 border-left: 12px solid #afd8f8;
1436 border-left: 12px solid #afd8f8;
1437 }
1437 }
1438
1438
1439 #content div.box div.traffic table {
1439 #content div.box div.traffic table {
1440 width: auto;
1440 width: auto;
1441 }
1441 }
1442
1442
1443 #content div.box div.traffic table td {
1443 #content div.box div.traffic table td {
1444 background: transparent;
1444 background: transparent;
1445 border: none;
1445 border: none;
1446 padding: 2px 3px 3px;
1446 padding: 2px 3px 3px;
1447 }
1447 }
1448
1448
1449 #content div.box div.traffic table td.legendLabel {
1449 #content div.box div.traffic table td.legendLabel {
1450 padding: 0 3px 2px;
1450 padding: 0 3px 2px;
1451 }
1451 }
1452
1452
1453 #summary {
1453 #summary {
1454
1454
1455 }
1455 }
1456
1456
1457 #summary .desc {
1457 #summary .desc {
1458 white-space: pre;
1458 white-space: pre;
1459 width: 100%;
1459 width: 100%;
1460 }
1460 }
1461
1461
1462 #summary .repo_name {
1462 #summary .repo_name {
1463 font-size: 1.6em;
1463 font-size: 1.6em;
1464 font-weight: bold;
1464 font-weight: bold;
1465 vertical-align: baseline;
1465 vertical-align: baseline;
1466 clear: right
1466 clear: right
1467 }
1467 }
1468
1468
1469 #footer {
1469 #footer {
1470 clear: both;
1470 clear: both;
1471 overflow: hidden;
1471 overflow: hidden;
1472 text-align: right;
1472 text-align: right;
1473 margin: 0;
1473 margin: 0;
1474 padding: 0 10px 4px;
1474 padding: 0 10px 4px;
1475 margin: -10px 0 0;
1475 margin: -10px 0 0;
1476 }
1476 }
1477
1477
1478 #footer div#footer-inner {
1478 #footer div#footer-inner {
1479 background-color: #eedc94; background-repeat : repeat-x;
1479 background-color: #eedc94; background-repeat : repeat-x;
1480 background-image : -khtml-gradient( linear, left top, left bottom,
1480 background-image : -khtml-gradient( linear, left top, left bottom,
1481 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1481 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1482 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1482 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1483 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1483 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1484 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1484 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1485 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1485 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1486 background-image : -o-linear-gradient( top, #003b76, #00376e));
1486 background-image : -o-linear-gradient( top, #003b76, #00376e));
1487 background-image : linear-gradient( top, #003b76, #00376e); filter :
1487 background-image : linear-gradient( top, #003b76, #00376e); filter :
1488 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1488 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1489 '#003b76', endColorstr = '#00376e', GradientType = 0);
1489 '#003b76', endColorstr = '#00376e', GradientType = 0);
1490 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1490 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1491 -webkit-border-radius: 4px 4px 4px 4px;
1491 -webkit-border-radius: 4px 4px 4px 4px;
1492 -khtml-border-radius: 4px 4px 4px 4px;
1492 -khtml-border-radius: 4px 4px 4px 4px;
1493 -moz-border-radius: 4px 4px 4px 4px;
1493 -moz-border-radius: 4px 4px 4px 4px;
1494 border-radius: 4px 4px 4px 4px;
1494 border-radius: 4px 4px 4px 4px;
1495 background-repeat: repeat-x;
1495 background-repeat: repeat-x;
1496 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1496 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1497 to(#eedc94) );
1497 to(#eedc94) );
1498 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1498 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1499 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1499 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1500 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1500 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1501 color-stop(100%, #00376e) );
1501 color-stop(100%, #00376e) );
1502 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1502 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1503 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1503 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1504 background-image: linear-gradient(top, #003b76, #00376e);
1504 background-image: linear-gradient(top, #003b76, #00376e);
1505 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1505 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1506 endColorstr='#00376e', GradientType=0 );
1506 endColorstr='#00376e', GradientType=0 );
1507 }
1507 }
1508
1508
1509 #footer div#footer-inner p {
1509 #footer div#footer-inner p {
1510 padding: 15px 25px 15px 0;
1510 padding: 15px 25px 15px 0;
1511 color: #FFF;
1511 color: #FFF;
1512 font-weight: 700;
1512 font-weight: 700;
1513 }
1513 }
1514
1514
1515 #footer div#footer-inner .footer-link {
1515 #footer div#footer-inner .footer-link {
1516 float: left;
1516 float: left;
1517 padding-left: 10px;
1517 padding-left: 10px;
1518 }
1518 }
1519
1519
1520 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1520 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1521 {
1521 {
1522 color: #FFF;
1522 color: #FFF;
1523 }
1523 }
1524
1524
1525 #login div.title {
1525 #login div.title {
1526 width: 420px;
1526 width: 420px;
1527 clear: both;
1527 clear: both;
1528 overflow: hidden;
1528 overflow: hidden;
1529 position: relative;
1529 position: relative;
1530 background-color: #eedc94; background-repeat : repeat-x;
1530 background-color: #eedc94; background-repeat : repeat-x;
1531 background-image : -khtml-gradient( linear, left top, left bottom,
1531 background-image : -khtml-gradient( linear, left top, left bottom,
1532 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1532 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1533 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1533 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1534 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1534 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1535 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1535 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1536 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1536 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1537 background-image : -o-linear-gradient( top, #003b76, #00376e));
1537 background-image : -o-linear-gradient( top, #003b76, #00376e));
1538 background-image : linear-gradient( top, #003b76, #00376e); filter :
1538 background-image : linear-gradient( top, #003b76, #00376e); filter :
1539 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1539 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1540 '#003b76', endColorstr = '#00376e', GradientType = 0);
1540 '#003b76', endColorstr = '#00376e', GradientType = 0);
1541 margin: 0 auto;
1541 margin: 0 auto;
1542 padding: 0;
1542 padding: 0;
1543 background-repeat: repeat-x;
1543 background-repeat: repeat-x;
1544 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1544 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1545 to(#eedc94) );
1545 to(#eedc94) );
1546 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1546 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1547 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1547 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1548 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1548 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1549 color-stop(100%, #00376e) );
1549 color-stop(100%, #00376e) );
1550 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1550 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1551 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1551 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1552 background-image: linear-gradient(top, #003b76, #00376e);
1552 background-image: linear-gradient(top, #003b76, #00376e);
1553 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1553 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1554 endColorstr='#00376e', GradientType=0 );
1554 endColorstr='#00376e', GradientType=0 );
1555 }
1555 }
1556
1556
1557 #login div.inner {
1557 #login div.inner {
1558 width: 380px;
1558 width: 380px;
1559 background: #FFF url("../images/login.png") no-repeat top left;
1559 background: #FFF url("../images/login.png") no-repeat top left;
1560 border-top: none;
1560 border-top: none;
1561 border-bottom: none;
1561 border-bottom: none;
1562 margin: 0 auto;
1562 margin: 0 auto;
1563 padding: 20px;
1563 padding: 20px;
1564 }
1564 }
1565
1565
1566 #login div.form div.fields div.field div.label {
1566 #login div.form div.fields div.field div.label {
1567 width: 173px;
1567 width: 173px;
1568 float: left;
1568 float: left;
1569 text-align: right;
1569 text-align: right;
1570 margin: 2px 10px 0 0;
1570 margin: 2px 10px 0 0;
1571 padding: 5px 0 0 5px;
1571 padding: 5px 0 0 5px;
1572 }
1572 }
1573
1573
1574 #login div.form div.fields div.field div.input input {
1574 #login div.form div.fields div.field div.input input {
1575 width: 176px;
1575 width: 176px;
1576 background: #FFF;
1576 background: #FFF;
1577 border-top: 1px solid #b3b3b3;
1577 border-top: 1px solid #b3b3b3;
1578 border-left: 1px solid #b3b3b3;
1578 border-left: 1px solid #b3b3b3;
1579 border-right: 1px solid #eaeaea;
1579 border-right: 1px solid #eaeaea;
1580 border-bottom: 1px solid #eaeaea;
1580 border-bottom: 1px solid #eaeaea;
1581 color: #000;
1581 color: #000;
1582 font-size: 11px;
1582 font-size: 11px;
1583 margin: 0;
1583 margin: 0;
1584 padding: 7px 7px 6px;
1584 padding: 7px 7px 6px;
1585 }
1585 }
1586
1586
1587 #login div.form div.fields div.buttons {
1587 #login div.form div.fields div.buttons {
1588 clear: both;
1588 clear: both;
1589 overflow: hidden;
1589 overflow: hidden;
1590 border-top: 1px solid #DDD;
1590 border-top: 1px solid #DDD;
1591 text-align: right;
1591 text-align: right;
1592 margin: 0;
1592 margin: 0;
1593 padding: 10px 0 0;
1593 padding: 10px 0 0;
1594 }
1594 }
1595
1595
1596 #login div.form div.links {
1596 #login div.form div.links {
1597 clear: both;
1597 clear: both;
1598 overflow: hidden;
1598 overflow: hidden;
1599 margin: 10px 0 0;
1599 margin: 10px 0 0;
1600 padding: 0 0 2px;
1600 padding: 0 0 2px;
1601 }
1601 }
1602
1602
1603 #quick_login {
1603 #quick_login {
1604 top: 31px;
1604 top: 31px;
1605 background-color: rgb(0, 51, 103);
1605 background-color: rgb(0, 51, 103);
1606 z-index: 999;
1606 z-index: 999;
1607 height: 150px;
1607 height: 150px;
1608 position: absolute;
1608 position: absolute;
1609 margin-left: -16px;
1609 margin-left: -16px;
1610 width: 281px;
1610 width: 281px;
1611 -webkit-border-radius: 0px 0px 4px 4px;
1611 -webkit-border-radius: 0px 0px 4px 4px;
1612 -khtml-border-radius: 0px 0px 4px 4px;
1612 -khtml-border-radius: 0px 0px 4px 4px;
1613 -moz-border-radius: 0px 0px 4px 4px;
1613 -moz-border-radius: 0px 0px 4px 4px;
1614 border-radius: 0px 0px 4px 4px;
1614 border-radius: 0px 0px 4px 4px;
1615 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1615 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1616 }
1616 }
1617
1617
1618 #quick_login .password_forgoten {
1618 #quick_login .password_forgoten {
1619 padding-right: 10px;
1619 padding-right: 10px;
1620 padding-top: 0px;
1620 padding-top: 0px;
1621 float: left;
1621 float: left;
1622 }
1622 }
1623
1623
1624 #quick_login .password_forgoten a {
1624 #quick_login .password_forgoten a {
1625 font-size: 10px
1625 font-size: 10px
1626 }
1626 }
1627
1627
1628 #quick_login .register {
1628 #quick_login .register {
1629 padding-right: 10px;
1629 padding-right: 10px;
1630 padding-top: 5px;
1630 padding-top: 5px;
1631 float: left;
1631 float: left;
1632 }
1632 }
1633
1633
1634 #quick_login .register a {
1634 #quick_login .register a {
1635 font-size: 10px
1635 font-size: 10px
1636 }
1636 }
1637
1637
1638 #quick_login div.form div.fields {
1638 #quick_login div.form div.fields {
1639 padding-top: 2px;
1639 padding-top: 2px;
1640 padding-left: 10px;
1640 padding-left: 10px;
1641 }
1641 }
1642
1642
1643 #quick_login div.form div.fields div.field {
1643 #quick_login div.form div.fields div.field {
1644 padding: 5px;
1644 padding: 5px;
1645 }
1645 }
1646
1646
1647 #quick_login div.form div.fields div.field div.label label {
1647 #quick_login div.form div.fields div.field div.label label {
1648 color: #fff;
1648 color: #fff;
1649 padding-bottom: 3px;
1649 padding-bottom: 3px;
1650 }
1650 }
1651
1651
1652 #quick_login div.form div.fields div.field div.input input {
1652 #quick_login div.form div.fields div.field div.input input {
1653 width: 236px;
1653 width: 236px;
1654 background: #FFF;
1654 background: #FFF;
1655 border-top: 1px solid #b3b3b3;
1655 border-top: 1px solid #b3b3b3;
1656 border-left: 1px solid #b3b3b3;
1656 border-left: 1px solid #b3b3b3;
1657 border-right: 1px solid #eaeaea;
1657 border-right: 1px solid #eaeaea;
1658 border-bottom: 1px solid #eaeaea;
1658 border-bottom: 1px solid #eaeaea;
1659 color: #000;
1659 color: #000;
1660 font-size: 11px;
1660 font-size: 11px;
1661 margin: 0;
1661 margin: 0;
1662 padding: 5px 7px 4px;
1662 padding: 5px 7px 4px;
1663 }
1663 }
1664
1664
1665 #quick_login div.form div.fields div.buttons {
1665 #quick_login div.form div.fields div.buttons {
1666 clear: both;
1666 clear: both;
1667 overflow: hidden;
1667 overflow: hidden;
1668 text-align: right;
1668 text-align: right;
1669 margin: 0;
1669 margin: 0;
1670 padding: 10px 14px 0px 5px;
1670 padding: 10px 14px 0px 5px;
1671 }
1671 }
1672
1672
1673 #quick_login div.form div.links {
1673 #quick_login div.form div.links {
1674 clear: both;
1674 clear: both;
1675 overflow: hidden;
1675 overflow: hidden;
1676 margin: 10px 0 0;
1676 margin: 10px 0 0;
1677 padding: 0 0 2px;
1677 padding: 0 0 2px;
1678 }
1678 }
1679
1679
1680 #register div.title {
1680 #register div.title {
1681 clear: both;
1681 clear: both;
1682 overflow: hidden;
1682 overflow: hidden;
1683 position: relative;
1683 position: relative;
1684 background-color: #eedc94;
1684 background-color: #eedc94;
1685 background-repeat: repeat-x;
1685 background-repeat: repeat-x;
1686 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1686 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1687 to(#eedc94) );
1687 to(#eedc94) );
1688 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1688 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1689 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1689 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1690 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1690 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1691 color-stop(100%, #00376e) );
1691 color-stop(100%, #00376e) );
1692 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1692 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1693 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1693 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1694 background-image: linear-gradient(top, #003b76, #00376e);
1694 background-image: linear-gradient(top, #003b76, #00376e);
1695 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1695 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1696 endColorstr='#00376e', GradientType=0 );
1696 endColorstr='#00376e', GradientType=0 );
1697 margin: 0 auto;
1697 margin: 0 auto;
1698 padding: 0;
1698 padding: 0;
1699 }
1699 }
1700
1700
1701 #register div.inner {
1701 #register div.inner {
1702 background: #FFF;
1702 background: #FFF;
1703 border-top: none;
1703 border-top: none;
1704 border-bottom: none;
1704 border-bottom: none;
1705 margin: 0 auto;
1705 margin: 0 auto;
1706 padding: 20px;
1706 padding: 20px;
1707 }
1707 }
1708
1708
1709 #register div.form div.fields div.field div.label {
1709 #register div.form div.fields div.field div.label {
1710 width: 135px;
1710 width: 135px;
1711 float: left;
1711 float: left;
1712 text-align: right;
1712 text-align: right;
1713 margin: 2px 10px 0 0;
1713 margin: 2px 10px 0 0;
1714 padding: 5px 0 0 5px;
1714 padding: 5px 0 0 5px;
1715 }
1715 }
1716
1716
1717 #register div.form div.fields div.field div.input input {
1717 #register div.form div.fields div.field div.input input {
1718 width: 300px;
1718 width: 300px;
1719 background: #FFF;
1719 background: #FFF;
1720 border-top: 1px solid #b3b3b3;
1720 border-top: 1px solid #b3b3b3;
1721 border-left: 1px solid #b3b3b3;
1721 border-left: 1px solid #b3b3b3;
1722 border-right: 1px solid #eaeaea;
1722 border-right: 1px solid #eaeaea;
1723 border-bottom: 1px solid #eaeaea;
1723 border-bottom: 1px solid #eaeaea;
1724 color: #000;
1724 color: #000;
1725 font-size: 11px;
1725 font-size: 11px;
1726 margin: 0;
1726 margin: 0;
1727 padding: 7px 7px 6px;
1727 padding: 7px 7px 6px;
1728 }
1728 }
1729
1729
1730 #register div.form div.fields div.buttons {
1730 #register div.form div.fields div.buttons {
1731 clear: both;
1731 clear: both;
1732 overflow: hidden;
1732 overflow: hidden;
1733 border-top: 1px solid #DDD;
1733 border-top: 1px solid #DDD;
1734 text-align: left;
1734 text-align: left;
1735 margin: 0;
1735 margin: 0;
1736 padding: 10px 0 0 150px;
1736 padding: 10px 0 0 150px;
1737 }
1737 }
1738
1738
1739 #register div.form div.activation_msg {
1739 #register div.form div.activation_msg {
1740 padding-top: 4px;
1740 padding-top: 4px;
1741 padding-bottom: 4px;
1741 padding-bottom: 4px;
1742 }
1742 }
1743
1743
1744 #journal .journal_day {
1744 #journal .journal_day {
1745 font-size: 20px;
1745 font-size: 20px;
1746 padding: 10px 0px;
1746 padding: 10px 0px;
1747 border-bottom: 2px solid #DDD;
1747 border-bottom: 2px solid #DDD;
1748 margin-left: 10px;
1748 margin-left: 10px;
1749 margin-right: 10px;
1749 margin-right: 10px;
1750 }
1750 }
1751
1751
1752 #journal .journal_container {
1752 #journal .journal_container {
1753 padding: 5px;
1753 padding: 5px;
1754 clear: both;
1754 clear: both;
1755 margin: 0px 5px 0px 10px;
1755 margin: 0px 5px 0px 10px;
1756 }
1756 }
1757
1757
1758 #journal .journal_action_container {
1758 #journal .journal_action_container {
1759 padding-left: 38px;
1759 padding-left: 38px;
1760 }
1760 }
1761
1761
1762 #journal .journal_user {
1762 #journal .journal_user {
1763 color: #747474;
1763 color: #747474;
1764 font-size: 14px;
1764 font-size: 14px;
1765 font-weight: bold;
1765 font-weight: bold;
1766 height: 30px;
1766 height: 30px;
1767 }
1767 }
1768
1768
1769 #journal .journal_icon {
1769 #journal .journal_icon {
1770 clear: both;
1770 clear: both;
1771 float: left;
1771 float: left;
1772 padding-right: 4px;
1772 padding-right: 4px;
1773 padding-top: 3px;
1773 padding-top: 3px;
1774 }
1774 }
1775
1775
1776 #journal .journal_action {
1776 #journal .journal_action {
1777 padding-top: 4px;
1777 padding-top: 4px;
1778 min-height: 2px;
1778 min-height: 2px;
1779 float: left
1779 float: left
1780 }
1780 }
1781
1781
1782 #journal .journal_action_params {
1782 #journal .journal_action_params {
1783 clear: left;
1783 clear: left;
1784 padding-left: 22px;
1784 padding-left: 22px;
1785 }
1785 }
1786
1786
1787 #journal .journal_repo {
1787 #journal .journal_repo {
1788 float: left;
1788 float: left;
1789 margin-left: 6px;
1789 margin-left: 6px;
1790 padding-top: 3px;
1790 padding-top: 3px;
1791 }
1791 }
1792
1792
1793 #journal .date {
1793 #journal .date {
1794 clear: both;
1794 clear: both;
1795 color: #777777;
1795 color: #777777;
1796 font-size: 11px;
1796 font-size: 11px;
1797 padding-left: 22px;
1797 padding-left: 22px;
1798 }
1798 }
1799
1799
1800 #journal .journal_repo .journal_repo_name {
1800 #journal .journal_repo .journal_repo_name {
1801 font-weight: bold;
1801 font-weight: bold;
1802 font-size: 1.1em;
1802 font-size: 1.1em;
1803 }
1803 }
1804
1804
1805 #journal .compare_view {
1805 #journal .compare_view {
1806 padding: 5px 0px 5px 0px;
1806 padding: 5px 0px 5px 0px;
1807 width: 95px;
1807 width: 95px;
1808 }
1808 }
1809
1809
1810 .journal_highlight {
1810 .journal_highlight {
1811 font-weight: bold;
1811 font-weight: bold;
1812 padding: 0 2px;
1812 padding: 0 2px;
1813 vertical-align: bottom;
1813 vertical-align: bottom;
1814 }
1814 }
1815
1815
1816 .trending_language_tbl,.trending_language_tbl td {
1816 .trending_language_tbl,.trending_language_tbl td {
1817 border: 0 !important;
1817 border: 0 !important;
1818 margin: 0 !important;
1818 margin: 0 !important;
1819 padding: 0 !important;
1819 padding: 0 !important;
1820 }
1820 }
1821
1821
1822 .trending_language_tbl,.trending_language_tbl tr {
1822 .trending_language_tbl,.trending_language_tbl tr {
1823 border-spacing: 1px;
1823 border-spacing: 1px;
1824 }
1824 }
1825
1825
1826 .trending_language {
1826 .trending_language {
1827 background-color: #003367;
1827 background-color: #003367;
1828 color: #FFF;
1828 color: #FFF;
1829 display: block;
1829 display: block;
1830 min-width: 20px;
1830 min-width: 20px;
1831 text-decoration: none;
1831 text-decoration: none;
1832 height: 12px;
1832 height: 12px;
1833 margin-bottom: 0px;
1833 margin-bottom: 0px;
1834 margin-left: 5px;
1834 margin-left: 5px;
1835 white-space: pre;
1835 white-space: pre;
1836 padding: 3px;
1836 padding: 3px;
1837 }
1837 }
1838
1838
1839 h3.files_location {
1839 h3.files_location {
1840 font-size: 1.8em;
1840 font-size: 1.8em;
1841 font-weight: 700;
1841 font-weight: 700;
1842 border-bottom: none !important;
1842 border-bottom: none !important;
1843 margin: 10px 0 !important;
1843 margin: 10px 0 !important;
1844 }
1844 }
1845
1845
1846 #files_data dl dt {
1846 #files_data dl dt {
1847 float: left;
1847 float: left;
1848 width: 60px;
1848 width: 60px;
1849 margin: 0 !important;
1849 margin: 0 !important;
1850 padding: 5px;
1850 padding: 5px;
1851 }
1851 }
1852
1852
1853 #files_data dl dd {
1853 #files_data dl dd {
1854 margin: 0 !important;
1854 margin: 0 !important;
1855 padding: 5px !important;
1855 padding: 5px !important;
1856 }
1856 }
1857
1857
1858 #changeset_content {
1858 #changeset_content {
1859 border: 1px solid #CCC;
1859 border: 1px solid #CCC;
1860 padding: 5px;
1860 padding: 5px;
1861 }
1861 }
1862
1862
1863 #changeset_compare_view_content {
1863 #changeset_compare_view_content {
1864 border: 1px solid #CCC;
1864 border: 1px solid #CCC;
1865 padding: 5px;
1865 padding: 5px;
1866 }
1866 }
1867
1867
1868 #changeset_content .container {
1868 #changeset_content .container {
1869 min-height: 120px;
1869 min-height: 120px;
1870 font-size: 1.2em;
1870 font-size: 1.2em;
1871 overflow: hidden;
1871 overflow: hidden;
1872 }
1872 }
1873
1873
1874 #changeset_compare_view_content .compare_view_commits {
1874 #changeset_compare_view_content .compare_view_commits {
1875 width: auto !important;
1875 width: auto !important;
1876 }
1876 }
1877
1877
1878 #changeset_compare_view_content .compare_view_commits td {
1878 #changeset_compare_view_content .compare_view_commits td {
1879 padding: 0px 0px 0px 12px !important;
1879 padding: 0px 0px 0px 12px !important;
1880 }
1880 }
1881
1881
1882 #changeset_content .container .right {
1882 #changeset_content .container .right {
1883 float: right;
1883 float: right;
1884 width: 25%;
1884 width: 25%;
1885 text-align: right;
1885 text-align: right;
1886 }
1886 }
1887
1887
1888 #changeset_content .container .left .message {
1888 #changeset_content .container .left .message {
1889 font-style: italic;
1889 font-style: italic;
1890 color: #556CB5;
1890 color: #556CB5;
1891 white-space: pre-wrap;
1891 white-space: pre-wrap;
1892 }
1892 }
1893
1893
1894 .cs_files .cur_cs {
1894 .cs_files .cur_cs {
1895 margin: 10px 2px;
1895 margin: 10px 2px;
1896 font-weight: bold;
1896 font-weight: bold;
1897 }
1897 }
1898
1898
1899 .cs_files .node {
1899 .cs_files .node {
1900 float: left;
1900 float: left;
1901 }
1901 }
1902
1902
1903 .cs_files .changes {
1903 .cs_files .changes {
1904 float: right;
1904 float: right;
1905 color:#003367;
1905 color:#003367;
1906
1906
1907 }
1907 }
1908
1908
1909 .cs_files .changes .added {
1909 .cs_files .changes .added {
1910 background-color: #BBFFBB;
1910 background-color: #BBFFBB;
1911 float: left;
1911 float: left;
1912 text-align: center;
1912 text-align: center;
1913 font-size: 9px;
1913 font-size: 9px;
1914 padding: 2px 0px 2px 0px;
1914 padding: 2px 0px 2px 0px;
1915 }
1915 }
1916
1916
1917 .cs_files .changes .deleted {
1917 .cs_files .changes .deleted {
1918 background-color: #FF8888;
1918 background-color: #FF8888;
1919 float: left;
1919 float: left;
1920 text-align: center;
1920 text-align: center;
1921 font-size: 9px;
1921 font-size: 9px;
1922 padding: 2px 0px 2px 0px;
1922 padding: 2px 0px 2px 0px;
1923 }
1923 }
1924
1924
1925 .cs_files .cs_added {
1925 .cs_files .cs_added {
1926 background: url("../images/icons/page_white_add.png") no-repeat scroll
1926 background: url("../images/icons/page_white_add.png") no-repeat scroll
1927 3px;
1927 3px;
1928 height: 16px;
1928 height: 16px;
1929 padding-left: 20px;
1929 padding-left: 20px;
1930 margin-top: 7px;
1930 margin-top: 7px;
1931 text-align: left;
1931 text-align: left;
1932 }
1932 }
1933
1933
1934 .cs_files .cs_changed {
1934 .cs_files .cs_changed {
1935 background: url("../images/icons/page_white_edit.png") no-repeat scroll
1935 background: url("../images/icons/page_white_edit.png") no-repeat scroll
1936 3px;
1936 3px;
1937 height: 16px;
1937 height: 16px;
1938 padding-left: 20px;
1938 padding-left: 20px;
1939 margin-top: 7px;
1939 margin-top: 7px;
1940 text-align: left;
1940 text-align: left;
1941 }
1941 }
1942
1942
1943 .cs_files .cs_removed {
1943 .cs_files .cs_removed {
1944 background: url("../images/icons/page_white_delete.png") no-repeat
1944 background: url("../images/icons/page_white_delete.png") no-repeat
1945 scroll 3px;
1945 scroll 3px;
1946 height: 16px;
1946 height: 16px;
1947 padding-left: 20px;
1947 padding-left: 20px;
1948 margin-top: 7px;
1948 margin-top: 7px;
1949 text-align: left;
1949 text-align: left;
1950 }
1950 }
1951
1951
1952 #graph {
1952 #graph {
1953 overflow: hidden;
1953 overflow: hidden;
1954 }
1954 }
1955
1955
1956 #graph_nodes {
1956 #graph_nodes {
1957 float: left;
1957 float: left;
1958 margin-right: -6px;
1958 margin-right: -6px;
1959 margin-top: 0px;
1959 margin-top: 0px;
1960 }
1960 }
1961
1961
1962 #graph_content {
1962 #graph_content {
1963 width: 800px;
1963 width: 800px;
1964 float: left;
1964 float: left;
1965 }
1965 }
1966
1966
1967 #graph_content .container_header {
1967 #graph_content .container_header {
1968 border: 1px solid #CCC;
1968 border: 1px solid #CCC;
1969 padding: 10px;
1969 padding: 10px;
1970 height: 45px;
1970 height: 45px;
1971 -webkit-border-radius: 6px 6px 0px 0px;
1971 -webkit-border-radius: 6px 6px 0px 0px;
1972 -moz-border-radius: 6px 6px 0px 0px;
1972 -moz-border-radius: 6px 6px 0px 0px;
1973 border-radius: 6px 6px 0px 0px;
1973 border-radius: 6px 6px 0px 0px;
1974 }
1974 }
1975
1975
1976 #graph_content #rev_range_container {
1976 #graph_content #rev_range_container {
1977 padding: 10px 0px;
1977 padding: 10px 0px;
1978 clear: both;
1978 clear: both;
1979 }
1979 }
1980
1980
1981 #graph_content .container {
1981 #graph_content .container {
1982 border-bottom: 1px solid #CCC;
1982 border-bottom: 1px solid #CCC;
1983 border-left: 1px solid #CCC;
1983 border-left: 1px solid #CCC;
1984 border-right: 1px solid #CCC;
1984 border-right: 1px solid #CCC;
1985 min-height: 70px;
1985 min-height: 70px;
1986 overflow: hidden;
1986 overflow: hidden;
1987 font-size: 1.2em;
1987 font-size: 1.2em;
1988 }
1988 }
1989
1989
1990 #graph_content .container .right {
1990 #graph_content .container .right {
1991 float: right;
1991 float: right;
1992 width: 28%;
1992 width: 28%;
1993 text-align: right;
1993 text-align: right;
1994 padding-bottom: 5px;
1994 padding-bottom: 5px;
1995 }
1995 }
1996
1996
1997 #graph_content .container .left .date {
1997 #graph_content .container .left .date {
1998 font-weight: 700;
1998 font-weight: 700;
1999 padding-bottom: 5px;
1999 padding-bottom: 5px;
2000 }
2000 }
2001
2001
2002 #graph_content .container .left .date span {
2002 #graph_content .container .left .date span {
2003 vertical-align: text-top;
2003 vertical-align: text-top;
2004 }
2004 }
2005
2005
2006 #graph_content .container .left .author {
2006 #graph_content .container .left .author {
2007 height: 22px;
2007 height: 22px;
2008 }
2008 }
2009
2009
2010 #graph_content .container .left .author .user {
2010 #graph_content .container .left .author .user {
2011 color: #444444;
2011 color: #444444;
2012 float: left;
2012 float: left;
2013 font-size: 12px;
2013 font-size: 12px;
2014 margin-left: -4px;
2014 margin-left: -4px;
2015 margin-top: 4px;
2015 margin-top: 4px;
2016 }
2016 }
2017
2017
2018 #graph_content .container .left .message {
2018 #graph_content .container .left .message {
2019 font-size: 100%;
2019 font-size: 100%;
2020 padding-top: 3px;
2020 padding-top: 3px;
2021 white-space: pre-wrap;
2021 white-space: pre-wrap;
2022 }
2022 }
2023
2023
2024 #graph_content .container .left .message a:hover{
2024 #graph_content .container .left .message a:hover{
2025 text-decoration: none;
2025 text-decoration: none;
2026 }
2026 }
2027
2027
2028 .right div {
2028 .right div {
2029 clear: both;
2029 clear: both;
2030 }
2030 }
2031
2031
2032 .right .changes .changed_total {
2032 .right .changes .changed_total {
2033 border: 0px solid #DDD;
2033 border: 0px solid #DDD;
2034 display: block;
2034 display: block;
2035 float: right;
2035 float: right;
2036 text-align: center;
2036 text-align: center;
2037 min-width: 45px;
2037 min-width: 45px;
2038 cursor: pointer;
2038 cursor: pointer;
2039 background: #FD8;
2039 background: #FD8;
2040 font-weight: bold;
2040 font-weight: bold;
2041 -webkit-border-radius: 0px 0px 0px 6px;
2041 -webkit-border-radius: 0px 0px 0px 6px;
2042 -moz-border-radius: 0px 0px 0px 6px;
2042 -moz-border-radius: 0px 0px 0px 6px;
2043 border-radius: 0px 0px 0px 6px;
2043 border-radius: 0px 0px 0px 6px;
2044 padding: 2px;
2044 padding: 2px;
2045 }
2045 }
2046
2046
2047 .right .changes .added,.changed,.removed {
2047 .right .changes .added,.changed,.removed {
2048 border: 1px solid #DDD;
2048 border: 1px solid #DDD;
2049 display: block;
2049 display: block;
2050 float: right;
2050 float: right;
2051 text-align: center;
2051 text-align: center;
2052 min-width: 15px;
2052 min-width: 15px;
2053 cursor: help;
2053 cursor: help;
2054 }
2054 }
2055
2055
2056 .right .changes .large {
2056 .right .changes .large {
2057 border: 1px solid #DDD;
2057 border: 1px solid #DDD;
2058 display: block;
2058 display: block;
2059 float: right;
2059 float: right;
2060 text-align: center;
2060 text-align: center;
2061 min-width: 45px;
2061 min-width: 45px;
2062 cursor: help;
2062 cursor: help;
2063 background: #54A9F7;
2063 background: #54A9F7;
2064 }
2064 }
2065
2065
2066 .right .changes .added {
2066 .right .changes .added {
2067 background: #BFB;
2067 background: #BFB;
2068 }
2068 }
2069
2069
2070 .right .changes .changed {
2070 .right .changes .changed {
2071 background: #FD8;
2071 background: #FD8;
2072 }
2072 }
2073
2073
2074 .right .changes .removed {
2074 .right .changes .removed {
2075 background: #F88;
2075 background: #F88;
2076 }
2076 }
2077
2077
2078 .right .merge {
2078 .right .merge {
2079 vertical-align: top;
2079 vertical-align: top;
2080 font-size: 0.75em;
2080 font-size: 0.75em;
2081 font-weight: 700;
2081 font-weight: 700;
2082 }
2082 }
2083
2083
2084 .right .parent {
2084 .right .parent {
2085 font-size: 90%;
2085 font-size: 90%;
2086 font-family: monospace;
2086 font-family: monospace;
2087 padding: 2px 2px 2px 2px;
2087 padding: 2px 2px 2px 2px;
2088 }
2088 }
2089 .right .logtags{
2089 .right .logtags{
2090 padding: 2px 2px 2px 2px;
2090 padding: 2px 2px 2px 2px;
2091 }
2091 }
2092 .right .logtags .branchtag,.logtags .branchtag {
2092 .right .logtags .branchtag,.logtags .branchtag {
2093 padding: 1px 3px 2px;
2093 padding: 1px 3px 2px;
2094 background-color: #bfbfbf;
2094 background-color: #bfbfbf;
2095 font-size: 9.75px;
2095 font-size: 9.75px;
2096 font-weight: bold;
2096 font-weight: bold;
2097 color: #ffffff;
2097 color: #ffffff;
2098 text-transform: uppercase;
2098 text-transform: uppercase;
2099 white-space: nowrap;
2099 white-space: nowrap;
2100 -webkit-border-radius: 3px;
2100 -webkit-border-radius: 3px;
2101 -moz-border-radius: 3px;
2101 -moz-border-radius: 3px;
2102 border-radius: 3px;
2102 border-radius: 3px;
2103 padding-left:4px;
2103 padding-left:4px;
2104 }
2104 }
2105 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2105 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2106 color: #ffffff;
2106 color: #ffffff;
2107 }
2107 }
2108 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2108 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2109 text-decoration: none;
2109 text-decoration: none;
2110 color: #ffffff;
2110 color: #ffffff;
2111 }
2111 }
2112 .right .logtags .tagtag,.logtags .tagtag {
2112 .right .logtags .tagtag,.logtags .tagtag {
2113 padding: 1px 3px 2px;
2113 padding: 1px 3px 2px;
2114 background-color: #62cffc;
2114 background-color: #62cffc;
2115 font-size: 9.75px;
2115 font-size: 9.75px;
2116 font-weight: bold;
2116 font-weight: bold;
2117 color: #ffffff;
2117 color: #ffffff;
2118 text-transform: uppercase;
2118 text-transform: uppercase;
2119 white-space: nowrap;
2119 white-space: nowrap;
2120 -webkit-border-radius: 3px;
2120 -webkit-border-radius: 3px;
2121 -moz-border-radius: 3px;
2121 -moz-border-radius: 3px;
2122 border-radius: 3px;
2122 border-radius: 3px;
2123 }
2123 }
2124 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2124 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2125 color: #ffffff;
2125 color: #ffffff;
2126 }
2126 }
2127 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2127 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2128 text-decoration: none;
2128 text-decoration: none;
2129 color: #ffffff;
2129 color: #ffffff;
2130 }
2130 }
2131 .right .logbooks .bookbook,.logbooks .bookbook {
2131 .right .logbooks .bookbook,.logbooks .bookbook {
2132 padding: 1px 3px 2px;
2132 padding: 1px 3px 2px;
2133 background-color: #46A546;
2133 background-color: #46A546;
2134 font-size: 9.75px;
2134 font-size: 9.75px;
2135 font-weight: bold;
2135 font-weight: bold;
2136 color: #ffffff;
2136 color: #ffffff;
2137 text-transform: uppercase;
2137 text-transform: uppercase;
2138 white-space: nowrap;
2138 white-space: nowrap;
2139 -webkit-border-radius: 3px;
2139 -webkit-border-radius: 3px;
2140 -moz-border-radius: 3px;
2140 -moz-border-radius: 3px;
2141 border-radius: 3px;
2141 border-radius: 3px;
2142 }
2142 }
2143 .right .logbooks .bookbook,.logbooks .bookbook a{
2143 .right .logbooks .bookbook,.logbooks .bookbook a{
2144 color: #ffffff;
2144 color: #ffffff;
2145 }
2145 }
2146 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2146 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2147 text-decoration: none;
2147 text-decoration: none;
2148 color: #ffffff;
2148 color: #ffffff;
2149 }
2149 }
2150 div.browserblock {
2150 div.browserblock {
2151 overflow: hidden;
2151 overflow: hidden;
2152 border: 1px solid #ccc;
2152 border: 1px solid #ccc;
2153 background: #f8f8f8;
2153 background: #f8f8f8;
2154 font-size: 100%;
2154 font-size: 100%;
2155 line-height: 125%;
2155 line-height: 125%;
2156 padding: 0;
2156 padding: 0;
2157 -webkit-border-radius: 6px 6px 0px 0px;
2157 -webkit-border-radius: 6px 6px 0px 0px;
2158 -moz-border-radius: 6px 6px 0px 0px;
2158 -moz-border-radius: 6px 6px 0px 0px;
2159 border-radius: 6px 6px 0px 0px;
2159 border-radius: 6px 6px 0px 0px;
2160 }
2160 }
2161
2161
2162 div.browserblock .browser-header {
2162 div.browserblock .browser-header {
2163 background: #FFF;
2163 background: #FFF;
2164 padding: 10px 0px 15px 0px;
2164 padding: 10px 0px 15px 0px;
2165 width: 100%;
2165 width: 100%;
2166 }
2166 }
2167
2167
2168 div.browserblock .browser-nav {
2168 div.browserblock .browser-nav {
2169 float: left
2169 float: left
2170 }
2170 }
2171
2171
2172 div.browserblock .browser-branch {
2172 div.browserblock .browser-branch {
2173 float: left;
2173 float: left;
2174 }
2174 }
2175
2175
2176 div.browserblock .browser-branch label {
2176 div.browserblock .browser-branch label {
2177 color: #4A4A4A;
2177 color: #4A4A4A;
2178 vertical-align: text-top;
2178 vertical-align: text-top;
2179 }
2179 }
2180
2180
2181 div.browserblock .browser-header span {
2181 div.browserblock .browser-header span {
2182 margin-left: 5px;
2182 margin-left: 5px;
2183 font-weight: 700;
2183 font-weight: 700;
2184 }
2184 }
2185
2185
2186 div.browserblock .browser-search {
2186 div.browserblock .browser-search {
2187 clear: both;
2187 clear: both;
2188 padding: 8px 8px 0px 5px;
2188 padding: 8px 8px 0px 5px;
2189 height: 20px;
2189 height: 20px;
2190 }
2190 }
2191
2191
2192 div.browserblock #node_filter_box {
2192 div.browserblock #node_filter_box {
2193
2193
2194 }
2194 }
2195
2195
2196 div.browserblock .search_activate {
2196 div.browserblock .search_activate {
2197 float: left
2197 float: left
2198 }
2198 }
2199
2199
2200 div.browserblock .add_node {
2200 div.browserblock .add_node {
2201 float: left;
2201 float: left;
2202 padding-left: 5px;
2202 padding-left: 5px;
2203 }
2203 }
2204
2204
2205 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2205 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2206 {
2206 {
2207 text-decoration: none !important;
2207 text-decoration: none !important;
2208 }
2208 }
2209
2209
2210 div.browserblock .browser-body {
2210 div.browserblock .browser-body {
2211 background: #EEE;
2211 background: #EEE;
2212 border-top: 1px solid #CCC;
2212 border-top: 1px solid #CCC;
2213 }
2213 }
2214
2214
2215 table.code-browser {
2215 table.code-browser {
2216 border-collapse: collapse;
2216 border-collapse: collapse;
2217 width: 100%;
2217 width: 100%;
2218 }
2218 }
2219
2219
2220 table.code-browser tr {
2220 table.code-browser tr {
2221 margin: 3px;
2221 margin: 3px;
2222 }
2222 }
2223
2223
2224 table.code-browser thead th {
2224 table.code-browser thead th {
2225 background-color: #EEE;
2225 background-color: #EEE;
2226 height: 20px;
2226 height: 20px;
2227 font-size: 1.1em;
2227 font-size: 1.1em;
2228 font-weight: 700;
2228 font-weight: 700;
2229 text-align: left;
2229 text-align: left;
2230 padding-left: 10px;
2230 padding-left: 10px;
2231 }
2231 }
2232
2232
2233 table.code-browser tbody td {
2233 table.code-browser tbody td {
2234 padding-left: 10px;
2234 padding-left: 10px;
2235 height: 20px;
2235 height: 20px;
2236 }
2236 }
2237
2237
2238 table.code-browser .browser-file {
2238 table.code-browser .browser-file {
2239 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2239 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2240 height: 16px;
2240 height: 16px;
2241 padding-left: 20px;
2241 padding-left: 20px;
2242 text-align: left;
2242 text-align: left;
2243 }
2243 }
2244
2244
2245 .diffblock .changeset_file {
2245 .diffblock .changeset_file {
2246 background: url("../images/icons/file.png") no-repeat scroll 3px;
2246 background: url("../images/icons/file.png") no-repeat scroll 3px;
2247 height: 16px;
2247 height: 16px;
2248 padding-left: 22px;
2248 padding-left: 22px;
2249 text-align: left;
2249 text-align: left;
2250 font-size: 14px;
2250 font-size: 14px;
2251 }
2251 }
2252
2252
2253 .diffblock .changeset_header {
2253 .diffblock .changeset_header {
2254 margin-left: 6px !important;
2254 margin-left: 6px !important;
2255 }
2255 }
2256
2256
2257 table.code-browser .browser-dir {
2257 table.code-browser .browser-dir {
2258 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2258 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2259 height: 16px;
2259 height: 16px;
2260 padding-left: 20px;
2260 padding-left: 20px;
2261 text-align: left;
2261 text-align: left;
2262 }
2262 }
2263
2263
2264 .box .search {
2264 .box .search {
2265 clear: both;
2265 clear: both;
2266 overflow: hidden;
2266 overflow: hidden;
2267 margin: 0;
2267 margin: 0;
2268 padding: 0 20px 10px;
2268 padding: 0 20px 10px;
2269 }
2269 }
2270
2270
2271 .box .search div.search_path {
2271 .box .search div.search_path {
2272 background: none repeat scroll 0 0 #EEE;
2272 background: none repeat scroll 0 0 #EEE;
2273 border: 1px solid #CCC;
2273 border: 1px solid #CCC;
2274 color: blue;
2274 color: blue;
2275 margin-bottom: 10px;
2275 margin-bottom: 10px;
2276 padding: 10px 0;
2276 padding: 10px 0;
2277 }
2277 }
2278
2278
2279 .box .search div.search_path div.link {
2279 .box .search div.search_path div.link {
2280 font-weight: 700;
2280 font-weight: 700;
2281 margin-left: 25px;
2281 margin-left: 25px;
2282 }
2282 }
2283
2283
2284 .box .search div.search_path div.link a {
2284 .box .search div.search_path div.link a {
2285 color: #003367;
2285 color: #003367;
2286 cursor: pointer;
2286 cursor: pointer;
2287 text-decoration: none;
2287 text-decoration: none;
2288 }
2288 }
2289
2289
2290 #path_unlock {
2290 #path_unlock {
2291 color: red;
2291 color: red;
2292 font-size: 1.2em;
2292 font-size: 1.2em;
2293 padding-left: 4px;
2293 padding-left: 4px;
2294 }
2294 }
2295
2295
2296 .info_box span {
2296 .info_box span {
2297 margin-left: 3px;
2297 margin-left: 3px;
2298 margin-right: 3px;
2298 margin-right: 3px;
2299 }
2299 }
2300
2300
2301 .info_box .rev {
2301 .info_box .rev {
2302 color: #003367;
2302 color: #003367;
2303 font-size: 1.6em;
2303 font-size: 1.6em;
2304 font-weight: bold;
2304 font-weight: bold;
2305 vertical-align: sub;
2305 vertical-align: sub;
2306 }
2306 }
2307
2307
2308 .info_box input#at_rev,.info_box input#size {
2308 .info_box input#at_rev,.info_box input#size {
2309 background: #FFF;
2309 background: #FFF;
2310 border-top: 1px solid #b3b3b3;
2310 border-top: 1px solid #b3b3b3;
2311 border-left: 1px solid #b3b3b3;
2311 border-left: 1px solid #b3b3b3;
2312 border-right: 1px solid #eaeaea;
2312 border-right: 1px solid #eaeaea;
2313 border-bottom: 1px solid #eaeaea;
2313 border-bottom: 1px solid #eaeaea;
2314 color: #000;
2314 color: #000;
2315 font-size: 12px;
2315 font-size: 12px;
2316 margin: 0;
2316 margin: 0;
2317 padding: 1px 5px 1px;
2317 padding: 1px 5px 1px;
2318 }
2318 }
2319
2319
2320 .info_box input#view {
2320 .info_box input#view {
2321 text-align: center;
2321 text-align: center;
2322 padding: 4px 3px 2px 2px;
2322 padding: 4px 3px 2px 2px;
2323 }
2323 }
2324
2324
2325 .yui-overlay,.yui-panel-container {
2325 .yui-overlay,.yui-panel-container {
2326 visibility: hidden;
2326 visibility: hidden;
2327 position: absolute;
2327 position: absolute;
2328 z-index: 2;
2328 z-index: 2;
2329 }
2329 }
2330
2330
2331 .yui-tt {
2331 .yui-tt {
2332 visibility: hidden;
2332 visibility: hidden;
2333 position: absolute;
2333 position: absolute;
2334 color: #666;
2334 color: #666;
2335 background-color: #FFF;
2335 background-color: #FFF;
2336 border: 2px solid #003367;
2336 border: 2px solid #003367;
2337 font: 100% sans-serif;
2337 font: 100% sans-serif;
2338 width: auto;
2338 width: auto;
2339 opacity: 1px;
2339 opacity: 1px;
2340 padding: 8px;
2340 padding: 8px;
2341 white-space: pre-wrap;
2341 white-space: pre-wrap;
2342 -webkit-border-radius: 8px 8px 8px 8px;
2342 -webkit-border-radius: 8px 8px 8px 8px;
2343 -khtml-border-radius: 8px 8px 8px 8px;
2343 -khtml-border-radius: 8px 8px 8px 8px;
2344 -moz-border-radius: 8px 8px 8px 8px;
2344 -moz-border-radius: 8px 8px 8px 8px;
2345 border-radius: 8px 8px 8px 8px;
2345 border-radius: 8px 8px 8px 8px;
2346 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2346 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2347 }
2347 }
2348
2348
2349 .ac {
2349 .ac {
2350 vertical-align: top;
2350 vertical-align: top;
2351 }
2351 }
2352
2352
2353 .ac .yui-ac {
2353 .ac .yui-ac {
2354 position: relative;
2354 position: relative;
2355 font-size: 100%;
2355 font-size: 100%;
2356 }
2356 }
2357
2357
2358 .ac .perm_ac {
2358 .ac .perm_ac {
2359 width: 15em;
2359 width: 15em;
2360 }
2360 }
2361
2361
2362 .ac .yui-ac-input {
2362 .ac .yui-ac-input {
2363 width: 100%;
2363 width: 100%;
2364 }
2364 }
2365
2365
2366 .ac .yui-ac-container {
2366 .ac .yui-ac-container {
2367 position: absolute;
2367 position: absolute;
2368 top: 1.6em;
2368 top: 1.6em;
2369 width: 100%;
2369 width: 100%;
2370 }
2370 }
2371
2371
2372 .ac .yui-ac-content {
2372 .ac .yui-ac-content {
2373 position: absolute;
2373 position: absolute;
2374 width: 100%;
2374 width: 100%;
2375 border: 1px solid gray;
2375 border: 1px solid gray;
2376 background: #fff;
2376 background: #fff;
2377 overflow: hidden;
2377 overflow: hidden;
2378 z-index: 9050;
2378 z-index: 9050;
2379 }
2379 }
2380
2380
2381 .ac .yui-ac-shadow {
2381 .ac .yui-ac-shadow {
2382 position: absolute;
2382 position: absolute;
2383 width: 100%;
2383 width: 100%;
2384 background: #000;
2384 background: #000;
2385 -moz-opacity: 0.1px;
2385 -moz-opacity: 0.1px;
2386 opacity: .10;
2386 opacity: .10;
2387 filter: alpha(opacity = 10);
2387 filter: alpha(opacity = 10);
2388 z-index: 9049;
2388 z-index: 9049;
2389 margin: .3em;
2389 margin: .3em;
2390 }
2390 }
2391
2391
2392 .ac .yui-ac-content ul {
2392 .ac .yui-ac-content ul {
2393 width: 100%;
2393 width: 100%;
2394 margin: 0;
2394 margin: 0;
2395 padding: 0;
2395 padding: 0;
2396 }
2396 }
2397
2397
2398 .ac .yui-ac-content li {
2398 .ac .yui-ac-content li {
2399 cursor: default;
2399 cursor: default;
2400 white-space: nowrap;
2400 white-space: nowrap;
2401 margin: 0;
2401 margin: 0;
2402 padding: 2px 5px;
2402 padding: 2px 5px;
2403 }
2403 }
2404
2404
2405 .ac .yui-ac-content li.yui-ac-prehighlight {
2405 .ac .yui-ac-content li.yui-ac-prehighlight {
2406 background: #B3D4FF;
2406 background: #B3D4FF;
2407 }
2407 }
2408
2408
2409 .ac .yui-ac-content li.yui-ac-highlight {
2409 .ac .yui-ac-content li.yui-ac-highlight {
2410 background: #556CB5;
2410 background: #556CB5;
2411 color: #FFF;
2411 color: #FFF;
2412 }
2412 }
2413
2413
2414 .follow {
2414 .follow {
2415 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2415 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2416 height: 16px;
2416 height: 16px;
2417 width: 20px;
2417 width: 20px;
2418 cursor: pointer;
2418 cursor: pointer;
2419 display: block;
2419 display: block;
2420 float: right;
2420 float: right;
2421 margin-top: 2px;
2421 margin-top: 2px;
2422 }
2422 }
2423
2423
2424 .following {
2424 .following {
2425 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2425 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2426 height: 16px;
2426 height: 16px;
2427 width: 20px;
2427 width: 20px;
2428 cursor: pointer;
2428 cursor: pointer;
2429 display: block;
2429 display: block;
2430 float: right;
2430 float: right;
2431 margin-top: 2px;
2431 margin-top: 2px;
2432 }
2432 }
2433
2433
2434 .currently_following {
2434 .currently_following {
2435 padding-left: 10px;
2435 padding-left: 10px;
2436 padding-bottom: 5px;
2436 padding-bottom: 5px;
2437 }
2437 }
2438
2438
2439 .add_icon {
2439 .add_icon {
2440 background: url("../images/icons/add.png") no-repeat scroll 3px;
2440 background: url("../images/icons/add.png") no-repeat scroll 3px;
2441 padding-left: 20px;
2441 padding-left: 20px;
2442 padding-top: 0px;
2442 padding-top: 0px;
2443 text-align: left;
2443 text-align: left;
2444 }
2444 }
2445
2445
2446 .edit_icon {
2446 .edit_icon {
2447 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2447 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2448 padding-left: 20px;
2448 padding-left: 20px;
2449 padding-top: 0px;
2449 padding-top: 0px;
2450 text-align: left;
2450 text-align: left;
2451 }
2451 }
2452
2452
2453 .delete_icon {
2453 .delete_icon {
2454 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2454 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2455 padding-left: 20px;
2455 padding-left: 20px;
2456 padding-top: 0px;
2456 padding-top: 0px;
2457 text-align: left;
2457 text-align: left;
2458 }
2458 }
2459
2459
2460 .refresh_icon {
2460 .refresh_icon {
2461 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2461 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2462 3px;
2462 3px;
2463 padding-left: 20px;
2463 padding-left: 20px;
2464 padding-top: 0px;
2464 padding-top: 0px;
2465 text-align: left;
2465 text-align: left;
2466 }
2466 }
2467
2467
2468 .pull_icon {
2468 .pull_icon {
2469 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2469 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2470 padding-left: 20px;
2470 padding-left: 20px;
2471 padding-top: 0px;
2471 padding-top: 0px;
2472 text-align: left;
2472 text-align: left;
2473 }
2473 }
2474
2474
2475 .rss_icon {
2475 .rss_icon {
2476 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2476 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2477 padding-left: 20px;
2477 padding-left: 20px;
2478 padding-top: 4px;
2478 padding-top: 4px;
2479 text-align: left;
2479 text-align: left;
2480 font-size: 8px
2480 font-size: 8px
2481 }
2481 }
2482
2482
2483 .atom_icon {
2483 .atom_icon {
2484 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2484 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2485 padding-left: 20px;
2485 padding-left: 20px;
2486 padding-top: 4px;
2486 padding-top: 4px;
2487 text-align: left;
2487 text-align: left;
2488 font-size: 8px
2488 font-size: 8px
2489 }
2489 }
2490
2490
2491 .archive_icon {
2491 .archive_icon {
2492 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2492 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2493 padding-left: 20px;
2493 padding-left: 20px;
2494 text-align: left;
2494 text-align: left;
2495 padding-top: 1px;
2495 padding-top: 1px;
2496 }
2496 }
2497
2497
2498 .start_following_icon {
2498 .start_following_icon {
2499 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2499 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2500 padding-left: 20px;
2500 padding-left: 20px;
2501 text-align: left;
2501 text-align: left;
2502 padding-top: 0px;
2502 padding-top: 0px;
2503 }
2503 }
2504
2504
2505 .stop_following_icon {
2505 .stop_following_icon {
2506 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2506 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2507 padding-left: 20px;
2507 padding-left: 20px;
2508 text-align: left;
2508 text-align: left;
2509 padding-top: 0px;
2509 padding-top: 0px;
2510 }
2510 }
2511
2511
2512 .action_button {
2512 .action_button {
2513 border: 0;
2513 border: 0;
2514 display: inline;
2514 display: inline;
2515 }
2515 }
2516
2516
2517 .action_button:hover {
2517 .action_button:hover {
2518 border: 0;
2518 border: 0;
2519 text-decoration: underline;
2519 text-decoration: underline;
2520 cursor: pointer;
2520 cursor: pointer;
2521 }
2521 }
2522
2522
2523 #switch_repos {
2523 #switch_repos {
2524 position: absolute;
2524 position: absolute;
2525 height: 25px;
2525 height: 25px;
2526 z-index: 1;
2526 z-index: 1;
2527 }
2527 }
2528
2528
2529 #switch_repos select {
2529 #switch_repos select {
2530 min-width: 150px;
2530 min-width: 150px;
2531 max-height: 250px;
2531 max-height: 250px;
2532 z-index: 1;
2532 z-index: 1;
2533 }
2533 }
2534
2534
2535 .breadcrumbs {
2535 .breadcrumbs {
2536 border: medium none;
2536 border: medium none;
2537 color: #FFF;
2537 color: #FFF;
2538 float: left;
2538 float: left;
2539 text-transform: uppercase;
2539 text-transform: uppercase;
2540 font-weight: 700;
2540 font-weight: 700;
2541 font-size: 14px;
2541 font-size: 14px;
2542 margin: 0;
2542 margin: 0;
2543 padding: 11px 0 11px 10px;
2543 padding: 11px 0 11px 10px;
2544 }
2544 }
2545
2545
2546 .breadcrumbs a {
2546 .breadcrumbs a {
2547 color: #FFF;
2547 color: #FFF;
2548 }
2548 }
2549
2549
2550 .flash_msg {
2550 .flash_msg {
2551
2551
2552 }
2552 }
2553
2553
2554 .flash_msg ul {
2554 .flash_msg ul {
2555
2555
2556 }
2556 }
2557
2557
2558 .error_msg {
2558 .error_msg {
2559 background-color: #c43c35;
2559 background-color: #c43c35;
2560 background-repeat: repeat-x;
2560 background-repeat: repeat-x;
2561 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2561 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2562 to(#c43c35) );
2562 to(#c43c35) );
2563 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2563 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2564 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2564 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2565 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2565 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2566 color-stop(100%, #c43c35) );
2566 color-stop(100%, #c43c35) );
2567 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2567 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2568 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2568 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2569 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2569 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2570 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2570 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2571 endColorstr='#c43c35', GradientType=0 );
2571 endColorstr='#c43c35', GradientType=0 );
2572 border-color: #c43c35 #c43c35 #882a25;
2572 border-color: #c43c35 #c43c35 #882a25;
2573 }
2573 }
2574
2574
2575 .warning_msg {
2575 .warning_msg {
2576 color: #404040 !important;
2576 color: #404040 !important;
2577 background-color: #eedc94;
2577 background-color: #eedc94;
2578 background-repeat: repeat-x;
2578 background-repeat: repeat-x;
2579 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2579 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2580 to(#eedc94) );
2580 to(#eedc94) );
2581 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2581 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2582 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2582 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2583 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2583 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2584 color-stop(100%, #eedc94) );
2584 color-stop(100%, #eedc94) );
2585 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2585 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2586 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2586 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2587 background-image: linear-gradient(top, #fceec1, #eedc94);
2587 background-image: linear-gradient(top, #fceec1, #eedc94);
2588 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2588 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2589 endColorstr='#eedc94', GradientType=0 );
2589 endColorstr='#eedc94', GradientType=0 );
2590 border-color: #eedc94 #eedc94 #e4c652;
2590 border-color: #eedc94 #eedc94 #e4c652;
2591 }
2591 }
2592
2592
2593 .success_msg {
2593 .success_msg {
2594 background-color: #57a957;
2594 background-color: #57a957;
2595 background-repeat: repeat-x !important;
2595 background-repeat: repeat-x !important;
2596 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2596 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2597 to(#57a957) );
2597 to(#57a957) );
2598 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2598 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2599 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2599 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2600 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2600 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2601 color-stop(100%, #57a957) );
2601 color-stop(100%, #57a957) );
2602 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2602 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2603 background-image: -o-linear-gradient(top, #62c462, #57a957);
2603 background-image: -o-linear-gradient(top, #62c462, #57a957);
2604 background-image: linear-gradient(top, #62c462, #57a957);
2604 background-image: linear-gradient(top, #62c462, #57a957);
2605 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2605 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2606 endColorstr='#57a957', GradientType=0 );
2606 endColorstr='#57a957', GradientType=0 );
2607 border-color: #57a957 #57a957 #3d773d;
2607 border-color: #57a957 #57a957 #3d773d;
2608 }
2608 }
2609
2609
2610 .notice_msg {
2610 .notice_msg {
2611 background-color: #339bb9;
2611 background-color: #339bb9;
2612 background-repeat: repeat-x;
2612 background-repeat: repeat-x;
2613 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2613 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2614 to(#339bb9) );
2614 to(#339bb9) );
2615 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2615 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2616 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2616 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2617 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2617 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2618 color-stop(100%, #339bb9) );
2618 color-stop(100%, #339bb9) );
2619 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2619 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2620 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2620 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2621 background-image: linear-gradient(top, #5bc0de, #339bb9);
2621 background-image: linear-gradient(top, #5bc0de, #339bb9);
2622 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2622 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2623 endColorstr='#339bb9', GradientType=0 );
2623 endColorstr='#339bb9', GradientType=0 );
2624 border-color: #339bb9 #339bb9 #22697d;
2624 border-color: #339bb9 #339bb9 #22697d;
2625 }
2625 }
2626
2626
2627 .success_msg,.error_msg,.notice_msg,.warning_msg {
2627 .success_msg,.error_msg,.notice_msg,.warning_msg {
2628 font-size: 12px;
2628 font-size: 12px;
2629 font-weight: 700;
2629 font-weight: 700;
2630 min-height: 14px;
2630 min-height: 14px;
2631 line-height: 14px;
2631 line-height: 14px;
2632 margin-bottom: 10px;
2632 margin-bottom: 10px;
2633 margin-top: 0;
2633 margin-top: 0;
2634 display: block;
2634 display: block;
2635 overflow: auto;
2635 overflow: auto;
2636 padding: 6px 10px 6px 10px;
2636 padding: 6px 10px 6px 10px;
2637 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2637 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2638 position: relative;
2638 position: relative;
2639 color: #FFF;
2639 color: #FFF;
2640 border-width: 1px;
2640 border-width: 1px;
2641 border-style: solid;
2641 border-style: solid;
2642 -webkit-border-radius: 4px;
2642 -webkit-border-radius: 4px;
2643 -moz-border-radius: 4px;
2643 -moz-border-radius: 4px;
2644 border-radius: 4px;
2644 border-radius: 4px;
2645 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2645 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2646 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2646 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2647 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2647 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2648 }
2648 }
2649
2649
2650 #msg_close {
2650 #msg_close {
2651 background: transparent url("../icons/cross_grey_small.png") no-repeat
2651 background: transparent url("../icons/cross_grey_small.png") no-repeat
2652 scroll 0 0;
2652 scroll 0 0;
2653 cursor: pointer;
2653 cursor: pointer;
2654 height: 16px;
2654 height: 16px;
2655 position: absolute;
2655 position: absolute;
2656 right: 5px;
2656 right: 5px;
2657 top: 5px;
2657 top: 5px;
2658 width: 16px;
2658 width: 16px;
2659 }
2659 }
2660
2660
2661 div#legend_container table,div#legend_choices table {
2661 div#legend_container table,div#legend_choices table {
2662 width: auto !important;
2662 width: auto !important;
2663 }
2663 }
2664
2664
2665 table#permissions_manage {
2665 table#permissions_manage {
2666 width: 0 !important;
2666 width: 0 !important;
2667 }
2667 }
2668
2668
2669 table#permissions_manage span.private_repo_msg {
2669 table#permissions_manage span.private_repo_msg {
2670 font-size: 0.8em;
2670 font-size: 0.8em;
2671 opacity: 0.6px;
2671 opacity: 0.6px;
2672 }
2672 }
2673
2673
2674 table#permissions_manage td.private_repo_msg {
2674 table#permissions_manage td.private_repo_msg {
2675 font-size: 0.8em;
2675 font-size: 0.8em;
2676 }
2676 }
2677
2677
2678 table#permissions_manage tr#add_perm_input td {
2678 table#permissions_manage tr#add_perm_input td {
2679 vertical-align: middle;
2679 vertical-align: middle;
2680 }
2680 }
2681
2681
2682 div.gravatar {
2682 div.gravatar {
2683 background-color: #FFF;
2683 background-color: #FFF;
2684 border: 0px solid #D0D0D0;
2684 border: 0px solid #D0D0D0;
2685 float: left;
2685 float: left;
2686 margin-right: 0.7em;
2686 margin-right: 0.7em;
2687 padding: 2px 2px 2px 2px;
2687 padding: 2px 2px 2px 2px;
2688 line-height:0;
2688 line-height:0;
2689 -webkit-border-radius: 6px;
2689 -webkit-border-radius: 6px;
2690 -khtml-border-radius: 6px;
2690 -khtml-border-radius: 6px;
2691 -moz-border-radius: 6px;
2691 -moz-border-radius: 6px;
2692 border-radius: 6px;
2692 border-radius: 6px;
2693 }
2693 }
2694
2694
2695 div.gravatar img {
2695 div.gravatar img {
2696 -webkit-border-radius: 4px;
2696 -webkit-border-radius: 4px;
2697 -khtml-border-radius: 4px;
2697 -khtml-border-radius: 4px;
2698 -moz-border-radius: 4px;
2698 -moz-border-radius: 4px;
2699 border-radius: 4px;
2699 border-radius: 4px;
2700 }
2700 }
2701
2701
2702 #header,#content,#footer {
2702 #header,#content,#footer {
2703 min-width: 978px;
2703 min-width: 978px;
2704 }
2704 }
2705
2705
2706 #content {
2706 #content {
2707 clear: both;
2707 clear: both;
2708 overflow: hidden;
2708 overflow: hidden;
2709 padding: 14px 10px;
2709 padding: 14px 10px;
2710 }
2710 }
2711
2711
2712 #content div.box div.title div.search {
2712 #content div.box div.title div.search {
2713
2713
2714 border-left: 1px solid #316293;
2714 border-left: 1px solid #316293;
2715 }
2715 }
2716
2716
2717 #content div.box div.title div.search div.input input {
2717 #content div.box div.title div.search div.input input {
2718 border: 1px solid #316293;
2718 border: 1px solid #316293;
2719 }
2719 }
2720
2720
2721 .ui-btn{
2721 .ui-btn{
2722 color: #515151;
2722 color: #515151;
2723 background-color: #DADADA;
2723 background-color: #DADADA;
2724 background-repeat: repeat-x;
2724 background-repeat: repeat-x;
2725 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
2725 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
2726 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
2726 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
2727 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
2727 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
2728 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
2728 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
2729 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
2729 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
2730 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
2730 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
2731 background-image: linear-gradient(top, #F4F4F4, #DADADA);
2731 background-image: linear-gradient(top, #F4F4F4, #DADADA);
2732 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
2732 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
2733
2733
2734 border-top: 1px solid #DDD;
2734 border-top: 1px solid #DDD;
2735 border-left: 1px solid #c6c6c6;
2735 border-left: 1px solid #c6c6c6;
2736 border-right: 1px solid #DDD;
2736 border-right: 1px solid #DDD;
2737 border-bottom: 1px solid #c6c6c6;
2737 border-bottom: 1px solid #c6c6c6;
2738 color: #515151;
2738 color: #515151;
2739 outline: none;
2739 outline: none;
2740 margin: 0px 3px 3px 0px;
2740 margin: 0px 3px 3px 0px;
2741 -webkit-border-radius: 4px 4px 4px 4px !important;
2741 -webkit-border-radius: 4px 4px 4px 4px !important;
2742 -khtml-border-radius: 4px 4px 4px 4px !important;
2742 -khtml-border-radius: 4px 4px 4px 4px !important;
2743 -moz-border-radius: 4px 4px 4px 4px !important;
2743 -moz-border-radius: 4px 4px 4px 4px !important;
2744 border-radius: 4px 4px 4px 4px !important;
2744 border-radius: 4px 4px 4px 4px !important;
2745 box-shadow: 0 1px 0 #DADADA !important;
2746 cursor: pointer !important;
2745 cursor: pointer !important;
2747 padding: 3px 3px 3px 3px;
2746 padding: 3px 3px 3px 3px;
2748
2747
2749 }
2748 }
2750 .ui-btn.xsmall{
2749 .ui-btn.xsmall{
2751 padding: 1px 2px 1px 1px;
2750 padding: 1px 2px 1px 1px;
2752 }
2751 }
2753
2752
2754 .ui-btn:focus {
2753 .ui-btn:focus {
2755 outline: none;
2754 outline: none;
2756 }
2755 }
2757 .ui-btn:hover{
2756 .ui-btn:hover{
2758 background-position: 0 -15px;
2757 background-position: 0 -15px;
2759 text-decoration: none;
2758 text-decoration: none;
2760 color: #515151;
2759 color: #515151;
2761 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
2760 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
2762 }
2761 }
2763
2762
2764 .ui-btn.red{
2763 .ui-btn.red{
2765 color:#fff;
2764 color:#fff;
2766 background-color: #c43c35;
2765 background-color: #c43c35;
2767 background-repeat: repeat-x;
2766 background-repeat: repeat-x;
2768 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
2767 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
2769 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2768 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2770 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2769 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2771 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
2770 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
2772 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2771 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2773 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2772 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2774 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2773 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2775 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
2774 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
2776 border-color: #c43c35 #c43c35 #882a25;
2775 border-color: #c43c35 #c43c35 #882a25;
2777 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2776 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2778 }
2777 }
2779
2778
2780
2779
2781 .ui-btn.blue{
2780 .ui-btn.blue{
2782 background-color: #339bb9;
2781 background-color: #339bb9;
2783 background-repeat: repeat-x;
2782 background-repeat: repeat-x;
2784 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
2783 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
2785 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2784 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2786 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2785 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2787 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
2786 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
2788 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2787 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2789 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2788 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2790 background-image: linear-gradient(top, #5bc0de, #339bb9);
2789 background-image: linear-gradient(top, #5bc0de, #339bb9);
2791 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
2790 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
2792 border-color: #339bb9 #339bb9 #22697d;
2791 border-color: #339bb9 #339bb9 #22697d;
2793 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2792 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2794 }
2793 }
2795
2794
2796 .ui-btn.green{
2795 .ui-btn.green{
2797 background-color: #57a957;
2796 background-color: #57a957;
2798 background-repeat: repeat-x;
2797 background-repeat: repeat-x;
2799 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
2798 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
2800 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2799 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2801 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2800 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2802 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
2801 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
2803 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2802 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2804 background-image: -o-linear-gradient(top, #62c462, #57a957);
2803 background-image: -o-linear-gradient(top, #62c462, #57a957);
2805 background-image: linear-gradient(top, #62c462, #57a957);
2804 background-image: linear-gradient(top, #62c462, #57a957);
2806 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
2805 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
2807 border-color: #57a957 #57a957 #3d773d;
2806 border-color: #57a957 #57a957 #3d773d;
2808 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2807 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2809 }
2808 }
2810
2809
2811 ins,div.options a:hover {
2810 ins,div.options a:hover {
2812 text-decoration: none;
2811 text-decoration: none;
2813 }
2812 }
2814
2813
2815 img,
2814 img,
2816 #header #header-inner #quick li a:hover span.normal,
2815 #header #header-inner #quick li a:hover span.normal,
2817 #header #header-inner #quick li ul li.last,
2816 #header #header-inner #quick li ul li.last,
2818 #content div.box div.form div.fields div.field div.textarea table td table td a,
2817 #content div.box div.form div.fields div.field div.textarea table td table td a,
2819 #clone_url
2818 #clone_url
2820 {
2819 {
2821 border: none;
2820 border: none;
2822 }
2821 }
2823
2822
2824 img.icon,.right .merge img {
2823 img.icon,.right .merge img {
2825 vertical-align: bottom;
2824 vertical-align: bottom;
2826 }
2825 }
2827
2826
2828 #header ul#logged-user,#content div.box div.title ul.links,
2827 #header ul#logged-user,#content div.box div.title ul.links,
2829 #content div.box div.message div.dismiss,
2828 #content div.box div.message div.dismiss,
2830 #content div.box div.traffic div.legend ul
2829 #content div.box div.traffic div.legend ul
2831 {
2830 {
2832 float: right;
2831 float: right;
2833 margin: 0;
2832 margin: 0;
2834 padding: 0;
2833 padding: 0;
2835 }
2834 }
2836
2835
2837 #header #header-inner #home,#header #header-inner #logo,
2836 #header #header-inner #home,#header #header-inner #logo,
2838 #content div.box ul.left,#content div.box ol.left,
2837 #content div.box ul.left,#content div.box ol.left,
2839 #content div.box div.pagination-left,div#commit_history,
2838 #content div.box div.pagination-left,div#commit_history,
2840 div#legend_data,div#legend_container,div#legend_choices
2839 div#legend_data,div#legend_container,div#legend_choices
2841 {
2840 {
2842 float: left;
2841 float: left;
2843 }
2842 }
2844
2843
2845 #header #header-inner #quick li:hover ul ul,
2844 #header #header-inner #quick li:hover ul ul,
2846 #header #header-inner #quick li:hover ul ul ul,
2845 #header #header-inner #quick li:hover ul ul ul,
2847 #header #header-inner #quick li:hover ul ul ul ul,
2846 #header #header-inner #quick li:hover ul ul ul ul,
2848 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
2847 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
2849 {
2848 {
2850 display: none;
2849 display: none;
2851 }
2850 }
2852
2851
2853 #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
2852 #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
2854 {
2853 {
2855 display: block;
2854 display: block;
2856 }
2855 }
2857
2856
2858 #content div.graph {
2857 #content div.graph {
2859 padding: 0 10px 10px;
2858 padding: 0 10px 10px;
2860 }
2859 }
2861
2860
2862 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
2861 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
2863 {
2862 {
2864 color: #bfe3ff;
2863 color: #bfe3ff;
2865 }
2864 }
2866
2865
2867 #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
2866 #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
2868 {
2867 {
2869 margin: 10px 24px 10px 44px;
2868 margin: 10px 24px 10px 44px;
2870 }
2869 }
2871
2870
2872 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
2871 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
2873 {
2872 {
2874 clear: both;
2873 clear: both;
2875 overflow: hidden;
2874 overflow: hidden;
2876 margin: 0;
2875 margin: 0;
2877 padding: 0 20px 10px;
2876 padding: 0 20px 10px;
2878 }
2877 }
2879
2878
2880 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
2879 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
2881 {
2880 {
2882 clear: both;
2881 clear: both;
2883 overflow: hidden;
2882 overflow: hidden;
2884 margin: 0;
2883 margin: 0;
2885 padding: 0;
2884 padding: 0;
2886 }
2885 }
2887
2886
2888 #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
2887 #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
2889 {
2888 {
2890 height: 1%;
2889 height: 1%;
2891 display: block;
2890 display: block;
2892 color: #363636;
2891 color: #363636;
2893 margin: 0;
2892 margin: 0;
2894 padding: 2px 0 0;
2893 padding: 2px 0 0;
2895 }
2894 }
2896
2895
2897 #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
2896 #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
2898 {
2897 {
2899 background: #FBE3E4;
2898 background: #FBE3E4;
2900 border-top: 1px solid #e1b2b3;
2899 border-top: 1px solid #e1b2b3;
2901 border-left: 1px solid #e1b2b3;
2900 border-left: 1px solid #e1b2b3;
2902 border-right: 1px solid #FBC2C4;
2901 border-right: 1px solid #FBC2C4;
2903 border-bottom: 1px solid #FBC2C4;
2902 border-bottom: 1px solid #FBC2C4;
2904 }
2903 }
2905
2904
2906 #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
2905 #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
2907 {
2906 {
2908 background: #E6EFC2;
2907 background: #E6EFC2;
2909 border-top: 1px solid #cebb98;
2908 border-top: 1px solid #cebb98;
2910 border-left: 1px solid #cebb98;
2909 border-left: 1px solid #cebb98;
2911 border-right: 1px solid #c6d880;
2910 border-right: 1px solid #c6d880;
2912 border-bottom: 1px solid #c6d880;
2911 border-bottom: 1px solid #c6d880;
2913 }
2912 }
2914
2913
2915 #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
2914 #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
2916 {
2915 {
2917 margin: 0;
2916 margin: 0;
2918 }
2917 }
2919
2918
2920 #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
2919 #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
2921 {
2920 {
2922 margin: 0 0 0 0px !important;
2921 margin: 0 0 0 0px !important;
2923 padding: 0;
2922 padding: 0;
2924 }
2923 }
2925
2924
2926 #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
2925 #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
2927 {
2926 {
2928 margin: 0 0 0 200px;
2927 margin: 0 0 0 200px;
2929 padding: 0;
2928 padding: 0;
2930 }
2929 }
2931
2930
2932 #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
2931 #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
2933 {
2932 {
2934 color: #000;
2933 color: #000;
2935 text-decoration: none;
2934 text-decoration: none;
2936 }
2935 }
2937
2936
2938 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
2937 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
2939 {
2938 {
2940 border: 1px solid #666;
2939 border: 1px solid #666;
2941 }
2940 }
2942
2941
2943 #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
2942 #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
2944 {
2943 {
2945 clear: both;
2944 clear: both;
2946 overflow: hidden;
2945 overflow: hidden;
2947 margin: 0;
2946 margin: 0;
2948 padding: 8px 0 2px;
2947 padding: 8px 0 2px;
2949 }
2948 }
2950
2949
2951 #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
2950 #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
2952 {
2951 {
2953 float: left;
2952 float: left;
2954 margin: 0;
2953 margin: 0;
2955 }
2954 }
2956
2955
2957 #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
2956 #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
2958 {
2957 {
2959 height: 1%;
2958 height: 1%;
2960 display: block;
2959 display: block;
2961 float: left;
2960 float: left;
2962 margin: 2px 0 0 4px;
2961 margin: 2px 0 0 4px;
2963 }
2962 }
2964
2963
2965 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
2964 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
2966 {
2965 {
2967 color: #000;
2966 color: #000;
2968 font-size: 11px;
2967 font-size: 11px;
2969 font-weight: 700;
2968 font-weight: 700;
2970 margin: 0;
2969 margin: 0;
2971 }
2970 }
2972
2971
2973 input.ui-button {
2972 input.ui-button {
2974 background: #e5e3e3 url("../images/button.png") repeat-x;
2973 background: #e5e3e3 url("../images/button.png") repeat-x;
2975 border-top: 1px solid #DDD;
2974 border-top: 1px solid #DDD;
2976 border-left: 1px solid #c6c6c6;
2975 border-left: 1px solid #c6c6c6;
2977 border-right: 1px solid #DDD;
2976 border-right: 1px solid #DDD;
2978 border-bottom: 1px solid #c6c6c6;
2977 border-bottom: 1px solid #c6c6c6;
2979 color: #515151 !important;
2978 color: #515151 !important;
2980 outline: none;
2979 outline: none;
2981 margin: 0;
2980 margin: 0;
2982 padding: 6px 12px;
2981 padding: 6px 12px;
2983 -webkit-border-radius: 4px 4px 4px 4px;
2982 -webkit-border-radius: 4px 4px 4px 4px;
2984 -khtml-border-radius: 4px 4px 4px 4px;
2983 -khtml-border-radius: 4px 4px 4px 4px;
2985 -moz-border-radius: 4px 4px 4px 4px;
2984 -moz-border-radius: 4px 4px 4px 4px;
2986 border-radius: 4px 4px 4px 4px;
2985 border-radius: 4px 4px 4px 4px;
2987 box-shadow: 0 1px 0 #ececec;
2986 box-shadow: 0 1px 0 #ececec;
2988 cursor: pointer;
2987 cursor: pointer;
2989 }
2988 }
2990
2989
2991 input.ui-button:hover {
2990 input.ui-button:hover {
2992 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
2991 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
2993 border-top: 1px solid #ccc;
2992 border-top: 1px solid #ccc;
2994 border-left: 1px solid #bebebe;
2993 border-left: 1px solid #bebebe;
2995 border-right: 1px solid #b1b1b1;
2994 border-right: 1px solid #b1b1b1;
2996 border-bottom: 1px solid #afafaf;
2995 border-bottom: 1px solid #afafaf;
2997 }
2996 }
2998
2997
2999 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
2998 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
3000 {
2999 {
3001 display: inline;
3000 display: inline;
3002 }
3001 }
3003
3002
3004 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
3003 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
3005 {
3004 {
3006 margin: 10px 0 0 200px;
3005 margin: 10px 0 0 200px;
3007 padding: 0;
3006 padding: 0;
3008 }
3007 }
3009
3008
3010 #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
3009 #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
3011 {
3010 {
3012 margin: 10px 0 0;
3011 margin: 10px 0 0;
3013 }
3012 }
3014
3013
3015 #content div.box table td.user,#content div.box table td.address {
3014 #content div.box table td.user,#content div.box table td.address {
3016 width: 10%;
3015 width: 10%;
3017 text-align: center;
3016 text-align: center;
3018 }
3017 }
3019
3018
3020 #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
3019 #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
3021 {
3020 {
3022 text-align: right;
3021 text-align: right;
3023 margin: 6px 0 0;
3022 margin: 6px 0 0;
3024 padding: 0;
3023 padding: 0;
3025 }
3024 }
3026
3025
3027 #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
3026 #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
3028 {
3027 {
3029 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3028 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3030 border-top: 1px solid #ccc;
3029 border-top: 1px solid #ccc;
3031 border-left: 1px solid #bebebe;
3030 border-left: 1px solid #bebebe;
3032 border-right: 1px solid #b1b1b1;
3031 border-right: 1px solid #b1b1b1;
3033 border-bottom: 1px solid #afafaf;
3032 border-bottom: 1px solid #afafaf;
3034 color: #515151;
3033 color: #515151;
3035 margin: 0;
3034 margin: 0;
3036 padding: 6px 12px;
3035 padding: 6px 12px;
3037 }
3036 }
3038
3037
3039 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3038 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3040 {
3039 {
3041 text-align: left;
3040 text-align: left;
3042 float: left;
3041 float: left;
3043 margin: 0;
3042 margin: 0;
3044 padding: 0;
3043 padding: 0;
3045 }
3044 }
3046
3045
3047 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3046 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3048 {
3047 {
3049 height: 1%;
3048 height: 1%;
3050 display: block;
3049 display: block;
3051 float: left;
3050 float: left;
3052 background: #ebebeb url("../images/pager.png") repeat-x;
3051 background: #ebebeb url("../images/pager.png") repeat-x;
3053 border-top: 1px solid #dedede;
3052 border-top: 1px solid #dedede;
3054 border-left: 1px solid #cfcfcf;
3053 border-left: 1px solid #cfcfcf;
3055 border-right: 1px solid #c4c4c4;
3054 border-right: 1px solid #c4c4c4;
3056 border-bottom: 1px solid #c4c4c4;
3055 border-bottom: 1px solid #c4c4c4;
3057 color: #4A4A4A;
3056 color: #4A4A4A;
3058 font-weight: 700;
3057 font-weight: 700;
3059 margin: 0;
3058 margin: 0;
3060 padding: 6px 8px;
3059 padding: 6px 8px;
3061 }
3060 }
3062
3061
3063 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3062 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3064 {
3063 {
3065 color: #B4B4B4;
3064 color: #B4B4B4;
3066 padding: 6px;
3065 padding: 6px;
3067 }
3066 }
3068
3067
3069 #login,#register {
3068 #login,#register {
3070 width: 520px;
3069 width: 520px;
3071 margin: 10% auto 0;
3070 margin: 10% auto 0;
3072 padding: 0;
3071 padding: 0;
3073 }
3072 }
3074
3073
3075 #login div.color,#register div.color {
3074 #login div.color,#register div.color {
3076 clear: both;
3075 clear: both;
3077 overflow: hidden;
3076 overflow: hidden;
3078 background: #FFF;
3077 background: #FFF;
3079 margin: 10px auto 0;
3078 margin: 10px auto 0;
3080 padding: 3px 3px 3px 0;
3079 padding: 3px 3px 3px 0;
3081 }
3080 }
3082
3081
3083 #login div.color a,#register div.color a {
3082 #login div.color a,#register div.color a {
3084 width: 20px;
3083 width: 20px;
3085 height: 20px;
3084 height: 20px;
3086 display: block;
3085 display: block;
3087 float: left;
3086 float: left;
3088 margin: 0 0 0 3px;
3087 margin: 0 0 0 3px;
3089 padding: 0;
3088 padding: 0;
3090 }
3089 }
3091
3090
3092 #login div.title h5,#register div.title h5 {
3091 #login div.title h5,#register div.title h5 {
3093 color: #fff;
3092 color: #fff;
3094 margin: 10px;
3093 margin: 10px;
3095 padding: 0;
3094 padding: 0;
3096 }
3095 }
3097
3096
3098 #login div.form div.fields div.field,#register div.form div.fields div.field
3097 #login div.form div.fields div.field,#register div.form div.fields div.field
3099 {
3098 {
3100 clear: both;
3099 clear: both;
3101 overflow: hidden;
3100 overflow: hidden;
3102 margin: 0;
3101 margin: 0;
3103 padding: 0 0 10px;
3102 padding: 0 0 10px;
3104 }
3103 }
3105
3104
3106 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3105 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3107 {
3106 {
3108 height: 1%;
3107 height: 1%;
3109 display: block;
3108 display: block;
3110 color: red;
3109 color: red;
3111 margin: 8px 0 0;
3110 margin: 8px 0 0;
3112 padding: 0;
3111 padding: 0;
3113 max-width: 320px;
3112 max-width: 320px;
3114 }
3113 }
3115
3114
3116 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3115 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3117 {
3116 {
3118 color: #000;
3117 color: #000;
3119 font-weight: 700;
3118 font-weight: 700;
3120 }
3119 }
3121
3120
3122 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3121 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3123 {
3122 {
3124 float: left;
3123 float: left;
3125 margin: 0;
3124 margin: 0;
3126 padding: 0;
3125 padding: 0;
3127 }
3126 }
3128
3127
3129 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3128 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3130 {
3129 {
3131 margin: 0 0 0 184px;
3130 margin: 0 0 0 184px;
3132 padding: 0;
3131 padding: 0;
3133 }
3132 }
3134
3133
3135 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3134 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3136 {
3135 {
3137 color: #565656;
3136 color: #565656;
3138 font-weight: 700;
3137 font-weight: 700;
3139 }
3138 }
3140
3139
3141 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3140 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3142 {
3141 {
3143 color: #000;
3142 color: #000;
3144 font-size: 1em;
3143 font-size: 1em;
3145 font-weight: 700;
3144 font-weight: 700;
3146 margin: 0;
3145 margin: 0;
3147 }
3146 }
3148
3147
3149 #changeset_content .container .wrapper,#graph_content .container .wrapper
3148 #changeset_content .container .wrapper,#graph_content .container .wrapper
3150 {
3149 {
3151 width: 600px;
3150 width: 600px;
3152 }
3151 }
3153
3152
3154 #changeset_content .container .left,#graph_content .container .left {
3153 #changeset_content .container .left,#graph_content .container .left {
3155 float: left;
3154 float: left;
3156 width: 70%;
3155 width: 70%;
3157 padding-left: 5px;
3156 padding-left: 5px;
3158 }
3157 }
3159
3158
3160 #changeset_content .container .left .date,.ac .match {
3159 #changeset_content .container .left .date,.ac .match {
3161 font-weight: 700;
3160 font-weight: 700;
3162 padding-top: 5px;
3161 padding-top: 5px;
3163 padding-bottom: 5px;
3162 padding-bottom: 5px;
3164 }
3163 }
3165
3164
3166 div#legend_container table td,div#legend_choices table td {
3165 div#legend_container table td,div#legend_choices table td {
3167 border: none !important;
3166 border: none !important;
3168 height: 20px !important;
3167 height: 20px !important;
3169 padding: 0 !important;
3168 padding: 0 !important;
3170 }
3169 }
3171
3170
3172 .q_filter_box {
3171 .q_filter_box {
3173 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3172 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3174 -webkit-border-radius: 4px;
3173 -webkit-border-radius: 4px;
3175 -moz-border-radius: 4px;
3174 -moz-border-radius: 4px;
3176 border-radius: 4px;
3175 border-radius: 4px;
3177 border: 0 none;
3176 border: 0 none;
3178 color: #AAAAAA;
3177 color: #AAAAAA;
3179 margin-bottom: -4px;
3178 margin-bottom: -4px;
3180 margin-top: -4px;
3179 margin-top: -4px;
3181 padding-left: 3px;
3180 padding-left: 3px;
3182 }
3181 }
3183
3182
3184 #node_filter {
3183 #node_filter {
3185 border: 0px solid #545454;
3184 border: 0px solid #545454;
3186 color: #AAAAAA;
3185 color: #AAAAAA;
3187 padding-left: 3px;
3186 padding-left: 3px;
3188 }
3187 }
3189
3188
3190 /*README STYLE*/
3189 /*README STYLE*/
3191
3190
3192 div.readme {
3191 div.readme {
3193 padding:0px;
3192 padding:0px;
3194 }
3193 }
3195
3194
3196 div.readme h2 {
3195 div.readme h2 {
3197 font-weight: normal;
3196 font-weight: normal;
3198 }
3197 }
3199
3198
3200 div.readme .readme_box {
3199 div.readme .readme_box {
3201 background-color: #fafafa;
3200 background-color: #fafafa;
3202 }
3201 }
3203
3202
3204 div.readme .readme_box {
3203 div.readme .readme_box {
3205 clear:both;
3204 clear:both;
3206 overflow:hidden;
3205 overflow:hidden;
3207 margin:0;
3206 margin:0;
3208 padding:0 20px 10px;
3207 padding:0 20px 10px;
3209 }
3208 }
3210
3209
3211 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
3210 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
3212 border-bottom: 0 !important;
3211 border-bottom: 0 !important;
3213 margin: 0 !important;
3212 margin: 0 !important;
3214 padding: 0 !important;
3213 padding: 0 !important;
3215 line-height: 1.5em !important;
3214 line-height: 1.5em !important;
3216 }
3215 }
3217
3216
3218
3217
3219 div.readme .readme_box h1:first-child {
3218 div.readme .readme_box h1:first-child {
3220 padding-top: .25em !important;
3219 padding-top: .25em !important;
3221 }
3220 }
3222
3221
3223 div.readme .readme_box h2, div.readme .readme_box h3 {
3222 div.readme .readme_box h2, div.readme .readme_box h3 {
3224 margin: 1em 0 !important;
3223 margin: 1em 0 !important;
3225 }
3224 }
3226
3225
3227 div.readme .readme_box h2 {
3226 div.readme .readme_box h2 {
3228 margin-top: 1.5em !important;
3227 margin-top: 1.5em !important;
3229 border-top: 4px solid #e0e0e0 !important;
3228 border-top: 4px solid #e0e0e0 !important;
3230 padding-top: .5em !important;
3229 padding-top: .5em !important;
3231 }
3230 }
3232
3231
3233 div.readme .readme_box p {
3232 div.readme .readme_box p {
3234 color: black !important;
3233 color: black !important;
3235 margin: 1em 0 !important;
3234 margin: 1em 0 !important;
3236 line-height: 1.5em !important;
3235 line-height: 1.5em !important;
3237 }
3236 }
3238
3237
3239 div.readme .readme_box ul {
3238 div.readme .readme_box ul {
3240 list-style: disc !important;
3239 list-style: disc !important;
3241 margin: 1em 0 1em 2em !important;
3240 margin: 1em 0 1em 2em !important;
3242 }
3241 }
3243
3242
3244 div.readme .readme_box ol {
3243 div.readme .readme_box ol {
3245 list-style: decimal;
3244 list-style: decimal;
3246 margin: 1em 0 1em 2em !important;
3245 margin: 1em 0 1em 2em !important;
3247 }
3246 }
3248
3247
3249 div.readme .readme_box pre, code {
3248 div.readme .readme_box pre, code {
3250 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3249 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3251 }
3250 }
3252
3251
3253 div.readme .readme_box code {
3252 div.readme .readme_box code {
3254 font-size: 12px !important;
3253 font-size: 12px !important;
3255 background-color: ghostWhite !important;
3254 background-color: ghostWhite !important;
3256 color: #444 !important;
3255 color: #444 !important;
3257 padding: 0 .2em !important;
3256 padding: 0 .2em !important;
3258 border: 1px solid #dedede !important;
3257 border: 1px solid #dedede !important;
3259 }
3258 }
3260
3259
3261 div.readme .readme_box pre code {
3260 div.readme .readme_box pre code {
3262 padding: 0 !important;
3261 padding: 0 !important;
3263 font-size: 12px !important;
3262 font-size: 12px !important;
3264 background-color: #eee !important;
3263 background-color: #eee !important;
3265 border: none !important;
3264 border: none !important;
3266 }
3265 }
3267
3266
3268 div.readme .readme_box pre {
3267 div.readme .readme_box pre {
3269 margin: 1em 0;
3268 margin: 1em 0;
3270 font-size: 12px;
3269 font-size: 12px;
3271 background-color: #eee;
3270 background-color: #eee;
3272 border: 1px solid #ddd;
3271 border: 1px solid #ddd;
3273 padding: 5px;
3272 padding: 5px;
3274 color: #444;
3273 color: #444;
3275 overflow: auto;
3274 overflow: auto;
3276 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3275 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3277 -webkit-border-radius: 3px;
3276 -webkit-border-radius: 3px;
3278 -moz-border-radius: 3px;
3277 -moz-border-radius: 3px;
3279 border-radius: 3px;
3278 border-radius: 3px;
3280 }
3279 }
3281
3280
3282
3281
3283 /** RST STYLE **/
3282 /** RST STYLE **/
3284
3283
3285
3284
3286 div.rst-block {
3285 div.rst-block {
3287 padding:0px;
3286 padding:0px;
3288 }
3287 }
3289
3288
3290 div.rst-block h2 {
3289 div.rst-block h2 {
3291 font-weight: normal;
3290 font-weight: normal;
3292 }
3291 }
3293
3292
3294 div.rst-block {
3293 div.rst-block {
3295 background-color: #fafafa;
3294 background-color: #fafafa;
3296 }
3295 }
3297
3296
3298 div.rst-block {
3297 div.rst-block {
3299 clear:both;
3298 clear:both;
3300 overflow:hidden;
3299 overflow:hidden;
3301 margin:0;
3300 margin:0;
3302 padding:0 20px 10px;
3301 padding:0 20px 10px;
3303 }
3302 }
3304
3303
3305 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3304 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3306 border-bottom: 0 !important;
3305 border-bottom: 0 !important;
3307 margin: 0 !important;
3306 margin: 0 !important;
3308 padding: 0 !important;
3307 padding: 0 !important;
3309 line-height: 1.5em !important;
3308 line-height: 1.5em !important;
3310 }
3309 }
3311
3310
3312
3311
3313 div.rst-block h1:first-child {
3312 div.rst-block h1:first-child {
3314 padding-top: .25em !important;
3313 padding-top: .25em !important;
3315 }
3314 }
3316
3315
3317 div.rst-block h2, div.rst-block h3 {
3316 div.rst-block h2, div.rst-block h3 {
3318 margin: 1em 0 !important;
3317 margin: 1em 0 !important;
3319 }
3318 }
3320
3319
3321 div.rst-block h2 {
3320 div.rst-block h2 {
3322 margin-top: 1.5em !important;
3321 margin-top: 1.5em !important;
3323 border-top: 4px solid #e0e0e0 !important;
3322 border-top: 4px solid #e0e0e0 !important;
3324 padding-top: .5em !important;
3323 padding-top: .5em !important;
3325 }
3324 }
3326
3325
3327 div.rst-block p {
3326 div.rst-block p {
3328 color: black !important;
3327 color: black !important;
3329 margin: 1em 0 !important;
3328 margin: 1em 0 !important;
3330 line-height: 1.5em !important;
3329 line-height: 1.5em !important;
3331 }
3330 }
3332
3331
3333 div.rst-block ul {
3332 div.rst-block ul {
3334 list-style: disc !important;
3333 list-style: disc !important;
3335 margin: 1em 0 1em 2em !important;
3334 margin: 1em 0 1em 2em !important;
3336 }
3335 }
3337
3336
3338 div.rst-block ol {
3337 div.rst-block ol {
3339 list-style: decimal;
3338 list-style: decimal;
3340 margin: 1em 0 1em 2em !important;
3339 margin: 1em 0 1em 2em !important;
3341 }
3340 }
3342
3341
3343 div.rst-block pre, code {
3342 div.rst-block pre, code {
3344 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3343 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3345 }
3344 }
3346
3345
3347 div.rst-block code {
3346 div.rst-block code {
3348 font-size: 12px !important;
3347 font-size: 12px !important;
3349 background-color: ghostWhite !important;
3348 background-color: ghostWhite !important;
3350 color: #444 !important;
3349 color: #444 !important;
3351 padding: 0 .2em !important;
3350 padding: 0 .2em !important;
3352 border: 1px solid #dedede !important;
3351 border: 1px solid #dedede !important;
3353 }
3352 }
3354
3353
3355 div.rst-block pre code {
3354 div.rst-block pre code {
3356 padding: 0 !important;
3355 padding: 0 !important;
3357 font-size: 12px !important;
3356 font-size: 12px !important;
3358 background-color: #eee !important;
3357 background-color: #eee !important;
3359 border: none !important;
3358 border: none !important;
3360 }
3359 }
3361
3360
3362 div.rst-block pre {
3361 div.rst-block pre {
3363 margin: 1em 0;
3362 margin: 1em 0;
3364 font-size: 12px;
3363 font-size: 12px;
3365 background-color: #eee;
3364 background-color: #eee;
3366 border: 1px solid #ddd;
3365 border: 1px solid #ddd;
3367 padding: 5px;
3366 padding: 5px;
3368 color: #444;
3367 color: #444;
3369 overflow: auto;
3368 overflow: auto;
3370 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3369 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3371 -webkit-border-radius: 3px;
3370 -webkit-border-radius: 3px;
3372 -moz-border-radius: 3px;
3371 -moz-border-radius: 3px;
3373 border-radius: 3px;
3372 border-radius: 3px;
3374 }
3373 }
3375
3374
3376
3375
3377 /** comment main **/
3376 /** comment main **/
3378 .comments {
3377 .comments {
3379 padding:10px 20px;
3378 padding:10px 20px;
3380 }
3379 }
3381
3380
3382 .comments .comment {
3381 .comments .comment {
3383 border: 1px solid #ddd;
3382 border: 1px solid #ddd;
3384 margin-top: 10px;
3383 margin-top: 10px;
3385 -webkit-border-radius: 4px;
3384 -webkit-border-radius: 4px;
3386 -moz-border-radius: 4px;
3385 -moz-border-radius: 4px;
3387 border-radius: 4px;
3386 border-radius: 4px;
3388 }
3387 }
3389
3388
3390 .comments .comment .meta {
3389 .comments .comment .meta {
3391 background: #f8f8f8;
3390 background: #f8f8f8;
3392 padding: 6px;
3391 padding: 6px;
3393 border-bottom: 1px solid #ddd;
3392 border-bottom: 1px solid #ddd;
3394 }
3393 }
3395
3394
3396 .comments .comment .meta img {
3395 .comments .comment .meta img {
3397 vertical-align: middle;
3396 vertical-align: middle;
3398 }
3397 }
3399
3398
3400 .comments .comment .meta .user {
3399 .comments .comment .meta .user {
3401 font-weight: bold;
3400 font-weight: bold;
3402 }
3401 }
3403
3402
3404 .comments .comment .meta .date {
3403 .comments .comment .meta .date {
3405 float: right;
3404 float: right;
3406 }
3405 }
3407
3406
3408 .comments .comment .text {
3407 .comments .comment .text {
3409 padding: 8px 6px 6px 14px;
3408 padding: 8px 6px 6px 14px;
3410 background-color: #FAFAFA;
3409 background-color: #FAFAFA;
3411 }
3410 }
3412
3411
3413 .comments .comments-number{
3412 .comments .comments-number{
3414 padding:0px 0px 10px 0px;
3413 padding:0px 0px 10px 0px;
3415 font-weight: bold;
3414 font-weight: bold;
3416 color: #666;
3415 color: #666;
3417 font-size: 16px;
3416 font-size: 16px;
3418 }
3417 }
3419
3418
3420 /** comment form **/
3419 /** comment form **/
3421
3420
3422 .comment-form .clearfix{
3421 .comment-form .clearfix{
3423 background: #EEE;
3422 background: #EEE;
3424 -webkit-border-radius: 4px;
3423 -webkit-border-radius: 4px;
3425 -moz-border-radius: 4px;
3424 -moz-border-radius: 4px;
3426 border-radius: 4px;
3425 border-radius: 4px;
3427 padding: 10px;
3426 padding: 10px;
3428 }
3427 }
3429
3428
3430 div.comment-form {
3429 div.comment-form {
3431 margin-top: 20px;
3430 margin-top: 20px;
3432 }
3431 }
3433
3432
3434 .comment-form strong {
3433 .comment-form strong {
3435 display: block;
3434 display: block;
3436 margin-bottom: 15px;
3435 margin-bottom: 15px;
3437 }
3436 }
3438
3437
3439 .comment-form textarea {
3438 .comment-form textarea {
3440 width: 100%;
3439 width: 100%;
3441 height: 100px;
3440 height: 100px;
3442 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3441 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3443 }
3442 }
3444
3443
3445 form.comment-form {
3444 form.comment-form {
3446 margin-top: 10px;
3445 margin-top: 10px;
3447 margin-left: 10px;
3446 margin-left: 10px;
3448 }
3447 }
3449
3448
3450 .comment-form-submit {
3449 .comment-form-submit {
3451 margin-top: 5px;
3450 margin-top: 5px;
3452 margin-left: 525px;
3451 margin-left: 525px;
3453 }
3452 }
3454
3453
3455 .file-comments {
3454 .file-comments {
3456 display: none;
3455 display: none;
3457 }
3456 }
3458
3457
3459 .comment-form .comment {
3458 .comment-form .comment {
3460 margin-left: 10px;
3459 margin-left: 10px;
3461 }
3460 }
3462
3461
3463 .comment-form .comment-help{
3462 .comment-form .comment-help{
3464 padding: 0px 0px 5px 0px;
3463 padding: 0px 0px 5px 0px;
3465 color: #666;
3464 color: #666;
3466 }
3465 }
3467
3466
3468 .comment-form .comment-button{
3467 .comment-form .comment-button{
3469 padding-top:5px;
3468 padding-top:5px;
3470 }
3469 }
3471
3470
3472 .add-another-button {
3471 .add-another-button {
3473 margin-left: 10px;
3472 margin-left: 10px;
3474 margin-top: 10px;
3473 margin-top: 10px;
3475 margin-bottom: 10px;
3474 margin-bottom: 10px;
3476 }
3475 }
3477
3476
3478 .comment .buttons {
3477 .comment .buttons {
3479 position: absolute;
3478 position: absolute;
3480 right:40px;
3479 right:40px;
3481 }
3480 }
3482
3481
3483
3482
3484 .show-inline-comments{
3483 .show-inline-comments{
3485 position: relative;
3484 position: relative;
3486 top:1px
3485 top:1px
3487 }
3486 }
3488
3487
3489 /** comment inline form **/
3488 /** comment inline form **/
3490
3489
3491 .comment-inline-form .clearfix{
3490 .comment-inline-form .clearfix{
3492 background: #EEE;
3491 background: #EEE;
3493 -webkit-border-radius: 4px;
3492 -webkit-border-radius: 4px;
3494 -moz-border-radius: 4px;
3493 -moz-border-radius: 4px;
3495 border-radius: 4px;
3494 border-radius: 4px;
3496 padding: 5px;
3495 padding: 5px;
3497 }
3496 }
3498
3497
3499 div.comment-inline-form {
3498 div.comment-inline-form {
3500 margin-top: 5px;
3499 margin-top: 5px;
3501 padding:2px 6px 8px 6px;
3500 padding:2px 6px 8px 6px;
3502 }
3501 }
3503
3502
3504 .comment-inline-form strong {
3503 .comment-inline-form strong {
3505 display: block;
3504 display: block;
3506 margin-bottom: 15px;
3505 margin-bottom: 15px;
3507 }
3506 }
3508
3507
3509 .comment-inline-form textarea {
3508 .comment-inline-form textarea {
3510 width: 100%;
3509 width: 100%;
3511 height: 100px;
3510 height: 100px;
3512 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3511 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3513 }
3512 }
3514
3513
3515 form.comment-inline-form {
3514 form.comment-inline-form {
3516 margin-top: 10px;
3515 margin-top: 10px;
3517 margin-left: 10px;
3516 margin-left: 10px;
3518 }
3517 }
3519
3518
3520 .comment-inline-form-submit {
3519 .comment-inline-form-submit {
3521 margin-top: 5px;
3520 margin-top: 5px;
3522 margin-left: 525px;
3521 margin-left: 525px;
3523 }
3522 }
3524
3523
3525 .file-comments {
3524 .file-comments {
3526 display: none;
3525 display: none;
3527 }
3526 }
3528
3527
3529 .comment-inline-form .comment {
3528 .comment-inline-form .comment {
3530 margin-left: 10px;
3529 margin-left: 10px;
3531 }
3530 }
3532
3531
3533 .comment-inline-form .comment-help{
3532 .comment-inline-form .comment-help{
3534 padding: 0px 0px 2px 0px;
3533 padding: 0px 0px 2px 0px;
3535 color: #666666;
3534 color: #666666;
3536 font-size: 10px;
3535 font-size: 10px;
3537 }
3536 }
3538
3537
3539 .comment-inline-form .comment-button{
3538 .comment-inline-form .comment-button{
3540 padding-top:5px;
3539 padding-top:5px;
3541 }
3540 }
3542
3541
3543 /** comment inline **/
3542 /** comment inline **/
3544 .inline-comments {
3543 .inline-comments {
3545 padding:10px 20px;
3544 padding:10px 20px;
3546 }
3545 }
3547
3546
3548 .inline-comments div.rst-block {
3547 .inline-comments div.rst-block {
3549 clear:both;
3548 clear:both;
3550 overflow:hidden;
3549 overflow:hidden;
3551 margin:0;
3550 margin:0;
3552 padding:0 20px 0px;
3551 padding:0 20px 0px;
3553 }
3552 }
3554 .inline-comments .comment {
3553 .inline-comments .comment {
3555 border: 1px solid #ddd;
3554 border: 1px solid #ddd;
3556 -webkit-border-radius: 4px;
3555 -webkit-border-radius: 4px;
3557 -moz-border-radius: 4px;
3556 -moz-border-radius: 4px;
3558 border-radius: 4px;
3557 border-radius: 4px;
3559 margin: 3px 3px 5px 5px;
3558 margin: 3px 3px 5px 5px;
3560 }
3559 background-color: #FAFAFA;
3561
3560 }
3561 .inline-comments .comment-wrapp{
3562 padding:1px;
3563 }
3562 .inline-comments .comment .meta {
3564 .inline-comments .comment .meta {
3563 background: #f8f8f8;
3565 background: #f8f8f8;
3564 padding: 6px;
3566 padding: 6px;
3565 border-bottom: 1px solid #ddd;
3567 border-bottom: 1px solid #ddd;
3566 }
3568 }
3567
3569
3568 .inline-comments .comment .meta img {
3570 .inline-comments .comment .meta img {
3569 vertical-align: middle;
3571 vertical-align: middle;
3570 }
3572 }
3571
3573
3572 .inline-comments .comment .meta .user {
3574 .inline-comments .comment .meta .user {
3573 font-weight: bold;
3575 font-weight: bold;
3574 }
3576 }
3575
3577
3576 .inline-comments .comment .meta .date {
3578 .inline-comments .comment .meta .date {
3577 float: right;
3579 float: right;
3578 }
3580 }
3579
3581
3580 .inline-comments .comment .text {
3582 .inline-comments .comment .text {
3581 padding: 8px 6px 6px 14px;
3583 padding: 8px 6px 6px 14px;
3582 background-color: #FAFAFA;
3584 background-color: #FAFAFA;
3583 }
3585 }
3584
3586
3585 .inline-comments .comments-number{
3587 .inline-comments .comments-number{
3586 padding:0px 0px 10px 0px;
3588 padding:0px 0px 10px 0px;
3587 font-weight: bold;
3589 font-weight: bold;
3588 color: #666;
3590 color: #666;
3589 font-size: 16px;
3591 font-size: 16px;
3590 }
3592 }
3591 .inline-comments-button .add-comment{
3593 .inline-comments-button .add-comment{
3592 margin:10px 5px !important;
3594 margin:10px 5px !important;
3593 }
3595 }
3594 .notifications{
3596 .notifications{
3595 width:22px;
3597 width:22px;
3596 padding:2px;
3598 padding:2px;
3597 float:right;
3599 float:right;
3598 -webkit-border-radius: 4px;
3600 -webkit-border-radius: 4px;
3599 -moz-border-radius: 4px;
3601 -moz-border-radius: 4px;
3600 border-radius: 4px;
3602 border-radius: 4px;
3601 text-align: center;
3603 text-align: center;
3602 margin: 0px -10px 0px 5px;
3604 margin: 0px -10px 0px 5px;
3603 background-color: #DEDEDE;
3605 background-color: #DEDEDE;
3604 }
3606 }
3605 .notifications a{
3607 .notifications a{
3606 color:#888 !important;
3608 color:#888 !important;
3607 display: block;
3609 display: block;
3608 font-size: 10px
3610 font-size: 10px
3609 }
3611 }
3610 .notifications a:hover{
3612 .notifications a:hover{
3611 text-decoration: none !important;
3613 text-decoration: none !important;
3612 }
3614 }
3613 .notification-header{
3615 .notification-header{
3614
3616
3615 }
3617 }
3616 .notification-header .desc{
3618 .notification-header .desc{
3617 font-size: 16px;
3619 font-size: 16px;
3618 height: 24px;
3620 height: 24px;
3619 padding-top: 6px;
3621 padding-top: 6px;
3620 float: left
3622 float: left
3621 }
3623 }
3622 .notification-list .container.unread{
3624 .notification-list .container.unread{
3623
3625
3624 }
3626 }
3625 .notification-header .desc.unread{
3627 .notification-header .desc.unread{
3626 font-weight: bold;
3628 font-weight: bold;
3627 font-size: 17px;
3629 font-size: 17px;
3628 }
3630 }
3629
3631
3630 .notification-header .delete-notifications{
3632 .notification-header .delete-notifications{
3631 float: right;
3633 float: right;
3632 padding-top: 8px;
3634 padding-top: 8px;
3633 cursor: pointer;
3635 cursor: pointer;
3634 }
3636 }
3635 .notification-subject{
3637 .notification-subject{
3636 clear:both;
3638 clear:both;
3637 border-bottom: 1px solid #eee;
3639 border-bottom: 1px solid #eee;
3638 padding:5px 0px 5px 38px;
3640 padding:5px 0px 5px 38px;
3641 }
3642
3643
3644 /*****************************************************************************
3645 DIFFS CSS
3646 ******************************************************************************/
3647
3648 div.diffblock {
3649 overflow: auto;
3650 padding: 0px;
3651 border: 1px solid #ccc;
3652 background: #f8f8f8;
3653 font-size: 100%;
3654 line-height: 100%;
3655 /* new */
3656 line-height: 125%;
3657 -webkit-border-radius: 6px 6px 0px 0px;
3658 -moz-border-radius: 6px 6px 0px 0px;
3659 border-radius: 6px 6px 0px 0px;
3660 }
3661 div.diffblock.margined{
3662 margin: 0px 20px 0px 20px;
3663 }
3664 div.diffblock .code-header{
3665 border-bottom: 1px solid #CCCCCC;
3666 background: #EEEEEE;
3667 padding:10px 0 10px 0;
3668 }
3669 div.diffblock .code-header div{
3670 margin-left:10px;
3671 font-weight: bold;
3672 font-size: 14px;
3673 }
3674 div.diffblock .code-body{
3675 background: #FFFFFF;
3676 }
3677 div.diffblock pre.raw{
3678 background: #FFFFFF;
3679 color:#000000;
3680 }
3681 table.code-difftable{
3682 border-collapse: collapse;
3683 width: 99%;
3684 }
3685 table.code-difftable td {
3686 padding: 0 !important;
3687 background: none !important;
3688 border:0 !important;
3689 vertical-align: none !important;
3690 }
3691 table.code-difftable .context{
3692 background:none repeat scroll 0 0 #DDE7EF;
3693 }
3694 table.code-difftable .add{
3695 background:none repeat scroll 0 0 #DDFFDD;
3696 }
3697 table.code-difftable .add ins{
3698 background:none repeat scroll 0 0 #AAFFAA;
3699 text-decoration:none;
3700 }
3701 table.code-difftable .del{
3702 background:none repeat scroll 0 0 #FFDDDD;
3703 }
3704 table.code-difftable .del del{
3705 background:none repeat scroll 0 0 #FFAAAA;
3706 text-decoration:none;
3707 }
3708
3709 /** LINE NUMBERS **/
3710 table.code-difftable .lineno{
3711 background:none repeat scroll 0 0 #EEEEEE !important;
3712 padding-left:2px;
3713 padding-right:2px;
3714 text-align:right;
3715 width:30px;
3716 -moz-user-select:none;
3717 -webkit-user-select: none;
3718 border-right: 1px solid #CCC !important;
3719 border-left: 0px solid #CCC !important;
3720 border-top: 0px solid #CCC !important;
3721 border-bottom: none !important;
3722 vertical-align: middle !important;
3723
3724 }
3725 table.code-difftable .lineno.new {
3726 }
3727 table.code-difftable .lineno.old {
3728 }
3729 table.code-difftable .lineno a{
3730 color:#747474 !important;
3731 font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
3732 letter-spacing:-1px;
3733 text-align:right;
3734 float:right;
3735 width:20px;
3736 padding-right: 2px;
3737 cursor: pointer;
3738 }
3739
3740 table.code-difftable .lineno-inline{
3741 background:none repeat scroll 0 0 #FFF !important;
3742 padding-left:2px;
3743 padding-right:2px;
3744 text-align:right;
3745 width:30px;
3746 -moz-user-select:none;
3747 -webkit-user-select: none;
3748 }
3749
3750 /** CODE **/
3751 table.code-difftable .code {
3752 display: block;
3753 width: 100%;
3754 }
3755 table.code-difftable .code td{
3756 margin:0;
3757 padding:0;
3758 }
3759 table.code-difftable .code pre{
3760 margin:0;
3761 padding:0;
3762 height: 17px;
3763 line-height: 17px;
3764 }
3765
3766
3767 .diffblock.margined.comm .line .code:hover{
3768 background-color:#FFFFCC !important;
3769 cursor: pointer !important;
3770 background-image:url("../images/icons/comment_add.png") !important;
3771 background-repeat:no-repeat !important;
3772 background-position: right !important;
3773 background-position: 0% 50% !important;
3639 } No newline at end of file
3774 }
@@ -1,598 +1,599 b''
1 /**
1 /**
2 RhodeCode JS Files
2 RhodeCode JS Files
3 **/
3 **/
4
4
5 if (typeof console == "undefined" || typeof console.log == "undefined"){
5 if (typeof console == "undefined" || typeof console.log == "undefined"){
6 console = { log: function() {} }
6 console = { log: function() {} }
7 }
7 }
8
8
9
9
10 var str_repeat = function(i, m) {
10 var str_repeat = function(i, m) {
11 for (var o = []; m > 0; o[--m] = i);
11 for (var o = []; m > 0; o[--m] = i);
12 return o.join('');
12 return o.join('');
13 };
13 };
14
14
15 /**
15 /**
16 * INJECT .format function into String
16 * INJECT .format function into String
17 * Usage: "My name is {0} {1}".format("Johny","Bravo")
17 * Usage: "My name is {0} {1}".format("Johny","Bravo")
18 * Return "My name is Johny Bravo"
18 * Return "My name is Johny Bravo"
19 * Inspired by https://gist.github.com/1049426
19 * Inspired by https://gist.github.com/1049426
20 */
20 */
21 String.prototype.format = function() {
21 String.prototype.format = function() {
22
22
23 function format() {
23 function format() {
24 var str = this;
24 var str = this;
25 var len = arguments.length+1;
25 var len = arguments.length+1;
26 var safe = undefined;
26 var safe = undefined;
27 var arg = undefined;
27 var arg = undefined;
28
28
29 // For each {0} {1} {n...} replace with the argument in that position. If
29 // For each {0} {1} {n...} replace with the argument in that position. If
30 // the argument is an object or an array it will be stringified to JSON.
30 // the argument is an object or an array it will be stringified to JSON.
31 for (var i=0; i < len; arg = arguments[i++]) {
31 for (var i=0; i < len; arg = arguments[i++]) {
32 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
32 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
33 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
33 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
34 }
34 }
35 return str;
35 return str;
36 }
36 }
37
37
38 // Save a reference of what may already exist under the property native.
38 // Save a reference of what may already exist under the property native.
39 // Allows for doing something like: if("".format.native) { /* use native */ }
39 // Allows for doing something like: if("".format.native) { /* use native */ }
40 format.native = String.prototype.format;
40 format.native = String.prototype.format;
41
41
42 // Replace the prototype property
42 // Replace the prototype property
43 return format;
43 return format;
44
44
45 }();
45 }();
46
46
47
47
48 /**
48 /**
49 * SmartColorGenerator
49 * SmartColorGenerator
50 *
50 *
51 *usage::
51 *usage::
52 * var CG = new ColorGenerator();
52 * var CG = new ColorGenerator();
53 * var col = CG.getColor(key); //returns array of RGB
53 * var col = CG.getColor(key); //returns array of RGB
54 * 'rgb({0})'.format(col.join(',')
54 * 'rgb({0})'.format(col.join(',')
55 *
55 *
56 * @returns {ColorGenerator}
56 * @returns {ColorGenerator}
57 */
57 */
58 var ColorGenerator = function(){
58 var ColorGenerator = function(){
59 this.GOLDEN_RATIO = 0.618033988749895;
59 this.GOLDEN_RATIO = 0.618033988749895;
60 this.CURRENT_RATIO = 0.22717784590367374 // this can be random
60 this.CURRENT_RATIO = 0.22717784590367374 // this can be random
61 this.HSV_1 = 0.75;//saturation
61 this.HSV_1 = 0.75;//saturation
62 this.HSV_2 = 0.95;
62 this.HSV_2 = 0.95;
63 this.color;
63 this.color;
64 this.cacheColorMap = {};
64 this.cacheColorMap = {};
65 };
65 };
66
66
67 ColorGenerator.prototype = {
67 ColorGenerator.prototype = {
68 getColor:function(key){
68 getColor:function(key){
69 if(this.cacheColorMap[key] !== undefined){
69 if(this.cacheColorMap[key] !== undefined){
70 return this.cacheColorMap[key];
70 return this.cacheColorMap[key];
71 }
71 }
72 else{
72 else{
73 this.cacheColorMap[key] = this.generateColor();
73 this.cacheColorMap[key] = this.generateColor();
74 return this.cacheColorMap[key];
74 return this.cacheColorMap[key];
75 }
75 }
76 },
76 },
77 _hsvToRgb:function(h,s,v){
77 _hsvToRgb:function(h,s,v){
78 if (s == 0.0)
78 if (s == 0.0)
79 return [v, v, v];
79 return [v, v, v];
80 i = parseInt(h * 6.0)
80 i = parseInt(h * 6.0)
81 f = (h * 6.0) - i
81 f = (h * 6.0) - i
82 p = v * (1.0 - s)
82 p = v * (1.0 - s)
83 q = v * (1.0 - s * f)
83 q = v * (1.0 - s * f)
84 t = v * (1.0 - s * (1.0 - f))
84 t = v * (1.0 - s * (1.0 - f))
85 i = i % 6
85 i = i % 6
86 if (i == 0)
86 if (i == 0)
87 return [v, t, p]
87 return [v, t, p]
88 if (i == 1)
88 if (i == 1)
89 return [q, v, p]
89 return [q, v, p]
90 if (i == 2)
90 if (i == 2)
91 return [p, v, t]
91 return [p, v, t]
92 if (i == 3)
92 if (i == 3)
93 return [p, q, v]
93 return [p, q, v]
94 if (i == 4)
94 if (i == 4)
95 return [t, p, v]
95 return [t, p, v]
96 if (i == 5)
96 if (i == 5)
97 return [v, p, q]
97 return [v, p, q]
98 },
98 },
99 generateColor:function(){
99 generateColor:function(){
100 this.CURRENT_RATIO = this.CURRENT_RATIO+this.GOLDEN_RATIO;
100 this.CURRENT_RATIO = this.CURRENT_RATIO+this.GOLDEN_RATIO;
101 this.CURRENT_RATIO = this.CURRENT_RATIO %= 1;
101 this.CURRENT_RATIO = this.CURRENT_RATIO %= 1;
102 HSV_tuple = [this.CURRENT_RATIO, this.HSV_1, this.HSV_2]
102 HSV_tuple = [this.CURRENT_RATIO, this.HSV_1, this.HSV_2]
103 RGB_tuple = this._hsvToRgb(HSV_tuple[0],HSV_tuple[1],HSV_tuple[2]);
103 RGB_tuple = this._hsvToRgb(HSV_tuple[0],HSV_tuple[1],HSV_tuple[2]);
104 function toRgb(v){
104 function toRgb(v){
105 return ""+parseInt(v*256)
105 return ""+parseInt(v*256)
106 }
106 }
107 return [toRgb(RGB_tuple[0]),toRgb(RGB_tuple[1]),toRgb(RGB_tuple[2])];
107 return [toRgb(RGB_tuple[0]),toRgb(RGB_tuple[1]),toRgb(RGB_tuple[2])];
108
108
109 }
109 }
110 }
110 }
111
111
112
112
113
113
114
114
115
115
116 /**
116 /**
117 * GLOBAL YUI Shortcuts
117 * GLOBAL YUI Shortcuts
118 */
118 */
119 var YUC = YAHOO.util.Connect;
119 var YUC = YAHOO.util.Connect;
120 var YUD = YAHOO.util.Dom;
120 var YUD = YAHOO.util.Dom;
121 var YUE = YAHOO.util.Event;
121 var YUE = YAHOO.util.Event;
122 var YUQ = YAHOO.util.Selector.query;
122 var YUQ = YAHOO.util.Selector.query;
123
123
124 // defines if push state is enabled for this browser ?
124 // defines if push state is enabled for this browser ?
125 var push_state_enabled = Boolean(
125 var push_state_enabled = Boolean(
126 window.history && window.history.pushState && window.history.replaceState
126 window.history && window.history.pushState && window.history.replaceState
127 && !( /* disable for versions of iOS before version 4.3 (8F190) */
127 && !( /* disable for versions of iOS before version 4.3 (8F190) */
128 (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent)
128 (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent)
129 /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
129 /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
130 || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent)
130 || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent)
131 )
131 )
132 );
132 );
133
133
134 var _run_callbacks = function(callbacks){
134 var _run_callbacks = function(callbacks){
135 if (callbacks !== undefined){
135 if (callbacks !== undefined){
136 var _l = callbacks.length;
136 var _l = callbacks.length;
137 for (var i=0;i<_l;i++){
137 for (var i=0;i<_l;i++){
138 var func = callbacks[i];
138 var func = callbacks[i];
139 if(typeof(func)=='function'){
139 if(typeof(func)=='function'){
140 try{
140 try{
141 func();
141 func();
142 }catch (err){};
142 }catch (err){};
143 }
143 }
144 }
144 }
145 }
145 }
146 }
146 }
147
147
148 /**
148 /**
149 * Partial Ajax Implementation
149 * Partial Ajax Implementation
150 *
150 *
151 * @param url: defines url to make partial request
151 * @param url: defines url to make partial request
152 * @param container: defines id of container to input partial result
152 * @param container: defines id of container to input partial result
153 * @param s_call: success callback function that takes o as arg
153 * @param s_call: success callback function that takes o as arg
154 * o.tId
154 * o.tId
155 * o.status
155 * o.status
156 * o.statusText
156 * o.statusText
157 * o.getResponseHeader[ ]
157 * o.getResponseHeader[ ]
158 * o.getAllResponseHeaders
158 * o.getAllResponseHeaders
159 * o.responseText
159 * o.responseText
160 * o.responseXML
160 * o.responseXML
161 * o.argument
161 * o.argument
162 * @param f_call: failure callback
162 * @param f_call: failure callback
163 * @param args arguments
163 * @param args arguments
164 */
164 */
165 function ypjax(url,container,s_call,f_call,args){
165 function ypjax(url,container,s_call,f_call,args){
166 var method='GET';
166 var method='GET';
167 if(args===undefined){
167 if(args===undefined){
168 args=null;
168 args=null;
169 }
169 }
170
170
171 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
171 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
172 YUC.initHeader('X-PARTIAL-XHR',true);
172 YUC.initHeader('X-PARTIAL-XHR',true);
173
173
174 // wrapper of passed callback
174 // wrapper of passed callback
175 var s_wrapper = (function(o){
175 var s_wrapper = (function(o){
176 return function(o){
176 return function(o){
177 YUD.get(container).innerHTML=o.responseText;
177 YUD.get(container).innerHTML=o.responseText;
178 YUD.setStyle(container,'opacity','1.0');
178 YUD.setStyle(container,'opacity','1.0');
179 //execute the given original callback
179 //execute the given original callback
180 if (s_call !== undefined){
180 if (s_call !== undefined){
181 s_call(o);
181 s_call(o);
182 }
182 }
183 }
183 }
184 })()
184 })()
185 YUD.setStyle(container,'opacity','0.3');
185 YUD.setStyle(container,'opacity','0.3');
186 YUC.asyncRequest(method,url,{
186 YUC.asyncRequest(method,url,{
187 success:s_wrapper,
187 success:s_wrapper,
188 failure:function(o){
188 failure:function(o){
189 console.log(o);
189 console.log(o);
190 YUD.get(container).innerHTML='ERROR';
190 YUD.get(container).innerHTML='ERROR';
191 YUD.setStyle(container,'opacity','1.0');
191 YUD.setStyle(container,'opacity','1.0');
192 YUD.setStyle(container,'color','red');
192 YUD.setStyle(container,'color','red');
193 }
193 }
194 },args);
194 },args);
195
195
196 };
196 };
197
197
198 /**
198 /**
199 * tooltip activate
199 * tooltip activate
200 */
200 */
201 var tooltip_activate = function(){
201 var tooltip_activate = function(){
202 function toolTipsId(){
202 function toolTipsId(){
203 var ids = [];
203 var ids = [];
204 var tts = YUQ('.tooltip');
204 var tts = YUQ('.tooltip');
205 for (var i = 0; i < tts.length; i++) {
205 for (var i = 0; i < tts.length; i++) {
206 // if element doesn't not have and id
206 // if element doesn't not have and id
207 // autogenerate one for tooltip
207 // autogenerate one for tooltip
208 if (!tts[i].id){
208 if (!tts[i].id){
209 tts[i].id='tt'+((i*100)+tts.length);
209 tts[i].id='tt'+((i*100)+tts.length);
210 }
210 }
211 ids.push(tts[i].id);
211 ids.push(tts[i].id);
212 }
212 }
213 return ids
213 return ids
214 };
214 };
215 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
215 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
216 context: [[toolTipsId()],"tl","bl",null,[0,5]],
216 context: [[toolTipsId()],"tl","bl",null,[0,5]],
217 monitorresize:false,
217 monitorresize:false,
218 xyoffset :[0,0],
218 xyoffset :[0,0],
219 autodismissdelay:300000,
219 autodismissdelay:300000,
220 hidedelay:5,
220 hidedelay:5,
221 showdelay:20,
221 showdelay:20,
222 });
222 });
223 };
223 };
224
224
225 /**
225 /**
226 * show more
226 * show more
227 */
227 */
228 var show_more_event = function(){
228 var show_more_event = function(){
229 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
229 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
230 var el = e.target;
230 var el = e.target;
231 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
231 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
232 YUD.setStyle(el.parentNode,'display','none');
232 YUD.setStyle(el.parentNode,'display','none');
233 });
233 });
234 };
234 };
235
235
236
236
237 /**
237 /**
238 * Quick filter widget
238 * Quick filter widget
239 *
239 *
240 * @param target: filter input target
240 * @param target: filter input target
241 * @param nodes: list of nodes in html we want to filter.
241 * @param nodes: list of nodes in html we want to filter.
242 * @param display_element function that takes current node from nodes and
242 * @param display_element function that takes current node from nodes and
243 * does hide or show based on the node
243 * does hide or show based on the node
244 *
244 *
245 */
245 */
246 var q_filter = function(target,nodes,display_element){
246 var q_filter = function(target,nodes,display_element){
247
247
248 var nodes = nodes;
248 var nodes = nodes;
249 var q_filter_field = YUD.get(target);
249 var q_filter_field = YUD.get(target);
250 var F = YAHOO.namespace(target);
250 var F = YAHOO.namespace(target);
251
251
252 YUE.on(q_filter_field,'click',function(){
252 YUE.on(q_filter_field,'click',function(){
253 q_filter_field.value = '';
253 q_filter_field.value = '';
254 });
254 });
255
255
256 YUE.on(q_filter_field,'keyup',function(e){
256 YUE.on(q_filter_field,'keyup',function(e){
257 clearTimeout(F.filterTimeout);
257 clearTimeout(F.filterTimeout);
258 F.filterTimeout = setTimeout(F.updateFilter,600);
258 F.filterTimeout = setTimeout(F.updateFilter,600);
259 });
259 });
260
260
261 F.filterTimeout = null;
261 F.filterTimeout = null;
262
262
263 var show_node = function(node){
263 var show_node = function(node){
264 YUD.setStyle(node,'display','')
264 YUD.setStyle(node,'display','')
265 }
265 }
266 var hide_node = function(node){
266 var hide_node = function(node){
267 YUD.setStyle(node,'display','none');
267 YUD.setStyle(node,'display','none');
268 }
268 }
269
269
270 F.updateFilter = function() {
270 F.updateFilter = function() {
271 // Reset timeout
271 // Reset timeout
272 F.filterTimeout = null;
272 F.filterTimeout = null;
273
273
274 var obsolete = [];
274 var obsolete = [];
275
275
276 var req = q_filter_field.value.toLowerCase();
276 var req = q_filter_field.value.toLowerCase();
277
277
278 var l = nodes.length;
278 var l = nodes.length;
279 var i;
279 var i;
280 var showing = 0;
280 var showing = 0;
281
281
282 for (i=0;i<l;i++ ){
282 for (i=0;i<l;i++ ){
283 var n = nodes[i];
283 var n = nodes[i];
284 var target_element = display_element(n)
284 var target_element = display_element(n)
285 if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
285 if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
286 hide_node(target_element);
286 hide_node(target_element);
287 }
287 }
288 else{
288 else{
289 show_node(target_element);
289 show_node(target_element);
290 showing+=1;
290 showing+=1;
291 }
291 }
292 }
292 }
293
293
294 // if repo_count is set update the number
294 // if repo_count is set update the number
295 var cnt = YUD.get('repo_count');
295 var cnt = YUD.get('repo_count');
296 if(cnt){
296 if(cnt){
297 YUD.get('repo_count').innerHTML = showing;
297 YUD.get('repo_count').innerHTML = showing;
298 }
298 }
299
299
300 }
300 }
301 };
301 };
302
302
303 var ajaxPOST = function(url,postData,success) {
303 var ajaxPOST = function(url,postData,success) {
304 var sUrl = url;
304 var sUrl = url;
305 var callback = {
305 var callback = {
306 success: success,
306 success: success,
307 failure: function (o) {
307 failure: function (o) {
308 alert("error");
308 alert("error");
309 },
309 },
310 };
310 };
311 var postData = postData;
311 var postData = postData;
312 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
312 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
313 };
313 };
314
314
315
315
316 /** comments **/
316 /** comments **/
317 var removeInlineForm = function(form) {
317 var removeInlineForm = function(form) {
318 form.parentNode.removeChild(form);
318 form.parentNode.removeChild(form);
319 };
319 };
320
320
321 var tableTr = function(cls,body){
321 var tableTr = function(cls,body){
322 var form = document.createElement('tr');
322 var form = document.createElement('tr');
323 YUD.addClass(form, cls);
323 YUD.addClass(form, cls);
324 form.innerHTML = '<td class="lineno-inline new-inline"></td>'+
324 form.innerHTML = '<td class="lineno-inline new-inline"></td>'+
325 '<td class="lineno-inline old-inline"></td>'+
325 '<td class="lineno-inline old-inline"></td>'+
326 '<td>{0}</td>'.format(body);
326 '<td>{0}</td>'.format(body);
327 return form;
327 return form;
328 };
328 };
329
329
330 var createInlineForm = function(parent_tr, f_path, line) {
330 var createInlineForm = function(parent_tr, f_path, line) {
331 var tmpl = YUD.get('comment-inline-form-template').innerHTML;
331 var tmpl = YUD.get('comment-inline-form-template').innerHTML;
332 tmpl = tmpl.format(f_path, line);
332 tmpl = tmpl.format(f_path, line);
333 var form = tableTr('comment-form-inline',tmpl)
333 var form = tableTr('comment-form-inline',tmpl)
334
334
335 // create event for hide button
335 // create event for hide button
336 form = new YAHOO.util.Element(form);
336 form = new YAHOO.util.Element(form);
337 var form_hide_button = new YAHOO.util.Element(form.getElementsByClassName('hide-inline-form')[0]);
337 var form_hide_button = new YAHOO.util.Element(form.getElementsByClassName('hide-inline-form')[0]);
338 form_hide_button.on('click', function(e) {
338 form_hide_button.on('click', function(e) {
339 var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode;
339 var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode;
340 removeInlineForm(newtr);
340 removeInlineForm(newtr);
341 YUD.removeClass(parent_tr, 'form-open');
341 YUD.removeClass(parent_tr, 'form-open');
342 });
342 });
343 return form
343 return form
344 };
344 };
345 var injectInlineForm = function(tr){
345 var injectInlineForm = function(tr){
346 if(YUD.hasClass(tr,'form-open') || YUD.hasClass(tr,'context')){
346 if(YUD.hasClass(tr,'form-open') || YUD.hasClass(tr,'context')){
347 return
347 return
348 }
348 }
349 YUD.addClass(tr,'form-open');
349 YUD.addClass(tr,'form-open');
350 var node = tr.parentNode.parentNode.parentNode.getElementsByClassName('full_f_path')[0];
350 var node = tr.parentNode.parentNode.parentNode.getElementsByClassName('full_f_path')[0];
351 var f_path = YUD.getAttribute(node,'path');
351 var f_path = YUD.getAttribute(node,'path');
352 var lineno = getLineNo(tr);
352 var lineno = getLineNo(tr);
353 var form = createInlineForm(tr, f_path, lineno);
353 var form = createInlineForm(tr, f_path, lineno);
354 var target_tr = tr;
354 var target_tr = tr;
355 if(YUD.hasClass(YUD.getNextSibling(tr),'inline-comments')){
355 if(YUD.hasClass(YUD.getNextSibling(tr),'inline-comments')){
356 target_tr = YUD.getNextSibling(tr);
356 target_tr = YUD.getNextSibling(tr);
357 }
357 }
358 YUD.insertAfter(form,target_tr);
358 YUD.insertAfter(form,target_tr);
359 YUD.get('text_'+lineno).focus();
359 YUD.get('text_'+lineno).focus();
360 tooltip_activate();
360 };
361 };
361
362
362 var createInlineAddButton = function(tr,label){
363 var createInlineAddButton = function(tr,label){
363 var html = '<div class="add-comment"><span class="ui-btn">{0}</span></div>'.format(label);
364 var html = '<div class="add-comment"><span class="ui-btn">{0}</span></div>'.format(label);
364
365
365 var add = new YAHOO.util.Element(tableTr('inline-comments-button',html));
366 var add = new YAHOO.util.Element(tableTr('inline-comments-button',html));
366 add.on('click', function(e) {
367 add.on('click', function(e) {
367 injectInlineForm(tr);
368 injectInlineForm(tr);
368 });
369 });
369 return add;
370 return add;
370 };
371 };
371
372
372 var getLineNo = function(tr) {
373 var getLineNo = function(tr) {
373 var line;
374 var line;
374 var o = tr.children[0].id.split('_');
375 var o = tr.children[0].id.split('_');
375 var n = tr.children[1].id.split('_');
376 var n = tr.children[1].id.split('_');
376
377
377 if (n.length >= 2) {
378 if (n.length >= 2) {
378 line = n[n.length-1];
379 line = n[n.length-1];
379 } else if (o.length >= 2) {
380 } else if (o.length >= 2) {
380 line = o[o.length-1];
381 line = o[o.length-1];
381 }
382 }
382
383
383 return line
384 return line
384 };
385 };
385
386
386
387
387 var fileBrowserListeners = function(current_url, node_list_url, url_base,
388 var fileBrowserListeners = function(current_url, node_list_url, url_base,
388 truncated_lbl, nomatch_lbl){
389 truncated_lbl, nomatch_lbl){
389 var current_url_branch = +"?branch=__BRANCH__";
390 var current_url_branch = +"?branch=__BRANCH__";
390 var url = url_base;
391 var url = url_base;
391 var node_url = node_list_url;
392 var node_url = node_list_url;
392
393
393 YUE.on('stay_at_branch','click',function(e){
394 YUE.on('stay_at_branch','click',function(e){
394 if(e.target.checked){
395 if(e.target.checked){
395 var uri = current_url_branch;
396 var uri = current_url_branch;
396 uri = uri.replace('__BRANCH__',e.target.value);
397 uri = uri.replace('__BRANCH__',e.target.value);
397 window.location = uri;
398 window.location = uri;
398 }
399 }
399 else{
400 else{
400 window.location = current_url;
401 window.location = current_url;
401 }
402 }
402 })
403 })
403
404
404 var n_filter = YUD.get('node_filter');
405 var n_filter = YUD.get('node_filter');
405 var F = YAHOO.namespace('node_filter');
406 var F = YAHOO.namespace('node_filter');
406
407
407 F.filterTimeout = null;
408 F.filterTimeout = null;
408 var nodes = null;
409 var nodes = null;
409
410
410 F.initFilter = function(){
411 F.initFilter = function(){
411 YUD.setStyle('node_filter_box_loading','display','');
412 YUD.setStyle('node_filter_box_loading','display','');
412 YUD.setStyle('search_activate_id','display','none');
413 YUD.setStyle('search_activate_id','display','none');
413 YUD.setStyle('add_node_id','display','none');
414 YUD.setStyle('add_node_id','display','none');
414 YUC.initHeader('X-PARTIAL-XHR',true);
415 YUC.initHeader('X-PARTIAL-XHR',true);
415 YUC.asyncRequest('GET',url,{
416 YUC.asyncRequest('GET',url,{
416 success:function(o){
417 success:function(o){
417 nodes = JSON.parse(o.responseText);
418 nodes = JSON.parse(o.responseText);
418 YUD.setStyle('node_filter_box_loading','display','none');
419 YUD.setStyle('node_filter_box_loading','display','none');
419 YUD.setStyle('node_filter_box','display','');
420 YUD.setStyle('node_filter_box','display','');
420 },
421 },
421 failure:function(o){
422 failure:function(o){
422 console.log('failed to load');
423 console.log('failed to load');
423 }
424 }
424 },null);
425 },null);
425 }
426 }
426
427
427 F.updateFilter = function(e) {
428 F.updateFilter = function(e) {
428
429
429 return function(){
430 return function(){
430 // Reset timeout
431 // Reset timeout
431 F.filterTimeout = null;
432 F.filterTimeout = null;
432 var query = e.target.value;
433 var query = e.target.value;
433 var match = [];
434 var match = [];
434 var matches = 0;
435 var matches = 0;
435 var matches_max = 20;
436 var matches_max = 20;
436 if (query != ""){
437 if (query != ""){
437 for(var i=0;i<nodes.length;i++){
438 for(var i=0;i<nodes.length;i++){
438 var pos = nodes[i].toLowerCase().indexOf(query)
439 var pos = nodes[i].toLowerCase().indexOf(query)
439 if(query && pos != -1){
440 if(query && pos != -1){
440
441
441 matches++
442 matches++
442 //show only certain amount to not kill browser
443 //show only certain amount to not kill browser
443 if (matches > matches_max){
444 if (matches > matches_max){
444 break;
445 break;
445 }
446 }
446
447
447 var n = nodes[i];
448 var n = nodes[i];
448 var n_hl = n.substring(0,pos)
449 var n_hl = n.substring(0,pos)
449 +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
450 +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
450 +n.substring(pos+query.length)
451 +n.substring(pos+query.length)
451 match.push('<tr><td><a class="browser-file" href="{0}">{1}</a></td><td colspan="5"></td></tr>'.format(node_url.replace('__FPATH__',n),n_hl));
452 match.push('<tr><td><a class="browser-file" href="{0}">{1}</a></td><td colspan="5"></td></tr>'.format(node_url.replace('__FPATH__',n),n_hl));
452 }
453 }
453 if(match.length >= matches_max){
454 if(match.length >= matches_max){
454 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(truncated_lbl));
455 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(truncated_lbl));
455 }
456 }
456
457
457 }
458 }
458 }
459 }
459 if(query != ""){
460 if(query != ""){
460 YUD.setStyle('tbody','display','none');
461 YUD.setStyle('tbody','display','none');
461 YUD.setStyle('tbody_filtered','display','');
462 YUD.setStyle('tbody_filtered','display','');
462
463
463 if (match.length==0){
464 if (match.length==0){
464 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(nomatch_lbl));
465 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(nomatch_lbl));
465 }
466 }
466
467
467 YUD.get('tbody_filtered').innerHTML = match.join("");
468 YUD.get('tbody_filtered').innerHTML = match.join("");
468 }
469 }
469 else{
470 else{
470 YUD.setStyle('tbody','display','');
471 YUD.setStyle('tbody','display','');
471 YUD.setStyle('tbody_filtered','display','none');
472 YUD.setStyle('tbody_filtered','display','none');
472 }
473 }
473
474
474 }
475 }
475 };
476 };
476
477
477 YUE.on(YUD.get('filter_activate'),'click',function(){
478 YUE.on(YUD.get('filter_activate'),'click',function(){
478 F.initFilter();
479 F.initFilter();
479 })
480 })
480 YUE.on(n_filter,'click',function(){
481 YUE.on(n_filter,'click',function(){
481 n_filter.value = '';
482 n_filter.value = '';
482 });
483 });
483 YUE.on(n_filter,'keyup',function(e){
484 YUE.on(n_filter,'keyup',function(e){
484 clearTimeout(F.filterTimeout);
485 clearTimeout(F.filterTimeout);
485 F.filterTimeout = setTimeout(F.updateFilter(e),600);
486 F.filterTimeout = setTimeout(F.updateFilter(e),600);
486 });
487 });
487 };
488 };
488
489
489
490
490 var initCodeMirror = function(textAreadId,resetUrl){
491 var initCodeMirror = function(textAreadId,resetUrl){
491 var myCodeMirror = CodeMirror.fromTextArea(YUD.get(textAreadId),{
492 var myCodeMirror = CodeMirror.fromTextArea(YUD.get(textAreadId),{
492 mode: "null",
493 mode: "null",
493 lineNumbers:true
494 lineNumbers:true
494 });
495 });
495 YUE.on('reset','click',function(e){
496 YUE.on('reset','click',function(e){
496 window.location=resetUrl
497 window.location=resetUrl
497 });
498 });
498
499
499 YUE.on('file_enable','click',function(){
500 YUE.on('file_enable','click',function(){
500 YUD.setStyle('editor_container','display','');
501 YUD.setStyle('editor_container','display','');
501 YUD.setStyle('upload_file_container','display','none');
502 YUD.setStyle('upload_file_container','display','none');
502 YUD.setStyle('filename_container','display','');
503 YUD.setStyle('filename_container','display','');
503 });
504 });
504
505
505 YUE.on('upload_file_enable','click',function(){
506 YUE.on('upload_file_enable','click',function(){
506 YUD.setStyle('editor_container','display','none');
507 YUD.setStyle('editor_container','display','none');
507 YUD.setStyle('upload_file_container','display','');
508 YUD.setStyle('upload_file_container','display','');
508 YUD.setStyle('filename_container','display','none');
509 YUD.setStyle('filename_container','display','none');
509 });
510 });
510 };
511 };
511
512
512
513
513
514
514 var getIdentNode = function(n){
515 var getIdentNode = function(n){
515 //iterate thru nodes untill matched interesting node !
516 //iterate thru nodes untill matched interesting node !
516
517
517 if (typeof n == 'undefined'){
518 if (typeof n == 'undefined'){
518 return -1
519 return -1
519 }
520 }
520
521
521 if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
522 if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
522 return n
523 return n
523 }
524 }
524 else{
525 else{
525 return getIdentNode(n.parentNode);
526 return getIdentNode(n.parentNode);
526 }
527 }
527 };
528 };
528
529
529 var getSelectionLink = function(selection_link_label) {
530 var getSelectionLink = function(selection_link_label) {
530 return function(){
531 return function(){
531 //get selection from start/to nodes
532 //get selection from start/to nodes
532 if (typeof window.getSelection != "undefined") {
533 if (typeof window.getSelection != "undefined") {
533 s = window.getSelection();
534 s = window.getSelection();
534
535
535 from = getIdentNode(s.anchorNode);
536 from = getIdentNode(s.anchorNode);
536 till = getIdentNode(s.focusNode);
537 till = getIdentNode(s.focusNode);
537
538
538 f_int = parseInt(from.id.replace('L',''));
539 f_int = parseInt(from.id.replace('L',''));
539 t_int = parseInt(till.id.replace('L',''));
540 t_int = parseInt(till.id.replace('L',''));
540
541
541 if (f_int > t_int){
542 if (f_int > t_int){
542 //highlight from bottom
543 //highlight from bottom
543 offset = -35;
544 offset = -35;
544 ranges = [t_int,f_int];
545 ranges = [t_int,f_int];
545
546
546 }
547 }
547 else{
548 else{
548 //highligth from top
549 //highligth from top
549 offset = 35;
550 offset = 35;
550 ranges = [f_int,t_int];
551 ranges = [f_int,t_int];
551 }
552 }
552
553
553 if (ranges[0] != ranges[1]){
554 if (ranges[0] != ranges[1]){
554 if(YUD.get('linktt') == null){
555 if(YUD.get('linktt') == null){
555 hl_div = document.createElement('div');
556 hl_div = document.createElement('div');
556 hl_div.id = 'linktt';
557 hl_div.id = 'linktt';
557 }
558 }
558 anchor = '#L'+ranges[0]+'-'+ranges[1];
559 anchor = '#L'+ranges[0]+'-'+ranges[1];
559 hl_div.innerHTML = '';
560 hl_div.innerHTML = '';
560 l = document.createElement('a');
561 l = document.createElement('a');
561 l.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
562 l.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
562 l.innerHTML = selection_link_label;
563 l.innerHTML = selection_link_label;
563 hl_div.appendChild(l);
564 hl_div.appendChild(l);
564
565
565 YUD.get('body').appendChild(hl_div);
566 YUD.get('body').appendChild(hl_div);
566
567
567 xy = YUD.getXY(till.id);
568 xy = YUD.getXY(till.id);
568
569
569 YUD.addClass('linktt','yui-tt');
570 YUD.addClass('linktt','yui-tt');
570 YUD.setStyle('linktt','top',xy[1]+offset+'px');
571 YUD.setStyle('linktt','top',xy[1]+offset+'px');
571 YUD.setStyle('linktt','left',xy[0]+'px');
572 YUD.setStyle('linktt','left',xy[0]+'px');
572 YUD.setStyle('linktt','visibility','visible');
573 YUD.setStyle('linktt','visibility','visible');
573 }
574 }
574 else{
575 else{
575 YUD.setStyle('linktt','visibility','hidden');
576 YUD.setStyle('linktt','visibility','hidden');
576 }
577 }
577 }
578 }
578 }
579 }
579 };
580 };
580
581
581 var deleteNotification = function(url, notification_id,callbacks){
582 var deleteNotification = function(url, notification_id,callbacks){
582 var callback = {
583 var callback = {
583 success:function(o){
584 success:function(o){
584 var obj = YUD.get(String("notification_"+notification_id));
585 var obj = YUD.get(String("notification_"+notification_id));
585 if(obj.parentNode !== undefined){
586 if(obj.parentNode !== undefined){
586 obj.parentNode.removeChild(obj);
587 obj.parentNode.removeChild(obj);
587 }
588 }
588 _run_callbacks(callbacks);
589 _run_callbacks(callbacks);
589 },
590 },
590 failure:function(o){
591 failure:function(o){
591 alert("error");
592 alert("error");
592 },
593 },
593 };
594 };
594 var postData = '_method=delete';
595 var postData = '_method=delete';
595 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
596 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
596 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
597 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
597 callback, postData);
598 callback, postData);
598 };
599 };
@@ -1,153 +1,152 b''
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">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
4 <head>
5 <title>${self.title()}</title>
5 <title>${self.title()}</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 <meta name="robots" content="index, nofollow"/>
7 <meta name="robots" content="index, nofollow"/>
8 <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
8 <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
9
9
10 ## CSS ###
10 ## CSS ###
11 <%def name="css()">
11 <%def name="css()">
12 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen"/>
12 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen"/>
13 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css')}"/>
13 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css')}"/>
14 <link rel="stylesheet" type="text/css" href="${h.url('/css/diff.css')}"/>
15 ## EXTRA FOR CSS
14 ## EXTRA FOR CSS
16 ${self.css_extra()}
15 ${self.css_extra()}
17 </%def>
16 </%def>
18 <%def name="css_extra()">
17 <%def name="css_extra()">
19 </%def>
18 </%def>
20
19
21 ${self.css()}
20 ${self.css()}
22
21
23 %if c.ga_code:
22 %if c.ga_code:
24 <!-- Analytics -->
23 <!-- Analytics -->
25 <script type="text/javascript">
24 <script type="text/javascript">
26 var _gaq = _gaq || [];
25 var _gaq = _gaq || [];
27 _gaq.push(['_setAccount', '${c.ga_code}']);
26 _gaq.push(['_setAccount', '${c.ga_code}']);
28 _gaq.push(['_trackPageview']);
27 _gaq.push(['_trackPageview']);
29
28
30 (function() {
29 (function() {
31 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
30 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
32 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
31 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
33 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
32 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
34 })();
33 })();
35 </script>
34 </script>
36 %endif
35 %endif
37
36
38 ## JAVASCRIPT ##
37 ## JAVASCRIPT ##
39 <%def name="js()">
38 <%def name="js()">
40 <script type="text/javascript" src="${h.url('/js/yui.2.9.js')}"></script>
39 <script type="text/javascript" src="${h.url('/js/yui.2.9.js')}"></script>
41 <!--[if IE]>
40 <!--[if IE]>
42 <script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script>
41 <script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script>
43 <![endif]-->
42 <![endif]-->
44 <script type="text/javascript" src="${h.url('/js/yui.flot.js')}"></script>
43 <script type="text/javascript" src="${h.url('/js/yui.flot.js')}"></script>
45 <script type="text/javascript" src="${h.url('/js/rhodecode.js')}"></script>
44 <script type="text/javascript" src="${h.url('/js/rhodecode.js')}"></script>
46 ## EXTRA FOR JS
45 ## EXTRA FOR JS
47 ${self.js_extra()}
46 ${self.js_extra()}
48
47
49 <script type="text/javascript">
48 <script type="text/javascript">
50 var follow_base_url = "${h.url('toggle_following')}";
49 var follow_base_url = "${h.url('toggle_following')}";
51 var stop_follow_text = "${_('Stop following this repository')}";
50 var stop_follow_text = "${_('Stop following this repository')}";
52 var start_follow_text = "${_('Start following this repository')}";
51 var start_follow_text = "${_('Start following this repository')}";
53
52
54
53
55 var onSuccessFollow = function(target){
54 var onSuccessFollow = function(target){
56 var f = YUD.get(target.id);
55 var f = YUD.get(target.id);
57 var f_cnt = YUD.get('current_followers_count');
56 var f_cnt = YUD.get('current_followers_count');
58
57
59 if(f.getAttribute('class')=='follow'){
58 if(f.getAttribute('class')=='follow'){
60 f.setAttribute('class','following');
59 f.setAttribute('class','following');
61 f.setAttribute('title',stop_follow_text);
60 f.setAttribute('title',stop_follow_text);
62
61
63 if(f_cnt){
62 if(f_cnt){
64 var cnt = Number(f_cnt.innerHTML)+1;
63 var cnt = Number(f_cnt.innerHTML)+1;
65 f_cnt.innerHTML = cnt;
64 f_cnt.innerHTML = cnt;
66 }
65 }
67 }
66 }
68 else{
67 else{
69 f.setAttribute('class','follow');
68 f.setAttribute('class','follow');
70 f.setAttribute('title',start_follow_text);
69 f.setAttribute('title',start_follow_text);
71 if(f_cnt){
70 if(f_cnt){
72 var cnt = Number(f_cnt.innerHTML)+1;
71 var cnt = Number(f_cnt.innerHTML)+1;
73 f_cnt.innerHTML = cnt;
72 f_cnt.innerHTML = cnt;
74 }
73 }
75 }
74 }
76 }
75 }
77
76
78 var toggleFollowingUser = function(target,fallows_user_id,token,user_id){
77 var toggleFollowingUser = function(target,fallows_user_id,token,user_id){
79 args = 'follows_user_id='+fallows_user_id;
78 args = 'follows_user_id='+fallows_user_id;
80 args+= '&amp;auth_token='+token;
79 args+= '&amp;auth_token='+token;
81 if(user_id != undefined){
80 if(user_id != undefined){
82 args+="&amp;user_id="+user_id;
81 args+="&amp;user_id="+user_id;
83 }
82 }
84 YUC.asyncRequest('POST',follow_base_url,{
83 YUC.asyncRequest('POST',follow_base_url,{
85 success:function(o){
84 success:function(o){
86 onSuccessFollow(target);
85 onSuccessFollow(target);
87 }
86 }
88 },args);
87 },args);
89 return false;
88 return false;
90 }
89 }
91
90
92 var toggleFollowingRepo = function(target,fallows_repo_id,token,user_id){
91 var toggleFollowingRepo = function(target,fallows_repo_id,token,user_id){
93
92
94 args = 'follows_repo_id='+fallows_repo_id;
93 args = 'follows_repo_id='+fallows_repo_id;
95 args+= '&amp;auth_token='+token;
94 args+= '&amp;auth_token='+token;
96 if(user_id != undefined){
95 if(user_id != undefined){
97 args+="&amp;user_id="+user_id;
96 args+="&amp;user_id="+user_id;
98 }
97 }
99 YUC.asyncRequest('POST',follow_base_url,{
98 YUC.asyncRequest('POST',follow_base_url,{
100 success:function(o){
99 success:function(o){
101 onSuccessFollow(target);
100 onSuccessFollow(target);
102 }
101 }
103 },args);
102 },args);
104 return false;
103 return false;
105 }
104 }
106 YUE.onDOMReady(function(){
105 YUE.onDOMReady(function(){
107 tooltip_activate();
106 tooltip_activate();
108 show_more_event();
107 show_more_event();
109
108
110 YUE.on('quick_login_link','click',function(e){
109 YUE.on('quick_login_link','click',function(e){
111 // make sure we don't redirect
110 // make sure we don't redirect
112 YUE.preventDefault(e);
111 YUE.preventDefault(e);
113
112
114 if(YUD.hasClass('quick_login_link','enabled')){
113 if(YUD.hasClass('quick_login_link','enabled')){
115 YUD.setStyle('quick_login','display','none');
114 YUD.setStyle('quick_login','display','none');
116 YUD.removeClass('quick_login_link','enabled');
115 YUD.removeClass('quick_login_link','enabled');
117 }
116 }
118 else{
117 else{
119 YUD.setStyle('quick_login','display','');
118 YUD.setStyle('quick_login','display','');
120 YUD.addClass('quick_login_link','enabled');
119 YUD.addClass('quick_login_link','enabled');
121 YUD.get('username').focus();
120 YUD.get('username').focus();
122 }
121 }
123 });
122 });
124
123
125 YUE.on(YUQ('.quick_repo_menu'),'click',function(e){
124 YUE.on(YUQ('.quick_repo_menu'),'click',function(e){
126 var menu = e.currentTarget.firstElementChild;
125 var menu = e.currentTarget.firstElementChild;
127 if(YUD.hasClass(menu,'hidden')){
126 if(YUD.hasClass(menu,'hidden')){
128 YUD.addClass(e.currentTarget,'active');
127 YUD.addClass(e.currentTarget,'active');
129 YUD.removeClass(menu,'hidden');
128 YUD.removeClass(menu,'hidden');
130 }else{
129 }else{
131 YUD.removeClass(e.currentTarget,'active');
130 YUD.removeClass(e.currentTarget,'active');
132 YUD.addClass(menu,'hidden');
131 YUD.addClass(menu,'hidden');
133 }
132 }
134 })
133 })
135
134
136 YUE.on(window,'scroll',function(){
135 YUE.on(window,'scroll',function(){
137 if(YUD.getDocumentScrollTop() > 45){
136 if(YUD.getDocumentScrollTop() > 45){
138 YUD.addClass('header-inner','hover');
137 YUD.addClass('header-inner','hover');
139 }
138 }
140 else{
139 else{
141 YUD.removeClass('header-inner','hover');
140 YUD.removeClass('header-inner','hover');
142 }
141 }
143 })
142 })
144 })
143 })
145 </script>
144 </script>
146 </%def>
145 </%def>
147 <%def name="js_extra()"></%def>
146 <%def name="js_extra()"></%def>
148 ${self.js()}
147 ${self.js()}
149 </head>
148 </head>
150 <body id="body">
149 <body id="body">
151 ${next.body()}
150 ${next.body()}
152 </body>
151 </body>
153 </html> No newline at end of file
152 </html>
@@ -1,252 +1,257 b''
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} ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} - ${c.rhodecode_name}
6 ${c.repo_name} ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} - ${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 ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}
14 ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}
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="fid(raw_id,path)" filter="strip">
21 <%def name="fid(raw_id,path)" filter="strip">
22 <%
22 <%
23 return 'C-%s-%s' % (h.short_id(raw_id),h.safeid(h.safe_unicode(path)))
23 return 'C-%s-%s' % (h.short_id(raw_id),h.safeid(h.safe_unicode(path)))
24 %>
24 %>
25 </%def>
25 </%def>
26
26
27 <%def name="main()">
27 <%def name="main()">
28 <div class="box">
28 <div class="box">
29 <!-- box / title -->
29 <!-- box / title -->
30 <div class="title">
30 <div class="title">
31 ${self.breadcrumbs()}
31 ${self.breadcrumbs()}
32 </div>
32 </div>
33 <div class="table">
33 <div class="table">
34 <div class="diffblock">
34 <div class="diffblock">
35 <div class="code-header">
35 <div class="code-header">
36 <div>
36 <div>
37 <span>${h.link_to(_('raw diff'),
37 <span>${h.link_to(_('raw diff'),
38 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show'))}</span>
38 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show'))}</span>
39 &raquo; <span>${h.link_to(_('download diff'),
39 &raquo; <span>${h.link_to(_('download diff'),
40 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download'))}</span>
40 h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download'))}</span>
41 <div class="comments-number" style="float:right;padding-right:5px">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
41 <div class="comments-number" style="float:right;padding-right:5px">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
42 </div>
42 </div>
43 </div>
43 </div>
44 </div>
44 </div>
45 <div id="changeset_content">
45 <div id="changeset_content">
46 <div class="container">
46 <div class="container">
47 <div class="left">
47 <div class="left">
48 <div class="date">${_('commit')} ${c.changeset.revision}: ${h.short_id(c.changeset.raw_id)}@${c.changeset.date}</div>
48 <div class="date">${_('commit')} ${c.changeset.revision}: ${h.short_id(c.changeset.raw_id)}@${c.changeset.date}</div>
49 <div class="author">
49 <div class="author">
50 <div class="gravatar">
50 <div class="gravatar">
51 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
51 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
52 </div>
52 </div>
53 <span>${h.person(c.changeset.author)}</span><br/>
53 <span>${h.person(c.changeset.author)}</span><br/>
54 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
54 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
55 </div>
55 </div>
56 <div class="message">${h.link_to(h.wrap_paragraphs(c.changeset.message),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</div>
56 <div class="message">${h.link_to(h.wrap_paragraphs(c.changeset.message),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</div>
57 </div>
57 </div>
58 <div class="right">
58 <div class="right">
59 <div class="changes">
59 <div class="changes">
60 % if len(c.changeset.affected_files) <= c.affected_files_cut_off:
60 % if len(c.changeset.affected_files) <= c.affected_files_cut_off:
61 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
61 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
62 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
62 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
63 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
63 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
64 % else:
64 % else:
65 <span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
65 <span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
66 <span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
66 <span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
67 <span class="added" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
67 <span class="added" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
68 % endif
68 % endif
69 </div>
69 </div>
70 %if len(c.changeset.parents)>1:
70 %if len(c.changeset.parents)>1:
71 <div class="merge">
71 <div class="merge">
72 ${_('merge')}<img alt="merge" src="${h.url('/images/icons/arrow_join.png')}"/>
72 ${_('merge')}<img alt="merge" src="${h.url('/images/icons/arrow_join.png')}"/>
73 </div>
73 </div>
74 %endif
74 %endif
75
75
76 %if c.changeset.parents:
76 %if c.changeset.parents:
77 %for p_cs in reversed(c.changeset.parents):
77 %for p_cs in reversed(c.changeset.parents):
78 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(h.short_id(p_cs.raw_id),
78 <div class="parent">${_('Parent')} ${p_cs.revision}: ${h.link_to(h.short_id(p_cs.raw_id),
79 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
79 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}
80 </div>
80 </div>
81 %endfor
81 %endfor
82 %else:
82 %else:
83 <div class="parent">${_('No parents')}</div>
83 <div class="parent">${_('No parents')}</div>
84 %endif
84 %endif
85 <span class="logtags">
85 <span class="logtags">
86 <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
86 <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
87 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
87 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
88 %for tag in c.changeset.tags:
88 %for tag in c.changeset.tags:
89 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
89 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
90 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
90 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
91 %endfor
91 %endfor
92 </span>
92 </span>
93 </div>
93 </div>
94 </div>
94 </div>
95 <span style="font-size:1.1em;font-weight: bold">
95 <span style="font-size:1.1em;font-weight: bold">
96 ${_('%s files affected with %s additions and %s deletions.') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
96 ${_('%s files affected with %s additions and %s deletions.') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
97 </span>
97 </span>
98 <div class="cs_files">
98 <div class="cs_files">
99 %for change,filenode,diff,cs1,cs2,stat in c.changes:
99 %for change,filenode,diff,cs1,cs2,stat in c.changes:
100 <div class="cs_${change}">
100 <div class="cs_${change}">
101 <div class="node">
101 <div class="node">
102 %if change != 'removed':
102 %if change != 'removed':
103 ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=self.fid(filenode.changeset.raw_id,filenode.path)))}
103 ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=self.fid(filenode.changeset.raw_id,filenode.path)))}
104 %else:
104 %else:
105 ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=self.fid('',filenode.path)))}
105 ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=self.fid('',filenode.path)))}
106 %endif
106 %endif
107 </div>
107 </div>
108 <div class="changes">${h.fancy_file_stats(stat)}</div>
108 <div class="changes">${h.fancy_file_stats(stat)}</div>
109 </div>
109 </div>
110 %endfor
110 %endfor
111 % if c.cut_off:
111 % if c.cut_off:
112 ${_('Changeset was too big and was cut off...')}
112 ${_('Changeset was too big and was cut off...')}
113 % endif
113 % endif
114 </div>
114 </div>
115 </div>
115 </div>
116
116
117 </div>
117 </div>
118
118
119 %for change,filenode,diff,cs1,cs2,stat in c.changes:
119 %for change,filenode,diff,cs1,cs2,stat in c.changes:
120 %if change !='removed':
120 %if change !='removed':
121 <div style="clear:both;height:10px"></div>
121 <div style="clear:both;height:10px"></div>
122 <div class="diffblock margined comm" id="${self.fid(filenode.changeset.raw_id,filenode.path)}">
122 <div class="diffblock margined comm" id="${self.fid(filenode.changeset.raw_id,filenode.path)}">
123 <div class="code-header">
123 <div class="code-header">
124 <div class="changeset_header">
124 <div class="changeset_header">
125 <span class="changeset_file">
125 <span class="changeset_file">
126 ${h.link_to_if(change!='removed',h.safe_unicode(filenode.path),h.url('files_home',repo_name=c.repo_name,
126 ${h.link_to_if(change!='removed',h.safe_unicode(filenode.path),h.url('files_home',repo_name=c.repo_name,
127 revision=filenode.changeset.raw_id,f_path=h.safe_unicode(filenode.path)))}
127 revision=filenode.changeset.raw_id,f_path=h.safe_unicode(filenode.path)))}
128 </span>
128 </span>
129 &raquo; <span>${h.link_to(_('diff'),
129 &raquo; <span>${h.link_to(_('diff'),
130 h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='diff'))}</span>
130 h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='diff'))}</span>
131 &raquo; <span>${h.link_to(_('raw diff'),
131 &raquo; <span>${h.link_to(_('raw diff'),
132 h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='raw'))}</span>
132 h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='raw'))}</span>
133 &raquo; <span>${h.link_to(_('download diff'),
133 &raquo; <span>${h.link_to(_('download diff'),
134 h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='download'))}</span>
134 h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='download'))}</span>
135 <span style="float:right">
135 <span style="float:right;margin-top:-3px">
136 <label>
136 <label>
137 ${_('show inline comments')}
137 ${_('show inline comments')}
138 ${h.checkbox('',checked="checked",class_="show-inline-comments",id_for=self.fid(filenode.changeset.raw_id,filenode.path))}
138 ${h.checkbox('',checked="checked",class_="show-inline-comments",id_for=self.fid(filenode.changeset.raw_id,filenode.path))}
139 </label>
139 </label>
140 </span>
140 </span>
141 </div>
141 </div>
142 </div>
142 </div>
143 <div class="code-body">
143 <div class="code-body">
144 <div class="full_f_path" path="${filenode.path}"></div>
144 <div class="full_f_path" path="${filenode.path}"></div>
145 %if diff:
145 %if diff:
146 ${diff|n}
146 ${diff|n}
147 %else:
147 %else:
148 ${_('No changes in this file')}
148 ${_('No changes in this file')}
149 %endif
149 %endif
150 </div>
150 </div>
151 </div>
151 </div>
152 %endif
152 %endif
153 %endfor
153 %endfor
154
154
155 <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
155 <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
156 ## template for inline comment form
156 ## template for inline comment form
157 ${comment.comment_inline_form()}
157 ${comment.comment_inline_form()}
158
158
159 <div class="comments">
159 <div class="comments">
160 <div class="comments-number">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
160 <div class="comments-number">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
161
161
162 %for path, lines in c.inline_comments:
162 %for path, lines in c.inline_comments:
163 <div style="display:none" class="inline-comment-placeholder" path="${path}" target_id="${self.fid(c.changeset.raw_id,path)}">
163 <div style="display:none" class="inline-comment-placeholder" path="${path}" target_id="${self.fid(c.changeset.raw_id,path)}">
164 % for line,comments in lines.iteritems():
164 % for line,comments in lines.iteritems():
165 <div class="inline-comment-placeholder-line" line="${line}" target_id="${h.safeid(h.safe_unicode(path))}">
165 <div class="inline-comment-placeholder-line" line="${line}" target_id="${h.safeid(h.safe_unicode(path))}">
166 %for co in comments:
166 %for co in comments:
167 ${comment.comment_block(co)}
167 ${comment.comment_block(co)}
168 %endfor
168 %endfor
169 </div>
169 </div>
170 %endfor
170 %endfor
171 </div>
171 </div>
172 %endfor
172 %endfor
173
173
174 %for co in c.comments:
174 %for co in c.comments:
175 ${comment.comment_block(co)}
175 ${comment.comment_block(co)}
176 %endfor
176 %endfor
177 %if c.rhodecode_user.username != 'default':
177 %if c.rhodecode_user.username != 'default':
178 <div class="comment-form">
178 <div class="comment-form">
179 ${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=c.changeset.raw_id))}
179 ${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=c.changeset.raw_id))}
180 <strong>${_('Leave a comment')}</strong>
180 <strong>${_('Leave a comment')}</strong>
181 <div class="clearfix">
181 <div class="clearfix">
182 <div class="comment-help">
182 <div class="comment-help">
183 ${_('Comments parsed using')} <a href="${h.url('rst_help')}">RST</a> ${_('syntax')}
183 ${_('Comments parsed using')} <a href="${h.url('rst_help')}">RST</a> ${_('syntax')}
184 ${_('with')} <span style="color:#003367" class="tooltip" title="${_('Use @username inside this text to send notification to this RhodeCode user')}">@mention</span> ${_('support')}
184 </div>
185 </div>
185 ${h.textarea('text')}
186 ${h.textarea('text')}
186 </div>
187 </div>
187 <div class="comment-button">
188 <div class="comment-button">
188 ${h.submit('save', _('Comment'), class_='ui-button')}
189 ${h.submit('save', _('Comment'), class_='ui-button')}
189 </div>
190 </div>
190 ${h.end_form()}
191 ${h.end_form()}
191 </div>
192 </div>
192 %endif
193 %endif
193 </div>
194 </div>
194 <script type="text/javascript">
195 <script type="text/javascript">
195 var deleteComment = function(comment_id){
196 var deleteComment = function(comment_id){
196
197
197 var url = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}".replace('__COMMENT_ID__',comment_id);
198 var url = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}".replace('__COMMENT_ID__',comment_id);
198 var postData = '_method=delete';
199 var postData = '_method=delete';
199 var success = function(o){
200 var success = function(o){
200 var n = YUD.get('comment-'+comment_id);
201 var n = YUD.get('comment-'+comment_id);
201 n.parentNode.removeChild(n);
202 n.parentNode.removeChild(n);
202 }
203 }
203 ajaxPOST(url,postData,success);
204 ajaxPOST(url,postData,success);
204 }
205 }
205
206
206 YUE.onDOMReady(function(){
207 YUE.onDOMReady(function(){
207
208
208 YUE.on(YUQ('.show-inline-comments'),'change',function(e){
209 YUE.on(YUQ('.show-inline-comments'),'change',function(e){
209 var show = 'none';
210 var show = 'none';
210 var target = e.currentTarget;
211 var target = e.currentTarget;
211 if(target.checked){
212 if(target.checked){
212 var show = ''
213 var show = ''
213 }
214 }
214 var boxid = YUD.getAttribute(target,'id_for');
215 var boxid = YUD.getAttribute(target,'id_for');
215 var comments = YUQ('#{0} .inline-comments'.format(boxid));
216 var comments = YUQ('#{0} .inline-comments'.format(boxid));
216 for(c in comments){
217 for(c in comments){
217 YUD.setStyle(comments[c],'display',show);
218 YUD.setStyle(comments[c],'display',show);
218 }
219 }
220 var btns = YUQ('#{0} .inline-comments-button'.format(boxid));
221 for(c in btns){
222 YUD.setStyle(btns[c],'display',show);
223 }
219 })
224 })
220
225
221 YUE.on(YUQ('.line'),'click',function(e){
226 YUE.on(YUQ('.line'),'click',function(e){
222 var tr = e.currentTarget;
227 var tr = e.currentTarget;
223 injectInlineForm(tr);
228 injectInlineForm(tr);
224 });
229 });
225
230
226 // inject comments into they proper positions
231 // inject comments into they proper positions
227 var file_comments = YUQ('.inline-comment-placeholder');
232 var file_comments = YUQ('.inline-comment-placeholder');
228
233
229 for (f in file_comments){
234 for (f in file_comments){
230 var box = file_comments[f];
235 var box = file_comments[f];
231 var inlines = box.children;
236 var inlines = box.children;
232 for(var i=0; i<inlines.length; i++){
237 for(var i=0; i<inlines.length; i++){
233 try{
238 try{
234
239
235 var inline = inlines[i];
240 var inline = inlines[i];
236 var lineno = YUD.getAttribute(inlines[i],'line');
241 var lineno = YUD.getAttribute(inlines[i],'line');
237 var lineid = "{0}_{1}".format(YUD.getAttribute(inline,'target_id'),lineno);
242 var lineid = "{0}_{1}".format(YUD.getAttribute(inline,'target_id'),lineno);
238 var target_line = YUD.get(lineid);
243 var target_line = YUD.get(lineid);
239
244
240 var add = createInlineAddButton(target_line.parentNode,'${_("add another comment")}');
245 var add = createInlineAddButton(target_line.parentNode,'${_("add another comment")}');
241 YUD.insertAfter(add,target_line.parentNode);
246 YUD.insertAfter(add,target_line.parentNode);
242
247
243 var comment = new YAHOO.util.Element(tableTr('inline-comments',inline.innerHTML))
248 var comment = new YAHOO.util.Element(tableTr('inline-comments',inline.innerHTML))
244 YUD.insertAfter(comment,target_line.parentNode);
249 YUD.insertAfter(comment,target_line.parentNode);
245 }catch(e){}
250 }catch(e){}
246 }
251 }
247 }
252 }
248 })
253 })
249
254
250 </script>
255 </script>
251 </div>
256 </div>
252 </%def>
257 </%def>
@@ -1,66 +1,70 b''
1 ##usage:
1 ##usage:
2 ## <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
2 ## <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
3 ## ${comment.comment_block(co)}
3 ## ${comment.comment_block(co)}
4 ##
4 ##
5 <%def name="comment_block(co)">
5 <%def name="comment_block(co)">
6 <div class="comment" id="comment-${co.comment_id}">
6 <div class="comment" id="comment-${co.comment_id}">
7 <div class="comment-wrapp">
7 <div class="meta">
8 <div class="meta">
8 <span class="user">
9 <span class="user">
9 <img src="${h.gravatar_url(co.author.email, 20)}" />
10 <img src="${h.gravatar_url(co.author.email, 20)}" />
10 ${co.author.username}
11 ${co.author.username}
11 </span>
12 </span>
12 <a href="${h.url.current(anchor='comment-%s' % co.comment_id)}"> ${_('commented on')} </a>
13 <a href="${h.url.current(anchor='comment-%s' % co.comment_id)}"> ${_('commented on')} </a>
13 ${h.short_id(co.revision)}
14 ${h.short_id(co.revision)}
14 %if co.f_path:
15 %if co.f_path:
15 ${_(' in file ')}
16 ${_(' in file ')}
16 ${co.f_path}:L ${co.line_no}
17 ${co.f_path}:L ${co.line_no}
17 %endif
18 %endif
18 <span class="date">
19 <span class="date">
19 ${h.age(co.modified_at)}
20 ${h.age(co.modified_at)}
20 </span>
21 </span>
21 </div>
22 </div>
22 <div class="text">
23 <div class="text">
23 %if h.HasPermissionAny('hg.admin', 'repository.admin')() or co.author.user_id == c.rhodecode_user.user_id:
24 %if h.HasPermissionAny('hg.admin', 'repository.admin')() or co.author.user_id == c.rhodecode_user.user_id:
24 <div class="buttons">
25 <div class="buttons">
25 <span onClick="deleteComment(${co.comment_id})" class="delete-comment ui-btn">${_('Delete')}</span>
26 <span onClick="deleteComment(${co.comment_id})" class="delete-comment ui-btn">${_('Delete')}</span>
26 </div>
27 </div>
27 %endif
28 %endif
28 ${h.rst_w_mentions(co.text)|n}
29 ${h.rst_w_mentions(co.text)|n}
29 </div>
30 </div>
31 </div>
30 </div>
32 </div>
31 </%def>
33 </%def>
32
34
33
35
34
36
35 <%def name="comment_inline_form()">
37 <%def name="comment_inline_form()">
36 <div id='comment-inline-form-template' style="display:none">
38 <div id='comment-inline-form-template' style="display:none">
37 <div class="comment-inline-form">
39 <div class="comment-inline-form">
38 %if c.rhodecode_user.username != 'default':
40 %if c.rhodecode_user.username != 'default':
39 ${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=c.changeset.raw_id))}
41 ${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=c.changeset.raw_id))}
40 <div class="clearfix">
42 <div class="clearfix">
41 <div class="comment-help">${_('Commenting on line')} {1} ${_('comments parsed using')}
43 <div class="comment-help">${_('Commenting on line')} {1}. ${_('Comments parsed using')}
42 <a href="${h.url('rst_help')}">RST</a> ${_('syntax')}</div>
44 <a href="${h.url('rst_help')}">RST</a> ${_('syntax')} ${_('with')}
43 <textarea id="text_{1}" name="text"></textarea>
45 <span style="color:#003367" class="tooltip" title="${_('Use @username inside this text to send notification to this RhodeCode user')}">@mention</span> ${_('support')}
46 </div>
47 <textarea id="text_{1}" name="text"></textarea>
44 </div>
48 </div>
45 <div class="comment-button">
49 <div class="comment-button">
46 <input type="hidden" name="f_path" value="{0}">
50 <input type="hidden" name="f_path" value="{0}">
47 <input type="hidden" name="line" value="{1}">
51 <input type="hidden" name="line" value="{1}">
48 ${h.submit('save', _('Comment'), class_='ui-btn')}
52 ${h.submit('save', _('Comment'), class_='ui-btn')}
49 ${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
53 ${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
50 </div>
54 </div>
51 ${h.end_form()}
55 ${h.end_form()}
52 %else:
56 %else:
53 ${h.form('')}
57 ${h.form('')}
54 <div class="clearfix">
58 <div class="clearfix">
55 <div class="comment-help">
59 <div class="comment-help">
56 ${'You need to be logged in to comment.'} <a href="${h.url('login_home',came_from=h.url.current())}">${_('Login now')}</a>
60 ${'You need to be logged in to comment.'} <a href="${h.url('login_home',came_from=h.url.current())}">${_('Login now')}</a>
57 </div>
61 </div>
58 </div>
62 </div>
59 <div class="comment-button">
63 <div class="comment-button">
60 ${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
64 ${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
61 </div>
65 </div>
62 ${h.end_form()}
66 ${h.end_form()}
63 %endif
67 %endif
64 </div>
68 </div>
65 </div>
69 </div>
66 </%def> No newline at end of file
70 </%def>
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now