##// END OF EJS Templates
UI fixes...
marcink -
r1865:37b3c324 beta
parent child Browse files
Show More
@@ -1,288 +1,288 b''
1 ################################################################################
1 ################################################################################
2 ################################################################################
2 ################################################################################
3 # RhodeCode - Pylons environment configuration #
3 # RhodeCode - Pylons environment configuration #
4 # #
4 # #
5 # The %(here)s variable will be replaced with the parent directory of this file#
5 # The %(here)s variable will be replaced with the parent directory of this file#
6 ################################################################################
6 ################################################################################
7
7
8 [DEFAULT]
8 [DEFAULT]
9 debug = true
9 debug = true
10 pdebug = false
10 pdebug = false
11 ################################################################################
11 ################################################################################
12 ## Uncomment and replace with the address which should receive ##
12 ## Uncomment and replace with the address which should receive ##
13 ## any error reports after application crash ##
13 ## any error reports after application crash ##
14 ## Additionally those settings will be used by RhodeCode mailing system ##
14 ## Additionally those settings will be used by RhodeCode mailing system ##
15 ################################################################################
15 ################################################################################
16 #email_to = admin@localhost
16 #email_to = admin@localhost
17 #error_email_from = paste_error@localhost
17 #error_email_from = paste_error@localhost
18 #app_email_from = rhodecode-noreply@localhost
18 #app_email_from = rhodecode-noreply@localhost
19 #error_message =
19 #error_message =
20 #email_prefix = [RhodeCode]
20 #email_prefix = [RhodeCode]
21
21
22 #smtp_server = mail.server.com
22 #smtp_server = mail.server.com
23 #smtp_username =
23 #smtp_username =
24 #smtp_password =
24 #smtp_password =
25 #smtp_port =
25 #smtp_port =
26 #smtp_use_tls = false
26 #smtp_use_tls = false
27 #smtp_use_ssl = true
27 #smtp_use_ssl = true
28 # Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
28 # Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
29 #smtp_auth =
29 #smtp_auth =
30
30
31 [server:main]
31 [server:main]
32 ##nr of threads to spawn
32 ##nr of threads to spawn
33 threadpool_workers = 5
33 threadpool_workers = 5
34
34
35 ##max request before thread respawn
35 ##max request before thread respawn
36 threadpool_max_requests = 10
36 threadpool_max_requests = 10
37
37
38 ##option to use threads of process
38 ##option to use threads of process
39 use_threadpool = true
39 use_threadpool = true
40
40
41 use = egg:Paste#http
41 use = egg:Paste#http
42 host = 0.0.0.0
42 host = 0.0.0.0
43 port = 5000
43 port = 5000
44
44
45 [app:main]
45 [app:main]
46 use = egg:rhodecode
46 use = egg:rhodecode
47 full_stack = true
47 full_stack = true
48 static_files = true
48 static_files = true
49 lang=en
49 lang=en
50 cache_dir = %(here)s/data
50 cache_dir = %(here)s/data
51 index_dir = %(here)s/data/index
51 index_dir = %(here)s/data/index
52 app_instance_uuid = develop
52 app_instance_uuid = develop
53 cut_off_limit = 256000
53 cut_off_limit = 256000
54 force_https = false
54 force_https = false
55 commit_parse_limit = 25
55 commit_parse_limit = 25
56 use_gravatar = true
56 use_gravatar = true
57 container_auth_enabled = false
57 container_auth_enabled = false
58 proxypass_auth_enabled = false
58 proxypass_auth_enabled = false
59
59
60 ## overwrite schema of clone url
60 ## overwrite schema of clone url
61 ## available vars:
61 ## available vars:
62 ## scheme - http/https
62 ## scheme - http/https
63 ## user - current user
63 ## user - current user
64 ## pass - password
64 ## pass - password
65 ## netloc - network location
65 ## netloc - network location
66 ## path - usually repo_name
66 ## path - usually repo_name
67
67
68 #clone_uri = {scheme}://{user}{pass}{netloc}{path}
68 #clone_uri = {scheme}://{user}{pass}{netloc}{path}
69
69
70 ## issue tracking mapping for commits messages
70 ## issue tracking mapping for commits messages
71 ## uncomment url_pat, issue_server, issue_prefix to enable
71 ## uncomment url_pat, issue_server, issue_prefix to enable
72
72
73
73
74 ## pattern to get the issues from commit messages
74 ## pattern to get the issues from commit messages
75 ## default one used here is #1234
75 ## default one used here is #1234
76
76
77 #url_pat = (?:^#|\s#)(\w+)
77 url_pat = (?:^#|\s#)(\w+)
78
78
79 ## server url to the issue, each {id} will be replaced with id
79 ## server url to the issue, each {id} will be replaced with id
80 ## fetched from the regex
80 ## fetched from the regex
81
81
82 #issue_server = https://myissueserver.com/issue/{id}
82 issue_server = https://myissueserver.com/issue/{id}
83
83
84 ## prefix to add to link to indicate it's an url
84 ## prefix to add to link to indicate it's an url
85 ## #314 will be replaced by <issue_prefix><id>
85 ## #314 will be replaced by <issue_prefix><id>
86
86
87 #issue_prefix = #
87 issue_prefix = #
88
88
89
89
90 ####################################
90 ####################################
91 ### CELERY CONFIG ####
91 ### CELERY CONFIG ####
92 ####################################
92 ####################################
93 use_celery = false
93 use_celery = false
94 broker.host = localhost
94 broker.host = localhost
95 broker.vhost = rabbitmqhost
95 broker.vhost = rabbitmqhost
96 broker.port = 5672
96 broker.port = 5672
97 broker.user = rabbitmq
97 broker.user = rabbitmq
98 broker.password = qweqwe
98 broker.password = qweqwe
99
99
100 celery.imports = rhodecode.lib.celerylib.tasks
100 celery.imports = rhodecode.lib.celerylib.tasks
101
101
102 celery.result.backend = amqp
102 celery.result.backend = amqp
103 celery.result.dburi = amqp://
103 celery.result.dburi = amqp://
104 celery.result.serialier = json
104 celery.result.serialier = json
105
105
106 #celery.send.task.error.emails = true
106 #celery.send.task.error.emails = true
107 #celery.amqp.task.result.expires = 18000
107 #celery.amqp.task.result.expires = 18000
108
108
109 celeryd.concurrency = 2
109 celeryd.concurrency = 2
110 #celeryd.log.file = celeryd.log
110 #celeryd.log.file = celeryd.log
111 celeryd.log.level = debug
111 celeryd.log.level = debug
112 celeryd.max.tasks.per.child = 1
112 celeryd.max.tasks.per.child = 1
113
113
114 #tasks will never be sent to the queue, but executed locally instead.
114 #tasks will never be sent to the queue, but executed locally instead.
115 celery.always.eager = false
115 celery.always.eager = false
116
116
117 ####################################
117 ####################################
118 ### BEAKER CACHE ####
118 ### BEAKER CACHE ####
119 ####################################
119 ####################################
120 beaker.cache.data_dir=%(here)s/data/cache/data
120 beaker.cache.data_dir=%(here)s/data/cache/data
121 beaker.cache.lock_dir=%(here)s/data/cache/lock
121 beaker.cache.lock_dir=%(here)s/data/cache/lock
122
122
123 beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
123 beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
124
124
125 beaker.cache.super_short_term.type=memory
125 beaker.cache.super_short_term.type=memory
126 beaker.cache.super_short_term.expire=10
126 beaker.cache.super_short_term.expire=10
127 beaker.cache.super_short_term.key_length = 256
127 beaker.cache.super_short_term.key_length = 256
128
128
129 beaker.cache.short_term.type=memory
129 beaker.cache.short_term.type=memory
130 beaker.cache.short_term.expire=60
130 beaker.cache.short_term.expire=60
131 beaker.cache.short_term.key_length = 256
131 beaker.cache.short_term.key_length = 256
132
132
133 beaker.cache.long_term.type=memory
133 beaker.cache.long_term.type=memory
134 beaker.cache.long_term.expire=36000
134 beaker.cache.long_term.expire=36000
135 beaker.cache.long_term.key_length = 256
135 beaker.cache.long_term.key_length = 256
136
136
137 beaker.cache.sql_cache_short.type=memory
137 beaker.cache.sql_cache_short.type=memory
138 beaker.cache.sql_cache_short.expire=10
138 beaker.cache.sql_cache_short.expire=10
139 beaker.cache.sql_cache_short.key_length = 256
139 beaker.cache.sql_cache_short.key_length = 256
140
140
141 beaker.cache.sql_cache_med.type=memory
141 beaker.cache.sql_cache_med.type=memory
142 beaker.cache.sql_cache_med.expire=360
142 beaker.cache.sql_cache_med.expire=360
143 beaker.cache.sql_cache_med.key_length = 256
143 beaker.cache.sql_cache_med.key_length = 256
144
144
145 beaker.cache.sql_cache_long.type=file
145 beaker.cache.sql_cache_long.type=file
146 beaker.cache.sql_cache_long.expire=3600
146 beaker.cache.sql_cache_long.expire=3600
147 beaker.cache.sql_cache_long.key_length = 256
147 beaker.cache.sql_cache_long.key_length = 256
148
148
149 ####################################
149 ####################################
150 ### BEAKER SESSION ####
150 ### BEAKER SESSION ####
151 ####################################
151 ####################################
152 ## Type of storage used for the session, current types are
152 ## Type of storage used for the session, current types are
153 ## dbm, file, memcached, database, and memory.
153 ## dbm, file, memcached, database, and memory.
154 ## The storage uses the Container API
154 ## The storage uses the Container API
155 ## that is also used by the cache system.
155 ## that is also used by the cache system.
156
156
157 ## db session example
157 ## db session example
158
158
159 #beaker.session.type = ext:database
159 #beaker.session.type = ext:database
160 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/rhodecode
160 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/rhodecode
161 #beaker.session.table_name = db_session
161 #beaker.session.table_name = db_session
162
162
163 ## encrypted cookie session, good for many instances
163 ## encrypted cookie session, good for many instances
164 #beaker.session.type = cookie
164 #beaker.session.type = cookie
165
165
166 beaker.session.type = file
166 beaker.session.type = file
167 beaker.session.key = rhodecode
167 beaker.session.key = rhodecode
168 #beaker.session.encrypt_key = g654dcno0-9873jhgfreyu
168 #beaker.session.encrypt_key = g654dcno0-9873jhgfreyu
169 #beaker.session.validate_key = 9712sds2212c--zxc123
169 #beaker.session.validate_key = 9712sds2212c--zxc123
170 beaker.session.timeout = 36000
170 beaker.session.timeout = 36000
171 beaker.session.httponly = true
171 beaker.session.httponly = true
172
172
173 ## uncomment for https secure cookie
173 ## uncomment for https secure cookie
174 beaker.session.secure = false
174 beaker.session.secure = false
175
175
176 ##auto save the session to not to use .save()
176 ##auto save the session to not to use .save()
177 beaker.session.auto = False
177 beaker.session.auto = False
178
178
179 ##true exire at browser close
179 ##true exire at browser close
180 #beaker.session.cookie_expires = 3600
180 #beaker.session.cookie_expires = 3600
181
181
182
182
183 ################################################################################
183 ################################################################################
184 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
184 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
185 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
185 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
186 ## execute malicious code after an exception is raised. ##
186 ## execute malicious code after an exception is raised. ##
187 ################################################################################
187 ################################################################################
188 #set debug = false
188 #set debug = false
189
189
190 ##################################
190 ##################################
191 ### LOGVIEW CONFIG ###
191 ### LOGVIEW CONFIG ###
192 ##################################
192 ##################################
193 logview.sqlalchemy = #faa
193 logview.sqlalchemy = #faa
194 logview.pylons.templating = #bfb
194 logview.pylons.templating = #bfb
195 logview.pylons.util = #eee
195 logview.pylons.util = #eee
196
196
197 #########################################################
197 #########################################################
198 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
198 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
199 #########################################################
199 #########################################################
200 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db
200 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db
201 sqlalchemy.db1.url = postgresql://postgres:qwe@localhost/rhodecode
201 sqlalchemy.db1.url = postgresql://postgres:qwe@localhost/rhodecode
202 sqlalchemy.db1.echo = false
202 sqlalchemy.db1.echo = false
203 sqlalchemy.db1.pool_recycle = 3600
203 sqlalchemy.db1.pool_recycle = 3600
204 sqlalchemy.convert_unicode = true
204 sqlalchemy.convert_unicode = true
205
205
206 ################################
206 ################################
207 ### LOGGING CONFIGURATION ####
207 ### LOGGING CONFIGURATION ####
208 ################################
208 ################################
209 [loggers]
209 [loggers]
210 keys = root, routes, rhodecode, sqlalchemy, beaker, templates
210 keys = root, routes, rhodecode, sqlalchemy, beaker, templates
211
211
212 [handlers]
212 [handlers]
213 keys = console, console_sql
213 keys = console, console_sql
214
214
215 [formatters]
215 [formatters]
216 keys = generic, color_formatter, color_formatter_sql
216 keys = generic, color_formatter, color_formatter_sql
217
217
218 #############
218 #############
219 ## LOGGERS ##
219 ## LOGGERS ##
220 #############
220 #############
221 [logger_root]
221 [logger_root]
222 level = NOTSET
222 level = NOTSET
223 handlers = console
223 handlers = console
224
224
225 [logger_routes]
225 [logger_routes]
226 level = DEBUG
226 level = DEBUG
227 handlers =
227 handlers =
228 qualname = routes.middleware
228 qualname = routes.middleware
229 # "level = DEBUG" logs the route matched and routing variables.
229 # "level = DEBUG" logs the route matched and routing variables.
230 propagate = 1
230 propagate = 1
231
231
232 [logger_beaker]
232 [logger_beaker]
233 level = DEBUG
233 level = DEBUG
234 handlers =
234 handlers =
235 qualname = beaker.container
235 qualname = beaker.container
236 propagate = 1
236 propagate = 1
237
237
238 [logger_templates]
238 [logger_templates]
239 level = INFO
239 level = INFO
240 handlers =
240 handlers =
241 qualname = pylons.templating
241 qualname = pylons.templating
242 propagate = 1
242 propagate = 1
243
243
244 [logger_rhodecode]
244 [logger_rhodecode]
245 level = DEBUG
245 level = DEBUG
246 handlers =
246 handlers =
247 qualname = rhodecode
247 qualname = rhodecode
248 propagate = 1
248 propagate = 1
249
249
250 [logger_sqlalchemy]
250 [logger_sqlalchemy]
251 level = INFO
251 level = INFO
252 handlers = console_sql
252 handlers = console_sql
253 qualname = sqlalchemy.engine
253 qualname = sqlalchemy.engine
254 propagate = 0
254 propagate = 0
255
255
256 ##############
256 ##############
257 ## HANDLERS ##
257 ## HANDLERS ##
258 ##############
258 ##############
259
259
260 [handler_console]
260 [handler_console]
261 class = StreamHandler
261 class = StreamHandler
262 args = (sys.stderr,)
262 args = (sys.stderr,)
263 level = DEBUG
263 level = DEBUG
264 formatter = color_formatter
264 formatter = color_formatter
265
265
266 [handler_console_sql]
266 [handler_console_sql]
267 class = StreamHandler
267 class = StreamHandler
268 args = (sys.stderr,)
268 args = (sys.stderr,)
269 level = DEBUG
269 level = DEBUG
270 formatter = color_formatter_sql
270 formatter = color_formatter_sql
271
271
272 ################
272 ################
273 ## FORMATTERS ##
273 ## FORMATTERS ##
274 ################
274 ################
275
275
276 [formatter_generic]
276 [formatter_generic]
277 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
277 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
278 datefmt = %Y-%m-%d %H:%M:%S
278 datefmt = %Y-%m-%d %H:%M:%S
279
279
280 [formatter_color_formatter]
280 [formatter_color_formatter]
281 class=rhodecode.lib.colored_formatter.ColorFormatter
281 class=rhodecode.lib.colored_formatter.ColorFormatter
282 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
282 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
283 datefmt = %Y-%m-%d %H:%M:%S
283 datefmt = %Y-%m-%d %H:%M:%S
284
284
285 [formatter_color_formatter_sql]
285 [formatter_color_formatter_sql]
286 class=rhodecode.lib.colored_formatter.ColorFormatterSql
286 class=rhodecode.lib.colored_formatter.ColorFormatterSql
287 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
287 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
288 datefmt = %Y-%m-%d %H:%M:%S
288 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,792 +1,792 b''
1 """Helper functions
1 """Helper functions
2
2
3 Consists of functions to typically be used within templates, but also
3 Consists of functions to typically be used within templates, but also
4 available to Controllers. This module is available to both as 'h'.
4 available to Controllers. This module is available to both as 'h'.
5 """
5 """
6 import random
6 import random
7 import hashlib
7 import hashlib
8 import StringIO
8 import StringIO
9 import urllib
9 import urllib
10 import math
10 import math
11 import logging
11 import logging
12
12
13 from datetime import datetime
13 from datetime import datetime
14 from pygments.formatters.html import HtmlFormatter
14 from pygments.formatters.html import HtmlFormatter
15 from pygments import highlight as code_highlight
15 from pygments import highlight as code_highlight
16 from pylons import url, request, config
16 from pylons import url, request, config
17 from pylons.i18n.translation import _, ungettext
17 from pylons.i18n.translation import _, ungettext
18 from hashlib import md5
18 from hashlib import md5
19
19
20 from webhelpers.html import literal, HTML, escape
20 from webhelpers.html import literal, HTML, escape
21 from webhelpers.html.tools import *
21 from webhelpers.html.tools import *
22 from webhelpers.html.builder import make_tag
22 from webhelpers.html.builder import make_tag
23 from webhelpers.html.tags import auto_discovery_link, checkbox, css_classes, \
23 from webhelpers.html.tags import auto_discovery_link, checkbox, css_classes, \
24 end_form, file, form, hidden, image, javascript_link, link_to, \
24 end_form, file, form, hidden, image, javascript_link, link_to, \
25 link_to_if, link_to_unless, ol, required_legend, select, stylesheet_link, \
25 link_to_if, link_to_unless, ol, required_legend, select, stylesheet_link, \
26 submit, text, password, textarea, title, ul, xml_declaration, radio
26 submit, text, password, textarea, title, ul, xml_declaration, radio
27 from webhelpers.html.tools import auto_link, button_to, highlight, \
27 from webhelpers.html.tools import auto_link, button_to, highlight, \
28 js_obfuscate, mail_to, strip_links, strip_tags, tag_re
28 js_obfuscate, mail_to, strip_links, strip_tags, tag_re
29 from webhelpers.number import format_byte_size, format_bit_size
29 from webhelpers.number import format_byte_size, format_bit_size
30 from webhelpers.pylonslib import Flash as _Flash
30 from webhelpers.pylonslib import Flash as _Flash
31 from webhelpers.pylonslib.secure_form import secure_form
31 from webhelpers.pylonslib.secure_form import secure_form
32 from webhelpers.text import chop_at, collapse, convert_accented_entities, \
32 from webhelpers.text import chop_at, collapse, convert_accented_entities, \
33 convert_misc_entities, lchop, plural, rchop, remove_formatting, \
33 convert_misc_entities, lchop, plural, rchop, remove_formatting, \
34 replace_whitespace, urlify, truncate, wrap_paragraphs
34 replace_whitespace, urlify, truncate, wrap_paragraphs
35 from webhelpers.date import time_ago_in_words
35 from webhelpers.date import time_ago_in_words
36 from webhelpers.paginate import Page
36 from webhelpers.paginate import Page
37 from webhelpers.html.tags import _set_input_attrs, _set_id_attr, \
37 from webhelpers.html.tags import _set_input_attrs, _set_id_attr, \
38 convert_boolean_attrs, NotGiven, _make_safe_id_component
38 convert_boolean_attrs, NotGiven, _make_safe_id_component
39
39
40 from rhodecode.lib.annotate import annotate_highlight
40 from rhodecode.lib.annotate import annotate_highlight
41 from rhodecode.lib.utils import repo_name_slug
41 from rhodecode.lib.utils import repo_name_slug
42 from rhodecode.lib import str2bool, safe_unicode, safe_str, get_changeset_safe
42 from rhodecode.lib import str2bool, safe_unicode, safe_str, get_changeset_safe
43 from rhodecode.lib.markup_renderer import MarkupRenderer
43 from rhodecode.lib.markup_renderer import MarkupRenderer
44
44
45 log = logging.getLogger(__name__)
45 log = logging.getLogger(__name__)
46
46
47
47
48 def _reset(name, value=None, id=NotGiven, type="reset", **attrs):
48 def _reset(name, value=None, id=NotGiven, type="reset", **attrs):
49 """
49 """
50 Reset button
50 Reset button
51 """
51 """
52 _set_input_attrs(attrs, type, name, value)
52 _set_input_attrs(attrs, type, name, value)
53 _set_id_attr(attrs, id, name)
53 _set_id_attr(attrs, id, name)
54 convert_boolean_attrs(attrs, ["disabled"])
54 convert_boolean_attrs(attrs, ["disabled"])
55 return HTML.input(**attrs)
55 return HTML.input(**attrs)
56
56
57 reset = _reset
57 reset = _reset
58 safeid = _make_safe_id_component
58 safeid = _make_safe_id_component
59
59
60
60
61 def FID(raw_id, path):
61 def FID(raw_id, path):
62 """
62 """
63 Creates a uniqe ID for filenode based on it's hash of path and revision
63 Creates a uniqe ID for filenode based on it's hash of path and revision
64 it's safe to use in urls
64 it's safe to use in urls
65
65
66 :param raw_id:
66 :param raw_id:
67 :param path:
67 :param path:
68 """
68 """
69
69
70 return 'C-%s-%s' % (short_id(raw_id), md5(path).hexdigest()[:12])
70 return 'C-%s-%s' % (short_id(raw_id), md5(path).hexdigest()[:12])
71
71
72
72
73 def get_token():
73 def get_token():
74 """Return the current authentication token, creating one if one doesn't
74 """Return the current authentication token, creating one if one doesn't
75 already exist.
75 already exist.
76 """
76 """
77 token_key = "_authentication_token"
77 token_key = "_authentication_token"
78 from pylons import session
78 from pylons import session
79 if not token_key in session:
79 if not token_key in session:
80 try:
80 try:
81 token = hashlib.sha1(str(random.getrandbits(128))).hexdigest()
81 token = hashlib.sha1(str(random.getrandbits(128))).hexdigest()
82 except AttributeError: # Python < 2.4
82 except AttributeError: # Python < 2.4
83 token = hashlib.sha1(str(random.randrange(2 ** 128))).hexdigest()
83 token = hashlib.sha1(str(random.randrange(2 ** 128))).hexdigest()
84 session[token_key] = token
84 session[token_key] = token
85 if hasattr(session, 'save'):
85 if hasattr(session, 'save'):
86 session.save()
86 session.save()
87 return session[token_key]
87 return session[token_key]
88
88
89 class _GetError(object):
89 class _GetError(object):
90 """Get error from form_errors, and represent it as span wrapped error
90 """Get error from form_errors, and represent it as span wrapped error
91 message
91 message
92
92
93 :param field_name: field to fetch errors for
93 :param field_name: field to fetch errors for
94 :param form_errors: form errors dict
94 :param form_errors: form errors dict
95 """
95 """
96
96
97 def __call__(self, field_name, form_errors):
97 def __call__(self, field_name, form_errors):
98 tmpl = """<span class="error_msg">%s</span>"""
98 tmpl = """<span class="error_msg">%s</span>"""
99 if form_errors and form_errors.has_key(field_name):
99 if form_errors and form_errors.has_key(field_name):
100 return literal(tmpl % form_errors.get(field_name))
100 return literal(tmpl % form_errors.get(field_name))
101
101
102 get_error = _GetError()
102 get_error = _GetError()
103
103
104 class _ToolTip(object):
104 class _ToolTip(object):
105
105
106 def __call__(self, tooltip_title, trim_at=50):
106 def __call__(self, tooltip_title, trim_at=50):
107 """Special function just to wrap our text into nice formatted
107 """Special function just to wrap our text into nice formatted
108 autowrapped text
108 autowrapped text
109
109
110 :param tooltip_title:
110 :param tooltip_title:
111 """
111 """
112 return escape(tooltip_title)
112 return escape(tooltip_title)
113 tooltip = _ToolTip()
113 tooltip = _ToolTip()
114
114
115 class _FilesBreadCrumbs(object):
115 class _FilesBreadCrumbs(object):
116
116
117 def __call__(self, repo_name, rev, paths):
117 def __call__(self, repo_name, rev, paths):
118 if isinstance(paths, str):
118 if isinstance(paths, str):
119 paths = safe_unicode(paths)
119 paths = safe_unicode(paths)
120 url_l = [link_to(repo_name, url('files_home',
120 url_l = [link_to(repo_name, url('files_home',
121 repo_name=repo_name,
121 repo_name=repo_name,
122 revision=rev, f_path=''))]
122 revision=rev, f_path=''))]
123 paths_l = paths.split('/')
123 paths_l = paths.split('/')
124 for cnt, p in enumerate(paths_l):
124 for cnt, p in enumerate(paths_l):
125 if p != '':
125 if p != '':
126 url_l.append(link_to(p,
126 url_l.append(link_to(p,
127 url('files_home',
127 url('files_home',
128 repo_name=repo_name,
128 repo_name=repo_name,
129 revision=rev,
129 revision=rev,
130 f_path='/'.join(paths_l[:cnt + 1])
130 f_path='/'.join(paths_l[:cnt + 1])
131 )
131 )
132 )
132 )
133 )
133 )
134
134
135 return literal('/'.join(url_l))
135 return literal('/'.join(url_l))
136
136
137 files_breadcrumbs = _FilesBreadCrumbs()
137 files_breadcrumbs = _FilesBreadCrumbs()
138
138
139 class CodeHtmlFormatter(HtmlFormatter):
139 class CodeHtmlFormatter(HtmlFormatter):
140 """My code Html Formatter for source codes
140 """My code Html Formatter for source codes
141 """
141 """
142
142
143 def wrap(self, source, outfile):
143 def wrap(self, source, outfile):
144 return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
144 return self._wrap_div(self._wrap_pre(self._wrap_code(source)))
145
145
146 def _wrap_code(self, source):
146 def _wrap_code(self, source):
147 for cnt, it in enumerate(source):
147 for cnt, it in enumerate(source):
148 i, t = it
148 i, t = it
149 t = '<div id="L%s">%s</div>' % (cnt + 1, t)
149 t = '<div id="L%s">%s</div>' % (cnt + 1, t)
150 yield i, t
150 yield i, t
151
151
152 def _wrap_tablelinenos(self, inner):
152 def _wrap_tablelinenos(self, inner):
153 dummyoutfile = StringIO.StringIO()
153 dummyoutfile = StringIO.StringIO()
154 lncount = 0
154 lncount = 0
155 for t, line in inner:
155 for t, line in inner:
156 if t:
156 if t:
157 lncount += 1
157 lncount += 1
158 dummyoutfile.write(line)
158 dummyoutfile.write(line)
159
159
160 fl = self.linenostart
160 fl = self.linenostart
161 mw = len(str(lncount + fl - 1))
161 mw = len(str(lncount + fl - 1))
162 sp = self.linenospecial
162 sp = self.linenospecial
163 st = self.linenostep
163 st = self.linenostep
164 la = self.lineanchors
164 la = self.lineanchors
165 aln = self.anchorlinenos
165 aln = self.anchorlinenos
166 nocls = self.noclasses
166 nocls = self.noclasses
167 if sp:
167 if sp:
168 lines = []
168 lines = []
169
169
170 for i in range(fl, fl + lncount):
170 for i in range(fl, fl + lncount):
171 if i % st == 0:
171 if i % st == 0:
172 if i % sp == 0:
172 if i % sp == 0:
173 if aln:
173 if aln:
174 lines.append('<a href="#%s%d" class="special">%*d</a>' %
174 lines.append('<a href="#%s%d" class="special">%*d</a>' %
175 (la, i, mw, i))
175 (la, i, mw, i))
176 else:
176 else:
177 lines.append('<span class="special">%*d</span>' % (mw, i))
177 lines.append('<span class="special">%*d</span>' % (mw, i))
178 else:
178 else:
179 if aln:
179 if aln:
180 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i))
180 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i))
181 else:
181 else:
182 lines.append('%*d' % (mw, i))
182 lines.append('%*d' % (mw, i))
183 else:
183 else:
184 lines.append('')
184 lines.append('')
185 ls = '\n'.join(lines)
185 ls = '\n'.join(lines)
186 else:
186 else:
187 lines = []
187 lines = []
188 for i in range(fl, fl + lncount):
188 for i in range(fl, fl + lncount):
189 if i % st == 0:
189 if i % st == 0:
190 if aln:
190 if aln:
191 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i))
191 lines.append('<a href="#%s%d">%*d</a>' % (la, i, mw, i))
192 else:
192 else:
193 lines.append('%*d' % (mw, i))
193 lines.append('%*d' % (mw, i))
194 else:
194 else:
195 lines.append('')
195 lines.append('')
196 ls = '\n'.join(lines)
196 ls = '\n'.join(lines)
197
197
198 # in case you wonder about the seemingly redundant <div> here: since the
198 # in case you wonder about the seemingly redundant <div> here: since the
199 # content in the other cell also is wrapped in a div, some browsers in
199 # content in the other cell also is wrapped in a div, some browsers in
200 # some configurations seem to mess up the formatting...
200 # some configurations seem to mess up the formatting...
201 if nocls:
201 if nocls:
202 yield 0, ('<table class="%stable">' % self.cssclass +
202 yield 0, ('<table class="%stable">' % self.cssclass +
203 '<tr><td><div class="linenodiv" '
203 '<tr><td><div class="linenodiv" '
204 'style="background-color: #f0f0f0; padding-right: 10px">'
204 'style="background-color: #f0f0f0; padding-right: 10px">'
205 '<pre style="line-height: 125%">' +
205 '<pre style="line-height: 125%">' +
206 ls + '</pre></div></td><td id="hlcode" class="code">')
206 ls + '</pre></div></td><td id="hlcode" class="code">')
207 else:
207 else:
208 yield 0, ('<table class="%stable">' % self.cssclass +
208 yield 0, ('<table class="%stable">' % self.cssclass +
209 '<tr><td class="linenos"><div class="linenodiv"><pre>' +
209 '<tr><td class="linenos"><div class="linenodiv"><pre>' +
210 ls + '</pre></div></td><td id="hlcode" class="code">')
210 ls + '</pre></div></td><td id="hlcode" class="code">')
211 yield 0, dummyoutfile.getvalue()
211 yield 0, dummyoutfile.getvalue()
212 yield 0, '</td></tr></table>'
212 yield 0, '</td></tr></table>'
213
213
214
214
215 def pygmentize(filenode, **kwargs):
215 def pygmentize(filenode, **kwargs):
216 """pygmentize function using pygments
216 """pygmentize function using pygments
217
217
218 :param filenode:
218 :param filenode:
219 """
219 """
220
220
221 return literal(code_highlight(filenode.content,
221 return literal(code_highlight(filenode.content,
222 filenode.lexer, CodeHtmlFormatter(**kwargs)))
222 filenode.lexer, CodeHtmlFormatter(**kwargs)))
223
223
224
224
225 def pygmentize_annotation(repo_name, filenode, **kwargs):
225 def pygmentize_annotation(repo_name, filenode, **kwargs):
226 """
226 """
227 pygmentize function for annotation
227 pygmentize function for annotation
228
228
229 :param filenode:
229 :param filenode:
230 """
230 """
231
231
232 color_dict = {}
232 color_dict = {}
233
233
234 def gen_color(n=10000):
234 def gen_color(n=10000):
235 """generator for getting n of evenly distributed colors using
235 """generator for getting n of evenly distributed colors using
236 hsv color and golden ratio. It always return same order of colors
236 hsv color and golden ratio. It always return same order of colors
237
237
238 :returns: RGB tuple
238 :returns: RGB tuple
239 """
239 """
240
240
241 def hsv_to_rgb(h, s, v):
241 def hsv_to_rgb(h, s, v):
242 if s == 0.0:
242 if s == 0.0:
243 return v, v, v
243 return v, v, v
244 i = int(h * 6.0) # XXX assume int() truncates!
244 i = int(h * 6.0) # XXX assume int() truncates!
245 f = (h * 6.0) - i
245 f = (h * 6.0) - i
246 p = v * (1.0 - s)
246 p = v * (1.0 - s)
247 q = v * (1.0 - s * f)
247 q = v * (1.0 - s * f)
248 t = v * (1.0 - s * (1.0 - f))
248 t = v * (1.0 - s * (1.0 - f))
249 i = i % 6
249 i = i % 6
250 if i == 0:
250 if i == 0:
251 return v, t, p
251 return v, t, p
252 if i == 1:
252 if i == 1:
253 return q, v, p
253 return q, v, p
254 if i == 2:
254 if i == 2:
255 return p, v, t
255 return p, v, t
256 if i == 3:
256 if i == 3:
257 return p, q, v
257 return p, q, v
258 if i == 4:
258 if i == 4:
259 return t, p, v
259 return t, p, v
260 if i == 5:
260 if i == 5:
261 return v, p, q
261 return v, p, q
262
262
263 golden_ratio = 0.618033988749895
263 golden_ratio = 0.618033988749895
264 h = 0.22717784590367374
264 h = 0.22717784590367374
265
265
266 for _ in xrange(n):
266 for _ in xrange(n):
267 h += golden_ratio
267 h += golden_ratio
268 h %= 1
268 h %= 1
269 HSV_tuple = [h, 0.95, 0.95]
269 HSV_tuple = [h, 0.95, 0.95]
270 RGB_tuple = hsv_to_rgb(*HSV_tuple)
270 RGB_tuple = hsv_to_rgb(*HSV_tuple)
271 yield map(lambda x: str(int(x * 256)), RGB_tuple)
271 yield map(lambda x: str(int(x * 256)), RGB_tuple)
272
272
273 cgenerator = gen_color()
273 cgenerator = gen_color()
274
274
275 def get_color_string(cs):
275 def get_color_string(cs):
276 if cs in color_dict:
276 if cs in color_dict:
277 col = color_dict[cs]
277 col = color_dict[cs]
278 else:
278 else:
279 col = color_dict[cs] = cgenerator.next()
279 col = color_dict[cs] = cgenerator.next()
280 return "color: rgb(%s)! important;" % (', '.join(col))
280 return "color: rgb(%s)! important;" % (', '.join(col))
281
281
282 def url_func(repo_name):
282 def url_func(repo_name):
283
283
284 def _url_func(changeset):
284 def _url_func(changeset):
285 author = changeset.author
285 author = changeset.author
286 date = changeset.date
286 date = changeset.date
287 message = tooltip(changeset.message)
287 message = tooltip(changeset.message)
288
288
289 tooltip_html = ("<div style='font-size:0.8em'><b>Author:</b>"
289 tooltip_html = ("<div style='font-size:0.8em'><b>Author:</b>"
290 " %s<br/><b>Date:</b> %s</b><br/><b>Message:"
290 " %s<br/><b>Date:</b> %s</b><br/><b>Message:"
291 "</b> %s<br/></div>")
291 "</b> %s<br/></div>")
292
292
293 tooltip_html = tooltip_html % (author, date, message)
293 tooltip_html = tooltip_html % (author, date, message)
294 lnk_format = '%5s:%s' % ('r%s' % changeset.revision,
294 lnk_format = '%5s:%s' % ('r%s' % changeset.revision,
295 short_id(changeset.raw_id))
295 short_id(changeset.raw_id))
296 uri = link_to(
296 uri = link_to(
297 lnk_format,
297 lnk_format,
298 url('changeset_home', repo_name=repo_name,
298 url('changeset_home', repo_name=repo_name,
299 revision=changeset.raw_id),
299 revision=changeset.raw_id),
300 style=get_color_string(changeset.raw_id),
300 style=get_color_string(changeset.raw_id),
301 class_='tooltip',
301 class_='tooltip',
302 title=tooltip_html
302 title=tooltip_html
303 )
303 )
304
304
305 uri += '\n'
305 uri += '\n'
306 return uri
306 return uri
307 return _url_func
307 return _url_func
308
308
309 return literal(annotate_highlight(filenode, url_func(repo_name), **kwargs))
309 return literal(annotate_highlight(filenode, url_func(repo_name), **kwargs))
310
310
311
311
312 def is_following_repo(repo_name, user_id):
312 def is_following_repo(repo_name, user_id):
313 from rhodecode.model.scm import ScmModel
313 from rhodecode.model.scm import ScmModel
314 return ScmModel().is_following_repo(repo_name, user_id)
314 return ScmModel().is_following_repo(repo_name, user_id)
315
315
316 flash = _Flash()
316 flash = _Flash()
317
317
318 #==============================================================================
318 #==============================================================================
319 # SCM FILTERS available via h.
319 # SCM FILTERS available via h.
320 #==============================================================================
320 #==============================================================================
321 from vcs.utils import author_name, author_email
321 from vcs.utils import author_name, author_email
322 from rhodecode.lib import credentials_filter, age as _age
322 from rhodecode.lib import credentials_filter, age as _age
323 from rhodecode.model.db import User
323 from rhodecode.model.db import User
324
324
325 age = lambda x: _age(x)
325 age = lambda x: _age(x)
326 capitalize = lambda x: x.capitalize()
326 capitalize = lambda x: x.capitalize()
327 email = author_email
327 email = author_email
328 short_id = lambda x: x[:12]
328 short_id = lambda x: x[:12]
329 hide_credentials = lambda x: ''.join(credentials_filter(x))
329 hide_credentials = lambda x: ''.join(credentials_filter(x))
330
330
331
331
332 def email_or_none(author):
332 def email_or_none(author):
333 _email = email(author)
333 _email = email(author)
334 if _email != '':
334 if _email != '':
335 return _email
335 return _email
336
336
337 # See if it contains a username we can get an email from
337 # See if it contains a username we can get an email from
338 user = User.get_by_username(author_name(author), case_insensitive=True,
338 user = User.get_by_username(author_name(author), case_insensitive=True,
339 cache=True)
339 cache=True)
340 if user is not None:
340 if user is not None:
341 return user.email
341 return user.email
342
342
343 # No valid email, not a valid user in the system, none!
343 # No valid email, not a valid user in the system, none!
344 return None
344 return None
345
345
346
346
347 def person(author):
347 def person(author):
348 # attr to return from fetched user
348 # attr to return from fetched user
349 person_getter = lambda usr: usr.username
349 person_getter = lambda usr: usr.username
350
350
351 # Valid email in the attribute passed, see if they're in the system
351 # Valid email in the attribute passed, see if they're in the system
352 _email = email(author)
352 _email = email(author)
353 if _email != '':
353 if _email != '':
354 user = User.get_by_email(_email, case_insensitive=True, cache=True)
354 user = User.get_by_email(_email, case_insensitive=True, cache=True)
355 if user is not None:
355 if user is not None:
356 return person_getter(user)
356 return person_getter(user)
357 return _email
357 return _email
358
358
359 # Maybe it's a username?
359 # Maybe it's a username?
360 _author = author_name(author)
360 _author = author_name(author)
361 user = User.get_by_username(_author, case_insensitive=True,
361 user = User.get_by_username(_author, case_insensitive=True,
362 cache=True)
362 cache=True)
363 if user is not None:
363 if user is not None:
364 return person_getter(user)
364 return person_getter(user)
365
365
366 # Still nothing? Just pass back the author name then
366 # Still nothing? Just pass back the author name then
367 return _author
367 return _author
368
368
369 def bool2icon(value):
369 def bool2icon(value):
370 """Returns True/False values represented as small html image of true/false
370 """Returns True/False values represented as small html image of true/false
371 icons
371 icons
372
372
373 :param value: bool value
373 :param value: bool value
374 """
374 """
375
375
376 if value is True:
376 if value is True:
377 return HTML.tag('img', src=url("/images/icons/accept.png"),
377 return HTML.tag('img', src=url("/images/icons/accept.png"),
378 alt=_('True'))
378 alt=_('True'))
379
379
380 if value is False:
380 if value is False:
381 return HTML.tag('img', src=url("/images/icons/cancel.png"),
381 return HTML.tag('img', src=url("/images/icons/cancel.png"),
382 alt=_('False'))
382 alt=_('False'))
383
383
384 return value
384 return value
385
385
386
386
387 def action_parser(user_log, feed=False):
387 def action_parser(user_log, feed=False):
388 """This helper will action_map the specified string action into translated
388 """This helper will action_map the specified string action into translated
389 fancy names with icons and links
389 fancy names with icons and links
390
390
391 :param user_log: user log instance
391 :param user_log: user log instance
392 :param feed: use output for feeds (no html and fancy icons)
392 :param feed: use output for feeds (no html and fancy icons)
393 """
393 """
394
394
395 action = user_log.action
395 action = user_log.action
396 action_params = ' '
396 action_params = ' '
397
397
398 x = action.split(':')
398 x = action.split(':')
399
399
400 if len(x) > 1:
400 if len(x) > 1:
401 action, action_params = x
401 action, action_params = x
402
402
403 def get_cs_links():
403 def get_cs_links():
404 revs_limit = 3 #display this amount always
404 revs_limit = 3 #display this amount always
405 revs_top_limit = 50 #show upto this amount of changesets hidden
405 revs_top_limit = 50 #show upto this amount of changesets hidden
406 revs = action_params.split(',')
406 revs = action_params.split(',')
407 repo_name = user_log.repository.repo_name
407 repo_name = user_log.repository.repo_name
408
408
409 from rhodecode.model.scm import ScmModel
409 from rhodecode.model.scm import ScmModel
410 repo = user_log.repository.scm_instance
410 repo = user_log.repository.scm_instance
411
411
412 message = lambda rev: get_changeset_safe(repo, rev).message
412 message = lambda rev: get_changeset_safe(repo, rev).message
413 cs_links = []
413 cs_links = []
414 cs_links.append(" " + ', '.join ([link_to(rev,
414 cs_links.append(" " + ', '.join ([link_to(rev,
415 url('changeset_home',
415 url('changeset_home',
416 repo_name=repo_name,
416 repo_name=repo_name,
417 revision=rev), title=tooltip(message(rev)),
417 revision=rev), title=tooltip(message(rev)),
418 class_='tooltip') for rev in revs[:revs_limit] ]))
418 class_='tooltip') for rev in revs[:revs_limit] ]))
419
419
420 compare_view = (' <div class="compare_view tooltip" title="%s">'
420 compare_view = (' <div class="compare_view tooltip" title="%s">'
421 '<a href="%s">%s</a> '
421 '<a href="%s">%s</a> '
422 '</div>' % (_('Show all combined changesets %s->%s' \
422 '</div>' % (_('Show all combined changesets %s->%s' \
423 % (revs[0], revs[-1])),
423 % (revs[0], revs[-1])),
424 url('changeset_home', repo_name=repo_name,
424 url('changeset_home', repo_name=repo_name,
425 revision='%s...%s' % (revs[0], revs[-1])
425 revision='%s...%s' % (revs[0], revs[-1])
426 ),
426 ),
427 _('compare view'))
427 _('compare view'))
428 )
428 )
429
429
430 if len(revs) > revs_limit:
430 if len(revs) > revs_limit:
431 uniq_id = revs[0]
431 uniq_id = revs[0]
432 html_tmpl = ('<span> %s '
432 html_tmpl = ('<span> %s '
433 '<a class="show_more" id="_%s" href="#more">%s</a> '
433 '<a class="show_more" id="_%s" href="#more">%s</a> '
434 '%s</span>')
434 '%s</span>')
435 if not feed:
435 if not feed:
436 cs_links.append(html_tmpl % (_('and'), uniq_id, _('%s more') \
436 cs_links.append(html_tmpl % (_('and'), uniq_id, _('%s more') \
437 % (len(revs) - revs_limit),
437 % (len(revs) - revs_limit),
438 _('revisions')))
438 _('revisions')))
439
439
440 if not feed:
440 if not feed:
441 html_tmpl = '<span id="%s" style="display:none"> %s </span>'
441 html_tmpl = '<span id="%s" style="display:none"> %s </span>'
442 else:
442 else:
443 html_tmpl = '<span id="%s"> %s </span>'
443 html_tmpl = '<span id="%s"> %s </span>'
444
444
445 cs_links.append(html_tmpl % (uniq_id, ', '.join([link_to(rev,
445 cs_links.append(html_tmpl % (uniq_id, ', '.join([link_to(rev,
446 url('changeset_home',
446 url('changeset_home',
447 repo_name=repo_name, revision=rev),
447 repo_name=repo_name, revision=rev),
448 title=message(rev), class_='tooltip')
448 title=message(rev), class_='tooltip')
449 for rev in revs[revs_limit:revs_top_limit]])))
449 for rev in revs[revs_limit:revs_top_limit]])))
450 if len(revs) > 1:
450 if len(revs) > 1:
451 cs_links.append(compare_view)
451 cs_links.append(compare_view)
452 return ''.join(cs_links)
452 return ''.join(cs_links)
453
453
454 def get_fork_name():
454 def get_fork_name():
455 repo_name = action_params
455 repo_name = action_params
456 return _('fork name ') + str(link_to(action_params, url('summary_home',
456 return _('fork name ') + str(link_to(action_params, url('summary_home',
457 repo_name=repo_name,)))
457 repo_name=repo_name,)))
458
458
459 action_map = {'user_deleted_repo':(_('[deleted] repository'), None),
459 action_map = {'user_deleted_repo':(_('[deleted] repository'), None),
460 'user_created_repo':(_('[created] repository'), None),
460 'user_created_repo':(_('[created] repository'), None),
461 'user_created_fork':(_('[created] repository as fork'), None),
461 'user_created_fork':(_('[created] repository as fork'), None),
462 'user_forked_repo':(_('[forked] repository'), get_fork_name),
462 'user_forked_repo':(_('[forked] repository'), get_fork_name),
463 'user_updated_repo':(_('[updated] repository'), None),
463 'user_updated_repo':(_('[updated] repository'), None),
464 'admin_deleted_repo':(_('[delete] repository'), None),
464 'admin_deleted_repo':(_('[delete] repository'), None),
465 'admin_created_repo':(_('[created] repository'), None),
465 'admin_created_repo':(_('[created] repository'), None),
466 'admin_forked_repo':(_('[forked] repository'), None),
466 'admin_forked_repo':(_('[forked] repository'), None),
467 'admin_updated_repo':(_('[updated] repository'), None),
467 'admin_updated_repo':(_('[updated] repository'), None),
468 'push':(_('[pushed] into'), get_cs_links),
468 'push':(_('[pushed] into'), get_cs_links),
469 'push_local':(_('[committed via RhodeCode] into'), get_cs_links),
469 'push_local':(_('[committed via RhodeCode] into'), get_cs_links),
470 'push_remote':(_('[pulled from remote] into'), get_cs_links),
470 'push_remote':(_('[pulled from remote] into'), get_cs_links),
471 'pull':(_('[pulled] from'), None),
471 'pull':(_('[pulled] from'), None),
472 'started_following_repo':(_('[started following] repository'), None),
472 'started_following_repo':(_('[started following] repository'), None),
473 'stopped_following_repo':(_('[stopped following] repository'), None),
473 'stopped_following_repo':(_('[stopped following] repository'), None),
474 }
474 }
475
475
476 action_str = action_map.get(action, action)
476 action_str = action_map.get(action, action)
477 if feed:
477 if feed:
478 action = action_str[0].replace('[', '').replace(']', '')
478 action = action_str[0].replace('[', '').replace(']', '')
479 else:
479 else:
480 action = action_str[0].replace('[', '<span class="journal_highlight">')\
480 action = action_str[0].replace('[', '<span class="journal_highlight">')\
481 .replace(']', '</span>')
481 .replace(']', '</span>')
482
482
483 action_params_func = lambda :""
483 action_params_func = lambda :""
484
484
485 if callable(action_str[1]):
485 if callable(action_str[1]):
486 action_params_func = action_str[1]
486 action_params_func = action_str[1]
487
487
488 return [literal(action), action_params_func]
488 return [literal(action), action_params_func]
489
489
490 def action_parser_icon(user_log):
490 def action_parser_icon(user_log):
491 action = user_log.action
491 action = user_log.action
492 action_params = None
492 action_params = None
493 x = action.split(':')
493 x = action.split(':')
494
494
495 if len(x) > 1:
495 if len(x) > 1:
496 action, action_params = x
496 action, action_params = x
497
497
498 tmpl = """<img src="%s%s" alt="%s"/>"""
498 tmpl = """<img src="%s%s" alt="%s"/>"""
499 map = {'user_deleted_repo':'database_delete.png',
499 map = {'user_deleted_repo':'database_delete.png',
500 'user_created_repo':'database_add.png',
500 'user_created_repo':'database_add.png',
501 'user_created_fork':'arrow_divide.png',
501 'user_created_fork':'arrow_divide.png',
502 'user_forked_repo':'arrow_divide.png',
502 'user_forked_repo':'arrow_divide.png',
503 'user_updated_repo':'database_edit.png',
503 'user_updated_repo':'database_edit.png',
504 'admin_deleted_repo':'database_delete.png',
504 'admin_deleted_repo':'database_delete.png',
505 'admin_created_repo':'database_add.png',
505 'admin_created_repo':'database_add.png',
506 'admin_forked_repo':'arrow_divide.png',
506 'admin_forked_repo':'arrow_divide.png',
507 'admin_updated_repo':'database_edit.png',
507 'admin_updated_repo':'database_edit.png',
508 'push':'script_add.png',
508 'push':'script_add.png',
509 'push_local':'script_edit.png',
509 'push_local':'script_edit.png',
510 'push_remote':'connect.png',
510 'push_remote':'connect.png',
511 'pull':'down_16.png',
511 'pull':'down_16.png',
512 'started_following_repo':'heart_add.png',
512 'started_following_repo':'heart_add.png',
513 'stopped_following_repo':'heart_delete.png',
513 'stopped_following_repo':'heart_delete.png',
514 }
514 }
515 return literal(tmpl % ((url('/images/icons/')),
515 return literal(tmpl % ((url('/images/icons/')),
516 map.get(action, action), action))
516 map.get(action, action), action))
517
517
518
518
519 #==============================================================================
519 #==============================================================================
520 # PERMS
520 # PERMS
521 #==============================================================================
521 #==============================================================================
522 from rhodecode.lib.auth import HasPermissionAny, HasPermissionAll, \
522 from rhodecode.lib.auth import HasPermissionAny, HasPermissionAll, \
523 HasRepoPermissionAny, HasRepoPermissionAll
523 HasRepoPermissionAny, HasRepoPermissionAll
524
524
525 #==============================================================================
525 #==============================================================================
526 # GRAVATAR URL
526 # GRAVATAR URL
527 #==============================================================================
527 #==============================================================================
528
528
529 def gravatar_url(email_address, size=30):
529 def gravatar_url(email_address, size=30):
530 if (not str2bool(config['app_conf'].get('use_gravatar')) or
530 if (not str2bool(config['app_conf'].get('use_gravatar')) or
531 not email_address or email_address == 'anonymous@rhodecode.org'):
531 not email_address or email_address == 'anonymous@rhodecode.org'):
532 return url("/images/user%s.png" % size)
532 return url("/images/user%s.png" % size)
533
533
534 ssl_enabled = 'https' == request.environ.get('wsgi.url_scheme')
534 ssl_enabled = 'https' == request.environ.get('wsgi.url_scheme')
535 default = 'identicon'
535 default = 'identicon'
536 baseurl_nossl = "http://www.gravatar.com/avatar/"
536 baseurl_nossl = "http://www.gravatar.com/avatar/"
537 baseurl_ssl = "https://secure.gravatar.com/avatar/"
537 baseurl_ssl = "https://secure.gravatar.com/avatar/"
538 baseurl = baseurl_ssl if ssl_enabled else baseurl_nossl
538 baseurl = baseurl_ssl if ssl_enabled else baseurl_nossl
539
539
540 if isinstance(email_address, unicode):
540 if isinstance(email_address, unicode):
541 #hashlib crashes on unicode items
541 #hashlib crashes on unicode items
542 email_address = safe_str(email_address)
542 email_address = safe_str(email_address)
543 # construct the url
543 # construct the url
544 gravatar_url = baseurl + hashlib.md5(email_address.lower()).hexdigest() + "?"
544 gravatar_url = baseurl + hashlib.md5(email_address.lower()).hexdigest() + "?"
545 gravatar_url += urllib.urlencode({'d':default, 's':str(size)})
545 gravatar_url += urllib.urlencode({'d':default, 's':str(size)})
546
546
547 return gravatar_url
547 return gravatar_url
548
548
549
549
550 #==============================================================================
550 #==============================================================================
551 # REPO PAGER, PAGER FOR REPOSITORY
551 # REPO PAGER, PAGER FOR REPOSITORY
552 #==============================================================================
552 #==============================================================================
553 class RepoPage(Page):
553 class RepoPage(Page):
554
554
555 def __init__(self, collection, page=1, items_per_page=20,
555 def __init__(self, collection, page=1, items_per_page=20,
556 item_count=None, url=None, **kwargs):
556 item_count=None, url=None, **kwargs):
557
557
558 """Create a "RepoPage" instance. special pager for paging
558 """Create a "RepoPage" instance. special pager for paging
559 repository
559 repository
560 """
560 """
561 self._url_generator = url
561 self._url_generator = url
562
562
563 # Safe the kwargs class-wide so they can be used in the pager() method
563 # Safe the kwargs class-wide so they can be used in the pager() method
564 self.kwargs = kwargs
564 self.kwargs = kwargs
565
565
566 # Save a reference to the collection
566 # Save a reference to the collection
567 self.original_collection = collection
567 self.original_collection = collection
568
568
569 self.collection = collection
569 self.collection = collection
570
570
571 # The self.page is the number of the current page.
571 # The self.page is the number of the current page.
572 # The first page has the number 1!
572 # The first page has the number 1!
573 try:
573 try:
574 self.page = int(page) # make it int() if we get it as a string
574 self.page = int(page) # make it int() if we get it as a string
575 except (ValueError, TypeError):
575 except (ValueError, TypeError):
576 self.page = 1
576 self.page = 1
577
577
578 self.items_per_page = items_per_page
578 self.items_per_page = items_per_page
579
579
580 # Unless the user tells us how many items the collections has
580 # Unless the user tells us how many items the collections has
581 # we calculate that ourselves.
581 # we calculate that ourselves.
582 if item_count is not None:
582 if item_count is not None:
583 self.item_count = item_count
583 self.item_count = item_count
584 else:
584 else:
585 self.item_count = len(self.collection)
585 self.item_count = len(self.collection)
586
586
587 # Compute the number of the first and last available page
587 # Compute the number of the first and last available page
588 if self.item_count > 0:
588 if self.item_count > 0:
589 self.first_page = 1
589 self.first_page = 1
590 self.page_count = int(math.ceil(float(self.item_count) /
590 self.page_count = int(math.ceil(float(self.item_count) /
591 self.items_per_page))
591 self.items_per_page))
592 self.last_page = self.first_page + self.page_count - 1
592 self.last_page = self.first_page + self.page_count - 1
593
593
594 # Make sure that the requested page number is the range of
594 # Make sure that the requested page number is the range of
595 # valid pages
595 # valid pages
596 if self.page > self.last_page:
596 if self.page > self.last_page:
597 self.page = self.last_page
597 self.page = self.last_page
598 elif self.page < self.first_page:
598 elif self.page < self.first_page:
599 self.page = self.first_page
599 self.page = self.first_page
600
600
601 # Note: the number of items on this page can be less than
601 # Note: the number of items on this page can be less than
602 # items_per_page if the last page is not full
602 # items_per_page if the last page is not full
603 self.first_item = max(0, (self.item_count) - (self.page *
603 self.first_item = max(0, (self.item_count) - (self.page *
604 items_per_page))
604 items_per_page))
605 self.last_item = ((self.item_count - 1) - items_per_page *
605 self.last_item = ((self.item_count - 1) - items_per_page *
606 (self.page - 1))
606 (self.page - 1))
607
607
608 self.items = list(self.collection[self.first_item:self.last_item + 1])
608 self.items = list(self.collection[self.first_item:self.last_item + 1])
609
609
610
610
611 # Links to previous and next page
611 # Links to previous and next page
612 if self.page > self.first_page:
612 if self.page > self.first_page:
613 self.previous_page = self.page - 1
613 self.previous_page = self.page - 1
614 else:
614 else:
615 self.previous_page = None
615 self.previous_page = None
616
616
617 if self.page < self.last_page:
617 if self.page < self.last_page:
618 self.next_page = self.page + 1
618 self.next_page = self.page + 1
619 else:
619 else:
620 self.next_page = None
620 self.next_page = None
621
621
622 # No items available
622 # No items available
623 else:
623 else:
624 self.first_page = None
624 self.first_page = None
625 self.page_count = 0
625 self.page_count = 0
626 self.last_page = None
626 self.last_page = None
627 self.first_item = None
627 self.first_item = None
628 self.last_item = None
628 self.last_item = None
629 self.previous_page = None
629 self.previous_page = None
630 self.next_page = None
630 self.next_page = None
631 self.items = []
631 self.items = []
632
632
633 # This is a subclass of the 'list' type. Initialise the list now.
633 # This is a subclass of the 'list' type. Initialise the list now.
634 list.__init__(self, reversed(self.items))
634 list.__init__(self, reversed(self.items))
635
635
636
636
637 def changed_tooltip(nodes):
637 def changed_tooltip(nodes):
638 """
638 """
639 Generates a html string for changed nodes in changeset page.
639 Generates a html string for changed nodes in changeset page.
640 It limits the output to 30 entries
640 It limits the output to 30 entries
641
641
642 :param nodes: LazyNodesGenerator
642 :param nodes: LazyNodesGenerator
643 """
643 """
644 if nodes:
644 if nodes:
645 pref = ': <br/> '
645 pref = ': <br/> '
646 suf = ''
646 suf = ''
647 if len(nodes) > 30:
647 if len(nodes) > 30:
648 suf = '<br/>' + _(' and %s more') % (len(nodes) - 30)
648 suf = '<br/>' + _(' and %s more') % (len(nodes) - 30)
649 return literal(pref + '<br/> '.join([safe_unicode(x.path)
649 return literal(pref + '<br/> '.join([safe_unicode(x.path)
650 for x in nodes[:30]]) + suf)
650 for x in nodes[:30]]) + suf)
651 else:
651 else:
652 return ': ' + _('No Files')
652 return ': ' + _('No Files')
653
653
654
654
655
655
656 def repo_link(groups_and_repos):
656 def repo_link(groups_and_repos):
657 """
657 """
658 Makes a breadcrumbs link to repo within a group
658 Makes a breadcrumbs link to repo within a group
659 joins &raquo; on each group to create a fancy link
659 joins &raquo; on each group to create a fancy link
660
660
661 ex::
661 ex::
662 group >> subgroup >> repo
662 group >> subgroup >> repo
663
663
664 :param groups_and_repos:
664 :param groups_and_repos:
665 """
665 """
666 groups, repo_name = groups_and_repos
666 groups, repo_name = groups_and_repos
667
667
668 if not groups:
668 if not groups:
669 return repo_name
669 return repo_name
670 else:
670 else:
671 def make_link(group):
671 def make_link(group):
672 return link_to(group.name, url('repos_group_home',
672 return link_to(group.name, url('repos_group_home',
673 group_name=group.group_name))
673 group_name=group.group_name))
674 return literal(' &raquo; '.join(map(make_link, groups)) + \
674 return literal(' &raquo; '.join(map(make_link, groups)) + \
675 " &raquo; " + repo_name)
675 " &raquo; " + repo_name)
676
676
677 def fancy_file_stats(stats):
677 def fancy_file_stats(stats):
678 """
678 """
679 Displays a fancy two colored bar for number of added/deleted
679 Displays a fancy two colored bar for number of added/deleted
680 lines of code on file
680 lines of code on file
681
681
682 :param stats: two element list of added/deleted lines of code
682 :param stats: two element list of added/deleted lines of code
683 """
683 """
684
684
685 a, d, t = stats[0], stats[1], stats[0] + stats[1]
685 a, d, t = stats[0], stats[1], stats[0] + stats[1]
686 width = 100
686 width = 100
687 unit = float(width) / (t or 1)
687 unit = float(width) / (t or 1)
688
688
689 # needs > 9% of width to be visible or 0 to be hidden
689 # needs > 9% of width to be visible or 0 to be hidden
690 a_p = max(9, unit * a) if a > 0 else 0
690 a_p = max(9, unit * a) if a > 0 else 0
691 d_p = max(9, unit * d) if d > 0 else 0
691 d_p = max(9, unit * d) if d > 0 else 0
692 p_sum = a_p + d_p
692 p_sum = a_p + d_p
693
693
694 if p_sum > width:
694 if p_sum > width:
695 #adjust the percentage to be == 100% since we adjusted to 9
695 #adjust the percentage to be == 100% since we adjusted to 9
696 if a_p > d_p:
696 if a_p > d_p:
697 a_p = a_p - (p_sum - width)
697 a_p = a_p - (p_sum - width)
698 else:
698 else:
699 d_p = d_p - (p_sum - width)
699 d_p = d_p - (p_sum - width)
700
700
701 a_v = a if a > 0 else ''
701 a_v = a if a > 0 else ''
702 d_v = d if d > 0 else ''
702 d_v = d if d > 0 else ''
703
703
704
704
705 def cgen(l_type):
705 def cgen(l_type):
706 mapping = {'tr':'top-right-rounded-corner',
706 mapping = {'tr':'top-right-rounded-corner',
707 'tl':'top-left-rounded-corner',
707 'tl':'top-left-rounded-corner',
708 'br':'bottom-right-rounded-corner',
708 'br':'bottom-right-rounded-corner',
709 'bl':'bottom-left-rounded-corner'}
709 'bl':'bottom-left-rounded-corner'}
710 map_getter = lambda x:mapping[x]
710 map_getter = lambda x:mapping[x]
711
711
712 if l_type == 'a' and d_v:
712 if l_type == 'a' and d_v:
713 #case when added and deleted are present
713 #case when added and deleted are present
714 return ' '.join(map(map_getter, ['tl', 'bl']))
714 return ' '.join(map(map_getter, ['tl', 'bl']))
715
715
716 if l_type == 'a' and not d_v:
716 if l_type == 'a' and not d_v:
717 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl']))
717 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl']))
718
718
719 if l_type == 'd' and a_v:
719 if l_type == 'd' and a_v:
720 return ' '.join(map(map_getter, ['tr', 'br']))
720 return ' '.join(map(map_getter, ['tr', 'br']))
721
721
722 if l_type == 'd' and not a_v:
722 if l_type == 'd' and not a_v:
723 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl']))
723 return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl']))
724
724
725
725
726
726
727 d_a = '<div class="added %s" style="width:%s%%">%s</div>' % (cgen('a'),
727 d_a = '<div class="added %s" style="width:%s%%">%s</div>' % (cgen('a'),
728 a_p, a_v)
728 a_p, a_v)
729 d_d = '<div class="deleted %s" style="width:%s%%">%s</div>' % (cgen('d'),
729 d_d = '<div class="deleted %s" style="width:%s%%">%s</div>' % (cgen('d'),
730 d_p, d_v)
730 d_p, d_v)
731 return literal('<div style="width:%spx">%s%s</div>' % (width, d_a, d_d))
731 return literal('<div style="width:%spx">%s%s</div>' % (width, d_a, d_d))
732
732
733
733
734 def urlify_text(text_):
734 def urlify_text(text_):
735 import re
735 import re
736
736
737 url_pat = re.compile(r'''(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]'''
737 url_pat = re.compile(r'''(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]'''
738 '''|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)''')
738 '''|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)''')
739
739
740 def url_func(match_obj):
740 def url_func(match_obj):
741 url_full = match_obj.groups()[0]
741 url_full = match_obj.groups()[0]
742 return '<a href="%(url)s">%(url)s</a>' % ({'url':url_full})
742 return '<a href="%(url)s">%(url)s</a>' % ({'url':url_full})
743
743
744 return literal(url_pat.sub(url_func, text_))
744 return literal(url_pat.sub(url_func, text_))
745
745
746 def urlify_commit(text_):
746 def urlify_commit(text_):
747 import re
747 import re
748 import traceback
748 import traceback
749
749
750 try:
750 try:
751 conf = config['app_conf']
751 conf = config['app_conf']
752
752
753 URL_PAT = re.compile(r'%s' % conf.get('url_pat'))
753 URL_PAT = re.compile(r'%s' % conf.get('url_pat'))
754
754
755 if URL_PAT:
755 if URL_PAT:
756 ISSUE_SERVER = conf.get('issue_server')
756 ISSUE_SERVER = conf.get('issue_server')
757 ISSUE_PREFIX = conf.get('issue_prefix')
757 ISSUE_PREFIX = conf.get('issue_prefix')
758 def url_func(match_obj):
758 def url_func(match_obj):
759 issue_id = match_obj.groups()[0]
759 issue_id = match_obj.groups()[0]
760 tmpl = (
760 tmpl = (
761 '<a class="%(cls)s" href="%(url)s">'
761 ' <a class="%(cls)s" href="%(url)s">'
762 ' %(issue-prefix)s%(id-repr)s'
762 '%(issue-prefix)s%(id-repr)s'
763 '</a>'
763 '</a>'
764 )
764 )
765 return tmpl % (
765 return tmpl % (
766 {
766 {
767 'cls':'issue-tracker-link',
767 'cls':'issue-tracker-link',
768 'url':ISSUE_SERVER.replace('{id}',issue_id),
768 'url':ISSUE_SERVER.replace('{id}',issue_id),
769 'id-repr':issue_id,
769 'id-repr':issue_id,
770 'issue-prefix':ISSUE_PREFIX,
770 'issue-prefix':ISSUE_PREFIX,
771 'serv':ISSUE_SERVER,
771 'serv':ISSUE_SERVER,
772 }
772 }
773 )
773 )
774 return literal(URL_PAT.sub(url_func, text_))
774 return literal(URL_PAT.sub(url_func, text_))
775 except:
775 except:
776 log.error(traceback.format_exc())
776 log.error(traceback.format_exc())
777 pass
777 pass
778
778
779 return text_
779 return text_
780
780
781 def rst(source):
781 def rst(source):
782 return literal('<div class="rst-block">%s</div>' %
782 return literal('<div class="rst-block">%s</div>' %
783 MarkupRenderer.rst(source))
783 MarkupRenderer.rst(source))
784
784
785 def rst_w_mentions(source):
785 def rst_w_mentions(source):
786 """
786 """
787 Wrapped rst renderer with @mention highlighting
787 Wrapped rst renderer with @mention highlighting
788
788
789 :param source:
789 :param source:
790 """
790 """
791 return literal('<div class="rst-block">%s</div>' %
791 return literal('<div class="rst-block">%s</div>' %
792 MarkupRenderer.rst_with_mentions(source))
792 MarkupRenderer.rst_with_mentions(source))
@@ -1,4102 +1,4131 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 td.quick_repo_menu {
652 td.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 td.quick_repo_menu.active {
659 td.quick_repo_menu.active {
660 background: url("../images/dt-arrow-dn.png") no-repeat scroll 5px 50% #FFFFFF !important;
660 background: url("../images/dt-arrow-dn.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 td.quick_repo_menu .menu_items {
666 td.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 td.quick_repo_menu .menu_items li {
681 td.quick_repo_menu .menu_items li {
682 padding: 0 !important;
682 padding: 0 !important;
683 }
683 }
684
684
685 td.quick_repo_menu .menu_items a {
685 td.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 td.quick_repo_menu .menu_items a:hover {
690 td.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 td.quick_repo_menu .menu_items .icon img {
695 td.quick_repo_menu .menu_items .icon img {
696 margin-bottom: -2px;
696 margin-bottom: -2px;
697 }
697 }
698
698
699 td.quick_repo_menu .menu_items.hidden {
699 td.quick_repo_menu .menu_items.hidden {
700 display: none;
700 display: none;
701 }
701 }
702
702
703 .yui-dt-first th {
703 .yui-dt-first th {
704 text-align: left;
704 text-align: left;
705 }
705 }
706
706
707 /*
707 /*
708 Copyright (c) 2011, Yahoo! Inc. All rights reserved.
708 Copyright (c) 2011, Yahoo! Inc. All rights reserved.
709 Code licensed under the BSD License:
709 Code licensed under the BSD License:
710 http://developer.yahoo.com/yui/license.html
710 http://developer.yahoo.com/yui/license.html
711 version: 2.9.0
711 version: 2.9.0
712 */
712 */
713 .yui-skin-sam .yui-dt-mask {
713 .yui-skin-sam .yui-dt-mask {
714 position: absolute;
714 position: absolute;
715 z-index: 9500;
715 z-index: 9500;
716 }
716 }
717 .yui-dt-tmp {
717 .yui-dt-tmp {
718 position: absolute;
718 position: absolute;
719 left: -9000px;
719 left: -9000px;
720 }
720 }
721 .yui-dt-scrollable .yui-dt-bd { overflow: auto }
721 .yui-dt-scrollable .yui-dt-bd { overflow: auto }
722 .yui-dt-scrollable .yui-dt-hd {
722 .yui-dt-scrollable .yui-dt-hd {
723 overflow: hidden;
723 overflow: hidden;
724 position: relative;
724 position: relative;
725 }
725 }
726 .yui-dt-scrollable .yui-dt-bd thead tr,
726 .yui-dt-scrollable .yui-dt-bd thead tr,
727 .yui-dt-scrollable .yui-dt-bd thead th {
727 .yui-dt-scrollable .yui-dt-bd thead th {
728 position: absolute;
728 position: absolute;
729 left: -1500px;
729 left: -1500px;
730 }
730 }
731 .yui-dt-scrollable tbody { -moz-outline: 0 }
731 .yui-dt-scrollable tbody { -moz-outline: 0 }
732 .yui-skin-sam thead .yui-dt-sortable { cursor: pointer }
732 .yui-skin-sam thead .yui-dt-sortable { cursor: pointer }
733 .yui-skin-sam thead .yui-dt-draggable { cursor: move }
733 .yui-skin-sam thead .yui-dt-draggable { cursor: move }
734 .yui-dt-coltarget {
734 .yui-dt-coltarget {
735 position: absolute;
735 position: absolute;
736 z-index: 999;
736 z-index: 999;
737 }
737 }
738 .yui-dt-hd { zoom: 1 }
738 .yui-dt-hd { zoom: 1 }
739 th.yui-dt-resizeable .yui-dt-resizerliner { position: relative }
739 th.yui-dt-resizeable .yui-dt-resizerliner { position: relative }
740 .yui-dt-resizer {
740 .yui-dt-resizer {
741 position: absolute;
741 position: absolute;
742 right: 0;
742 right: 0;
743 bottom: 0;
743 bottom: 0;
744 height: 100%;
744 height: 100%;
745 cursor: e-resize;
745 cursor: e-resize;
746 cursor: col-resize;
746 cursor: col-resize;
747 background-color: #CCC;
747 background-color: #CCC;
748 opacity: 0;
748 opacity: 0;
749 filter: alpha(opacity=0);
749 filter: alpha(opacity=0);
750 }
750 }
751 .yui-dt-resizerproxy {
751 .yui-dt-resizerproxy {
752 visibility: hidden;
752 visibility: hidden;
753 position: absolute;
753 position: absolute;
754 z-index: 9000;
754 z-index: 9000;
755 background-color: #CCC;
755 background-color: #CCC;
756 opacity: 0;
756 opacity: 0;
757 filter: alpha(opacity=0);
757 filter: alpha(opacity=0);
758 }
758 }
759 th.yui-dt-hidden .yui-dt-liner,
759 th.yui-dt-hidden .yui-dt-liner,
760 td.yui-dt-hidden .yui-dt-liner,
760 td.yui-dt-hidden .yui-dt-liner,
761 th.yui-dt-hidden .yui-dt-resizer { display: none }
761 th.yui-dt-hidden .yui-dt-resizer { display: none }
762 .yui-dt-editor,
762 .yui-dt-editor,
763 .yui-dt-editor-shim {
763 .yui-dt-editor-shim {
764 position: absolute;
764 position: absolute;
765 z-index: 9000;
765 z-index: 9000;
766 }
766 }
767 .yui-skin-sam .yui-dt table {
767 .yui-skin-sam .yui-dt table {
768 margin: 0;
768 margin: 0;
769 padding: 0;
769 padding: 0;
770 font-family: arial;
770 font-family: arial;
771 font-size: inherit;
771 font-size: inherit;
772 border-collapse: separate;
772 border-collapse: separate;
773 *border-collapse: collapse;
773 *border-collapse: collapse;
774 border-spacing: 0;
774 border-spacing: 0;
775 border: 1px solid #7f7f7f;
775 border: 1px solid #7f7f7f;
776 }
776 }
777 .yui-skin-sam .yui-dt thead { border-spacing: 0 }
777 .yui-skin-sam .yui-dt thead { border-spacing: 0 }
778 .yui-skin-sam .yui-dt caption {
778 .yui-skin-sam .yui-dt caption {
779 color: #000;
779 color: #000;
780 font-size: 85%;
780 font-size: 85%;
781 font-weight: normal;
781 font-weight: normal;
782 font-style: italic;
782 font-style: italic;
783 line-height: 1;
783 line-height: 1;
784 padding: 1em 0;
784 padding: 1em 0;
785 text-align: center;
785 text-align: center;
786 }
786 }
787 .yui-skin-sam .yui-dt th { background: #d8d8da url(../images/sprite.png) repeat-x 0 0 }
787 .yui-skin-sam .yui-dt th { background: #d8d8da url(../images/sprite.png) repeat-x 0 0 }
788 .yui-skin-sam .yui-dt th,
788 .yui-skin-sam .yui-dt th,
789 .yui-skin-sam .yui-dt th a {
789 .yui-skin-sam .yui-dt th a {
790 font-weight: normal;
790 font-weight: normal;
791 text-decoration: none;
791 text-decoration: none;
792 color: #000;
792 color: #000;
793 vertical-align: bottom;
793 vertical-align: bottom;
794 }
794 }
795 .yui-skin-sam .yui-dt th {
795 .yui-skin-sam .yui-dt th {
796 margin: 0;
796 margin: 0;
797 padding: 0;
797 padding: 0;
798 border: 0;
798 border: 0;
799 border-right: 1px solid #cbcbcb;
799 border-right: 1px solid #cbcbcb;
800 }
800 }
801 .yui-skin-sam .yui-dt tr.yui-dt-first td { border-top: 1px solid #7f7f7f }
801 .yui-skin-sam .yui-dt tr.yui-dt-first td { border-top: 1px solid #7f7f7f }
802 .yui-skin-sam .yui-dt th .yui-dt-liner { white-space: nowrap }
802 .yui-skin-sam .yui-dt th .yui-dt-liner { white-space: nowrap }
803 .yui-skin-sam .yui-dt-liner {
803 .yui-skin-sam .yui-dt-liner {
804 margin: 0;
804 margin: 0;
805 padding: 0;
805 padding: 0;
806 }
806 }
807 .yui-skin-sam .yui-dt-coltarget {
807 .yui-skin-sam .yui-dt-coltarget {
808 width: 5px;
808 width: 5px;
809 background-color: red;
809 background-color: red;
810 }
810 }
811 .yui-skin-sam .yui-dt td {
811 .yui-skin-sam .yui-dt td {
812 margin: 0;
812 margin: 0;
813 padding: 0;
813 padding: 0;
814 border: 0;
814 border: 0;
815 border-right: 1px solid #cbcbcb;
815 border-right: 1px solid #cbcbcb;
816 text-align: left;
816 text-align: left;
817 }
817 }
818 .yui-skin-sam .yui-dt-list td { border-right: 0 }
818 .yui-skin-sam .yui-dt-list td { border-right: 0 }
819 .yui-skin-sam .yui-dt-resizer { width: 6px }
819 .yui-skin-sam .yui-dt-resizer { width: 6px }
820 .yui-skin-sam .yui-dt-mask {
820 .yui-skin-sam .yui-dt-mask {
821 background-color: #000;
821 background-color: #000;
822 opacity: .25;
822 opacity: .25;
823 filter: alpha(opacity=25);
823 filter: alpha(opacity=25);
824 }
824 }
825 .yui-skin-sam .yui-dt-message { background-color: #FFF }
825 .yui-skin-sam .yui-dt-message { background-color: #FFF }
826 .yui-skin-sam .yui-dt-scrollable table { border: 0 }
826 .yui-skin-sam .yui-dt-scrollable table { border: 0 }
827 .yui-skin-sam .yui-dt-scrollable .yui-dt-hd {
827 .yui-skin-sam .yui-dt-scrollable .yui-dt-hd {
828 border-left: 1px solid #7f7f7f;
828 border-left: 1px solid #7f7f7f;
829 border-top: 1px solid #7f7f7f;
829 border-top: 1px solid #7f7f7f;
830 border-right: 1px solid #7f7f7f;
830 border-right: 1px solid #7f7f7f;
831 }
831 }
832 .yui-skin-sam .yui-dt-scrollable .yui-dt-bd {
832 .yui-skin-sam .yui-dt-scrollable .yui-dt-bd {
833 border-left: 1px solid #7f7f7f;
833 border-left: 1px solid #7f7f7f;
834 border-bottom: 1px solid #7f7f7f;
834 border-bottom: 1px solid #7f7f7f;
835 border-right: 1px solid #7f7f7f;
835 border-right: 1px solid #7f7f7f;
836 background-color: #FFF;
836 background-color: #FFF;
837 }
837 }
838 .yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { border-bottom: 1px solid #7f7f7f }
838 .yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { border-bottom: 1px solid #7f7f7f }
839 .yui-skin-sam th.yui-dt-asc,
839 .yui-skin-sam th.yui-dt-asc,
840 .yui-skin-sam th.yui-dt-desc { background: url(../images/sprite.png) repeat-x 0 -100px }
840 .yui-skin-sam th.yui-dt-desc { background: url(../images/sprite.png) repeat-x 0 -100px }
841 .yui-skin-sam th.yui-dt-sortable .yui-dt-label { margin-right: 10px }
841 .yui-skin-sam th.yui-dt-sortable .yui-dt-label { margin-right: 10px }
842 .yui-skin-sam th.yui-dt-asc .yui-dt-liner { background: url(../images/dt-arrow-up.png) no-repeat right }
842 .yui-skin-sam th.yui-dt-asc .yui-dt-liner { background: url(../images/dt-arrow-up.png) no-repeat right }
843 .yui-skin-sam th.yui-dt-desc .yui-dt-liner { background: url(../images/dt-arrow-dn.png) no-repeat right }
843 .yui-skin-sam th.yui-dt-desc .yui-dt-liner { background: url(../images/dt-arrow-dn.png) no-repeat right }
844 tbody .yui-dt-editable { cursor: pointer }
844 tbody .yui-dt-editable { cursor: pointer }
845 .yui-dt-editor {
845 .yui-dt-editor {
846 text-align: left;
846 text-align: left;
847 background-color: #f2f2f2;
847 background-color: #f2f2f2;
848 border: 1px solid #808080;
848 border: 1px solid #808080;
849 padding: 6px;
849 padding: 6px;
850 }
850 }
851 .yui-dt-editor label {
851 .yui-dt-editor label {
852 padding-left: 4px;
852 padding-left: 4px;
853 padding-right: 6px;
853 padding-right: 6px;
854 }
854 }
855 .yui-dt-editor .yui-dt-button {
855 .yui-dt-editor .yui-dt-button {
856 padding-top: 6px;
856 padding-top: 6px;
857 text-align: right;
857 text-align: right;
858 }
858 }
859 .yui-dt-editor .yui-dt-button button {
859 .yui-dt-editor .yui-dt-button button {
860 background: url(../images/sprite.png) repeat-x 0 0;
860 background: url(../images/sprite.png) repeat-x 0 0;
861 border: 1px solid #999;
861 border: 1px solid #999;
862 width: 4em;
862 width: 4em;
863 height: 1.8em;
863 height: 1.8em;
864 margin-left: 6px;
864 margin-left: 6px;
865 }
865 }
866 .yui-dt-editor .yui-dt-button button.yui-dt-default {
866 .yui-dt-editor .yui-dt-button button.yui-dt-default {
867 background: url(../images/sprite.png) repeat-x 0 -1400px;
867 background: url(../images/sprite.png) repeat-x 0 -1400px;
868 background-color: #5584e0;
868 background-color: #5584e0;
869 border: 1px solid #304369;
869 border: 1px solid #304369;
870 color: #FFF;
870 color: #FFF;
871 }
871 }
872 .yui-dt-editor .yui-dt-button button:hover {
872 .yui-dt-editor .yui-dt-button button:hover {
873 background: url(../images/sprite.png) repeat-x 0 -1300px;
873 background: url(../images/sprite.png) repeat-x 0 -1300px;
874 color: #000;
874 color: #000;
875 }
875 }
876 .yui-dt-editor .yui-dt-button button:active {
876 .yui-dt-editor .yui-dt-button button:active {
877 background: url(../images/sprite.png) repeat-x 0 -1700px;
877 background: url(../images/sprite.png) repeat-x 0 -1700px;
878 color: #000;
878 color: #000;
879 }
879 }
880 .yui-skin-sam tr.yui-dt-even { background-color: #FFF }
880 .yui-skin-sam tr.yui-dt-even { background-color: #FFF }
881 .yui-skin-sam tr.yui-dt-odd { background-color: #edf5ff }
881 .yui-skin-sam tr.yui-dt-odd { background-color: #edf5ff }
882 .yui-skin-sam tr.yui-dt-even td.yui-dt-asc,
882 .yui-skin-sam tr.yui-dt-even td.yui-dt-asc,
883 .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
883 .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
884 .yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,
884 .yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,
885 .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { background-color: #dbeaff }
885 .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { background-color: #dbeaff }
886 .yui-skin-sam .yui-dt-list tr.yui-dt-even { background-color: #FFF }
886 .yui-skin-sam .yui-dt-list tr.yui-dt-even { background-color: #FFF }
887 .yui-skin-sam .yui-dt-list tr.yui-dt-odd { background-color: #FFF }
887 .yui-skin-sam .yui-dt-list tr.yui-dt-odd { background-color: #FFF }
888 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,
888 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,
889 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
889 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
890 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,
890 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,
891 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { background-color: #edf5ff }
891 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { background-color: #edf5ff }
892 .yui-skin-sam th.yui-dt-highlighted,
892 .yui-skin-sam th.yui-dt-highlighted,
893 .yui-skin-sam th.yui-dt-highlighted a { background-color: #b2d2ff }
893 .yui-skin-sam th.yui-dt-highlighted a { background-color: #b2d2ff }
894 .yui-skin-sam tr.yui-dt-highlighted,
894 .yui-skin-sam tr.yui-dt-highlighted,
895 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,
895 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,
896 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,
896 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,
897 .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,
897 .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,
898 .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted {
898 .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted {
899 cursor: pointer;
899 cursor: pointer;
900 background-color: #b2d2ff;
900 background-color: #b2d2ff;
901 }
901 }
902 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted,
902 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted,
903 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { background-color: #b2d2ff }
903 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { background-color: #b2d2ff }
904 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,
904 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,
905 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,
905 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,
906 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,
906 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,
907 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,
907 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,
908 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted {
908 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted {
909 cursor: pointer;
909 cursor: pointer;
910 background-color: #b2d2ff;
910 background-color: #b2d2ff;
911 }
911 }
912 .yui-skin-sam th.yui-dt-selected,
912 .yui-skin-sam th.yui-dt-selected,
913 .yui-skin-sam th.yui-dt-selected a { background-color: #446cd7 }
913 .yui-skin-sam th.yui-dt-selected a { background-color: #446cd7 }
914 .yui-skin-sam tr.yui-dt-selected td,
914 .yui-skin-sam tr.yui-dt-selected td,
915 .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,
915 .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,
916 .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc {
916 .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc {
917 background-color: #426fd9;
917 background-color: #426fd9;
918 color: #FFF;
918 color: #FFF;
919 }
919 }
920 .yui-skin-sam tr.yui-dt-even td.yui-dt-selected,
920 .yui-skin-sam tr.yui-dt-even td.yui-dt-selected,
921 .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected {
921 .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected {
922 background-color: #446cd7;
922 background-color: #446cd7;
923 color: #FFF;
923 color: #FFF;
924 }
924 }
925 .yui-skin-sam .yui-dt-list th.yui-dt-selected,
925 .yui-skin-sam .yui-dt-list th.yui-dt-selected,
926 .yui-skin-sam .yui-dt-list th.yui-dt-selected a { background-color: #446cd7 }
926 .yui-skin-sam .yui-dt-list th.yui-dt-selected a { background-color: #446cd7 }
927 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,
927 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,
928 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,
928 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,
929 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc {
929 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc {
930 background-color: #426fd9;
930 background-color: #426fd9;
931 color: #FFF;
931 color: #FFF;
932 }
932 }
933 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,
933 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,
934 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected {
934 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected {
935 background-color: #446cd7;
935 background-color: #446cd7;
936 color: #FFF;
936 color: #FFF;
937 }
937 }
938 .yui-skin-sam .yui-dt-paginator {
938 .yui-skin-sam .yui-dt-paginator {
939 display: block;
939 display: block;
940 margin: 6px 0;
940 margin: 6px 0;
941 white-space: nowrap;
941 white-space: nowrap;
942 }
942 }
943 .yui-skin-sam .yui-dt-paginator .yui-dt-first,
943 .yui-skin-sam .yui-dt-paginator .yui-dt-first,
944 .yui-skin-sam .yui-dt-paginator .yui-dt-last,
944 .yui-skin-sam .yui-dt-paginator .yui-dt-last,
945 .yui-skin-sam .yui-dt-paginator .yui-dt-selected { padding: 2px 6px }
945 .yui-skin-sam .yui-dt-paginator .yui-dt-selected { padding: 2px 6px }
946 .yui-skin-sam .yui-dt-paginator a.yui-dt-first,
946 .yui-skin-sam .yui-dt-paginator a.yui-dt-first,
947 .yui-skin-sam .yui-dt-paginator a.yui-dt-last { text-decoration: none }
947 .yui-skin-sam .yui-dt-paginator a.yui-dt-last { text-decoration: none }
948 .yui-skin-sam .yui-dt-paginator .yui-dt-previous,
948 .yui-skin-sam .yui-dt-paginator .yui-dt-previous,
949 .yui-skin-sam .yui-dt-paginator .yui-dt-next { display: none }
949 .yui-skin-sam .yui-dt-paginator .yui-dt-next { display: none }
950 .yui-skin-sam a.yui-dt-page {
950 .yui-skin-sam a.yui-dt-page {
951 border: 1px solid #cbcbcb;
951 border: 1px solid #cbcbcb;
952 padding: 2px 6px;
952 padding: 2px 6px;
953 text-decoration: none;
953 text-decoration: none;
954 background-color: #fff;
954 background-color: #fff;
955 }
955 }
956 .yui-skin-sam .yui-dt-selected {
956 .yui-skin-sam .yui-dt-selected {
957 border: 1px solid #fff;
957 border: 1px solid #fff;
958 background-color: #fff;
958 background-color: #fff;
959 }
959 }
960
960
961 #content #left {
961 #content #left {
962 left: 0;
962 left: 0;
963 width: 280px;
963 width: 280px;
964 position: absolute;
964 position: absolute;
965 }
965 }
966
966
967 #content #right {
967 #content #right {
968 margin: 0 60px 10px 290px;
968 margin: 0 60px 10px 290px;
969 }
969 }
970
970
971 #content div.box {
971 #content div.box {
972 clear: both;
972 clear: both;
973 overflow: hidden;
973 overflow: hidden;
974 background: #fff;
974 background: #fff;
975 margin: 0 0 10px;
975 margin: 0 0 10px;
976 padding: 0 0 10px;
976 padding: 0 0 10px;
977 -webkit-border-radius: 4px 4px 4px 4px;
977 -webkit-border-radius: 4px 4px 4px 4px;
978 -khtml-border-radius: 4px 4px 4px 4px;
978 -khtml-border-radius: 4px 4px 4px 4px;
979 -moz-border-radius: 4px 4px 4px 4px;
979 -moz-border-radius: 4px 4px 4px 4px;
980 border-radius: 4px 4px 4px 4px;
980 border-radius: 4px 4px 4px 4px;
981 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
981 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
982 }
982 }
983
983
984 #content div.box-left {
984 #content div.box-left {
985 width: 49%;
985 width: 49%;
986 clear: none;
986 clear: none;
987 float: left;
987 float: left;
988 margin: 0 0 10px;
988 margin: 0 0 10px;
989 }
989 }
990
990
991 #content div.box-right {
991 #content div.box-right {
992 width: 49%;
992 width: 49%;
993 clear: none;
993 clear: none;
994 float: right;
994 float: right;
995 margin: 0 0 10px;
995 margin: 0 0 10px;
996 }
996 }
997
997
998 #content div.box div.title {
998 #content div.box div.title {
999 clear: both;
999 clear: both;
1000 overflow: hidden;
1000 overflow: hidden;
1001 background-color: #eedc94;
1001 background-color: #eedc94;
1002 background-repeat: repeat-x;
1002 background-repeat: repeat-x;
1003 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1003 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1004 to(#eedc94) );
1004 to(#eedc94) );
1005 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1005 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1006 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1006 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1007 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1007 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1008 color-stop(100%, #00376e) );
1008 color-stop(100%, #00376e) );
1009 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1009 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1010 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1010 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1011 background-image: linear-gradient(top, #003b76, #00376e);
1011 background-image: linear-gradient(top, #003b76, #00376e);
1012 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1012 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1013 endColorstr='#00376e', GradientType=0 );
1013 endColorstr='#00376e', GradientType=0 );
1014 margin: 0 0 20px;
1014 margin: 0 0 20px;
1015 padding: 0;
1015 padding: 0;
1016 }
1016 }
1017
1017
1018 #content div.box div.title h5 {
1018 #content div.box div.title h5 {
1019 float: left;
1019 float: left;
1020 border: none;
1020 border: none;
1021 color: #fff;
1021 color: #fff;
1022 text-transform: uppercase;
1022 text-transform: uppercase;
1023 margin: 0;
1023 margin: 0;
1024 padding: 11px 0 11px 10px;
1024 padding: 11px 0 11px 10px;
1025 }
1025 }
1026
1026
1027 #content div.box div.title .link-white{
1027 #content div.box div.title .link-white{
1028 color: #FFFFFF;
1028 color: #FFFFFF;
1029 }
1029 }
1030
1030
1031 #content div.box div.title ul.links li {
1031 #content div.box div.title ul.links li {
1032 list-style: none;
1032 list-style: none;
1033 float: left;
1033 float: left;
1034 margin: 0;
1034 margin: 0;
1035 padding: 0;
1035 padding: 0;
1036 }
1036 }
1037
1037
1038 #content div.box div.title ul.links li a {
1038 #content div.box div.title ul.links li a {
1039 border-left: 1px solid #316293;
1039 border-left: 1px solid #316293;
1040 color: #FFFFFF;
1040 color: #FFFFFF;
1041 display: block;
1041 display: block;
1042 float: left;
1042 float: left;
1043 font-size: 13px;
1043 font-size: 13px;
1044 font-weight: 700;
1044 font-weight: 700;
1045 height: 1%;
1045 height: 1%;
1046 margin: 0;
1046 margin: 0;
1047 padding: 11px 22px 12px;
1047 padding: 11px 22px 12px;
1048 text-decoration: none;
1048 text-decoration: none;
1049 }
1049 }
1050
1050
1051 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
1051 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
1052 {
1052 {
1053 clear: both;
1053 clear: both;
1054 overflow: hidden;
1054 overflow: hidden;
1055 border-bottom: 1px solid #DDD;
1055 border-bottom: 1px solid #DDD;
1056 margin: 10px 20px;
1056 margin: 10px 20px;
1057 padding: 0 0 15px;
1057 padding: 0 0 15px;
1058 }
1058 }
1059
1059
1060 #content div.box p {
1060 #content div.box p {
1061 color: #5f5f5f;
1061 color: #5f5f5f;
1062 font-size: 12px;
1062 font-size: 12px;
1063 line-height: 150%;
1063 line-height: 150%;
1064 margin: 0 24px 10px;
1064 margin: 0 24px 10px;
1065 padding: 0;
1065 padding: 0;
1066 }
1066 }
1067
1067
1068 #content div.box blockquote {
1068 #content div.box blockquote {
1069 border-left: 4px solid #DDD;
1069 border-left: 4px solid #DDD;
1070 color: #5f5f5f;
1070 color: #5f5f5f;
1071 font-size: 11px;
1071 font-size: 11px;
1072 line-height: 150%;
1072 line-height: 150%;
1073 margin: 0 34px;
1073 margin: 0 34px;
1074 padding: 0 0 0 14px;
1074 padding: 0 0 0 14px;
1075 }
1075 }
1076
1076
1077 #content div.box blockquote p {
1077 #content div.box blockquote p {
1078 margin: 10px 0;
1078 margin: 10px 0;
1079 padding: 0;
1079 padding: 0;
1080 }
1080 }
1081
1081
1082 #content div.box dl {
1082 #content div.box dl {
1083 margin: 10px 0px;
1083 margin: 10px 0px;
1084 }
1084 }
1085
1085
1086 #content div.box dt {
1086 #content div.box dt {
1087 font-size: 12px;
1087 font-size: 12px;
1088 margin: 0;
1088 margin: 0;
1089 }
1089 }
1090
1090
1091 #content div.box dd {
1091 #content div.box dd {
1092 font-size: 12px;
1092 font-size: 12px;
1093 margin: 0;
1093 margin: 0;
1094 padding: 8px 0 8px 15px;
1094 padding: 8px 0 8px 15px;
1095 }
1095 }
1096
1096
1097 #content div.box li {
1097 #content div.box li {
1098 font-size: 12px;
1098 font-size: 12px;
1099 padding: 4px 0;
1099 padding: 4px 0;
1100 }
1100 }
1101
1101
1102 #content div.box ul.disc,#content div.box ul.circle {
1102 #content div.box ul.disc,#content div.box ul.circle {
1103 margin: 10px 24px 10px 38px;
1103 margin: 10px 24px 10px 38px;
1104 }
1104 }
1105
1105
1106 #content div.box ul.square {
1106 #content div.box ul.square {
1107 margin: 10px 24px 10px 40px;
1107 margin: 10px 24px 10px 40px;
1108 }
1108 }
1109
1109
1110 #content div.box img.left {
1110 #content div.box img.left {
1111 border: none;
1111 border: none;
1112 float: left;
1112 float: left;
1113 margin: 10px 10px 10px 0;
1113 margin: 10px 10px 10px 0;
1114 }
1114 }
1115
1115
1116 #content div.box img.right {
1116 #content div.box img.right {
1117 border: none;
1117 border: none;
1118 float: right;
1118 float: right;
1119 margin: 10px 0 10px 10px;
1119 margin: 10px 0 10px 10px;
1120 }
1120 }
1121
1121
1122 #content div.box div.messages {
1122 #content div.box div.messages {
1123 clear: both;
1123 clear: both;
1124 overflow: hidden;
1124 overflow: hidden;
1125 margin: 0 20px;
1125 margin: 0 20px;
1126 padding: 0;
1126 padding: 0;
1127 }
1127 }
1128
1128
1129 #content div.box div.message {
1129 #content div.box div.message {
1130 clear: both;
1130 clear: both;
1131 overflow: hidden;
1131 overflow: hidden;
1132 margin: 0;
1132 margin: 0;
1133 padding: 10px 0;
1133 padding: 5px 0;
1134 white-space: pre-wrap;
1135 }
1136 #content div.box div.expand{
1137 position:absolute;
1138 width:inherit;
1139 height:14px;
1140 font-size:14px;
1141 text-align:left;
1142 cursor: pointer;
1143 font-family: monospace;
1144 color:#003367;
1145 /*
1146 background:-webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,rgba(255,255,255,1)));
1147 background:-webkit-linear-gradient(top,rgba(255,255,255,0),rgba(255,255,255,1));
1148 background:-moz-linear-gradient(top,rgba(255,255,255,0),rgba(255,255,255,1));
1149 background:-o-linear-gradient(top,rgba(255,255,255,0),rgba(255,255,255,1));
1150 background:-ms-linear-gradient(top,rgba(255,255,255,0),rgba(255,255,255,1));
1151 background:linear-gradient(top,rgba(255,255,255,0),rgba(255,255,255,1));
1152 */
1153 display: none;
1134 }
1154 }
1135
1155
1136 #content div.box div.message a {
1156 #content div.box div.message a {
1137 font-weight: 400 !important;
1157 font-weight: 400 !important;
1138 }
1158 }
1139
1159
1140 #content div.box div.message div.image {
1160 #content div.box div.message div.image {
1141 float: left;
1161 float: left;
1142 margin: 9px 0 0 5px;
1162 margin: 9px 0 0 5px;
1143 padding: 6px;
1163 padding: 6px;
1144 }
1164 }
1145
1165
1146 #content div.box div.message div.image img {
1166 #content div.box div.message div.image img {
1147 vertical-align: middle;
1167 vertical-align: middle;
1148 margin: 0;
1168 margin: 0;
1149 }
1169 }
1150
1170
1151 #content div.box div.message div.text {
1171 #content div.box div.message div.text {
1152 float: left;
1172 float: left;
1153 margin: 0;
1173 margin: 0;
1154 padding: 9px 6px;
1174 padding: 9px 6px;
1155 }
1175 }
1156
1176
1157 #content div.box div.message div.dismiss a {
1177 #content div.box div.message div.dismiss a {
1158 height: 16px;
1178 height: 16px;
1159 width: 16px;
1179 width: 16px;
1160 display: block;
1180 display: block;
1161 background: url("../images/icons/cross.png") no-repeat;
1181 background: url("../images/icons/cross.png") no-repeat;
1162 margin: 15px 14px 0 0;
1182 margin: 15px 14px 0 0;
1163 padding: 0;
1183 padding: 0;
1164 }
1184 }
1165
1185
1166 #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
1186 #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
1167 {
1187 {
1168 border: none;
1188 border: none;
1169 margin: 0;
1189 margin: 0;
1170 padding: 0;
1190 padding: 0;
1171 }
1191 }
1172
1192
1173 #content div.box div.message div.text span {
1193 #content div.box div.message div.text span {
1174 height: 1%;
1194 height: 1%;
1175 display: block;
1195 display: block;
1176 margin: 0;
1196 margin: 0;
1177 padding: 5px 0 0;
1197 padding: 5px 0 0;
1178 }
1198 }
1179
1199
1180 #content div.box div.message-error {
1200 #content div.box div.message-error {
1181 height: 1%;
1201 height: 1%;
1182 clear: both;
1202 clear: both;
1183 overflow: hidden;
1203 overflow: hidden;
1184 background: #FBE3E4;
1204 background: #FBE3E4;
1185 border: 1px solid #FBC2C4;
1205 border: 1px solid #FBC2C4;
1186 color: #860006;
1206 color: #860006;
1187 }
1207 }
1188
1208
1189 #content div.box div.message-error h6 {
1209 #content div.box div.message-error h6 {
1190 color: #860006;
1210 color: #860006;
1191 }
1211 }
1192
1212
1193 #content div.box div.message-warning {
1213 #content div.box div.message-warning {
1194 height: 1%;
1214 height: 1%;
1195 clear: both;
1215 clear: both;
1196 overflow: hidden;
1216 overflow: hidden;
1197 background: #FFF6BF;
1217 background: #FFF6BF;
1198 border: 1px solid #FFD324;
1218 border: 1px solid #FFD324;
1199 color: #5f5200;
1219 color: #5f5200;
1200 }
1220 }
1201
1221
1202 #content div.box div.message-warning h6 {
1222 #content div.box div.message-warning h6 {
1203 color: #5f5200;
1223 color: #5f5200;
1204 }
1224 }
1205
1225
1206 #content div.box div.message-notice {
1226 #content div.box div.message-notice {
1207 height: 1%;
1227 height: 1%;
1208 clear: both;
1228 clear: both;
1209 overflow: hidden;
1229 overflow: hidden;
1210 background: #8FBDE0;
1230 background: #8FBDE0;
1211 border: 1px solid #6BACDE;
1231 border: 1px solid #6BACDE;
1212 color: #003863;
1232 color: #003863;
1213 }
1233 }
1214
1234
1215 #content div.box div.message-notice h6 {
1235 #content div.box div.message-notice h6 {
1216 color: #003863;
1236 color: #003863;
1217 }
1237 }
1218
1238
1219 #content div.box div.message-success {
1239 #content div.box div.message-success {
1220 height: 1%;
1240 height: 1%;
1221 clear: both;
1241 clear: both;
1222 overflow: hidden;
1242 overflow: hidden;
1223 background: #E6EFC2;
1243 background: #E6EFC2;
1224 border: 1px solid #C6D880;
1244 border: 1px solid #C6D880;
1225 color: #4e6100;
1245 color: #4e6100;
1226 }
1246 }
1227
1247
1228 #content div.box div.message-success h6 {
1248 #content div.box div.message-success h6 {
1229 color: #4e6100;
1249 color: #4e6100;
1230 }
1250 }
1231
1251
1232 #content div.box div.form div.fields div.field {
1252 #content div.box div.form div.fields div.field {
1233 height: 1%;
1253 height: 1%;
1234 border-bottom: 1px solid #DDD;
1254 border-bottom: 1px solid #DDD;
1235 clear: both;
1255 clear: both;
1236 margin: 0;
1256 margin: 0;
1237 padding: 10px 0;
1257 padding: 10px 0;
1238 }
1258 }
1239
1259
1240 #content div.box div.form div.fields div.field-first {
1260 #content div.box div.form div.fields div.field-first {
1241 padding: 0 0 10px;
1261 padding: 0 0 10px;
1242 }
1262 }
1243
1263
1244 #content div.box div.form div.fields div.field-noborder {
1264 #content div.box div.form div.fields div.field-noborder {
1245 border-bottom: 0 !important;
1265 border-bottom: 0 !important;
1246 }
1266 }
1247
1267
1248 #content div.box div.form div.fields div.field span.error-message {
1268 #content div.box div.form div.fields div.field span.error-message {
1249 height: 1%;
1269 height: 1%;
1250 display: inline-block;
1270 display: inline-block;
1251 color: red;
1271 color: red;
1252 margin: 8px 0 0 4px;
1272 margin: 8px 0 0 4px;
1253 padding: 0;
1273 padding: 0;
1254 }
1274 }
1255
1275
1256 #content div.box div.form div.fields div.field span.success {
1276 #content div.box div.form div.fields div.field span.success {
1257 height: 1%;
1277 height: 1%;
1258 display: block;
1278 display: block;
1259 color: #316309;
1279 color: #316309;
1260 margin: 8px 0 0;
1280 margin: 8px 0 0;
1261 padding: 0;
1281 padding: 0;
1262 }
1282 }
1263
1283
1264 #content div.box div.form div.fields div.field div.label {
1284 #content div.box div.form div.fields div.field div.label {
1265 left: 70px;
1285 left: 70px;
1266 width: 155px;
1286 width: 155px;
1267 position: absolute;
1287 position: absolute;
1268 margin: 0;
1288 margin: 0;
1269 padding: 5px 0 0 0px;
1289 padding: 5px 0 0 0px;
1270 }
1290 }
1271
1291
1272 #content div.box div.form div.fields div.field div.label-summary {
1292 #content div.box div.form div.fields div.field div.label-summary {
1273 left: 30px;
1293 left: 30px;
1274 width: 155px;
1294 width: 155px;
1275 position: absolute;
1295 position: absolute;
1276 margin: 0;
1296 margin: 0;
1277 padding: 0px 0 0 0px;
1297 padding: 0px 0 0 0px;
1278 }
1298 }
1279
1299
1280 #content div.box-left div.form div.fields div.field div.label,
1300 #content div.box-left div.form div.fields div.field div.label,
1281 #content div.box-right div.form div.fields div.field div.label,
1301 #content div.box-right div.form div.fields div.field div.label,
1282 #content div.box-left div.form div.fields div.field div.label,
1302 #content div.box-left div.form div.fields div.field div.label,
1283 #content div.box-left div.form div.fields div.field div.label-summary,
1303 #content div.box-left div.form div.fields div.field div.label-summary,
1284 #content div.box-right div.form div.fields div.field div.label-summary,
1304 #content div.box-right div.form div.fields div.field div.label-summary,
1285 #content div.box-left div.form div.fields div.field div.label-summary
1305 #content div.box-left div.form div.fields div.field div.label-summary
1286 {
1306 {
1287 clear: both;
1307 clear: both;
1288 overflow: hidden;
1308 overflow: hidden;
1289 left: 0;
1309 left: 0;
1290 width: auto;
1310 width: auto;
1291 position: relative;
1311 position: relative;
1292 margin: 0;
1312 margin: 0;
1293 padding: 0 0 8px;
1313 padding: 0 0 8px;
1294 }
1314 }
1295
1315
1296 #content div.box div.form div.fields div.field div.label-select {
1316 #content div.box div.form div.fields div.field div.label-select {
1297 padding: 5px 0 0 5px;
1317 padding: 5px 0 0 5px;
1298 }
1318 }
1299
1319
1300 #content div.box-left div.form div.fields div.field div.label-select,
1320 #content div.box-left div.form div.fields div.field div.label-select,
1301 #content div.box-right div.form div.fields div.field div.label-select
1321 #content div.box-right div.form div.fields div.field div.label-select
1302 {
1322 {
1303 padding: 0 0 8px;
1323 padding: 0 0 8px;
1304 }
1324 }
1305
1325
1306 #content div.box-left div.form div.fields div.field div.label-textarea,
1326 #content div.box-left div.form div.fields div.field div.label-textarea,
1307 #content div.box-right div.form div.fields div.field div.label-textarea
1327 #content div.box-right div.form div.fields div.field div.label-textarea
1308 {
1328 {
1309 padding: 0 0 8px !important;
1329 padding: 0 0 8px !important;
1310 }
1330 }
1311
1331
1312 #content div.box div.form div.fields div.field div.label label,div.label label
1332 #content div.box div.form div.fields div.field div.label label,div.label label
1313 {
1333 {
1314 color: #393939;
1334 color: #393939;
1315 font-weight: 700;
1335 font-weight: 700;
1316 }
1336 }
1317 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1337 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1318 {
1338 {
1319 color: #393939;
1339 color: #393939;
1320 font-weight: 700;
1340 font-weight: 700;
1321 }
1341 }
1322 #content div.box div.form div.fields div.field div.input {
1342 #content div.box div.form div.fields div.field div.input {
1323 margin: 0 0 0 200px;
1343 margin: 0 0 0 200px;
1324 }
1344 }
1325
1345
1326 #content div.box div.form div.fields div.field div.input.summary {
1346 #content div.box div.form div.fields div.field div.input.summary {
1327 margin: 0 0 0 110px;
1347 margin: 0 0 0 110px;
1328 }
1348 }
1329 #content div.box div.form div.fields div.field div.input.summary-short {
1349 #content div.box div.form div.fields div.field div.input.summary-short {
1330 margin: 0 0 0 110px;
1350 margin: 0 0 0 110px;
1331 }
1351 }
1332 #content div.box div.form div.fields div.field div.file {
1352 #content div.box div.form div.fields div.field div.file {
1333 margin: 0 0 0 200px;
1353 margin: 0 0 0 200px;
1334 }
1354 }
1335
1355
1336 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1356 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1337 {
1357 {
1338 margin: 0 0 0 0px;
1358 margin: 0 0 0 0px;
1339 }
1359 }
1340
1360
1341 #content div.box div.form div.fields div.field div.input input {
1361 #content div.box div.form div.fields div.field div.input input {
1342 background: #FFF;
1362 background: #FFF;
1343 border-top: 1px solid #b3b3b3;
1363 border-top: 1px solid #b3b3b3;
1344 border-left: 1px solid #b3b3b3;
1364 border-left: 1px solid #b3b3b3;
1345 border-right: 1px solid #eaeaea;
1365 border-right: 1px solid #eaeaea;
1346 border-bottom: 1px solid #eaeaea;
1366 border-bottom: 1px solid #eaeaea;
1347 color: #000;
1367 color: #000;
1348 font-size: 11px;
1368 font-size: 11px;
1349 margin: 0;
1369 margin: 0;
1350 padding: 7px 7px 6px;
1370 padding: 7px 7px 6px;
1351 }
1371 }
1352
1372
1353 #content div.box div.form div.fields div.field div.input input#clone_url,
1373 #content div.box div.form div.fields div.field div.input input#clone_url,
1354 #content div.box div.form div.fields div.field div.input input#clone_url_id
1374 #content div.box div.form div.fields div.field div.input input#clone_url_id
1355 {
1375 {
1356 font-size: 16px;
1376 font-size: 16px;
1357 padding: 2px;
1377 padding: 2px;
1358 }
1378 }
1359
1379
1360 #content div.box div.form div.fields div.field div.file input {
1380 #content div.box div.form div.fields div.field div.file input {
1361 background: none repeat scroll 0 0 #FFFFFF;
1381 background: none repeat scroll 0 0 #FFFFFF;
1362 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1382 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1363 border-style: solid;
1383 border-style: solid;
1364 border-width: 1px;
1384 border-width: 1px;
1365 color: #000000;
1385 color: #000000;
1366 font-size: 11px;
1386 font-size: 11px;
1367 margin: 0;
1387 margin: 0;
1368 padding: 7px 7px 6px;
1388 padding: 7px 7px 6px;
1369 }
1389 }
1370
1390
1371 #content div.box div.form div.fields div.field div.input input.small {
1391 #content div.box div.form div.fields div.field div.input input.small {
1372 width: 30%;
1392 width: 30%;
1373 }
1393 }
1374
1394
1375 #content div.box div.form div.fields div.field div.input input.medium {
1395 #content div.box div.form div.fields div.field div.input input.medium {
1376 width: 55%;
1396 width: 55%;
1377 }
1397 }
1378
1398
1379 #content div.box div.form div.fields div.field div.input input.large {
1399 #content div.box div.form div.fields div.field div.input input.large {
1380 width: 85%;
1400 width: 85%;
1381 }
1401 }
1382
1402
1383 #content div.box div.form div.fields div.field div.input input.date {
1403 #content div.box div.form div.fields div.field div.input input.date {
1384 width: 177px;
1404 width: 177px;
1385 }
1405 }
1386
1406
1387 #content div.box div.form div.fields div.field div.input input.button {
1407 #content div.box div.form div.fields div.field div.input input.button {
1388 background: #D4D0C8;
1408 background: #D4D0C8;
1389 border-top: 1px solid #FFF;
1409 border-top: 1px solid #FFF;
1390 border-left: 1px solid #FFF;
1410 border-left: 1px solid #FFF;
1391 border-right: 1px solid #404040;
1411 border-right: 1px solid #404040;
1392 border-bottom: 1px solid #404040;
1412 border-bottom: 1px solid #404040;
1393 color: #000;
1413 color: #000;
1394 margin: 0;
1414 margin: 0;
1395 padding: 4px 8px;
1415 padding: 4px 8px;
1396 }
1416 }
1397
1417
1398 #content div.box div.form div.fields div.field div.textarea {
1418 #content div.box div.form div.fields div.field div.textarea {
1399 border-top: 1px solid #b3b3b3;
1419 border-top: 1px solid #b3b3b3;
1400 border-left: 1px solid #b3b3b3;
1420 border-left: 1px solid #b3b3b3;
1401 border-right: 1px solid #eaeaea;
1421 border-right: 1px solid #eaeaea;
1402 border-bottom: 1px solid #eaeaea;
1422 border-bottom: 1px solid #eaeaea;
1403 margin: 0 0 0 200px;
1423 margin: 0 0 0 200px;
1404 padding: 10px;
1424 padding: 10px;
1405 }
1425 }
1406
1426
1407 #content div.box div.form div.fields div.field div.textarea-editor {
1427 #content div.box div.form div.fields div.field div.textarea-editor {
1408 border: 1px solid #ddd;
1428 border: 1px solid #ddd;
1409 padding: 0;
1429 padding: 0;
1410 }
1430 }
1411
1431
1412 #content div.box div.form div.fields div.field div.textarea textarea {
1432 #content div.box div.form div.fields div.field div.textarea textarea {
1413 width: 100%;
1433 width: 100%;
1414 height: 220px;
1434 height: 220px;
1415 overflow: hidden;
1435 overflow: hidden;
1416 background: #FFF;
1436 background: #FFF;
1417 color: #000;
1437 color: #000;
1418 font-size: 11px;
1438 font-size: 11px;
1419 outline: none;
1439 outline: none;
1420 border-width: 0;
1440 border-width: 0;
1421 margin: 0;
1441 margin: 0;
1422 padding: 0;
1442 padding: 0;
1423 }
1443 }
1424
1444
1425 #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
1445 #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
1426 {
1446 {
1427 width: 100%;
1447 width: 100%;
1428 height: 100px;
1448 height: 100px;
1429 }
1449 }
1430
1450
1431 #content div.box div.form div.fields div.field div.textarea table {
1451 #content div.box div.form div.fields div.field div.textarea table {
1432 width: 100%;
1452 width: 100%;
1433 border: none;
1453 border: none;
1434 margin: 0;
1454 margin: 0;
1435 padding: 0;
1455 padding: 0;
1436 }
1456 }
1437
1457
1438 #content div.box div.form div.fields div.field div.textarea table td {
1458 #content div.box div.form div.fields div.field div.textarea table td {
1439 background: #DDD;
1459 background: #DDD;
1440 border: none;
1460 border: none;
1441 padding: 0;
1461 padding: 0;
1442 }
1462 }
1443
1463
1444 #content div.box div.form div.fields div.field div.textarea table td table
1464 #content div.box div.form div.fields div.field div.textarea table td table
1445 {
1465 {
1446 width: auto;
1466 width: auto;
1447 border: none;
1467 border: none;
1448 margin: 0;
1468 margin: 0;
1449 padding: 0;
1469 padding: 0;
1450 }
1470 }
1451
1471
1452 #content div.box div.form div.fields div.field div.textarea table td table td
1472 #content div.box div.form div.fields div.field div.textarea table td table td
1453 {
1473 {
1454 font-size: 11px;
1474 font-size: 11px;
1455 padding: 5px 5px 5px 0;
1475 padding: 5px 5px 5px 0;
1456 }
1476 }
1457
1477
1458 #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
1478 #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
1459 {
1479 {
1460 background: #f6f6f6;
1480 background: #f6f6f6;
1461 border-color: #666;
1481 border-color: #666;
1462 }
1482 }
1463
1483
1464 div.form div.fields div.field div.button {
1484 div.form div.fields div.field div.button {
1465 margin: 0;
1485 margin: 0;
1466 padding: 0 0 0 8px;
1486 padding: 0 0 0 8px;
1467 }
1487 }
1468 #content div.box table.noborder {
1488 #content div.box table.noborder {
1469 border: 1px solid transparent;
1489 border: 1px solid transparent;
1470 }
1490 }
1471
1491
1472 #content div.box table {
1492 #content div.box table {
1473 width: 100%;
1493 width: 100%;
1474 border-collapse: separate;
1494 border-collapse: separate;
1475 margin: 0;
1495 margin: 0;
1476 padding: 0;
1496 padding: 0;
1477 border: 1px solid #eee;
1497 border: 1px solid #eee;
1478 -webkit-border-radius: 4px;
1498 -webkit-border-radius: 4px;
1479 -moz-border-radius: 4px;
1499 -moz-border-radius: 4px;
1480 border-radius: 4px;
1500 border-radius: 4px;
1481 }
1501 }
1482
1502
1483 #content div.box table th {
1503 #content div.box table th {
1484 background: #eee;
1504 background: #eee;
1485 border-bottom: 1px solid #ddd;
1505 border-bottom: 1px solid #ddd;
1486 padding: 5px 0px 5px 5px;
1506 padding: 5px 0px 5px 5px;
1487 }
1507 }
1488
1508
1489 #content div.box table th.left {
1509 #content div.box table th.left {
1490 text-align: left;
1510 text-align: left;
1491 }
1511 }
1492
1512
1493 #content div.box table th.right {
1513 #content div.box table th.right {
1494 text-align: right;
1514 text-align: right;
1495 }
1515 }
1496
1516
1497 #content div.box table th.center {
1517 #content div.box table th.center {
1498 text-align: center;
1518 text-align: center;
1499 }
1519 }
1500
1520
1501 #content div.box table th.selected {
1521 #content div.box table th.selected {
1502 vertical-align: middle;
1522 vertical-align: middle;
1503 padding: 0;
1523 padding: 0;
1504 }
1524 }
1505
1525
1506 #content div.box table td {
1526 #content div.box table td {
1507 background: #fff;
1527 background: #fff;
1508 border-bottom: 1px solid #cdcdcd;
1528 border-bottom: 1px solid #cdcdcd;
1509 vertical-align: middle;
1529 vertical-align: middle;
1510 padding: 5px;
1530 padding: 5px;
1511 }
1531 }
1512
1532
1513 #content div.box table tr.selected td {
1533 #content div.box table tr.selected td {
1514 background: #FFC;
1534 background: #FFC;
1515 }
1535 }
1516
1536
1517 #content div.box table td.selected {
1537 #content div.box table td.selected {
1518 width: 3%;
1538 width: 3%;
1519 text-align: center;
1539 text-align: center;
1520 vertical-align: middle;
1540 vertical-align: middle;
1521 padding: 0;
1541 padding: 0;
1522 }
1542 }
1523
1543
1524 #content div.box table td.action {
1544 #content div.box table td.action {
1525 width: 45%;
1545 width: 45%;
1526 text-align: left;
1546 text-align: left;
1527 }
1547 }
1528
1548
1529 #content div.box table td.date {
1549 #content div.box table td.date {
1530 width: 33%;
1550 width: 33%;
1531 text-align: center;
1551 text-align: center;
1532 }
1552 }
1533
1553
1534 #content div.box div.action {
1554 #content div.box div.action {
1535 float: right;
1555 float: right;
1536 background: #FFF;
1556 background: #FFF;
1537 text-align: right;
1557 text-align: right;
1538 margin: 10px 0 0;
1558 margin: 10px 0 0;
1539 padding: 0;
1559 padding: 0;
1540 }
1560 }
1541
1561
1542 #content div.box div.action select {
1562 #content div.box div.action select {
1543 font-size: 11px;
1563 font-size: 11px;
1544 margin: 0;
1564 margin: 0;
1545 }
1565 }
1546
1566
1547 #content div.box div.action .ui-selectmenu {
1567 #content div.box div.action .ui-selectmenu {
1548 margin: 0;
1568 margin: 0;
1549 padding: 0;
1569 padding: 0;
1550 }
1570 }
1551
1571
1552 #content div.box div.pagination {
1572 #content div.box div.pagination {
1553 height: 1%;
1573 height: 1%;
1554 clear: both;
1574 clear: both;
1555 overflow: hidden;
1575 overflow: hidden;
1556 margin: 10px 0 0;
1576 margin: 10px 0 0;
1557 padding: 0;
1577 padding: 0;
1558 }
1578 }
1559
1579
1560 #content div.box div.pagination ul.pager {
1580 #content div.box div.pagination ul.pager {
1561 float: right;
1581 float: right;
1562 text-align: right;
1582 text-align: right;
1563 margin: 0;
1583 margin: 0;
1564 padding: 0;
1584 padding: 0;
1565 }
1585 }
1566
1586
1567 #content div.box div.pagination ul.pager li {
1587 #content div.box div.pagination ul.pager li {
1568 height: 1%;
1588 height: 1%;
1569 float: left;
1589 float: left;
1570 list-style: none;
1590 list-style: none;
1571 background: #ebebeb url("../images/pager.png") repeat-x;
1591 background: #ebebeb url("../images/pager.png") repeat-x;
1572 border-top: 1px solid #dedede;
1592 border-top: 1px solid #dedede;
1573 border-left: 1px solid #cfcfcf;
1593 border-left: 1px solid #cfcfcf;
1574 border-right: 1px solid #c4c4c4;
1594 border-right: 1px solid #c4c4c4;
1575 border-bottom: 1px solid #c4c4c4;
1595 border-bottom: 1px solid #c4c4c4;
1576 color: #4A4A4A;
1596 color: #4A4A4A;
1577 font-weight: 700;
1597 font-weight: 700;
1578 margin: 0 0 0 4px;
1598 margin: 0 0 0 4px;
1579 padding: 0;
1599 padding: 0;
1580 }
1600 }
1581
1601
1582 #content div.box div.pagination ul.pager li.separator {
1602 #content div.box div.pagination ul.pager li.separator {
1583 padding: 6px;
1603 padding: 6px;
1584 }
1604 }
1585
1605
1586 #content div.box div.pagination ul.pager li.current {
1606 #content div.box div.pagination ul.pager li.current {
1587 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1607 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1588 border-top: 1px solid #ccc;
1608 border-top: 1px solid #ccc;
1589 border-left: 1px solid #bebebe;
1609 border-left: 1px solid #bebebe;
1590 border-right: 1px solid #b1b1b1;
1610 border-right: 1px solid #b1b1b1;
1591 border-bottom: 1px solid #afafaf;
1611 border-bottom: 1px solid #afafaf;
1592 color: #515151;
1612 color: #515151;
1593 padding: 6px;
1613 padding: 6px;
1594 }
1614 }
1595
1615
1596 #content div.box div.pagination ul.pager li a {
1616 #content div.box div.pagination ul.pager li a {
1597 height: 1%;
1617 height: 1%;
1598 display: block;
1618 display: block;
1599 float: left;
1619 float: left;
1600 color: #515151;
1620 color: #515151;
1601 text-decoration: none;
1621 text-decoration: none;
1602 margin: 0;
1622 margin: 0;
1603 padding: 6px;
1623 padding: 6px;
1604 }
1624 }
1605
1625
1606 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1626 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1607 {
1627 {
1608 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1628 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1609 border-top: 1px solid #ccc;
1629 border-top: 1px solid #ccc;
1610 border-left: 1px solid #bebebe;
1630 border-left: 1px solid #bebebe;
1611 border-right: 1px solid #b1b1b1;
1631 border-right: 1px solid #b1b1b1;
1612 border-bottom: 1px solid #afafaf;
1632 border-bottom: 1px solid #afafaf;
1613 margin: -1px;
1633 margin: -1px;
1614 }
1634 }
1615
1635
1616 #content div.box div.pagination-wh {
1636 #content div.box div.pagination-wh {
1617 height: 1%;
1637 height: 1%;
1618 clear: both;
1638 clear: both;
1619 overflow: hidden;
1639 overflow: hidden;
1620 text-align: right;
1640 text-align: right;
1621 margin: 10px 0 0;
1641 margin: 10px 0 0;
1622 padding: 0;
1642 padding: 0;
1623 }
1643 }
1624
1644
1625 #content div.box div.pagination-right {
1645 #content div.box div.pagination-right {
1626 float: right;
1646 float: right;
1627 }
1647 }
1628
1648
1629 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1649 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1630 {
1650 {
1631 height: 1%;
1651 height: 1%;
1632 float: left;
1652 float: left;
1633 background: #ebebeb url("../images/pager.png") repeat-x;
1653 background: #ebebeb url("../images/pager.png") repeat-x;
1634 border-top: 1px solid #dedede;
1654 border-top: 1px solid #dedede;
1635 border-left: 1px solid #cfcfcf;
1655 border-left: 1px solid #cfcfcf;
1636 border-right: 1px solid #c4c4c4;
1656 border-right: 1px solid #c4c4c4;
1637 border-bottom: 1px solid #c4c4c4;
1657 border-bottom: 1px solid #c4c4c4;
1638 color: #4A4A4A;
1658 color: #4A4A4A;
1639 font-weight: 700;
1659 font-weight: 700;
1640 margin: 0 0 0 4px;
1660 margin: 0 0 0 4px;
1641 padding: 6px;
1661 padding: 6px;
1642 }
1662 }
1643
1663
1644 #content div.box div.pagination-wh span.pager_curpage {
1664 #content div.box div.pagination-wh span.pager_curpage {
1645 height: 1%;
1665 height: 1%;
1646 float: left;
1666 float: left;
1647 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1667 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1648 border-top: 1px solid #ccc;
1668 border-top: 1px solid #ccc;
1649 border-left: 1px solid #bebebe;
1669 border-left: 1px solid #bebebe;
1650 border-right: 1px solid #b1b1b1;
1670 border-right: 1px solid #b1b1b1;
1651 border-bottom: 1px solid #afafaf;
1671 border-bottom: 1px solid #afafaf;
1652 color: #515151;
1672 color: #515151;
1653 font-weight: 700;
1673 font-weight: 700;
1654 margin: 0 0 0 4px;
1674 margin: 0 0 0 4px;
1655 padding: 6px;
1675 padding: 6px;
1656 }
1676 }
1657
1677
1658 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1678 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1659 {
1679 {
1660 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1680 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1661 border-top: 1px solid #ccc;
1681 border-top: 1px solid #ccc;
1662 border-left: 1px solid #bebebe;
1682 border-left: 1px solid #bebebe;
1663 border-right: 1px solid #b1b1b1;
1683 border-right: 1px solid #b1b1b1;
1664 border-bottom: 1px solid #afafaf;
1684 border-bottom: 1px solid #afafaf;
1665 text-decoration: none;
1685 text-decoration: none;
1666 }
1686 }
1667
1687
1668 #content div.box div.traffic div.legend {
1688 #content div.box div.traffic div.legend {
1669 clear: both;
1689 clear: both;
1670 overflow: hidden;
1690 overflow: hidden;
1671 border-bottom: 1px solid #ddd;
1691 border-bottom: 1px solid #ddd;
1672 margin: 0 0 10px;
1692 margin: 0 0 10px;
1673 padding: 0 0 10px;
1693 padding: 0 0 10px;
1674 }
1694 }
1675
1695
1676 #content div.box div.traffic div.legend h6 {
1696 #content div.box div.traffic div.legend h6 {
1677 float: left;
1697 float: left;
1678 border: none;
1698 border: none;
1679 margin: 0;
1699 margin: 0;
1680 padding: 0;
1700 padding: 0;
1681 }
1701 }
1682
1702
1683 #content div.box div.traffic div.legend li {
1703 #content div.box div.traffic div.legend li {
1684 list-style: none;
1704 list-style: none;
1685 float: left;
1705 float: left;
1686 font-size: 11px;
1706 font-size: 11px;
1687 margin: 0;
1707 margin: 0;
1688 padding: 0 8px 0 4px;
1708 padding: 0 8px 0 4px;
1689 }
1709 }
1690
1710
1691 #content div.box div.traffic div.legend li.visits {
1711 #content div.box div.traffic div.legend li.visits {
1692 border-left: 12px solid #edc240;
1712 border-left: 12px solid #edc240;
1693 }
1713 }
1694
1714
1695 #content div.box div.traffic div.legend li.pageviews {
1715 #content div.box div.traffic div.legend li.pageviews {
1696 border-left: 12px solid #afd8f8;
1716 border-left: 12px solid #afd8f8;
1697 }
1717 }
1698
1718
1699 #content div.box div.traffic table {
1719 #content div.box div.traffic table {
1700 width: auto;
1720 width: auto;
1701 }
1721 }
1702
1722
1703 #content div.box div.traffic table td {
1723 #content div.box div.traffic table td {
1704 background: transparent;
1724 background: transparent;
1705 border: none;
1725 border: none;
1706 padding: 2px 3px 3px;
1726 padding: 2px 3px 3px;
1707 }
1727 }
1708
1728
1709 #content div.box div.traffic table td.legendLabel {
1729 #content div.box div.traffic table td.legendLabel {
1710 padding: 0 3px 2px;
1730 padding: 0 3px 2px;
1711 }
1731 }
1712
1732
1713 #summary {
1733 #summary {
1714
1734
1715 }
1735 }
1716
1736
1717 #summary .desc {
1737 #summary .desc {
1718 white-space: pre;
1738 white-space: pre;
1719 width: 100%;
1739 width: 100%;
1720 }
1740 }
1721
1741
1722 #summary .repo_name {
1742 #summary .repo_name {
1723 font-size: 1.6em;
1743 font-size: 1.6em;
1724 font-weight: bold;
1744 font-weight: bold;
1725 vertical-align: baseline;
1745 vertical-align: baseline;
1726 clear: right
1746 clear: right
1727 }
1747 }
1728
1748
1729 #footer {
1749 #footer {
1730 clear: both;
1750 clear: both;
1731 overflow: hidden;
1751 overflow: hidden;
1732 text-align: right;
1752 text-align: right;
1733 margin: 0;
1753 margin: 0;
1734 padding: 0 10px 4px;
1754 padding: 0 10px 4px;
1735 margin: -10px 0 0;
1755 margin: -10px 0 0;
1736 }
1756 }
1737
1757
1738 #footer div#footer-inner {
1758 #footer div#footer-inner {
1739 background-color: #eedc94; background-repeat : repeat-x;
1759 background-color: #eedc94; background-repeat : repeat-x;
1740 background-image : -khtml-gradient( linear, left top, left bottom,
1760 background-image : -khtml-gradient( linear, left top, left bottom,
1741 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1761 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1742 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1762 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1743 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1763 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1744 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1764 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1745 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1765 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1746 background-image : -o-linear-gradient( top, #003b76, #00376e));
1766 background-image : -o-linear-gradient( top, #003b76, #00376e));
1747 background-image : linear-gradient( top, #003b76, #00376e); filter :
1767 background-image : linear-gradient( top, #003b76, #00376e); filter :
1748 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1768 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1749 '#003b76', endColorstr = '#00376e', GradientType = 0);
1769 '#003b76', endColorstr = '#00376e', GradientType = 0);
1750 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1770 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1751 -webkit-border-radius: 4px 4px 4px 4px;
1771 -webkit-border-radius: 4px 4px 4px 4px;
1752 -khtml-border-radius: 4px 4px 4px 4px;
1772 -khtml-border-radius: 4px 4px 4px 4px;
1753 -moz-border-radius: 4px 4px 4px 4px;
1773 -moz-border-radius: 4px 4px 4px 4px;
1754 border-radius: 4px 4px 4px 4px;
1774 border-radius: 4px 4px 4px 4px;
1755 background-repeat: repeat-x;
1775 background-repeat: repeat-x;
1756 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1776 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1757 to(#eedc94) );
1777 to(#eedc94) );
1758 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1778 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1759 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1779 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1760 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1780 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1761 color-stop(100%, #00376e) );
1781 color-stop(100%, #00376e) );
1762 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1782 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1763 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1783 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1764 background-image: linear-gradient(top, #003b76, #00376e);
1784 background-image: linear-gradient(top, #003b76, #00376e);
1765 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1785 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1766 endColorstr='#00376e', GradientType=0 );
1786 endColorstr='#00376e', GradientType=0 );
1767 }
1787 }
1768
1788
1769 #footer div#footer-inner p {
1789 #footer div#footer-inner p {
1770 padding: 15px 25px 15px 0;
1790 padding: 15px 25px 15px 0;
1771 color: #FFF;
1791 color: #FFF;
1772 font-weight: 700;
1792 font-weight: 700;
1773 }
1793 }
1774
1794
1775 #footer div#footer-inner .footer-link {
1795 #footer div#footer-inner .footer-link {
1776 float: left;
1796 float: left;
1777 padding-left: 10px;
1797 padding-left: 10px;
1778 }
1798 }
1779
1799
1780 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1800 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1781 {
1801 {
1782 color: #FFF;
1802 color: #FFF;
1783 }
1803 }
1784
1804
1785 #login div.title {
1805 #login div.title {
1786 width: 420px;
1806 width: 420px;
1787 clear: both;
1807 clear: both;
1788 overflow: hidden;
1808 overflow: hidden;
1789 position: relative;
1809 position: relative;
1790 background-color: #eedc94; background-repeat : repeat-x;
1810 background-color: #eedc94; background-repeat : repeat-x;
1791 background-image : -khtml-gradient( linear, left top, left bottom,
1811 background-image : -khtml-gradient( linear, left top, left bottom,
1792 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1812 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1793 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1813 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1794 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1814 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1795 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1815 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1796 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1816 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1797 background-image : -o-linear-gradient( top, #003b76, #00376e));
1817 background-image : -o-linear-gradient( top, #003b76, #00376e));
1798 background-image : linear-gradient( top, #003b76, #00376e); filter :
1818 background-image : linear-gradient( top, #003b76, #00376e); filter :
1799 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1819 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1800 '#003b76', endColorstr = '#00376e', GradientType = 0);
1820 '#003b76', endColorstr = '#00376e', GradientType = 0);
1801 margin: 0 auto;
1821 margin: 0 auto;
1802 padding: 0;
1822 padding: 0;
1803 background-repeat: repeat-x;
1823 background-repeat: repeat-x;
1804 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1824 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1805 to(#eedc94) );
1825 to(#eedc94) );
1806 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1826 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1807 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1827 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1808 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1828 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1809 color-stop(100%, #00376e) );
1829 color-stop(100%, #00376e) );
1810 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1830 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1811 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1831 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1812 background-image: linear-gradient(top, #003b76, #00376e);
1832 background-image: linear-gradient(top, #003b76, #00376e);
1813 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1833 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1814 endColorstr='#00376e', GradientType=0 );
1834 endColorstr='#00376e', GradientType=0 );
1815 }
1835 }
1816
1836
1817 #login div.inner {
1837 #login div.inner {
1818 width: 380px;
1838 width: 380px;
1819 background: #FFF url("../images/login.png") no-repeat top left;
1839 background: #FFF url("../images/login.png") no-repeat top left;
1820 border-top: none;
1840 border-top: none;
1821 border-bottom: none;
1841 border-bottom: none;
1822 margin: 0 auto;
1842 margin: 0 auto;
1823 padding: 20px;
1843 padding: 20px;
1824 }
1844 }
1825
1845
1826 #login div.form div.fields div.field div.label {
1846 #login div.form div.fields div.field div.label {
1827 width: 173px;
1847 width: 173px;
1828 float: left;
1848 float: left;
1829 text-align: right;
1849 text-align: right;
1830 margin: 2px 10px 0 0;
1850 margin: 2px 10px 0 0;
1831 padding: 5px 0 0 5px;
1851 padding: 5px 0 0 5px;
1832 }
1852 }
1833
1853
1834 #login div.form div.fields div.field div.input input {
1854 #login div.form div.fields div.field div.input input {
1835 width: 176px;
1855 width: 176px;
1836 background: #FFF;
1856 background: #FFF;
1837 border-top: 1px solid #b3b3b3;
1857 border-top: 1px solid #b3b3b3;
1838 border-left: 1px solid #b3b3b3;
1858 border-left: 1px solid #b3b3b3;
1839 border-right: 1px solid #eaeaea;
1859 border-right: 1px solid #eaeaea;
1840 border-bottom: 1px solid #eaeaea;
1860 border-bottom: 1px solid #eaeaea;
1841 color: #000;
1861 color: #000;
1842 font-size: 11px;
1862 font-size: 11px;
1843 margin: 0;
1863 margin: 0;
1844 padding: 7px 7px 6px;
1864 padding: 7px 7px 6px;
1845 }
1865 }
1846
1866
1847 #login div.form div.fields div.buttons {
1867 #login div.form div.fields div.buttons {
1848 clear: both;
1868 clear: both;
1849 overflow: hidden;
1869 overflow: hidden;
1850 border-top: 1px solid #DDD;
1870 border-top: 1px solid #DDD;
1851 text-align: right;
1871 text-align: right;
1852 margin: 0;
1872 margin: 0;
1853 padding: 10px 0 0;
1873 padding: 10px 0 0;
1854 }
1874 }
1855
1875
1856 #login div.form div.links {
1876 #login div.form div.links {
1857 clear: both;
1877 clear: both;
1858 overflow: hidden;
1878 overflow: hidden;
1859 margin: 10px 0 0;
1879 margin: 10px 0 0;
1860 padding: 0 0 2px;
1880 padding: 0 0 2px;
1861 }
1881 }
1862
1882
1863 #quick_login {
1883 #quick_login {
1864 top: 31px;
1884 top: 31px;
1865 background-color: rgb(0, 51, 103);
1885 background-color: rgb(0, 51, 103);
1866 z-index: 999;
1886 z-index: 999;
1867 height: 150px;
1887 height: 150px;
1868 position: absolute;
1888 position: absolute;
1869 margin-left: -16px;
1889 margin-left: -16px;
1870 width: 281px;
1890 width: 281px;
1871 -webkit-border-radius: 0px 0px 4px 4px;
1891 -webkit-border-radius: 0px 0px 4px 4px;
1872 -khtml-border-radius: 0px 0px 4px 4px;
1892 -khtml-border-radius: 0px 0px 4px 4px;
1873 -moz-border-radius: 0px 0px 4px 4px;
1893 -moz-border-radius: 0px 0px 4px 4px;
1874 border-radius: 0px 0px 4px 4px;
1894 border-radius: 0px 0px 4px 4px;
1875 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1895 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1876 }
1896 }
1877
1897
1878 #quick_login .password_forgoten {
1898 #quick_login .password_forgoten {
1879 padding-right: 10px;
1899 padding-right: 10px;
1880 padding-top: 0px;
1900 padding-top: 0px;
1881 float: left;
1901 float: left;
1882 }
1902 }
1883
1903
1884 #quick_login .password_forgoten a {
1904 #quick_login .password_forgoten a {
1885 font-size: 10px
1905 font-size: 10px
1886 }
1906 }
1887
1907
1888 #quick_login .register {
1908 #quick_login .register {
1889 padding-right: 10px;
1909 padding-right: 10px;
1890 padding-top: 5px;
1910 padding-top: 5px;
1891 float: left;
1911 float: left;
1892 }
1912 }
1893
1913
1894 #quick_login .register a {
1914 #quick_login .register a {
1895 font-size: 10px
1915 font-size: 10px
1896 }
1916 }
1897
1917
1898 #quick_login div.form div.fields {
1918 #quick_login div.form div.fields {
1899 padding-top: 2px;
1919 padding-top: 2px;
1900 padding-left: 10px;
1920 padding-left: 10px;
1901 }
1921 }
1902
1922
1903 #quick_login div.form div.fields div.field {
1923 #quick_login div.form div.fields div.field {
1904 padding: 5px;
1924 padding: 5px;
1905 }
1925 }
1906
1926
1907 #quick_login div.form div.fields div.field div.label label {
1927 #quick_login div.form div.fields div.field div.label label {
1908 color: #fff;
1928 color: #fff;
1909 padding-bottom: 3px;
1929 padding-bottom: 3px;
1910 }
1930 }
1911
1931
1912 #quick_login div.form div.fields div.field div.input input {
1932 #quick_login div.form div.fields div.field div.input input {
1913 width: 236px;
1933 width: 236px;
1914 background: #FFF;
1934 background: #FFF;
1915 border-top: 1px solid #b3b3b3;
1935 border-top: 1px solid #b3b3b3;
1916 border-left: 1px solid #b3b3b3;
1936 border-left: 1px solid #b3b3b3;
1917 border-right: 1px solid #eaeaea;
1937 border-right: 1px solid #eaeaea;
1918 border-bottom: 1px solid #eaeaea;
1938 border-bottom: 1px solid #eaeaea;
1919 color: #000;
1939 color: #000;
1920 font-size: 11px;
1940 font-size: 11px;
1921 margin: 0;
1941 margin: 0;
1922 padding: 5px 7px 4px;
1942 padding: 5px 7px 4px;
1923 }
1943 }
1924
1944
1925 #quick_login div.form div.fields div.buttons {
1945 #quick_login div.form div.fields div.buttons {
1926 clear: both;
1946 clear: both;
1927 overflow: hidden;
1947 overflow: hidden;
1928 text-align: right;
1948 text-align: right;
1929 margin: 0;
1949 margin: 0;
1930 padding: 10px 14px 0px 5px;
1950 padding: 10px 14px 0px 5px;
1931 }
1951 }
1932
1952
1933 #quick_login div.form div.links {
1953 #quick_login div.form div.links {
1934 clear: both;
1954 clear: both;
1935 overflow: hidden;
1955 overflow: hidden;
1936 margin: 10px 0 0;
1956 margin: 10px 0 0;
1937 padding: 0 0 2px;
1957 padding: 0 0 2px;
1938 }
1958 }
1939
1959
1940 #register div.title {
1960 #register div.title {
1941 clear: both;
1961 clear: both;
1942 overflow: hidden;
1962 overflow: hidden;
1943 position: relative;
1963 position: relative;
1944 background-color: #eedc94;
1964 background-color: #eedc94;
1945 background-repeat: repeat-x;
1965 background-repeat: repeat-x;
1946 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1966 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1947 to(#eedc94) );
1967 to(#eedc94) );
1948 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1968 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1949 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1969 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1950 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1970 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1951 color-stop(100%, #00376e) );
1971 color-stop(100%, #00376e) );
1952 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1972 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1953 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1973 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1954 background-image: linear-gradient(top, #003b76, #00376e);
1974 background-image: linear-gradient(top, #003b76, #00376e);
1955 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1975 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1956 endColorstr='#00376e', GradientType=0 );
1976 endColorstr='#00376e', GradientType=0 );
1957 margin: 0 auto;
1977 margin: 0 auto;
1958 padding: 0;
1978 padding: 0;
1959 }
1979 }
1960
1980
1961 #register div.inner {
1981 #register div.inner {
1962 background: #FFF;
1982 background: #FFF;
1963 border-top: none;
1983 border-top: none;
1964 border-bottom: none;
1984 border-bottom: none;
1965 margin: 0 auto;
1985 margin: 0 auto;
1966 padding: 20px;
1986 padding: 20px;
1967 }
1987 }
1968
1988
1969 #register div.form div.fields div.field div.label {
1989 #register div.form div.fields div.field div.label {
1970 width: 135px;
1990 width: 135px;
1971 float: left;
1991 float: left;
1972 text-align: right;
1992 text-align: right;
1973 margin: 2px 10px 0 0;
1993 margin: 2px 10px 0 0;
1974 padding: 5px 0 0 5px;
1994 padding: 5px 0 0 5px;
1975 }
1995 }
1976
1996
1977 #register div.form div.fields div.field div.input input {
1997 #register div.form div.fields div.field div.input input {
1978 width: 300px;
1998 width: 300px;
1979 background: #FFF;
1999 background: #FFF;
1980 border-top: 1px solid #b3b3b3;
2000 border-top: 1px solid #b3b3b3;
1981 border-left: 1px solid #b3b3b3;
2001 border-left: 1px solid #b3b3b3;
1982 border-right: 1px solid #eaeaea;
2002 border-right: 1px solid #eaeaea;
1983 border-bottom: 1px solid #eaeaea;
2003 border-bottom: 1px solid #eaeaea;
1984 color: #000;
2004 color: #000;
1985 font-size: 11px;
2005 font-size: 11px;
1986 margin: 0;
2006 margin: 0;
1987 padding: 7px 7px 6px;
2007 padding: 7px 7px 6px;
1988 }
2008 }
1989
2009
1990 #register div.form div.fields div.buttons {
2010 #register div.form div.fields div.buttons {
1991 clear: both;
2011 clear: both;
1992 overflow: hidden;
2012 overflow: hidden;
1993 border-top: 1px solid #DDD;
2013 border-top: 1px solid #DDD;
1994 text-align: left;
2014 text-align: left;
1995 margin: 0;
2015 margin: 0;
1996 padding: 10px 0 0 150px;
2016 padding: 10px 0 0 150px;
1997 }
2017 }
1998
2018
1999 #register div.form div.activation_msg {
2019 #register div.form div.activation_msg {
2000 padding-top: 4px;
2020 padding-top: 4px;
2001 padding-bottom: 4px;
2021 padding-bottom: 4px;
2002 }
2022 }
2003
2023
2004 #journal .journal_day {
2024 #journal .journal_day {
2005 font-size: 20px;
2025 font-size: 20px;
2006 padding: 10px 0px;
2026 padding: 10px 0px;
2007 border-bottom: 2px solid #DDD;
2027 border-bottom: 2px solid #DDD;
2008 margin-left: 10px;
2028 margin-left: 10px;
2009 margin-right: 10px;
2029 margin-right: 10px;
2010 }
2030 }
2011
2031
2012 #journal .journal_container {
2032 #journal .journal_container {
2013 padding: 5px;
2033 padding: 5px;
2014 clear: both;
2034 clear: both;
2015 margin: 0px 5px 0px 10px;
2035 margin: 0px 5px 0px 10px;
2016 }
2036 }
2017
2037
2018 #journal .journal_action_container {
2038 #journal .journal_action_container {
2019 padding-left: 38px;
2039 padding-left: 38px;
2020 }
2040 }
2021
2041
2022 #journal .journal_user {
2042 #journal .journal_user {
2023 color: #747474;
2043 color: #747474;
2024 font-size: 14px;
2044 font-size: 14px;
2025 font-weight: bold;
2045 font-weight: bold;
2026 height: 30px;
2046 height: 30px;
2027 }
2047 }
2028
2048
2029 #journal .journal_icon {
2049 #journal .journal_icon {
2030 clear: both;
2050 clear: both;
2031 float: left;
2051 float: left;
2032 padding-right: 4px;
2052 padding-right: 4px;
2033 padding-top: 3px;
2053 padding-top: 3px;
2034 }
2054 }
2035
2055
2036 #journal .journal_action {
2056 #journal .journal_action {
2037 padding-top: 4px;
2057 padding-top: 4px;
2038 min-height: 2px;
2058 min-height: 2px;
2039 float: left
2059 float: left
2040 }
2060 }
2041
2061
2042 #journal .journal_action_params {
2062 #journal .journal_action_params {
2043 clear: left;
2063 clear: left;
2044 padding-left: 22px;
2064 padding-left: 22px;
2045 }
2065 }
2046
2066
2047 #journal .journal_repo {
2067 #journal .journal_repo {
2048 float: left;
2068 float: left;
2049 margin-left: 6px;
2069 margin-left: 6px;
2050 padding-top: 3px;
2070 padding-top: 3px;
2051 }
2071 }
2052
2072
2053 #journal .date {
2073 #journal .date {
2054 clear: both;
2074 clear: both;
2055 color: #777777;
2075 color: #777777;
2056 font-size: 11px;
2076 font-size: 11px;
2057 padding-left: 22px;
2077 padding-left: 22px;
2058 }
2078 }
2059
2079
2060 #journal .journal_repo .journal_repo_name {
2080 #journal .journal_repo .journal_repo_name {
2061 font-weight: bold;
2081 font-weight: bold;
2062 font-size: 1.1em;
2082 font-size: 1.1em;
2063 }
2083 }
2064
2084
2065 #journal .compare_view {
2085 #journal .compare_view {
2066 padding: 5px 0px 5px 0px;
2086 padding: 5px 0px 5px 0px;
2067 width: 95px;
2087 width: 95px;
2068 }
2088 }
2069
2089
2070 .journal_highlight {
2090 .journal_highlight {
2071 font-weight: bold;
2091 font-weight: bold;
2072 padding: 0 2px;
2092 padding: 0 2px;
2073 vertical-align: bottom;
2093 vertical-align: bottom;
2074 }
2094 }
2075
2095
2076 .trending_language_tbl,.trending_language_tbl td {
2096 .trending_language_tbl,.trending_language_tbl td {
2077 border: 0 !important;
2097 border: 0 !important;
2078 margin: 0 !important;
2098 margin: 0 !important;
2079 padding: 0 !important;
2099 padding: 0 !important;
2080 }
2100 }
2081
2101
2082 .trending_language_tbl,.trending_language_tbl tr {
2102 .trending_language_tbl,.trending_language_tbl tr {
2083 border-spacing: 1px;
2103 border-spacing: 1px;
2084 }
2104 }
2085
2105
2086 .trending_language {
2106 .trending_language {
2087 background-color: #003367;
2107 background-color: #003367;
2088 color: #FFF;
2108 color: #FFF;
2089 display: block;
2109 display: block;
2090 min-width: 20px;
2110 min-width: 20px;
2091 text-decoration: none;
2111 text-decoration: none;
2092 height: 12px;
2112 height: 12px;
2093 margin-bottom: 0px;
2113 margin-bottom: 0px;
2094 margin-left: 5px;
2114 margin-left: 5px;
2095 white-space: pre;
2115 white-space: pre;
2096 padding: 3px;
2116 padding: 3px;
2097 }
2117 }
2098
2118
2099 h3.files_location {
2119 h3.files_location {
2100 font-size: 1.8em;
2120 font-size: 1.8em;
2101 font-weight: 700;
2121 font-weight: 700;
2102 border-bottom: none !important;
2122 border-bottom: none !important;
2103 margin: 10px 0 !important;
2123 margin: 10px 0 !important;
2104 }
2124 }
2105
2125
2106 #files_data dl dt {
2126 #files_data dl dt {
2107 float: left;
2127 float: left;
2108 width: 60px;
2128 width: 60px;
2109 margin: 0 !important;
2129 margin: 0 !important;
2110 padding: 5px;
2130 padding: 5px;
2111 }
2131 }
2112
2132
2113 #files_data dl dd {
2133 #files_data dl dd {
2114 margin: 0 !important;
2134 margin: 0 !important;
2115 padding: 5px !important;
2135 padding: 5px !important;
2116 }
2136 }
2117
2137
2138 .tablerow0 {
2139 background-color: #F8F8F8;
2140 }
2141
2118 .tablerow1 {
2142 .tablerow1 {
2119 background-color: #F8F8F8;
2143 background-color: #FFFFFF;
2120 }
2144 }
2121
2145
2122 .changeset_id {
2146 .changeset_id {
2123 font-family: monospace;
2147 font-family: monospace;
2124 color: #666666;
2148 color: #666666;
2125 }
2149 }
2126
2150
2127 .changeset_hash {
2151 .changeset_hash {
2128 color: #000000;
2152 color: #000000;
2129 }
2153 }
2130
2154
2131 #changeset_content {
2155 #changeset_content {
2132 border-left: 1px solid #CCC;
2156 border-left: 1px solid #CCC;
2133 border-right: 1px solid #CCC;
2157 border-right: 1px solid #CCC;
2134 border-bottom: 1px solid #CCC;
2158 border-bottom: 1px solid #CCC;
2135 padding: 5px;
2159 padding: 5px;
2136 }
2160 }
2137
2161
2138 #changeset_compare_view_content {
2162 #changeset_compare_view_content {
2139 border: 1px solid #CCC;
2163 border: 1px solid #CCC;
2140 padding: 5px;
2164 padding: 5px;
2141 }
2165 }
2142
2166
2143 #changeset_content .container {
2167 #changeset_content .container {
2144 min-height: 100px;
2168 min-height: 100px;
2145 font-size: 1.2em;
2169 font-size: 1.2em;
2146 overflow: hidden;
2170 overflow: hidden;
2147 }
2171 }
2148
2172
2149 #changeset_compare_view_content .compare_view_commits {
2173 #changeset_compare_view_content .compare_view_commits {
2150 width: auto !important;
2174 width: auto !important;
2151 }
2175 }
2152
2176
2153 #changeset_compare_view_content .compare_view_commits td {
2177 #changeset_compare_view_content .compare_view_commits td {
2154 padding: 0px 0px 0px 12px !important;
2178 padding: 0px 0px 0px 12px !important;
2155 }
2179 }
2156
2180
2157 #changeset_content .container .right {
2181 #changeset_content .container .right {
2158 float: right;
2182 float: right;
2159 width: 20%;
2183 width: 20%;
2160 text-align: right;
2184 text-align: right;
2161 }
2185 }
2162
2186
2163 #changeset_content .container .left .message {
2187 #changeset_content .container .left .message {
2164 white-space: pre-wrap;
2188 white-space: pre-wrap;
2165 }
2189 }
2166 #changeset_content .container .left .message a:hover {
2190 #changeset_content .container .left .message a:hover {
2167 text-decoration: none;
2191 text-decoration: none;
2168 }
2192 }
2169 .cs_files .cur_cs {
2193 .cs_files .cur_cs {
2170 margin: 10px 2px;
2194 margin: 10px 2px;
2171 font-weight: bold;
2195 font-weight: bold;
2172 }
2196 }
2173
2197
2174 .cs_files .node {
2198 .cs_files .node {
2175 float: left;
2199 float: left;
2176 }
2200 }
2177
2201
2178 .cs_files .changes {
2202 .cs_files .changes {
2179 float: right;
2203 float: right;
2180 color:#003367;
2204 color:#003367;
2181
2205
2182 }
2206 }
2183
2207
2184 .cs_files .changes .added {
2208 .cs_files .changes .added {
2185 background-color: #BBFFBB;
2209 background-color: #BBFFBB;
2186 float: left;
2210 float: left;
2187 text-align: center;
2211 text-align: center;
2188 font-size: 9px;
2212 font-size: 9px;
2189 padding: 2px 0px 2px 0px;
2213 padding: 2px 0px 2px 0px;
2190 }
2214 }
2191
2215
2192 .cs_files .changes .deleted {
2216 .cs_files .changes .deleted {
2193 background-color: #FF8888;
2217 background-color: #FF8888;
2194 float: left;
2218 float: left;
2195 text-align: center;
2219 text-align: center;
2196 font-size: 9px;
2220 font-size: 9px;
2197 padding: 2px 0px 2px 0px;
2221 padding: 2px 0px 2px 0px;
2198 }
2222 }
2199
2223
2200 .cs_files .cs_added {
2224 .cs_files .cs_added {
2201 background: url("../images/icons/page_white_add.png") no-repeat scroll
2225 background: url("../images/icons/page_white_add.png") no-repeat scroll
2202 3px;
2226 3px;
2203 height: 16px;
2227 height: 16px;
2204 padding-left: 20px;
2228 padding-left: 20px;
2205 margin-top: 7px;
2229 margin-top: 7px;
2206 text-align: left;
2230 text-align: left;
2207 }
2231 }
2208
2232
2209 .cs_files .cs_changed {
2233 .cs_files .cs_changed {
2210 background: url("../images/icons/page_white_edit.png") no-repeat scroll
2234 background: url("../images/icons/page_white_edit.png") no-repeat scroll
2211 3px;
2235 3px;
2212 height: 16px;
2236 height: 16px;
2213 padding-left: 20px;
2237 padding-left: 20px;
2214 margin-top: 7px;
2238 margin-top: 7px;
2215 text-align: left;
2239 text-align: left;
2216 }
2240 }
2217
2241
2218 .cs_files .cs_removed {
2242 .cs_files .cs_removed {
2219 background: url("../images/icons/page_white_delete.png") no-repeat
2243 background: url("../images/icons/page_white_delete.png") no-repeat
2220 scroll 3px;
2244 scroll 3px;
2221 height: 16px;
2245 height: 16px;
2222 padding-left: 20px;
2246 padding-left: 20px;
2223 margin-top: 7px;
2247 margin-top: 7px;
2224 text-align: left;
2248 text-align: left;
2225 }
2249 }
2226
2250
2227 #graph {
2251 #graph {
2228 overflow: hidden;
2252 overflow: hidden;
2229 }
2253 }
2230
2254
2231 #graph_nodes {
2255 #graph_nodes {
2232 float: left;
2256 float: left;
2233 margin-right: -6px;
2257 margin-right: -6px;
2234 margin-top: 0px;
2258 margin-top: 0px;
2235 }
2259 }
2236
2260
2237 #graph_content {
2261 #graph_content {
2238 width: 80%;
2262 width: 80%;
2239 float: left;
2263 float: left;
2240 }
2264 }
2241
2265
2242 #graph_content .container_header {
2266 #graph_content .container_header {
2243 border-bottom: 1px solid #DDD;
2267 border-bottom: 1px solid #DDD;
2244 padding: 10px;
2268 padding: 10px;
2245 height: 25px;
2269 height: 25px;
2246 }
2270 }
2247
2271
2248 #graph_content #rev_range_container {
2272 #graph_content #rev_range_container {
2249 padding: 5px 20px;
2273 padding: 7px 20px;
2250 float: left;
2274 float: left;
2251 }
2275 }
2252
2276
2253 #graph_content .container {
2277 #graph_content .container {
2254 border-bottom: 1px solid #DDD;
2278 border-bottom: 1px solid #DDD;
2255 height: 55px;
2279 height: 55px;
2256 overflow: hidden;
2280 overflow: hidden;
2257 }
2281 }
2258
2282
2259 #graph_content .container .right {
2283 #graph_content .container .right {
2260 float: right;
2284 float: right;
2261 width: 23%;
2285 width: 23%;
2262 text-align: right;
2286 text-align: right;
2263 }
2287 }
2264
2288
2265 #graph_content .container .left {
2289 #graph_content .container .left {
2266 float: left;
2290 float: left;
2267 width: 25%;
2291 width: 25%;
2268 padding-left: 5px;
2292 padding-left: 5px;
2269 }
2293 }
2270
2294
2271 #graph_content .container .mid {
2295 #graph_content .container .mid {
2272 float: left;
2296 float: left;
2273 width: 49%;
2297 width: 49%;
2274 }
2298 }
2275
2299
2276
2300
2277 #graph_content .container .left .date {
2301 #graph_content .container .left .date {
2278 color: #444444;
2302 color: #444444;
2303 padding-left: 22px;
2279 }
2304 }
2280
2305
2281 #graph_content .container .left .author {
2306 #graph_content .container .left .author {
2282 height: 22px;
2307 height: 22px;
2283 }
2308 }
2284
2309
2285 #graph_content .container .left .author .user {
2310 #graph_content .container .left .author .user {
2286 color: #444444;
2311 color: #444444;
2287 float: left;
2312 float: left;
2288 margin-left: -4px;
2313 margin-left: -4px;
2289 margin-top: 4px;
2314 margin-top: 4px;
2290 }
2315 }
2291
2316
2292 #graph_content .container .left .message {
2317 #graph_content .container .left .message {
2293 font-size: 100%;
2318 font-size: 100%;
2294 padding-top: 3px;
2319 padding-top: 3px;
2295 white-space: pre-wrap;
2320 white-space: pre-wrap;
2296 border: 1px solid red;
2321 border: 1px solid red;
2297 position: relative;
2322 position: relative;
2298 top: -30px;
2323 top: -30px;
2299 left: 40%;
2324 left: 40%;
2300 width: 30%;
2325 width: 30%;
2301 }
2326 }
2302
2327
2303 #graph_content .container .left .message a:hover{
2328 #graph_content .container .left .message a:hover{
2304 text-decoration: none;
2329 text-decoration: none;
2305 }
2330 }
2306
2331
2307 .right div {
2332 .right div {
2308 clear: both;
2333 clear: both;
2309 }
2334 }
2310
2335
2311 .right .changes .changed_total {
2336 .right .changes .changed_total {
2312 display: block;
2337 display: block;
2313 float: right;
2338 float: right;
2314 text-align: center;
2339 text-align: center;
2315 min-width: 45px;
2340 min-width: 45px;
2316 cursor: pointer;
2341 cursor: pointer;
2317 color: #444444;
2342 color: #444444;
2318 background: #FEA;
2343 background: #FEA;
2319 -webkit-border-radius: 0px 0px 0px 6px;
2344 -webkit-border-radius: 0px 0px 0px 6px;
2320 -moz-border-radius: 0px 0px 0px 6px;
2345 -moz-border-radius: 0px 0px 0px 6px;
2321 border-radius: 0px 0px 0px 6px;
2346 border-radius: 0px 0px 0px 6px;
2322 padding: 1px;
2347 padding: 1px;
2323 }
2348 }
2324
2349
2325 .right .changes .added,.changed,.removed {
2350 .right .changes .added,.changed,.removed {
2326 display: block;
2351 display: block;
2327 padding: 1px;
2352 padding: 1px;
2328 color: #444444;
2353 color: #444444;
2329 float: right;
2354 float: right;
2330 text-align: center;
2355 text-align: center;
2331 min-width: 15px;
2356 min-width: 15px;
2332 }
2357 }
2333
2358
2334 .right .changes .added {
2359 .right .changes .added {
2335 background: #CFC;
2360 background: #CFC;
2336 }
2361 }
2337
2362
2338 .right .changes .changed {
2363 .right .changes .changed {
2339 background: #FEA;
2364 background: #FEA;
2340 }
2365 }
2341
2366
2342 .right .changes .removed {
2367 .right .changes .removed {
2343 background: #FAA;
2368 background: #FAA;
2344 }
2369 }
2345
2370
2346 .right .merge {
2371 .right .merge {
2347 padding: 1px 3px 1px 3px;
2372 padding: 1px 3px 1px 3px;
2348 background-color: #fca062;
2373 background-color: #fca062;
2349 font-size: 10px;
2374 font-size: 10px;
2350 font-weight: bold;
2375 font-weight: bold;
2351 color: #ffffff;
2376 color: #ffffff;
2352 text-transform: uppercase;
2377 text-transform: uppercase;
2353 white-space: nowrap;
2378 white-space: nowrap;
2354 -webkit-border-radius: 3px;
2379 -webkit-border-radius: 3px;
2355 -moz-border-radius: 3px;
2380 -moz-border-radius: 3px;
2356 border-radius: 3px;
2381 border-radius: 3px;
2357 margin-right: 2px;
2382 margin-right: 2px;
2358 }
2383 }
2359
2384
2360 .right .parent {
2385 .right .parent {
2361 color: #666666;
2386 color: #666666;
2362 }
2387 }
2363 .right .logtags{
2388 .right .logtags{
2364 padding: 2px 2px 2px 2px;
2389 padding: 2px 2px 2px 2px;
2365 }
2390 }
2366 .right .logtags .branchtag,.logtags .branchtag {
2391 .right .logtags .branchtag,.logtags .branchtag {
2367 padding: 1px 3px 1px 3px;
2392 padding: 1px 3px 1px 3px;
2368 background-color: #bfbfbf;
2393 background-color: #bfbfbf;
2369 font-size: 10px;
2394 font-size: 10px;
2370 font-weight: bold;
2395 font-weight: bold;
2371 color: #ffffff;
2396 color: #ffffff;
2372 text-transform: uppercase;
2397 text-transform: uppercase;
2373 white-space: nowrap;
2398 white-space: nowrap;
2374 -webkit-border-radius: 3px;
2399 -webkit-border-radius: 3px;
2375 -moz-border-radius: 3px;
2400 -moz-border-radius: 3px;
2376 border-radius: 3px;
2401 border-radius: 3px;
2377 }
2402 }
2378 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2403 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2379 color: #ffffff;
2404 color: #ffffff;
2380 }
2405 }
2381 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2406 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2382 text-decoration: none;
2407 text-decoration: none;
2383 color: #ffffff;
2408 color: #ffffff;
2384 }
2409 }
2385 .right .logtags .tagtag,.logtags .tagtag {
2410 .right .logtags .tagtag,.logtags .tagtag {
2386 padding: 1px 3px 1px 3px;
2411 padding: 1px 3px 1px 3px;
2387 background-color: #62cffc;
2412 background-color: #62cffc;
2388 font-size: 10px;
2413 font-size: 10px;
2389 font-weight: bold;
2414 font-weight: bold;
2390 color: #ffffff;
2415 color: #ffffff;
2391 text-transform: uppercase;
2416 text-transform: uppercase;
2392 white-space: nowrap;
2417 white-space: nowrap;
2393 -webkit-border-radius: 3px;
2418 -webkit-border-radius: 3px;
2394 -moz-border-radius: 3px;
2419 -moz-border-radius: 3px;
2395 border-radius: 3px;
2420 border-radius: 3px;
2396 }
2421 }
2397 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2422 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2398 color: #ffffff;
2423 color: #ffffff;
2399 }
2424 }
2400 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2425 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2401 text-decoration: none;
2426 text-decoration: none;
2402 color: #ffffff;
2427 color: #ffffff;
2403 }
2428 }
2404 .right .logbooks .bookbook,.logbooks .bookbook {
2429 .right .logbooks .bookbook,.logbooks .bookbook {
2405 padding: 1px 3px 2px;
2430 padding: 1px 3px 2px;
2406 background-color: #46A546;
2431 background-color: #46A546;
2407 font-size: 9.75px;
2432 font-size: 9.75px;
2408 font-weight: bold;
2433 font-weight: bold;
2409 color: #ffffff;
2434 color: #ffffff;
2410 text-transform: uppercase;
2435 text-transform: uppercase;
2411 white-space: nowrap;
2436 white-space: nowrap;
2412 -webkit-border-radius: 3px;
2437 -webkit-border-radius: 3px;
2413 -moz-border-radius: 3px;
2438 -moz-border-radius: 3px;
2414 border-radius: 3px;
2439 border-radius: 3px;
2415 }
2440 }
2416 .right .logbooks .bookbook,.logbooks .bookbook a{
2441 .right .logbooks .bookbook,.logbooks .bookbook a{
2417 color: #ffffff;
2442 color: #ffffff;
2418 }
2443 }
2419 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2444 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2420 text-decoration: none;
2445 text-decoration: none;
2421 color: #ffffff;
2446 color: #ffffff;
2422 }
2447 }
2423 div.browserblock {
2448 div.browserblock {
2424 overflow: hidden;
2449 overflow: hidden;
2425 border: 1px solid #ccc;
2450 border: 1px solid #ccc;
2426 background: #f8f8f8;
2451 background: #f8f8f8;
2427 font-size: 100%;
2452 font-size: 100%;
2428 line-height: 125%;
2453 line-height: 125%;
2429 padding: 0;
2454 padding: 0;
2430 -webkit-border-radius: 6px 6px 0px 0px;
2455 -webkit-border-radius: 6px 6px 0px 0px;
2431 -moz-border-radius: 6px 6px 0px 0px;
2456 -moz-border-radius: 6px 6px 0px 0px;
2432 border-radius: 6px 6px 0px 0px;
2457 border-radius: 6px 6px 0px 0px;
2433 }
2458 }
2434
2459
2435 div.browserblock .browser-header {
2460 div.browserblock .browser-header {
2436 background: #FFF;
2461 background: #FFF;
2437 padding: 10px 0px 15px 0px;
2462 padding: 10px 0px 15px 0px;
2438 width: 100%;
2463 width: 100%;
2439 }
2464 }
2440
2465
2441 div.browserblock .browser-nav {
2466 div.browserblock .browser-nav {
2442 float: left
2467 float: left
2443 }
2468 }
2444
2469
2445 div.browserblock .browser-branch {
2470 div.browserblock .browser-branch {
2446 float: left;
2471 float: left;
2447 }
2472 }
2448
2473
2449 div.browserblock .browser-branch label {
2474 div.browserblock .browser-branch label {
2450 color: #4A4A4A;
2475 color: #4A4A4A;
2451 vertical-align: text-top;
2476 vertical-align: text-top;
2452 }
2477 }
2453
2478
2454 div.browserblock .browser-header span {
2479 div.browserblock .browser-header span {
2455 margin-left: 5px;
2480 margin-left: 5px;
2456 font-weight: 700;
2481 font-weight: 700;
2457 }
2482 }
2458
2483
2459 div.browserblock .browser-search {
2484 div.browserblock .browser-search {
2460 clear: both;
2485 clear: both;
2461 padding: 8px 8px 0px 5px;
2486 padding: 8px 8px 0px 5px;
2462 height: 20px;
2487 height: 20px;
2463 }
2488 }
2464
2489
2465 div.browserblock #node_filter_box {
2490 div.browserblock #node_filter_box {
2466
2491
2467 }
2492 }
2468
2493
2469 div.browserblock .search_activate {
2494 div.browserblock .search_activate {
2470 float: left
2495 float: left
2471 }
2496 }
2472
2497
2473 div.browserblock .add_node {
2498 div.browserblock .add_node {
2474 float: left;
2499 float: left;
2475 padding-left: 5px;
2500 padding-left: 5px;
2476 }
2501 }
2477
2502
2478 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2503 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2479 {
2504 {
2480 text-decoration: none !important;
2505 text-decoration: none !important;
2481 }
2506 }
2482
2507
2483 div.browserblock .browser-body {
2508 div.browserblock .browser-body {
2484 background: #EEE;
2509 background: #EEE;
2485 border-top: 1px solid #CCC;
2510 border-top: 1px solid #CCC;
2486 }
2511 }
2487
2512
2488 table.code-browser {
2513 table.code-browser {
2489 border-collapse: collapse;
2514 border-collapse: collapse;
2490 width: 100%;
2515 width: 100%;
2491 }
2516 }
2492
2517
2493 table.code-browser tr {
2518 table.code-browser tr {
2494 margin: 3px;
2519 margin: 3px;
2495 }
2520 }
2496
2521
2497 table.code-browser thead th {
2522 table.code-browser thead th {
2498 background-color: #EEE;
2523 background-color: #EEE;
2499 height: 20px;
2524 height: 20px;
2500 font-size: 1.1em;
2525 font-size: 1.1em;
2501 font-weight: 700;
2526 font-weight: 700;
2502 text-align: left;
2527 text-align: left;
2503 padding-left: 10px;
2528 padding-left: 10px;
2504 }
2529 }
2505
2530
2506 table.code-browser tbody td {
2531 table.code-browser tbody td {
2507 padding-left: 10px;
2532 padding-left: 10px;
2508 height: 20px;
2533 height: 20px;
2509 }
2534 }
2510
2535
2511 table.code-browser .browser-file {
2536 table.code-browser .browser-file {
2512 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2537 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2513 height: 16px;
2538 height: 16px;
2514 padding-left: 20px;
2539 padding-left: 20px;
2515 text-align: left;
2540 text-align: left;
2516 }
2541 }
2517 .diffblock .changeset_header {
2542 .diffblock .changeset_header {
2518 height: 16px;
2543 height: 16px;
2519 }
2544 }
2520 .diffblock .changeset_file {
2545 .diffblock .changeset_file {
2521 background: url("../images/icons/file.png") no-repeat scroll 3px;
2546 background: url("../images/icons/file.png") no-repeat scroll 3px;
2522 text-align: left;
2547 text-align: left;
2523 float: left;
2548 float: left;
2524 padding: 2px 0px 2px 22px;
2549 padding: 2px 0px 2px 22px;
2525 }
2550 }
2526 .diffblock .diff-menu-wrapper{
2551 .diffblock .diff-menu-wrapper{
2527 float: left;
2552 float: left;
2528 }
2553 }
2529
2554
2530 .diffblock .diff-menu{
2555 .diffblock .diff-menu{
2531 position: absolute;
2556 position: absolute;
2532 background: none repeat scroll 0 0 #FFFFFF;
2557 background: none repeat scroll 0 0 #FFFFFF;
2533 border-color: #003367 #666666 #666666;
2558 border-color: #003367 #666666 #666666;
2534 border-right: 1px solid #666666;
2559 border-right: 1px solid #666666;
2535 border-style: solid solid solid;
2560 border-style: solid solid solid;
2536 border-width: 1px;
2561 border-width: 1px;
2537 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
2562 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
2538 margin-top:5px;
2563 margin-top:5px;
2539 margin-left:1px;
2564 margin-left:1px;
2540
2565
2541 }
2566 }
2542
2567 .diffblock .diff-actions {
2568 padding: 2px 0px 0px 2px;
2569 float: left;
2570 }
2543 .diffblock .diff-menu ul li {
2571 .diffblock .diff-menu ul li {
2544 padding: 0px 0px 0px 0px !important;
2572 padding: 0px 0px 0px 0px !important;
2545 }
2573 }
2546 .diffblock .diff-menu ul li a{
2574 .diffblock .diff-menu ul li a{
2547 display: block;
2575 display: block;
2548 padding: 3px 8px 3px 8px !important;
2576 padding: 3px 8px 3px 8px !important;
2549 }
2577 }
2550 .diffblock .diff-menu ul li a:hover{
2578 .diffblock .diff-menu ul li a:hover{
2551 text-decoration: none;
2579 text-decoration: none;
2552 background-color: #EEEEEE;
2580 background-color: #EEEEEE;
2553 }
2581 }
2554 table.code-browser .browser-dir {
2582 table.code-browser .browser-dir {
2555 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2583 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2556 height: 16px;
2584 height: 16px;
2557 padding-left: 20px;
2585 padding-left: 20px;
2558 text-align: left;
2586 text-align: left;
2559 }
2587 }
2560
2588
2561 .box .search {
2589 .box .search {
2562 clear: both;
2590 clear: both;
2563 overflow: hidden;
2591 overflow: hidden;
2564 margin: 0;
2592 margin: 0;
2565 padding: 0 20px 10px;
2593 padding: 0 20px 10px;
2566 }
2594 }
2567
2595
2568 .box .search div.search_path {
2596 .box .search div.search_path {
2569 background: none repeat scroll 0 0 #EEE;
2597 background: none repeat scroll 0 0 #EEE;
2570 border: 1px solid #CCC;
2598 border: 1px solid #CCC;
2571 color: blue;
2599 color: blue;
2572 margin-bottom: 10px;
2600 margin-bottom: 10px;
2573 padding: 10px 0;
2601 padding: 10px 0;
2574 }
2602 }
2575
2603
2576 .box .search div.search_path div.link {
2604 .box .search div.search_path div.link {
2577 font-weight: 700;
2605 font-weight: 700;
2578 margin-left: 25px;
2606 margin-left: 25px;
2579 }
2607 }
2580
2608
2581 .box .search div.search_path div.link a {
2609 .box .search div.search_path div.link a {
2582 color: #003367;
2610 color: #003367;
2583 cursor: pointer;
2611 cursor: pointer;
2584 text-decoration: none;
2612 text-decoration: none;
2585 }
2613 }
2586
2614
2587 #path_unlock {
2615 #path_unlock {
2588 color: red;
2616 color: red;
2589 font-size: 1.2em;
2617 font-size: 1.2em;
2590 padding-left: 4px;
2618 padding-left: 4px;
2591 }
2619 }
2592
2620
2593 .info_box span {
2621 .info_box span {
2594 margin-left: 3px;
2622 margin-left: 3px;
2595 margin-right: 3px;
2623 margin-right: 3px;
2596 }
2624 }
2597
2625
2598 .info_box .rev {
2626 .info_box .rev {
2599 color: #003367;
2627 color: #003367;
2600 font-size: 1.6em;
2628 font-size: 1.6em;
2601 font-weight: bold;
2629 font-weight: bold;
2602 vertical-align: sub;
2630 vertical-align: sub;
2603 }
2631 }
2604
2632
2605 .info_box input#at_rev,.info_box input#size {
2633 .info_box input#at_rev,.info_box input#size {
2606 background: #FFF;
2634 background: #FFF;
2607 border-top: 1px solid #b3b3b3;
2635 border-top: 1px solid #b3b3b3;
2608 border-left: 1px solid #b3b3b3;
2636 border-left: 1px solid #b3b3b3;
2609 border-right: 1px solid #eaeaea;
2637 border-right: 1px solid #eaeaea;
2610 border-bottom: 1px solid #eaeaea;
2638 border-bottom: 1px solid #eaeaea;
2611 color: #000;
2639 color: #000;
2612 font-size: 12px;
2640 font-size: 12px;
2613 margin: 0;
2641 margin: 0;
2614 padding: 1px 5px 1px;
2642 padding: 1px 5px 1px;
2615 }
2643 }
2616
2644
2617 .info_box input#view {
2645 .info_box input#view {
2618 text-align: center;
2646 text-align: center;
2619 padding: 4px 3px 2px 2px;
2647 padding: 4px 3px 2px 2px;
2620 }
2648 }
2621
2649
2622 .yui-overlay,.yui-panel-container {
2650 .yui-overlay,.yui-panel-container {
2623 visibility: hidden;
2651 visibility: hidden;
2624 position: absolute;
2652 position: absolute;
2625 z-index: 2;
2653 z-index: 2;
2626 }
2654 }
2627
2655
2628 .yui-tt {
2656 .yui-tt {
2629 visibility: hidden;
2657 visibility: hidden;
2630 position: absolute;
2658 position: absolute;
2631 color: #666;
2659 color: #666;
2632 background-color: #FFF;
2660 background-color: #FFF;
2633 border: 2px solid #003367;
2661 border: 2px solid #003367;
2634 font: 100% sans-serif;
2662 font: 100% sans-serif;
2635 width: auto;
2663 width: auto;
2636 opacity: 1px;
2664 opacity: 1px;
2637 padding: 8px;
2665 padding: 8px;
2638 white-space: pre-wrap;
2666 white-space: pre-wrap;
2639 -webkit-border-radius: 8px 8px 8px 8px;
2667 -webkit-border-radius: 8px 8px 8px 8px;
2640 -khtml-border-radius: 8px 8px 8px 8px;
2668 -khtml-border-radius: 8px 8px 8px 8px;
2641 -moz-border-radius: 8px 8px 8px 8px;
2669 -moz-border-radius: 8px 8px 8px 8px;
2642 border-radius: 8px 8px 8px 8px;
2670 border-radius: 8px 8px 8px 8px;
2643 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2671 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2644 }
2672 }
2645
2673
2646 .ac {
2674 .ac {
2647 vertical-align: top;
2675 vertical-align: top;
2648 }
2676 }
2649
2677
2650 .ac .yui-ac {
2678 .ac .yui-ac {
2651 position: relative;
2679 position: relative;
2652 font-size: 100%;
2680 font-size: 100%;
2653 }
2681 }
2654
2682
2655 .ac .perm_ac {
2683 .ac .perm_ac {
2656 width: 15em;
2684 width: 15em;
2657 }
2685 }
2658
2686
2659 .ac .yui-ac-input {
2687 .ac .yui-ac-input {
2660 width: 100%;
2688 width: 100%;
2661 }
2689 }
2662
2690
2663 .ac .yui-ac-container {
2691 .ac .yui-ac-container {
2664 position: absolute;
2692 position: absolute;
2665 top: 1.6em;
2693 top: 1.6em;
2666 width: 100%;
2694 width: 100%;
2667 }
2695 }
2668
2696
2669 .ac .yui-ac-content {
2697 .ac .yui-ac-content {
2670 position: absolute;
2698 position: absolute;
2671 width: 100%;
2699 width: 100%;
2672 border: 1px solid gray;
2700 border: 1px solid gray;
2673 background: #fff;
2701 background: #fff;
2674 overflow: hidden;
2702 overflow: hidden;
2675 z-index: 9050;
2703 z-index: 9050;
2676 }
2704 }
2677
2705
2678 .ac .yui-ac-shadow {
2706 .ac .yui-ac-shadow {
2679 position: absolute;
2707 position: absolute;
2680 width: 100%;
2708 width: 100%;
2681 background: #000;
2709 background: #000;
2682 -moz-opacity: 0.1px;
2710 -moz-opacity: 0.1px;
2683 opacity: .10;
2711 opacity: .10;
2684 filter: alpha(opacity = 10);
2712 filter: alpha(opacity = 10);
2685 z-index: 9049;
2713 z-index: 9049;
2686 margin: .3em;
2714 margin: .3em;
2687 }
2715 }
2688
2716
2689 .ac .yui-ac-content ul {
2717 .ac .yui-ac-content ul {
2690 width: 100%;
2718 width: 100%;
2691 margin: 0;
2719 margin: 0;
2692 padding: 0;
2720 padding: 0;
2693 }
2721 }
2694
2722
2695 .ac .yui-ac-content li {
2723 .ac .yui-ac-content li {
2696 cursor: default;
2724 cursor: default;
2697 white-space: nowrap;
2725 white-space: nowrap;
2698 margin: 0;
2726 margin: 0;
2699 padding: 2px 5px;
2727 padding: 2px 5px;
2700 }
2728 }
2701
2729
2702 .ac .yui-ac-content li.yui-ac-prehighlight {
2730 .ac .yui-ac-content li.yui-ac-prehighlight {
2703 background: #B3D4FF;
2731 background: #B3D4FF;
2704 }
2732 }
2705
2733
2706 .ac .yui-ac-content li.yui-ac-highlight {
2734 .ac .yui-ac-content li.yui-ac-highlight {
2707 background: #556CB5;
2735 background: #556CB5;
2708 color: #FFF;
2736 color: #FFF;
2709 }
2737 }
2710
2738
2711 .follow {
2739 .follow {
2712 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2740 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2713 height: 16px;
2741 height: 16px;
2714 width: 20px;
2742 width: 20px;
2715 cursor: pointer;
2743 cursor: pointer;
2716 display: block;
2744 display: block;
2717 float: right;
2745 float: right;
2718 margin-top: 2px;
2746 margin-top: 2px;
2719 }
2747 }
2720
2748
2721 .following {
2749 .following {
2722 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2750 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2723 height: 16px;
2751 height: 16px;
2724 width: 20px;
2752 width: 20px;
2725 cursor: pointer;
2753 cursor: pointer;
2726 display: block;
2754 display: block;
2727 float: right;
2755 float: right;
2728 margin-top: 2px;
2756 margin-top: 2px;
2729 }
2757 }
2730
2758
2731 .currently_following {
2759 .currently_following {
2732 padding-left: 10px;
2760 padding-left: 10px;
2733 padding-bottom: 5px;
2761 padding-bottom: 5px;
2734 }
2762 }
2735
2763
2736 .add_icon {
2764 .add_icon {
2737 background: url("../images/icons/add.png") no-repeat scroll 3px;
2765 background: url("../images/icons/add.png") no-repeat scroll 3px;
2738 padding-left: 20px;
2766 padding-left: 20px;
2739 padding-top: 0px;
2767 padding-top: 0px;
2740 text-align: left;
2768 text-align: left;
2741 }
2769 }
2742
2770
2743 .edit_icon {
2771 .edit_icon {
2744 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2772 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2745 padding-left: 20px;
2773 padding-left: 20px;
2746 padding-top: 0px;
2774 padding-top: 0px;
2747 text-align: left;
2775 text-align: left;
2748 }
2776 }
2749
2777
2750 .delete_icon {
2778 .delete_icon {
2751 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2779 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2752 padding-left: 20px;
2780 padding-left: 20px;
2753 padding-top: 0px;
2781 padding-top: 0px;
2754 text-align: left;
2782 text-align: left;
2755 }
2783 }
2756
2784
2757 .refresh_icon {
2785 .refresh_icon {
2758 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2786 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2759 3px;
2787 3px;
2760 padding-left: 20px;
2788 padding-left: 20px;
2761 padding-top: 0px;
2789 padding-top: 0px;
2762 text-align: left;
2790 text-align: left;
2763 }
2791 }
2764
2792
2765 .pull_icon {
2793 .pull_icon {
2766 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2794 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2767 padding-left: 20px;
2795 padding-left: 20px;
2768 padding-top: 0px;
2796 padding-top: 0px;
2769 text-align: left;
2797 text-align: left;
2770 }
2798 }
2771
2799
2772 .rss_icon {
2800 .rss_icon {
2773 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2801 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2774 padding-left: 20px;
2802 padding-left: 20px;
2775 padding-top: 4px;
2803 padding-top: 4px;
2776 text-align: left;
2804 text-align: left;
2777 font-size: 8px
2805 font-size: 8px
2778 }
2806 }
2779
2807
2780 .atom_icon {
2808 .atom_icon {
2781 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2809 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2782 padding-left: 20px;
2810 padding-left: 20px;
2783 padding-top: 4px;
2811 padding-top: 4px;
2784 text-align: left;
2812 text-align: left;
2785 font-size: 8px
2813 font-size: 8px
2786 }
2814 }
2787
2815
2788 .archive_icon {
2816 .archive_icon {
2789 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2817 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2790 padding-left: 20px;
2818 padding-left: 20px;
2791 text-align: left;
2819 text-align: left;
2792 padding-top: 1px;
2820 padding-top: 1px;
2793 }
2821 }
2794
2822
2795 .start_following_icon {
2823 .start_following_icon {
2796 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2824 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2797 padding-left: 20px;
2825 padding-left: 20px;
2798 text-align: left;
2826 text-align: left;
2799 padding-top: 0px;
2827 padding-top: 0px;
2800 }
2828 }
2801
2829
2802 .stop_following_icon {
2830 .stop_following_icon {
2803 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2831 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2804 padding-left: 20px;
2832 padding-left: 20px;
2805 text-align: left;
2833 text-align: left;
2806 padding-top: 0px;
2834 padding-top: 0px;
2807 }
2835 }
2808
2836
2809 .action_button {
2837 .action_button {
2810 border: 0;
2838 border: 0;
2811 display: inline;
2839 display: inline;
2812 }
2840 }
2813
2841
2814 .action_button:hover {
2842 .action_button:hover {
2815 border: 0;
2843 border: 0;
2816 text-decoration: underline;
2844 text-decoration: underline;
2817 cursor: pointer;
2845 cursor: pointer;
2818 }
2846 }
2819
2847
2820 #switch_repos {
2848 #switch_repos {
2821 position: absolute;
2849 position: absolute;
2822 height: 25px;
2850 height: 25px;
2823 z-index: 1;
2851 z-index: 1;
2824 }
2852 }
2825
2853
2826 #switch_repos select {
2854 #switch_repos select {
2827 min-width: 150px;
2855 min-width: 150px;
2828 max-height: 250px;
2856 max-height: 250px;
2829 z-index: 1;
2857 z-index: 1;
2830 }
2858 }
2831
2859
2832 .breadcrumbs {
2860 .breadcrumbs {
2833 border: medium none;
2861 border: medium none;
2834 color: #FFF;
2862 color: #FFF;
2835 float: left;
2863 float: left;
2836 text-transform: uppercase;
2864 text-transform: uppercase;
2837 font-weight: 700;
2865 font-weight: 700;
2838 font-size: 14px;
2866 font-size: 14px;
2839 margin: 0;
2867 margin: 0;
2840 padding: 11px 0 11px 10px;
2868 padding: 11px 0 11px 10px;
2841 }
2869 }
2842
2870
2843 .breadcrumbs a {
2871 .breadcrumbs a {
2844 color: #FFF;
2872 color: #FFF;
2845 }
2873 }
2846
2874
2847 .flash_msg {
2875 .flash_msg {
2848
2876
2849 }
2877 }
2850
2878
2851 .flash_msg ul {
2879 .flash_msg ul {
2852
2880
2853 }
2881 }
2854
2882
2855 .error_msg {
2883 .error_msg {
2856 background-color: #c43c35;
2884 background-color: #c43c35;
2857 background-repeat: repeat-x;
2885 background-repeat: repeat-x;
2858 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2886 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2859 to(#c43c35) );
2887 to(#c43c35) );
2860 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2888 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2861 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2889 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2862 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2890 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2863 color-stop(100%, #c43c35) );
2891 color-stop(100%, #c43c35) );
2864 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2892 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2865 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2893 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2866 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2894 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2867 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2895 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2868 endColorstr='#c43c35', GradientType=0 );
2896 endColorstr='#c43c35', GradientType=0 );
2869 border-color: #c43c35 #c43c35 #882a25;
2897 border-color: #c43c35 #c43c35 #882a25;
2870 }
2898 }
2871
2899
2872 .warning_msg {
2900 .warning_msg {
2873 color: #404040 !important;
2901 color: #404040 !important;
2874 background-color: #eedc94;
2902 background-color: #eedc94;
2875 background-repeat: repeat-x;
2903 background-repeat: repeat-x;
2876 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2904 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2877 to(#eedc94) );
2905 to(#eedc94) );
2878 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2906 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2879 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2907 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2880 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2908 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2881 color-stop(100%, #eedc94) );
2909 color-stop(100%, #eedc94) );
2882 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2910 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2883 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2911 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2884 background-image: linear-gradient(top, #fceec1, #eedc94);
2912 background-image: linear-gradient(top, #fceec1, #eedc94);
2885 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2913 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2886 endColorstr='#eedc94', GradientType=0 );
2914 endColorstr='#eedc94', GradientType=0 );
2887 border-color: #eedc94 #eedc94 #e4c652;
2915 border-color: #eedc94 #eedc94 #e4c652;
2888 }
2916 }
2889
2917
2890 .success_msg {
2918 .success_msg {
2891 background-color: #57a957;
2919 background-color: #57a957;
2892 background-repeat: repeat-x !important;
2920 background-repeat: repeat-x !important;
2893 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2921 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2894 to(#57a957) );
2922 to(#57a957) );
2895 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2923 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2896 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2924 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2897 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2925 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2898 color-stop(100%, #57a957) );
2926 color-stop(100%, #57a957) );
2899 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2927 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2900 background-image: -o-linear-gradient(top, #62c462, #57a957);
2928 background-image: -o-linear-gradient(top, #62c462, #57a957);
2901 background-image: linear-gradient(top, #62c462, #57a957);
2929 background-image: linear-gradient(top, #62c462, #57a957);
2902 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2930 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2903 endColorstr='#57a957', GradientType=0 );
2931 endColorstr='#57a957', GradientType=0 );
2904 border-color: #57a957 #57a957 #3d773d;
2932 border-color: #57a957 #57a957 #3d773d;
2905 }
2933 }
2906
2934
2907 .notice_msg {
2935 .notice_msg {
2908 background-color: #339bb9;
2936 background-color: #339bb9;
2909 background-repeat: repeat-x;
2937 background-repeat: repeat-x;
2910 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2938 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2911 to(#339bb9) );
2939 to(#339bb9) );
2912 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2940 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2913 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2941 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2914 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2942 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2915 color-stop(100%, #339bb9) );
2943 color-stop(100%, #339bb9) );
2916 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2944 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2917 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2945 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2918 background-image: linear-gradient(top, #5bc0de, #339bb9);
2946 background-image: linear-gradient(top, #5bc0de, #339bb9);
2919 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2947 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2920 endColorstr='#339bb9', GradientType=0 );
2948 endColorstr='#339bb9', GradientType=0 );
2921 border-color: #339bb9 #339bb9 #22697d;
2949 border-color: #339bb9 #339bb9 #22697d;
2922 }
2950 }
2923
2951
2924 .success_msg,.error_msg,.notice_msg,.warning_msg {
2952 .success_msg,.error_msg,.notice_msg,.warning_msg {
2925 font-size: 12px;
2953 font-size: 12px;
2926 font-weight: 700;
2954 font-weight: 700;
2927 min-height: 14px;
2955 min-height: 14px;
2928 line-height: 14px;
2956 line-height: 14px;
2929 margin-bottom: 10px;
2957 margin-bottom: 10px;
2930 margin-top: 0;
2958 margin-top: 0;
2931 display: block;
2959 display: block;
2932 overflow: auto;
2960 overflow: auto;
2933 padding: 6px 10px 6px 10px;
2961 padding: 6px 10px 6px 10px;
2934 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2962 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2935 position: relative;
2963 position: relative;
2936 color: #FFF;
2964 color: #FFF;
2937 border-width: 1px;
2965 border-width: 1px;
2938 border-style: solid;
2966 border-style: solid;
2939 -webkit-border-radius: 4px;
2967 -webkit-border-radius: 4px;
2940 -moz-border-radius: 4px;
2968 -moz-border-radius: 4px;
2941 border-radius: 4px;
2969 border-radius: 4px;
2942 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2970 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2943 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2971 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2944 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2972 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2945 }
2973 }
2946
2974
2947 #msg_close {
2975 #msg_close {
2948 background: transparent url("../icons/cross_grey_small.png") no-repeat
2976 background: transparent url("../icons/cross_grey_small.png") no-repeat
2949 scroll 0 0;
2977 scroll 0 0;
2950 cursor: pointer;
2978 cursor: pointer;
2951 height: 16px;
2979 height: 16px;
2952 position: absolute;
2980 position: absolute;
2953 right: 5px;
2981 right: 5px;
2954 top: 5px;
2982 top: 5px;
2955 width: 16px;
2983 width: 16px;
2956 }
2984 }
2957
2985
2958 div#legend_container table,div#legend_choices table {
2986 div#legend_container table,div#legend_choices table {
2959 width: auto !important;
2987 width: auto !important;
2960 }
2988 }
2961
2989
2962 table#permissions_manage {
2990 table#permissions_manage {
2963 width: 0 !important;
2991 width: 0 !important;
2964 }
2992 }
2965
2993
2966 table#permissions_manage span.private_repo_msg {
2994 table#permissions_manage span.private_repo_msg {
2967 font-size: 0.8em;
2995 font-size: 0.8em;
2968 opacity: 0.6px;
2996 opacity: 0.6px;
2969 }
2997 }
2970
2998
2971 table#permissions_manage td.private_repo_msg {
2999 table#permissions_manage td.private_repo_msg {
2972 font-size: 0.8em;
3000 font-size: 0.8em;
2973 }
3001 }
2974
3002
2975 table#permissions_manage tr#add_perm_input td {
3003 table#permissions_manage tr#add_perm_input td {
2976 vertical-align: middle;
3004 vertical-align: middle;
2977 }
3005 }
2978
3006
2979 div.gravatar {
3007 div.gravatar {
2980 background-color: #FFF;
3008 background-color: #FFF;
2981 float: left;
3009 float: left;
2982 margin-right: 0.7em;
3010 margin-right: 0.7em;
2983 padding: 1px 1px 1px 1px;
3011 padding: 1px 1px 1px 1px;
2984 line-height:0;
3012 line-height:0;
2985 -webkit-border-radius: 3px;
3013 -webkit-border-radius: 3px;
2986 -khtml-border-radius: 3px;
3014 -khtml-border-radius: 3px;
2987 -moz-border-radius: 3px;
3015 -moz-border-radius: 3px;
2988 border-radius: 3px;
3016 border-radius: 3px;
2989 }
3017 }
2990
3018
2991 div.gravatar img {
3019 div.gravatar img {
2992 -webkit-border-radius: 2px;
3020 -webkit-border-radius: 2px;
2993 -khtml-border-radius: 2px;
3021 -khtml-border-radius: 2px;
2994 -moz-border-radius: 2px;
3022 -moz-border-radius: 2px;
2995 border-radius: 2px;
3023 border-radius: 2px;
2996 }
3024 }
2997
3025
2998 #header,#content,#footer {
3026 #header,#content,#footer {
2999 min-width: 978px;
3027 min-width: 978px;
3000 }
3028 }
3001
3029
3002 #content {
3030 #content {
3003 clear: both;
3031 clear: both;
3004 overflow: hidden;
3032 overflow: hidden;
3005 padding: 14px 10px;
3033 padding: 14px 10px;
3006 }
3034 }
3007
3035
3008 #content div.box div.title div.search {
3036 #content div.box div.title div.search {
3009
3037
3010 border-left: 1px solid #316293;
3038 border-left: 1px solid #316293;
3011 }
3039 }
3012
3040
3013 #content div.box div.title div.search div.input input {
3041 #content div.box div.title div.search div.input input {
3014 border: 1px solid #316293;
3042 border: 1px solid #316293;
3015 }
3043 }
3016
3044
3017 .ui-btn{
3045 .ui-btn{
3018 color: #515151;
3046 color: #515151;
3019 background-color: #DADADA;
3047 background-color: #DADADA;
3020 background-repeat: repeat-x;
3048 background-repeat: repeat-x;
3021 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
3049 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
3022 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
3050 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
3023 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
3051 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
3024 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
3052 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
3025 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
3053 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
3026 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
3054 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
3027 background-image: linear-gradient(top, #F4F4F4, #DADADA);
3055 background-image: linear-gradient(top, #F4F4F4, #DADADA);
3028 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
3056 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
3029
3057
3030 border-top: 1px solid #DDD;
3058 border-top: 1px solid #DDD;
3031 border-left: 1px solid #c6c6c6;
3059 border-left: 1px solid #c6c6c6;
3032 border-right: 1px solid #DDD;
3060 border-right: 1px solid #DDD;
3033 border-bottom: 1px solid #c6c6c6;
3061 border-bottom: 1px solid #c6c6c6;
3034 color: #515151;
3062 color: #515151;
3035 outline: none;
3063 outline: none;
3036 margin: 0px 3px 3px 0px;
3064 margin: 0px 3px 3px 0px;
3037 -webkit-border-radius: 4px 4px 4px 4px !important;
3065 -webkit-border-radius: 4px 4px 4px 4px !important;
3038 -khtml-border-radius: 4px 4px 4px 4px !important;
3066 -khtml-border-radius: 4px 4px 4px 4px !important;
3039 -moz-border-radius: 4px 4px 4px 4px !important;
3067 -moz-border-radius: 4px 4px 4px 4px !important;
3040 border-radius: 4px 4px 4px 4px !important;
3068 border-radius: 4px 4px 4px 4px !important;
3041 cursor: pointer !important;
3069 cursor: pointer !important;
3042 padding: 3px 3px 3px 3px;
3070 padding: 3px 3px 3px 3px;
3043 background-position: 0 -15px;
3071 background-position: 0 -15px;
3044
3072
3045 }
3073 }
3046 .ui-btn.xsmall{
3074 .ui-btn.xsmall{
3047 padding: 1px 2px 1px 1px;
3075 padding: 1px 2px 1px 1px;
3048 }
3076 }
3049 .ui-btn.clone{
3077 .ui-btn.clone{
3050 padding: 5px 2px 6px 1px;
3078 padding: 5px 2px 6px 1px;
3051 margin: 0px -4px 3px 0px;
3079 margin: 0px -4px 3px 0px;
3052 -webkit-border-radius: 4px 0px 0px 4px !important;
3080 -webkit-border-radius: 4px 0px 0px 4px !important;
3053 -khtml-border-radius: 4px 0px 0px 4px !important;
3081 -khtml-border-radius: 4px 0px 0px 4px !important;
3054 -moz-border-radius: 4px 0px 0px 4px !important;
3082 -moz-border-radius: 4px 0px 0px 4px !important;
3055 border-radius: 4px 0px 0px 4px !important;
3083 border-radius: 4px 0px 0px 4px !important;
3056 width: 100px;
3084 width: 100px;
3057 text-align: center;
3085 text-align: center;
3058 float: left;
3086 float: left;
3059 position: absolute;
3087 position: absolute;
3060 }
3088 }
3061 .ui-btn:focus {
3089 .ui-btn:focus {
3062 outline: none;
3090 outline: none;
3063 }
3091 }
3064 .ui-btn:hover{
3092 .ui-btn:hover{
3065 background-position: 0 0px;
3093 background-position: 0 0px;
3066 text-decoration: none;
3094 text-decoration: none;
3067 color: #515151;
3095 color: #515151;
3068 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
3096 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
3069 }
3097 }
3070
3098
3071 .ui-btn.red{
3099 .ui-btn.red{
3072 color:#fff;
3100 color:#fff;
3073 background-color: #c43c35;
3101 background-color: #c43c35;
3074 background-repeat: repeat-x;
3102 background-repeat: repeat-x;
3075 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
3103 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
3076 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3104 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3077 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3105 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3078 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
3106 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
3079 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3107 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3080 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3108 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3081 background-image: linear-gradient(top, #ee5f5b, #c43c35);
3109 background-image: linear-gradient(top, #ee5f5b, #c43c35);
3082 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
3110 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
3083 border-color: #c43c35 #c43c35 #882a25;
3111 border-color: #c43c35 #c43c35 #882a25;
3084 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3112 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3085 }
3113 }
3086
3114
3087
3115
3088 .ui-btn.blue{
3116 .ui-btn.blue{
3089 background-color: #339bb9;
3117 background-color: #339bb9;
3090 background-repeat: repeat-x;
3118 background-repeat: repeat-x;
3091 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
3119 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
3092 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3120 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3093 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3121 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3094 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
3122 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
3095 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3123 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3096 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3124 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3097 background-image: linear-gradient(top, #5bc0de, #339bb9);
3125 background-image: linear-gradient(top, #5bc0de, #339bb9);
3098 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
3126 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
3099 border-color: #339bb9 #339bb9 #22697d;
3127 border-color: #339bb9 #339bb9 #22697d;
3100 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3128 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3101 }
3129 }
3102
3130
3103 .ui-btn.green{
3131 .ui-btn.green{
3104 background-color: #57a957;
3132 background-color: #57a957;
3105 background-repeat: repeat-x;
3133 background-repeat: repeat-x;
3106 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
3134 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
3107 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3135 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3108 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3136 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3109 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
3137 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
3110 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3138 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3111 background-image: -o-linear-gradient(top, #62c462, #57a957);
3139 background-image: -o-linear-gradient(top, #62c462, #57a957);
3112 background-image: linear-gradient(top, #62c462, #57a957);
3140 background-image: linear-gradient(top, #62c462, #57a957);
3113 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
3141 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
3114 border-color: #57a957 #57a957 #3d773d;
3142 border-color: #57a957 #57a957 #3d773d;
3115 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3143 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3116 }
3144 }
3117
3145
3118 ins,div.options a:hover {
3146 ins,div.options a:hover {
3119 text-decoration: none;
3147 text-decoration: none;
3120 }
3148 }
3121
3149
3122 img,
3150 img,
3123 #header #header-inner #quick li a:hover span.normal,
3151 #header #header-inner #quick li a:hover span.normal,
3124 #header #header-inner #quick li ul li.last,
3152 #header #header-inner #quick li ul li.last,
3125 #content div.box div.form div.fields div.field div.textarea table td table td a,
3153 #content div.box div.form div.fields div.field div.textarea table td table td a,
3126 #clone_url,
3154 #clone_url,
3127 #clone_url_id
3155 #clone_url_id
3128 {
3156 {
3129 border: none;
3157 border: none;
3130 }
3158 }
3131
3159
3132 img.icon,.right .merge img {
3160 img.icon,.right .merge img {
3133 vertical-align: bottom;
3161 vertical-align: bottom;
3134 }
3162 }
3135
3163
3136 #header ul#logged-user,#content div.box div.title ul.links,
3164 #header ul#logged-user,#content div.box div.title ul.links,
3137 #content div.box div.message div.dismiss,
3165 #content div.box div.message div.dismiss,
3138 #content div.box div.traffic div.legend ul
3166 #content div.box div.traffic div.legend ul
3139 {
3167 {
3140 float: right;
3168 float: right;
3141 margin: 0;
3169 margin: 0;
3142 padding: 0;
3170 padding: 0;
3143 }
3171 }
3144
3172
3145 #header #header-inner #home,#header #header-inner #logo,
3173 #header #header-inner #home,#header #header-inner #logo,
3146 #content div.box ul.left,#content div.box ol.left,
3174 #content div.box ul.left,#content div.box ol.left,
3147 #content div.box div.pagination-left,div#commit_history,
3175 #content div.box div.pagination-left,div#commit_history,
3148 div#legend_data,div#legend_container,div#legend_choices
3176 div#legend_data,div#legend_container,div#legend_choices
3149 {
3177 {
3150 float: left;
3178 float: left;
3151 }
3179 }
3152
3180
3153 #header #header-inner #quick li:hover ul ul,
3181 #header #header-inner #quick li:hover ul ul,
3154 #header #header-inner #quick li:hover ul ul ul,
3182 #header #header-inner #quick li:hover ul ul ul,
3155 #header #header-inner #quick li:hover ul ul ul ul,
3183 #header #header-inner #quick li:hover ul ul ul ul,
3156 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
3184 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
3157 {
3185 {
3158 display: none;
3186 display: none;
3159 }
3187 }
3160
3188
3161 #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
3189 #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
3162 {
3190 {
3163 display: block;
3191 display: block;
3164 }
3192 }
3165
3193
3166 #content div.graph {
3194 #content div.graph {
3167 padding: 0 10px 10px;
3195 padding: 0 10px 10px;
3168 }
3196 }
3169
3197
3170 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
3198 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
3171 {
3199 {
3172 color: #bfe3ff;
3200 color: #bfe3ff;
3173 }
3201 }
3174
3202
3175 #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
3203 #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
3176 {
3204 {
3177 margin: 10px 24px 10px 44px;
3205 margin: 10px 24px 10px 44px;
3178 }
3206 }
3179
3207
3180 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
3208 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
3181 {
3209 {
3182 clear: both;
3210 clear: both;
3183 overflow: hidden;
3211 overflow: hidden;
3184 margin: 0;
3212 margin: 0;
3185 padding: 0 20px 10px;
3213 padding: 0 20px 10px;
3186 }
3214 }
3187
3215
3188 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
3216 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
3189 {
3217 {
3190 clear: both;
3218 clear: both;
3191 overflow: hidden;
3219 overflow: hidden;
3192 margin: 0;
3220 margin: 0;
3193 padding: 0;
3221 padding: 0;
3194 }
3222 }
3195
3223
3196 #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
3224 #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
3197 {
3225 {
3198 height: 1%;
3226 height: 1%;
3199 display: block;
3227 display: block;
3200 color: #363636;
3228 color: #363636;
3201 margin: 0;
3229 margin: 0;
3202 padding: 2px 0 0;
3230 padding: 2px 0 0;
3203 }
3231 }
3204
3232
3205 #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
3233 #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
3206 {
3234 {
3207 background: #FBE3E4;
3235 background: #FBE3E4;
3208 border-top: 1px solid #e1b2b3;
3236 border-top: 1px solid #e1b2b3;
3209 border-left: 1px solid #e1b2b3;
3237 border-left: 1px solid #e1b2b3;
3210 border-right: 1px solid #FBC2C4;
3238 border-right: 1px solid #FBC2C4;
3211 border-bottom: 1px solid #FBC2C4;
3239 border-bottom: 1px solid #FBC2C4;
3212 }
3240 }
3213
3241
3214 #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
3242 #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
3215 {
3243 {
3216 background: #E6EFC2;
3244 background: #E6EFC2;
3217 border-top: 1px solid #cebb98;
3245 border-top: 1px solid #cebb98;
3218 border-left: 1px solid #cebb98;
3246 border-left: 1px solid #cebb98;
3219 border-right: 1px solid #c6d880;
3247 border-right: 1px solid #c6d880;
3220 border-bottom: 1px solid #c6d880;
3248 border-bottom: 1px solid #c6d880;
3221 }
3249 }
3222
3250
3223 #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
3251 #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
3224 {
3252 {
3225 margin: 0;
3253 margin: 0;
3226 }
3254 }
3227
3255
3228 #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
3256 #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
3229 {
3257 {
3230 margin: 0 0 0 0px !important;
3258 margin: 0 0 0 0px !important;
3231 padding: 0;
3259 padding: 0;
3232 }
3260 }
3233
3261
3234 #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
3262 #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
3235 {
3263 {
3236 margin: 0 0 0 200px;
3264 margin: 0 0 0 200px;
3237 padding: 0;
3265 padding: 0;
3238 }
3266 }
3239
3267
3240 #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
3268 #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
3241 {
3269 {
3242 color: #000;
3270 color: #000;
3243 text-decoration: none;
3271 text-decoration: none;
3244 }
3272 }
3245
3273
3246 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
3274 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
3247 {
3275 {
3248 border: 1px solid #666;
3276 border: 1px solid #666;
3249 }
3277 }
3250
3278
3251 #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
3279 #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
3252 {
3280 {
3253 clear: both;
3281 clear: both;
3254 overflow: hidden;
3282 overflow: hidden;
3255 margin: 0;
3283 margin: 0;
3256 padding: 8px 0 2px;
3284 padding: 8px 0 2px;
3257 }
3285 }
3258
3286
3259 #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
3287 #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
3260 {
3288 {
3261 float: left;
3289 float: left;
3262 margin: 0;
3290 margin: 0;
3263 }
3291 }
3264
3292
3265 #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
3293 #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
3266 {
3294 {
3267 height: 1%;
3295 height: 1%;
3268 display: block;
3296 display: block;
3269 float: left;
3297 float: left;
3270 margin: 2px 0 0 4px;
3298 margin: 2px 0 0 4px;
3271 }
3299 }
3272
3300
3273 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
3301 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
3274 {
3302 {
3275 color: #000;
3303 color: #000;
3276 font-size: 11px;
3304 font-size: 11px;
3277 font-weight: 700;
3305 font-weight: 700;
3278 margin: 0;
3306 margin: 0;
3279 }
3307 }
3280
3308
3281 input.ui-button {
3309 input.ui-button {
3282 background: #e5e3e3 url("../images/button.png") repeat-x;
3310 background: #e5e3e3 url("../images/button.png") repeat-x;
3283 border-top: 1px solid #DDD;
3311 border-top: 1px solid #DDD;
3284 border-left: 1px solid #c6c6c6;
3312 border-left: 1px solid #c6c6c6;
3285 border-right: 1px solid #DDD;
3313 border-right: 1px solid #DDD;
3286 border-bottom: 1px solid #c6c6c6;
3314 border-bottom: 1px solid #c6c6c6;
3287 color: #515151 !important;
3315 color: #515151 !important;
3288 outline: none;
3316 outline: none;
3289 margin: 0;
3317 margin: 0;
3290 padding: 6px 12px;
3318 padding: 6px 12px;
3291 -webkit-border-radius: 4px 4px 4px 4px;
3319 -webkit-border-radius: 4px 4px 4px 4px;
3292 -khtml-border-radius: 4px 4px 4px 4px;
3320 -khtml-border-radius: 4px 4px 4px 4px;
3293 -moz-border-radius: 4px 4px 4px 4px;
3321 -moz-border-radius: 4px 4px 4px 4px;
3294 border-radius: 4px 4px 4px 4px;
3322 border-radius: 4px 4px 4px 4px;
3295 box-shadow: 0 1px 0 #ececec;
3323 box-shadow: 0 1px 0 #ececec;
3296 cursor: pointer;
3324 cursor: pointer;
3297 }
3325 }
3298
3326
3299 input.ui-button:hover {
3327 input.ui-button:hover {
3300 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3328 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3301 border-top: 1px solid #ccc;
3329 border-top: 1px solid #ccc;
3302 border-left: 1px solid #bebebe;
3330 border-left: 1px solid #bebebe;
3303 border-right: 1px solid #b1b1b1;
3331 border-right: 1px solid #b1b1b1;
3304 border-bottom: 1px solid #afafaf;
3332 border-bottom: 1px solid #afafaf;
3305 }
3333 }
3306
3334
3307 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
3335 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
3308 {
3336 {
3309 display: inline;
3337 display: inline;
3310 }
3338 }
3311
3339
3312 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
3340 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
3313 {
3341 {
3314 margin: 10px 0 0 200px;
3342 margin: 10px 0 0 200px;
3315 padding: 0;
3343 padding: 0;
3316 }
3344 }
3317
3345
3318 #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
3346 #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
3319 {
3347 {
3320 margin: 10px 0 0;
3348 margin: 10px 0 0;
3321 }
3349 }
3322
3350
3323 #content div.box table td.user,#content div.box table td.address {
3351 #content div.box table td.user,#content div.box table td.address {
3324 width: 10%;
3352 width: 10%;
3325 text-align: center;
3353 text-align: center;
3326 }
3354 }
3327
3355
3328 #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
3356 #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
3329 {
3357 {
3330 text-align: right;
3358 text-align: right;
3331 margin: 6px 0 0;
3359 margin: 6px 0 0;
3332 padding: 0;
3360 padding: 0;
3333 }
3361 }
3334
3362
3335 #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
3363 #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
3336 {
3364 {
3337 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3365 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3338 border-top: 1px solid #ccc;
3366 border-top: 1px solid #ccc;
3339 border-left: 1px solid #bebebe;
3367 border-left: 1px solid #bebebe;
3340 border-right: 1px solid #b1b1b1;
3368 border-right: 1px solid #b1b1b1;
3341 border-bottom: 1px solid #afafaf;
3369 border-bottom: 1px solid #afafaf;
3342 color: #515151;
3370 color: #515151;
3343 margin: 0;
3371 margin: 0;
3344 padding: 6px 12px;
3372 padding: 6px 12px;
3345 }
3373 }
3346
3374
3347 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3375 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3348 {
3376 {
3349 text-align: left;
3377 text-align: left;
3350 float: left;
3378 float: left;
3351 margin: 0;
3379 margin: 0;
3352 padding: 0;
3380 padding: 0;
3353 }
3381 }
3354
3382
3355 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3383 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3356 {
3384 {
3357 height: 1%;
3385 height: 1%;
3358 display: block;
3386 display: block;
3359 float: left;
3387 float: left;
3360 background: #ebebeb url("../images/pager.png") repeat-x;
3388 background: #ebebeb url("../images/pager.png") repeat-x;
3361 border-top: 1px solid #dedede;
3389 border-top: 1px solid #dedede;
3362 border-left: 1px solid #cfcfcf;
3390 border-left: 1px solid #cfcfcf;
3363 border-right: 1px solid #c4c4c4;
3391 border-right: 1px solid #c4c4c4;
3364 border-bottom: 1px solid #c4c4c4;
3392 border-bottom: 1px solid #c4c4c4;
3365 color: #4A4A4A;
3393 color: #4A4A4A;
3366 font-weight: 700;
3394 font-weight: 700;
3367 margin: 0;
3395 margin: 0;
3368 padding: 6px 8px;
3396 padding: 6px 8px;
3369 }
3397 }
3370
3398
3371 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3399 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3372 {
3400 {
3373 color: #B4B4B4;
3401 color: #B4B4B4;
3374 padding: 6px;
3402 padding: 6px;
3375 }
3403 }
3376
3404
3377 #login,#register {
3405 #login,#register {
3378 width: 520px;
3406 width: 520px;
3379 margin: 10% auto 0;
3407 margin: 10% auto 0;
3380 padding: 0;
3408 padding: 0;
3381 }
3409 }
3382
3410
3383 #login div.color,#register div.color {
3411 #login div.color,#register div.color {
3384 clear: both;
3412 clear: both;
3385 overflow: hidden;
3413 overflow: hidden;
3386 background: #FFF;
3414 background: #FFF;
3387 margin: 10px auto 0;
3415 margin: 10px auto 0;
3388 padding: 3px 3px 3px 0;
3416 padding: 3px 3px 3px 0;
3389 }
3417 }
3390
3418
3391 #login div.color a,#register div.color a {
3419 #login div.color a,#register div.color a {
3392 width: 20px;
3420 width: 20px;
3393 height: 20px;
3421 height: 20px;
3394 display: block;
3422 display: block;
3395 float: left;
3423 float: left;
3396 margin: 0 0 0 3px;
3424 margin: 0 0 0 3px;
3397 padding: 0;
3425 padding: 0;
3398 }
3426 }
3399
3427
3400 #login div.title h5,#register div.title h5 {
3428 #login div.title h5,#register div.title h5 {
3401 color: #fff;
3429 color: #fff;
3402 margin: 10px;
3430 margin: 10px;
3403 padding: 0;
3431 padding: 0;
3404 }
3432 }
3405
3433
3406 #login div.form div.fields div.field,#register div.form div.fields div.field
3434 #login div.form div.fields div.field,#register div.form div.fields div.field
3407 {
3435 {
3408 clear: both;
3436 clear: both;
3409 overflow: hidden;
3437 overflow: hidden;
3410 margin: 0;
3438 margin: 0;
3411 padding: 0 0 10px;
3439 padding: 0 0 10px;
3412 }
3440 }
3413
3441
3414 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3442 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3415 {
3443 {
3416 height: 1%;
3444 height: 1%;
3417 display: block;
3445 display: block;
3418 color: red;
3446 color: red;
3419 margin: 8px 0 0;
3447 margin: 8px 0 0;
3420 padding: 0;
3448 padding: 0;
3421 max-width: 320px;
3449 max-width: 320px;
3422 }
3450 }
3423
3451
3424 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3452 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3425 {
3453 {
3426 color: #000;
3454 color: #000;
3427 font-weight: 700;
3455 font-weight: 700;
3428 }
3456 }
3429
3457
3430 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3458 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3431 {
3459 {
3432 float: left;
3460 float: left;
3433 margin: 0;
3461 margin: 0;
3434 padding: 0;
3462 padding: 0;
3435 }
3463 }
3436
3464
3437 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3465 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3438 {
3466 {
3439 margin: 0 0 0 184px;
3467 margin: 0 0 0 184px;
3440 padding: 0;
3468 padding: 0;
3441 }
3469 }
3442
3470
3443 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3471 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3444 {
3472 {
3445 color: #565656;
3473 color: #565656;
3446 font-weight: 700;
3474 font-weight: 700;
3447 }
3475 }
3448
3476
3449 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3477 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3450 {
3478 {
3451 color: #000;
3479 color: #000;
3452 font-size: 1em;
3480 font-size: 1em;
3453 font-weight: 700;
3481 font-weight: 700;
3454 margin: 0;
3482 margin: 0;
3455 }
3483 }
3456
3484
3457 #changeset_content .container .wrapper,#graph_content .container .wrapper
3485 #changeset_content .container .wrapper,#graph_content .container .wrapper
3458 {
3486 {
3459 width: 600px;
3487 width: 600px;
3460 }
3488 }
3461
3489
3462 #changeset_content .container .left {
3490 #changeset_content .container .left {
3463 float: left;
3491 float: left;
3464 width: 75%;
3492 width: 75%;
3465 padding-left: 5px;
3493 padding-left: 5px;
3466 }
3494 }
3467
3495
3468 #changeset_content .container .left .date,.ac .match {
3496 #changeset_content .container .left .date,.ac .match {
3469 font-weight: 700;
3497 font-weight: 700;
3470 padding-top: 5px;
3498 padding-top: 5px;
3471 padding-bottom: 5px;
3499 padding-bottom: 5px;
3472 }
3500 }
3473
3501
3474 div#legend_container table td,div#legend_choices table td {
3502 div#legend_container table td,div#legend_choices table td {
3475 border: none !important;
3503 border: none !important;
3476 height: 20px !important;
3504 height: 20px !important;
3477 padding: 0 !important;
3505 padding: 0 !important;
3478 }
3506 }
3479
3507
3480 .q_filter_box {
3508 .q_filter_box {
3481 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3509 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3482 -webkit-border-radius: 4px;
3510 -webkit-border-radius: 4px;
3483 -moz-border-radius: 4px;
3511 -moz-border-radius: 4px;
3484 border-radius: 4px;
3512 border-radius: 4px;
3485 border: 0 none;
3513 border: 0 none;
3486 color: #AAAAAA;
3514 color: #AAAAAA;
3487 margin-bottom: -4px;
3515 margin-bottom: -4px;
3488 margin-top: -4px;
3516 margin-top: -4px;
3489 padding-left: 3px;
3517 padding-left: 3px;
3490 }
3518 }
3491
3519
3492 #node_filter {
3520 #node_filter {
3493 border: 0px solid #545454;
3521 border: 0px solid #545454;
3494 color: #AAAAAA;
3522 color: #AAAAAA;
3495 padding-left: 3px;
3523 padding-left: 3px;
3496 }
3524 }
3497
3525
3498 /*README STYLE*/
3526 /*README STYLE*/
3499
3527
3500 div.readme {
3528 div.readme {
3501 padding:0px;
3529 padding:0px;
3502 }
3530 }
3503
3531
3504 div.readme h2 {
3532 div.readme h2 {
3505 font-weight: normal;
3533 font-weight: normal;
3506 }
3534 }
3507
3535
3508 div.readme .readme_box {
3536 div.readme .readme_box {
3509 background-color: #fafafa;
3537 background-color: #fafafa;
3510 }
3538 }
3511
3539
3512 div.readme .readme_box {
3540 div.readme .readme_box {
3513 clear:both;
3541 clear:both;
3514 overflow:hidden;
3542 overflow:hidden;
3515 margin:0;
3543 margin:0;
3516 padding:0 20px 10px;
3544 padding:0 20px 10px;
3517 }
3545 }
3518
3546
3519 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 {
3547 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 {
3520 border-bottom: 0 !important;
3548 border-bottom: 0 !important;
3521 margin: 0 !important;
3549 margin: 0 !important;
3522 padding: 0 !important;
3550 padding: 0 !important;
3523 line-height: 1.5em !important;
3551 line-height: 1.5em !important;
3524 }
3552 }
3525
3553
3526
3554
3527 div.readme .readme_box h1:first-child {
3555 div.readme .readme_box h1:first-child {
3528 padding-top: .25em !important;
3556 padding-top: .25em !important;
3529 }
3557 }
3530
3558
3531 div.readme .readme_box h2, div.readme .readme_box h3 {
3559 div.readme .readme_box h2, div.readme .readme_box h3 {
3532 margin: 1em 0 !important;
3560 margin: 1em 0 !important;
3533 }
3561 }
3534
3562
3535 div.readme .readme_box h2 {
3563 div.readme .readme_box h2 {
3536 margin-top: 1.5em !important;
3564 margin-top: 1.5em !important;
3537 border-top: 4px solid #e0e0e0 !important;
3565 border-top: 4px solid #e0e0e0 !important;
3538 padding-top: .5em !important;
3566 padding-top: .5em !important;
3539 }
3567 }
3540
3568
3541 div.readme .readme_box p {
3569 div.readme .readme_box p {
3542 color: black !important;
3570 color: black !important;
3543 margin: 1em 0 !important;
3571 margin: 1em 0 !important;
3544 line-height: 1.5em !important;
3572 line-height: 1.5em !important;
3545 }
3573 }
3546
3574
3547 div.readme .readme_box ul {
3575 div.readme .readme_box ul {
3548 list-style: disc !important;
3576 list-style: disc !important;
3549 margin: 1em 0 1em 2em !important;
3577 margin: 1em 0 1em 2em !important;
3550 }
3578 }
3551
3579
3552 div.readme .readme_box ol {
3580 div.readme .readme_box ol {
3553 list-style: decimal;
3581 list-style: decimal;
3554 margin: 1em 0 1em 2em !important;
3582 margin: 1em 0 1em 2em !important;
3555 }
3583 }
3556
3584
3557 div.readme .readme_box pre, code {
3585 div.readme .readme_box pre, code {
3558 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3586 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3559 }
3587 }
3560
3588
3561 div.readme .readme_box code {
3589 div.readme .readme_box code {
3562 font-size: 12px !important;
3590 font-size: 12px !important;
3563 background-color: ghostWhite !important;
3591 background-color: ghostWhite !important;
3564 color: #444 !important;
3592 color: #444 !important;
3565 padding: 0 .2em !important;
3593 padding: 0 .2em !important;
3566 border: 1px solid #dedede !important;
3594 border: 1px solid #dedede !important;
3567 }
3595 }
3568
3596
3569 div.readme .readme_box pre code {
3597 div.readme .readme_box pre code {
3570 padding: 0 !important;
3598 padding: 0 !important;
3571 font-size: 12px !important;
3599 font-size: 12px !important;
3572 background-color: #eee !important;
3600 background-color: #eee !important;
3573 border: none !important;
3601 border: none !important;
3574 }
3602 }
3575
3603
3576 div.readme .readme_box pre {
3604 div.readme .readme_box pre {
3577 margin: 1em 0;
3605 margin: 1em 0;
3578 font-size: 12px;
3606 font-size: 12px;
3579 background-color: #eee;
3607 background-color: #eee;
3580 border: 1px solid #ddd;
3608 border: 1px solid #ddd;
3581 padding: 5px;
3609 padding: 5px;
3582 color: #444;
3610 color: #444;
3583 overflow: auto;
3611 overflow: auto;
3584 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3612 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3585 -webkit-border-radius: 3px;
3613 -webkit-border-radius: 3px;
3586 -moz-border-radius: 3px;
3614 -moz-border-radius: 3px;
3587 border-radius: 3px;
3615 border-radius: 3px;
3588 }
3616 }
3589
3617
3590
3618
3591 /** RST STYLE **/
3619 /** RST STYLE **/
3592
3620
3593
3621
3594 div.rst-block {
3622 div.rst-block {
3595 padding:0px;
3623 padding:0px;
3596 }
3624 }
3597
3625
3598 div.rst-block h2 {
3626 div.rst-block h2 {
3599 font-weight: normal;
3627 font-weight: normal;
3600 }
3628 }
3601
3629
3602 div.rst-block {
3630 div.rst-block {
3603 background-color: #fafafa;
3631 background-color: #fafafa;
3604 }
3632 }
3605
3633
3606 div.rst-block {
3634 div.rst-block {
3607 clear:both;
3635 clear:both;
3608 overflow:hidden;
3636 overflow:hidden;
3609 margin:0;
3637 margin:0;
3610 padding:0 20px 10px;
3638 padding:0 20px 10px;
3611 }
3639 }
3612
3640
3613 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3641 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3614 border-bottom: 0 !important;
3642 border-bottom: 0 !important;
3615 margin: 0 !important;
3643 margin: 0 !important;
3616 padding: 0 !important;
3644 padding: 0 !important;
3617 line-height: 1.5em !important;
3645 line-height: 1.5em !important;
3618 }
3646 }
3619
3647
3620
3648
3621 div.rst-block h1:first-child {
3649 div.rst-block h1:first-child {
3622 padding-top: .25em !important;
3650 padding-top: .25em !important;
3623 }
3651 }
3624
3652
3625 div.rst-block h2, div.rst-block h3 {
3653 div.rst-block h2, div.rst-block h3 {
3626 margin: 1em 0 !important;
3654 margin: 1em 0 !important;
3627 }
3655 }
3628
3656
3629 div.rst-block h2 {
3657 div.rst-block h2 {
3630 margin-top: 1.5em !important;
3658 margin-top: 1.5em !important;
3631 border-top: 4px solid #e0e0e0 !important;
3659 border-top: 4px solid #e0e0e0 !important;
3632 padding-top: .5em !important;
3660 padding-top: .5em !important;
3633 }
3661 }
3634
3662
3635 div.rst-block p {
3663 div.rst-block p {
3636 color: black !important;
3664 color: black !important;
3637 margin: 1em 0 !important;
3665 margin: 1em 0 !important;
3638 line-height: 1.5em !important;
3666 line-height: 1.5em !important;
3639 }
3667 }
3640
3668
3641 div.rst-block ul {
3669 div.rst-block ul {
3642 list-style: disc !important;
3670 list-style: disc !important;
3643 margin: 1em 0 1em 2em !important;
3671 margin: 1em 0 1em 2em !important;
3644 }
3672 }
3645
3673
3646 div.rst-block ol {
3674 div.rst-block ol {
3647 list-style: decimal;
3675 list-style: decimal;
3648 margin: 1em 0 1em 2em !important;
3676 margin: 1em 0 1em 2em !important;
3649 }
3677 }
3650
3678
3651 div.rst-block pre, code {
3679 div.rst-block pre, code {
3652 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3680 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3653 }
3681 }
3654
3682
3655 div.rst-block code {
3683 div.rst-block code {
3656 font-size: 12px !important;
3684 font-size: 12px !important;
3657 background-color: ghostWhite !important;
3685 background-color: ghostWhite !important;
3658 color: #444 !important;
3686 color: #444 !important;
3659 padding: 0 .2em !important;
3687 padding: 0 .2em !important;
3660 border: 1px solid #dedede !important;
3688 border: 1px solid #dedede !important;
3661 }
3689 }
3662
3690
3663 div.rst-block pre code {
3691 div.rst-block pre code {
3664 padding: 0 !important;
3692 padding: 0 !important;
3665 font-size: 12px !important;
3693 font-size: 12px !important;
3666 background-color: #eee !important;
3694 background-color: #eee !important;
3667 border: none !important;
3695 border: none !important;
3668 }
3696 }
3669
3697
3670 div.rst-block pre {
3698 div.rst-block pre {
3671 margin: 1em 0;
3699 margin: 1em 0;
3672 font-size: 12px;
3700 font-size: 12px;
3673 background-color: #eee;
3701 background-color: #eee;
3674 border: 1px solid #ddd;
3702 border: 1px solid #ddd;
3675 padding: 5px;
3703 padding: 5px;
3676 color: #444;
3704 color: #444;
3677 overflow: auto;
3705 overflow: auto;
3678 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3706 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3679 -webkit-border-radius: 3px;
3707 -webkit-border-radius: 3px;
3680 -moz-border-radius: 3px;
3708 -moz-border-radius: 3px;
3681 border-radius: 3px;
3709 border-radius: 3px;
3682 }
3710 }
3683
3711
3684
3712
3685 /** comment main **/
3713 /** comment main **/
3686 .comments {
3714 .comments {
3687 padding:10px 20px;
3715 padding:10px 20px;
3688 }
3716 }
3689
3717
3690 .comments .comment {
3718 .comments .comment {
3691 border: 1px solid #ddd;
3719 border: 1px solid #ddd;
3692 margin-top: 10px;
3720 margin-top: 10px;
3693 -webkit-border-radius: 4px;
3721 -webkit-border-radius: 4px;
3694 -moz-border-radius: 4px;
3722 -moz-border-radius: 4px;
3695 border-radius: 4px;
3723 border-radius: 4px;
3696 }
3724 }
3697
3725
3698 .comments .comment .meta {
3726 .comments .comment .meta {
3699 background: #f8f8f8;
3727 background: #f8f8f8;
3700 padding: 4px;
3728 padding: 4px;
3701 border-bottom: 1px solid #ddd;
3729 border-bottom: 1px solid #ddd;
3702 }
3730 }
3703
3731
3704 .comments .comment .meta img {
3732 .comments .comment .meta img {
3705 vertical-align: middle;
3733 vertical-align: middle;
3706 }
3734 }
3707
3735
3708 .comments .comment .meta .user {
3736 .comments .comment .meta .user {
3709 font-weight: bold;
3737 font-weight: bold;
3710 }
3738 }
3711
3739
3712 .comments .comment .meta .date {
3740 .comments .comment .meta .date {
3713 }
3741 }
3714
3742
3715 .comments .comment .text {
3743 .comments .comment .text {
3716 background-color: #FAFAFA;
3744 background-color: #FAFAFA;
3717 }
3745 }
3718 .comment .text div.rst-block p {
3746 .comment .text div.rst-block p {
3719 margin: 0.5em 0px !important;
3747 margin: 0.5em 0px !important;
3720 }
3748 }
3721
3749
3722 .comments .comments-number{
3750 .comments .comments-number{
3723 padding:0px 0px 10px 0px;
3751 padding:0px 0px 10px 0px;
3724 font-weight: bold;
3752 font-weight: bold;
3725 color: #666;
3753 color: #666;
3726 font-size: 16px;
3754 font-size: 16px;
3727 }
3755 }
3728
3756
3729 /** comment form **/
3757 /** comment form **/
3730
3758
3731 .comment-form .clearfix{
3759 .comment-form .clearfix{
3732 background: #EEE;
3760 background: #EEE;
3733 -webkit-border-radius: 4px;
3761 -webkit-border-radius: 4px;
3734 -moz-border-radius: 4px;
3762 -moz-border-radius: 4px;
3735 border-radius: 4px;
3763 border-radius: 4px;
3736 padding: 10px;
3764 padding: 10px;
3737 }
3765 }
3738
3766
3739 div.comment-form {
3767 div.comment-form {
3740 margin-top: 20px;
3768 margin-top: 20px;
3741 }
3769 }
3742
3770
3743 .comment-form strong {
3771 .comment-form strong {
3744 display: block;
3772 display: block;
3745 margin-bottom: 15px;
3773 margin-bottom: 15px;
3746 }
3774 }
3747
3775
3748 .comment-form textarea {
3776 .comment-form textarea {
3749 width: 100%;
3777 width: 100%;
3750 height: 100px;
3778 height: 100px;
3751 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3779 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3752 }
3780 }
3753
3781
3754 form.comment-form {
3782 form.comment-form {
3755 margin-top: 10px;
3783 margin-top: 10px;
3756 margin-left: 10px;
3784 margin-left: 10px;
3757 }
3785 }
3758
3786
3759 .comment-form-submit {
3787 .comment-form-submit {
3760 margin-top: 5px;
3788 margin-top: 5px;
3761 margin-left: 525px;
3789 margin-left: 525px;
3762 }
3790 }
3763
3791
3764 .file-comments {
3792 .file-comments {
3765 display: none;
3793 display: none;
3766 }
3794 }
3767
3795
3768 .comment-form .comment {
3796 .comment-form .comment {
3769 margin-left: 10px;
3797 margin-left: 10px;
3770 }
3798 }
3771
3799
3772 .comment-form .comment-help{
3800 .comment-form .comment-help{
3773 padding: 0px 0px 5px 0px;
3801 padding: 0px 0px 5px 0px;
3774 color: #666;
3802 color: #666;
3775 }
3803 }
3776
3804
3777 .comment-form .comment-button{
3805 .comment-form .comment-button{
3778 padding-top:5px;
3806 padding-top:5px;
3779 }
3807 }
3780
3808
3781 .add-another-button {
3809 .add-another-button {
3782 margin-left: 10px;
3810 margin-left: 10px;
3783 margin-top: 10px;
3811 margin-top: 10px;
3784 margin-bottom: 10px;
3812 margin-bottom: 10px;
3785 }
3813 }
3786
3814
3787 .comment .buttons {
3815 .comment .buttons {
3788 float: right;
3816 float: right;
3789 }
3817 }
3790
3818
3791
3819
3792 .show-inline-comments{
3820 .show-inline-comments{
3793 position: relative;
3821 position: relative;
3794 top:1px
3822 top:1px
3795 }
3823 }
3796
3824
3797 /** comment inline form **/
3825 /** comment inline form **/
3798
3826
3799 .comment-inline-form .clearfix{
3827 .comment-inline-form .clearfix{
3800 background: #EEE;
3828 background: #EEE;
3801 -webkit-border-radius: 4px;
3829 -webkit-border-radius: 4px;
3802 -moz-border-radius: 4px;
3830 -moz-border-radius: 4px;
3803 border-radius: 4px;
3831 border-radius: 4px;
3804 padding: 5px;
3832 padding: 5px;
3805 }
3833 }
3806
3834
3807 div.comment-inline-form {
3835 div.comment-inline-form {
3808 margin-top: 5px;
3836 margin-top: 5px;
3809 padding:2px 6px 8px 6px;
3837 padding:2px 6px 8px 6px;
3810 }
3838 }
3811
3839
3812 .comment-inline-form strong {
3840 .comment-inline-form strong {
3813 display: block;
3841 display: block;
3814 margin-bottom: 15px;
3842 margin-bottom: 15px;
3815 }
3843 }
3816
3844
3817 .comment-inline-form textarea {
3845 .comment-inline-form textarea {
3818 width: 100%;
3846 width: 100%;
3819 height: 100px;
3847 height: 100px;
3820 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3848 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3821 }
3849 }
3822
3850
3823 form.comment-inline-form {
3851 form.comment-inline-form {
3824 margin-top: 10px;
3852 margin-top: 10px;
3825 margin-left: 10px;
3853 margin-left: 10px;
3826 }
3854 }
3827
3855
3828 .comment-inline-form-submit {
3856 .comment-inline-form-submit {
3829 margin-top: 5px;
3857 margin-top: 5px;
3830 margin-left: 525px;
3858 margin-left: 525px;
3831 }
3859 }
3832
3860
3833 .file-comments {
3861 .file-comments {
3834 display: none;
3862 display: none;
3835 }
3863 }
3836
3864
3837 .comment-inline-form .comment {
3865 .comment-inline-form .comment {
3838 margin-left: 10px;
3866 margin-left: 10px;
3839 }
3867 }
3840
3868
3841 .comment-inline-form .comment-help{
3869 .comment-inline-form .comment-help{
3842 padding: 0px 0px 2px 0px;
3870 padding: 0px 0px 2px 0px;
3843 color: #666666;
3871 color: #666666;
3844 font-size: 10px;
3872 font-size: 10px;
3845 }
3873 }
3846
3874
3847 .comment-inline-form .comment-button{
3875 .comment-inline-form .comment-button{
3848 padding-top:5px;
3876 padding-top:5px;
3849 }
3877 }
3850
3878
3851 /** comment inline **/
3879 /** comment inline **/
3852 .inline-comments {
3880 .inline-comments {
3853 padding:10px 20px;
3881 padding:10px 20px;
3854 }
3882 }
3855
3883
3856 .inline-comments div.rst-block {
3884 .inline-comments div.rst-block {
3857 clear:both;
3885 clear:both;
3858 overflow:hidden;
3886 overflow:hidden;
3859 margin:0;
3887 margin:0;
3860 padding:0 20px 0px;
3888 padding:0 20px 0px;
3861 }
3889 }
3862 .inline-comments .comment {
3890 .inline-comments .comment {
3863 border: 1px solid #ddd;
3891 border: 1px solid #ddd;
3864 -webkit-border-radius: 4px;
3892 -webkit-border-radius: 4px;
3865 -moz-border-radius: 4px;
3893 -moz-border-radius: 4px;
3866 border-radius: 4px;
3894 border-radius: 4px;
3867 margin: 3px 3px 5px 5px;
3895 margin: 3px 3px 5px 5px;
3868 background-color: #FAFAFA;
3896 background-color: #FAFAFA;
3869 }
3897 }
3870 .inline-comments .comment-wrapp{
3898 .inline-comments .comment-wrapp{
3871 padding:1px;
3899 padding:1px;
3872 }
3900 }
3873 .inline-comments .comment .meta {
3901 .inline-comments .comment .meta {
3874 background: #f8f8f8;
3902 background: #f8f8f8;
3875 padding: 4px;
3903 padding: 4px;
3876 border-bottom: 1px solid #ddd;
3904 border-bottom: 1px solid #ddd;
3877 }
3905 }
3878
3906
3879 .inline-comments .comment .meta img {
3907 .inline-comments .comment .meta img {
3880 vertical-align: middle;
3908 vertical-align: middle;
3881 }
3909 }
3882
3910
3883 .inline-comments .comment .meta .user {
3911 .inline-comments .comment .meta .user {
3884 font-weight: bold;
3912 font-weight: bold;
3885 }
3913 }
3886
3914
3887 .inline-comments .comment .meta .date {
3915 .inline-comments .comment .meta .date {
3888 }
3916 }
3889
3917
3890 .inline-comments .comment .text {
3918 .inline-comments .comment .text {
3891 background-color: #FAFAFA;
3919 background-color: #FAFAFA;
3892 }
3920 }
3893
3921
3894 .inline-comments .comments-number{
3922 .inline-comments .comments-number{
3895 padding:0px 0px 10px 0px;
3923 padding:0px 0px 10px 0px;
3896 font-weight: bold;
3924 font-weight: bold;
3897 color: #666;
3925 color: #666;
3898 font-size: 16px;
3926 font-size: 16px;
3899 }
3927 }
3900 .inline-comments-button .add-comment{
3928 .inline-comments-button .add-comment{
3901 margin:10px 5px !important;
3929 margin:10px 5px !important;
3902 }
3930 }
3903 .notifications{
3931 .notifications{
3904 width:22px;
3932 width:22px;
3905 padding:2px;
3933 padding:2px;
3906 float:right;
3934 float:right;
3907 -webkit-border-radius: 4px;
3935 -webkit-border-radius: 4px;
3908 -moz-border-radius: 4px;
3936 -moz-border-radius: 4px;
3909 border-radius: 4px;
3937 border-radius: 4px;
3910 text-align: center;
3938 text-align: center;
3911 margin: 0px -10px 0px 5px;
3939 margin: 0px -10px 0px 5px;
3912 background-color: #DEDEDE;
3940 background-color: #DEDEDE;
3913 }
3941 }
3914 .notifications a{
3942 .notifications a{
3915 color:#888 !important;
3943 color:#888 !important;
3916 display: block;
3944 display: block;
3917 font-size: 10px
3945 font-size: 10px
3918 }
3946 }
3919 .notifications a:hover{
3947 .notifications a:hover{
3920 text-decoration: none !important;
3948 text-decoration: none !important;
3921 }
3949 }
3922 .notification-header{
3950 .notification-header{
3923 padding-top:6px;
3951 padding-top:6px;
3924 }
3952 }
3925 .notification-header .desc{
3953 .notification-header .desc{
3926 font-size: 16px;
3954 font-size: 16px;
3927 height: 24px;
3955 height: 24px;
3928 float: left
3956 float: left
3929 }
3957 }
3930 .notification-list .container.unread{
3958 .notification-list .container.unread{
3931
3959
3932 }
3960 }
3933 .notification-header .gravatar{
3961 .notification-header .gravatar{
3934
3962
3935 }
3963 }
3936 .notification-header .desc.unread{
3964 .notification-header .desc.unread{
3937 font-weight: bold;
3965 font-weight: bold;
3938 font-size: 17px;
3966 font-size: 17px;
3939 }
3967 }
3940
3968
3941 .notification-header .delete-notifications{
3969 .notification-header .delete-notifications{
3942 float: right;
3970 float: right;
3943 padding-top: 8px;
3971 padding-top: 8px;
3944 cursor: pointer;
3972 cursor: pointer;
3945 }
3973 }
3946 .notification-subject{
3974 .notification-subject{
3947 clear:both;
3975 clear:both;
3948 border-bottom: 1px solid #eee;
3976 border-bottom: 1px solid #eee;
3949 padding:5px 0px 5px 38px;
3977 padding:5px 0px 5px 38px;
3950 }
3978 }
3951
3979
3952
3980
3953 /*****************************************************************************
3981 /*****************************************************************************
3954 DIFFS CSS
3982 DIFFS CSS
3955 ******************************************************************************/
3983 ******************************************************************************/
3956
3984
3957 div.diffblock {
3985 div.diffblock {
3958 overflow: auto;
3986 overflow: auto;
3959 padding: 0px;
3987 padding: 0px;
3960 border: 1px solid #ccc;
3988 border: 1px solid #ccc;
3961 background: #f8f8f8;
3989 background: #f8f8f8;
3962 font-size: 100%;
3990 font-size: 100%;
3963 line-height: 100%;
3991 line-height: 100%;
3964 /* new */
3992 /* new */
3965 line-height: 125%;
3993 line-height: 125%;
3966 -webkit-border-radius: 6px 6px 0px 0px;
3994 -webkit-border-radius: 6px 6px 0px 0px;
3967 -moz-border-radius: 6px 6px 0px 0px;
3995 -moz-border-radius: 6px 6px 0px 0px;
3968 border-radius: 6px 6px 0px 0px;
3996 border-radius: 6px 6px 0px 0px;
3969 }
3997 }
3970 div.diffblock.margined{
3998 div.diffblock.margined{
3971 margin: 0px 20px 0px 20px;
3999 margin: 0px 20px 0px 20px;
3972 }
4000 }
3973 div.diffblock .code-header{
4001 div.diffblock .code-header{
3974 border-bottom: 1px solid #CCCCCC;
4002 border-bottom: 1px solid #CCCCCC;
3975 background: #EEEEEE;
4003 background: #EEEEEE;
3976 padding:10px 0 10px 0;
4004 padding:10px 0 10px 0;
3977 height: 14px;
4005 height: 14px;
3978 }
4006 }
3979 div.diffblock .code-header.cv{
4007 div.diffblock .code-header.cv{
3980 height: 34px;
4008 height: 34px;
3981 }
4009 }
3982 div.diffblock .code-header-title{
4010 div.diffblock .code-header-title{
3983 padding: 0px 0px 10px 5px !important;
4011 padding: 0px 0px 10px 5px !important;
3984 margin: 0 !important;
4012 margin: 0 !important;
3985 }
4013 }
3986
4014
3987 div.diffblock .code-header .date{
4015 div.diffblock .code-header .date{
3988 float:left;
4016 float:left;
3989 text-transform: uppercase;
4017 text-transform: uppercase;
4018 padding: 2px 0px 0px 2px;
3990 }
4019 }
3991 div.diffblock .code-header div{
4020 div.diffblock .code-header div{
3992 margin-left:4px;
4021 margin-left:4px;
3993 font-weight: bold;
4022 font-weight: bold;
3994 font-size: 14px;
4023 font-size: 14px;
3995 }
4024 }
3996 div.diffblock .code-body{
4025 div.diffblock .code-body{
3997 background: #FFFFFF;
4026 background: #FFFFFF;
3998 }
4027 }
3999 div.diffblock pre.raw{
4028 div.diffblock pre.raw{
4000 background: #FFFFFF;
4029 background: #FFFFFF;
4001 color:#000000;
4030 color:#000000;
4002 }
4031 }
4003 table.code-difftable{
4032 table.code-difftable{
4004 border-collapse: collapse;
4033 border-collapse: collapse;
4005 width: 99%;
4034 width: 99%;
4006 }
4035 }
4007 table.code-difftable td {
4036 table.code-difftable td {
4008 padding: 0 !important;
4037 padding: 0 !important;
4009 background: none !important;
4038 background: none !important;
4010 border:0 !important;
4039 border:0 !important;
4011 vertical-align: none !important;
4040 vertical-align: none !important;
4012 }
4041 }
4013 table.code-difftable .context{
4042 table.code-difftable .context{
4014 background:none repeat scroll 0 0 #DDE7EF;
4043 background:none repeat scroll 0 0 #DDE7EF;
4015 }
4044 }
4016 table.code-difftable .add{
4045 table.code-difftable .add{
4017 background:none repeat scroll 0 0 #DDFFDD;
4046 background:none repeat scroll 0 0 #DDFFDD;
4018 }
4047 }
4019 table.code-difftable .add ins{
4048 table.code-difftable .add ins{
4020 background:none repeat scroll 0 0 #AAFFAA;
4049 background:none repeat scroll 0 0 #AAFFAA;
4021 text-decoration:none;
4050 text-decoration:none;
4022 }
4051 }
4023 table.code-difftable .del{
4052 table.code-difftable .del{
4024 background:none repeat scroll 0 0 #FFDDDD;
4053 background:none repeat scroll 0 0 #FFDDDD;
4025 }
4054 }
4026 table.code-difftable .del del{
4055 table.code-difftable .del del{
4027 background:none repeat scroll 0 0 #FFAAAA;
4056 background:none repeat scroll 0 0 #FFAAAA;
4028 text-decoration:none;
4057 text-decoration:none;
4029 }
4058 }
4030
4059
4031 /** LINE NUMBERS **/
4060 /** LINE NUMBERS **/
4032 table.code-difftable .lineno{
4061 table.code-difftable .lineno{
4033
4062
4034 padding-left:2px;
4063 padding-left:2px;
4035 padding-right:2px;
4064 padding-right:2px;
4036 text-align:right;
4065 text-align:right;
4037 width:32px;
4066 width:32px;
4038 -moz-user-select:none;
4067 -moz-user-select:none;
4039 -webkit-user-select: none;
4068 -webkit-user-select: none;
4040 border-right: 1px solid #CCC !important;
4069 border-right: 1px solid #CCC !important;
4041 border-left: 0px solid #CCC !important;
4070 border-left: 0px solid #CCC !important;
4042 border-top: 0px solid #CCC !important;
4071 border-top: 0px solid #CCC !important;
4043 border-bottom: none !important;
4072 border-bottom: none !important;
4044 vertical-align: middle !important;
4073 vertical-align: middle !important;
4045
4074
4046 }
4075 }
4047 table.code-difftable .lineno.new {
4076 table.code-difftable .lineno.new {
4048 }
4077 }
4049 table.code-difftable .lineno.old {
4078 table.code-difftable .lineno.old {
4050 }
4079 }
4051 table.code-difftable .lineno a{
4080 table.code-difftable .lineno a{
4052 color:#747474 !important;
4081 color:#747474 !important;
4053 font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
4082 font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
4054 letter-spacing:-1px;
4083 letter-spacing:-1px;
4055 text-align:right;
4084 text-align:right;
4056 padding-right: 2px;
4085 padding-right: 2px;
4057 cursor: pointer;
4086 cursor: pointer;
4058 display: block;
4087 display: block;
4059 width: 32px;
4088 width: 32px;
4060 }
4089 }
4061
4090
4062 table.code-difftable .lineno-inline{
4091 table.code-difftable .lineno-inline{
4063 background:none repeat scroll 0 0 #FFF !important;
4092 background:none repeat scroll 0 0 #FFF !important;
4064 padding-left:2px;
4093 padding-left:2px;
4065 padding-right:2px;
4094 padding-right:2px;
4066 text-align:right;
4095 text-align:right;
4067 width:30px;
4096 width:30px;
4068 -moz-user-select:none;
4097 -moz-user-select:none;
4069 -webkit-user-select: none;
4098 -webkit-user-select: none;
4070 }
4099 }
4071
4100
4072 /** CODE **/
4101 /** CODE **/
4073 table.code-difftable .code {
4102 table.code-difftable .code {
4074 display: block;
4103 display: block;
4075 width: 100%;
4104 width: 100%;
4076 }
4105 }
4077 table.code-difftable .code td{
4106 table.code-difftable .code td{
4078 margin:0;
4107 margin:0;
4079 padding:0;
4108 padding:0;
4080 }
4109 }
4081 table.code-difftable .code pre{
4110 table.code-difftable .code pre{
4082 margin:0;
4111 margin:0;
4083 padding:0;
4112 padding:0;
4084 height: 17px;
4113 height: 17px;
4085 line-height: 17px;
4114 line-height: 17px;
4086 }
4115 }
4087
4116
4088
4117
4089 .diffblock.margined.comm .line .code:hover{
4118 .diffblock.margined.comm .line .code:hover{
4090 background-color:#FFFFCC !important;
4119 background-color:#FFFFCC !important;
4091 cursor: pointer !important;
4120 cursor: pointer !important;
4092 background-image:url("../images/icons/comment_add.png") !important;
4121 background-image:url("../images/icons/comment_add.png") !important;
4093 background-repeat:no-repeat !important;
4122 background-repeat:no-repeat !important;
4094 background-position: right !important;
4123 background-position: right !important;
4095 background-position: 0% 50% !important;
4124 background-position: 0% 50% !important;
4096 }
4125 }
4097 .diffblock.margined.comm .line .code.no-comment:hover{
4126 .diffblock.margined.comm .line .code.no-comment:hover{
4098 background-image: none !important;
4127 background-image: none !important;
4099 cursor: auto !important;
4128 cursor: auto !important;
4100 background-color: inherit !important;
4129 background-color: inherit !important;
4101
4130
4102 } No newline at end of file
4131 }
@@ -1,144 +1,144 b''
1 // branch_renderer.js - Rendering of branch DAGs on the client side
1 // branch_renderer.js - Rendering of branch DAGs on the client side
2 //
2 //
3 // Copyright 2010 Marcin Kuzminski <marcin AT python-works DOT com>
3 // Copyright 2010 Marcin Kuzminski <marcin AT python-works DOT com>
4 // Copyright 2008 Jesper Noehr <jesper AT noehr DOT org>
4 // Copyright 2008 Jesper Noehr <jesper AT noehr DOT org>
5 // Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
5 // Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
6 // Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
6 // Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
7 //
7 //
8 // derived from code written by Scott James Remnant <scott@ubuntu.com>
8 // derived from code written by Scott James Remnant <scott@ubuntu.com>
9 // Copyright 2005 Canonical Ltd.
9 // Copyright 2005 Canonical Ltd.
10 //
10 //
11 // This software may be used and distributed according to the terms
11 // This software may be used and distributed according to the terms
12 // of the GNU General Public License, incorporated herein by reference.
12 // of the GNU General Public License, incorporated herein by reference.
13
13
14 var colors = [
14 var colors = [
15 [ 1.0, 0.0, 0.0 ],
15 [ 1.0, 0.0, 0.0 ],
16 [ 1.0, 1.0, 0.0 ],
16 [ 1.0, 1.0, 0.0 ],
17 [ 0.0, 1.0, 0.0 ],
17 [ 0.0, 1.0, 0.0 ],
18 [ 0.0, 1.0, 1.0 ],
18 [ 0.0, 1.0, 1.0 ],
19 [ 0.0, 0.0, 1.0 ],
19 [ 0.0, 0.0, 1.0 ],
20 [ 1.0, 0.0, 1.0 ],
20 [ 1.0, 0.0, 1.0 ],
21 [ 1.0, 1.0, 0.0 ],
21 [ 1.0, 1.0, 0.0 ],
22 [ 0.0, 0.0, 0.0 ]
22 [ 0.0, 0.0, 0.0 ]
23 ];
23 ];
24
24
25 function BranchRenderer() {
25 function BranchRenderer() {
26
26
27 this.canvas = document.getElementById("graph_canvas");
27 this.canvas = document.getElementById("graph_canvas");
28
28
29 if (navigator.userAgent.indexOf('MSIE') >= 0)
29 if (navigator.userAgent.indexOf('MSIE') >= 0)
30 this.canvas = window.G_vmlCanvasManager.initElement(this.canvas);
30 this.canvas = window.G_vmlCanvasManager.initElement(this.canvas);
31 this.ctx = this.canvas.getContext('2d');
31 this.ctx = this.canvas.getContext('2d');
32 this.ctx.strokeStyle = 'rgb(0, 0, 0)';
32 this.ctx.strokeStyle = 'rgb(0, 0, 0)';
33 this.ctx.fillStyle = 'rgb(0, 0, 0)';
33 this.ctx.fillStyle = 'rgb(0, 0, 0)';
34 this.cur = [0, 0];
34 this.cur = [0, 0];
35 this.max_column = 1;
35 this.max_column = 1;
36 this.line_width = 2.5;
36 this.line_width = 2.5;
37 this.dot_radius = 5.5;
37 this.dot_radius = 5.5;
38 this.bg = [0, 4];
38 this.bg = [0, 4];
39 this.cell = [2, 0];
39 this.cell = [2, 0];
40 this.revlink = '';
40 this.revlink = '';
41
41
42 this.scale = function(height) {
42 this.scale = function(height) {
43 this.box_size = Math.floor(height/1.2);
43 this.box_size = Math.floor(height/1.2);
44 this.cell_height = this.box_size;
44 this.cell_height = this.box_size;
45 this.bg_height = height;
45 this.bg_height = height;
46 }
46 }
47
47
48 this.setColor = function(color, bg, fg) {
48 this.setColor = function(color, bg, fg) {
49 color %= colors.length;
49 color %= colors.length;
50 var red = (colors[color][0] * fg) || bg;
50 var red = (colors[color][0] * fg) || bg;
51 var green = (colors[color][1] * fg) || bg;
51 var green = (colors[color][1] * fg) || bg;
52 var blue = (colors[color][2] * fg) || bg;
52 var blue = (colors[color][2] * fg) || bg;
53 red = Math.round(red * 255);
53 red = Math.round(red * 255);
54 green = Math.round(green * 255);
54 green = Math.round(green * 255);
55 blue = Math.round(blue * 255);
55 blue = Math.round(blue * 255);
56 var s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
56 var s = 'rgb(' + red + ', ' + green + ', ' + blue + ')';
57 this.ctx.strokeStyle = s;
57 this.ctx.strokeStyle = s;
58 this.ctx.fillStyle = s;
58 this.ctx.fillStyle = s;
59 }
59 }
60
60
61 this.render = function(data,pad) {
61 this.render = function(data,pad) {
62 var idx = 1;
62 var idx = 1;
63 var rela = document.getElementById('graph');
63 var rela = document.getElementById('graph');
64 var pad = pad;
64 var pad = pad;
65 var scale = 22;
65 var scale = 22;
66
66
67 for (var i in data) {
67 for (var i in data) {
68 this.scale(scale);
68 this.scale(scale);
69
69 var row = document.getElementById("chg_"+idx);
70 var row = document.getElementById("chg_"+idx);
70 var next = document.getElementById("chg_"+idx+1);
71 var next = document.getElementById("chg_"+idx+1);
72 if(row == null){
73 continue
74 }
71 var extra = 0;
75 var extra = 0;
72
76
73 //skip this since i don't have DATE in my app
74 //if (next.is('.changesets-date')) {
75 // extra = next.outerHeight();
76 //}
77
78 this.cell[1] += row.clientWidth;
77 this.cell[1] += row.clientWidth;
79 this.bg[1] += this.bg_height;
78 this.bg[1] += this.bg_height;
80
79
81 cur = data[i];
80 cur = data[i];
82 nodeid = cur[0];
81 nodeid = cur[0];
83 node = cur[1];
82 node = cur[1];
84 in_l = cur[2];
83 in_l = cur[2];
85
84
85 var pos_ = 26;
86
86 for (var j in in_l) {
87 for (var j in in_l) {
87
88
88 line = in_l[j];
89 line = in_l[j];
89 start = line[0];
90 start = line[0];
90 end = line[1];
91 end = line[1];
91 color = line[2];
92 color = line[2];
92
93
93 if (start > this.max_column) {
94 if (start > this.max_column) {
94 this.max_column = start;
95 this.max_column = start;
95 }
96 }
96
97
97 if (end > this.max_column) {
98 if (end > this.max_column) {
98 this.max_column = end;
99 this.max_column = end;
99 }
100 }
100
101
101 this.setColor(color, 0.0, 0.65);
102 this.setColor(color, 0.0, 0.65);
102
103 y = row.offsetTop-rela.offsetTop+pos_;
103 y = row.offsetTop-rela.offsetTop+row.offsetHeight/2;
104 x = pad-((this.cell[0] + this.box_size * start - 1) + this.bg_height-2);
104 x = pad-((this.cell[0] + this.box_size * start - 1) + this.bg_height-2);
105
105
106 this.ctx.lineWidth=this.line_width;
106 this.ctx.lineWidth=this.line_width;
107 this.ctx.beginPath();
107 this.ctx.beginPath();
108 this.ctx.moveTo(x, y);
108 this.ctx.moveTo(x, y);
109
109
110
110
111 if (start == end)
111 if (start == end)
112 {
112 {
113 x = pad-((1 + this.box_size * end) + this.bg_height-2);
113 x = pad-((1 + this.box_size * end) + this.bg_height-2);
114 y += row.offsetHeight;
114 y += row.offsetHeight;
115 this.ctx.lineTo(x,y+extra,3);
115 this.ctx.lineTo(x,y+extra,3);
116 }
116 }
117 else
117 else
118 {
118 {
119 var x2 = pad-((1 + this.box_size * end) + this.bg_height-2);
119 var x2 = pad-((1 + this.box_size * end) + this.bg_height-2);
120 var y2 = y + row.offsetHeight;
120 var y2 = y + row.offsetHeight;
121 var ymid = (y+y2) / 2;
121 var ymid = (y+y2) / 2;
122 this.ctx.bezierCurveTo (x,ymid,x2,ymid,x2,y2);
122 this.ctx.bezierCurveTo(x,ymid,x2,ymid,x2,y2);
123 }
123 }
124 this.ctx.stroke();
124 this.ctx.stroke();
125 }
125 }
126
126
127 column = node[0]
127 column = node[0]
128 color = node[1]
128 color = node[1]
129
129
130 radius = this.dot_radius;
130 radius = this.dot_radius;
131 y = row.offsetTop-rela.offsetTop+row.offsetHeight/2;
131 y = row.offsetTop-rela.offsetTop+pos_;
132 x = pad-(Math.round(this.cell[0] * scale/2 * column + radius) + 15 - (column*4));
132 x = pad-(Math.round(this.cell[0] * scale/2 * column + radius) + 15 - (column*4));
133
133
134 this.ctx.beginPath();
134 this.ctx.beginPath();
135 this.setColor(color, 0.25, 0.75);
135 this.setColor(color, 0.25, 0.75);
136 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
136 this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
137 this.ctx.fill();
137 this.ctx.fill();
138
138
139 idx++;
139 idx++;
140 }
140 }
141
141
142 }
142 }
143
143
144 }
144 }
@@ -1,191 +1,221 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} ${_('Changelog')} - ${c.rhodecode_name}
6 ${c.repo_name} ${_('Changelog')} - ${c.rhodecode_name}
7 </%def>
7 </%def>
8
8
9 <%def name="breadcrumbs_links()">
9 <%def name="breadcrumbs_links()">
10 ${h.link_to(u'Home',h.url('/'))}
10 ${h.link_to(u'Home',h.url('/'))}
11 &raquo;
11 &raquo;
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
12 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
13 &raquo;
13 &raquo;
14 ${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
14 ${_('Changelog')} - ${_('showing ')} ${c.size if c.size <= c.total_cs else c.total_cs} ${_('out of')} ${c.total_cs} ${_('revisions')}
15 </%def>
15 </%def>
16
16
17 <%def name="page_nav()">
17 <%def name="page_nav()">
18 ${self.menu('changelog')}
18 ${self.menu('changelog')}
19 </%def>
19 </%def>
20
20
21 <%def name="main()">
21 <%def name="main()">
22 <div class="box">
22 <div class="box">
23 <!-- box / title -->
23 <!-- box / title -->
24 <div class="title">
24 <div class="title">
25 ${self.breadcrumbs()}
25 ${self.breadcrumbs()}
26 </div>
26 </div>
27 <div class="table">
27 <div class="table">
28 % if c.pagination:
28 % if c.pagination:
29 <div id="graph">
29 <div id="graph">
30 <div id="graph_nodes">
30 <div id="graph_nodes">
31 <canvas id="graph_canvas"></canvas>
31 <canvas id="graph_canvas"></canvas>
32 </div>
32 </div>
33 <div id="graph_content">
33 <div id="graph_content">
34 <div class="container_header">
34 <div class="container_header">
35 ${h.form(h.url.current(),method='get')}
35 ${h.form(h.url.current(),method='get')}
36 <div class="info_box" style="float:left">
36 <div class="info_box" style="float:left">
37 ${h.submit('set',_('Show'),class_="ui-btn")}
37 ${h.submit('set',_('Show'),class_="ui-btn")}
38 ${h.text('size',size=1,value=c.size)}
38 ${h.text('size',size=1,value=c.size)}
39 ${_('revisions')}
39 ${_('revisions')}
40 </div>
40 </div>
41 ${h.end_form()}
41 ${h.end_form()}
42 <div id="rev_range_container" style="display:none"></div>
42 <div id="rev_range_container" style="display:none"></div>
43 <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
43 <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
44 </div>
44 </div>
45
45
46 %for cnt,cs in enumerate(c.pagination):
46 %for cnt,cs in enumerate(c.pagination):
47 <div id="chg_${cnt+1}" class="container ${'tablerow1' if cnt%2==0 else 'tablerow2'}">
47 <div id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
48 <div class="left">
48 <div class="left">
49 <div>
49 <div>
50 ${h.checkbox(cs.short_id,class_="changeset_range")}
50 ${h.checkbox(cs.short_id,class_="changeset_range")}
51 <span class="tooltip" title="${cs.date}"><a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}"><span class="changeset_id">${cs.revision}:<span class="changeset_hash">${h.short_id(cs.raw_id)}</span></span></a></span>
51 <span class="tooltip" title="${h.age(cs.date)}"><a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}"><span class="changeset_id">${cs.revision}:<span class="changeset_hash">${h.short_id(cs.raw_id)}</span></span></a></span>
52 </div>
52 </div>
53 <div class="author">
53 <div class="author">
54 <div class="gravatar">
54 <div class="gravatar">
55 <img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),16)}"/>
55 <img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),16)}"/>
56 </div>
56 </div>
57 <div title="${cs.author}" class="user">${h.person(cs.author)}</div>
57 <div title="${cs.author}" class="user">${h.person(cs.author)}</div>
58 </div>
58 </div>
59 <div class="date">${cs.date}</div>
59 </div>
60 </div>
60 <div class="mid">
61 <div class="mid">
61 <div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
62 <div class="message">${h.urlify_commit(h.wrap_paragraphs(cs.message))}</div>
63 <div class="expand ${'tablerow%s' % (cnt%2)}">&darr; ${_('show more')} &darr;</div>
62 </div>
64 </div>
63 <div class="right">
65 <div class="right">
64 <div id="${cs.raw_id}_changes_info" class="changes">
66 <div id="${cs.raw_id}_changes_info" class="changes">
65 <span id="${cs.raw_id}" class="changed_total tooltip" title="${_('Affected number of files, click to show more details')}">${len(cs.affected_files)}</span>
67 <span id="${cs.raw_id}" class="changed_total tooltip" title="${_('Affected number of files, click to show more details')}">${len(cs.affected_files)}</span>
66 </div>
68 </div>
67 %if cs.parents:
69 %if cs.parents:
68 %for p_cs in reversed(cs.parents):
70 %for p_cs in reversed(cs.parents):
69 <div class="parent">${_('Parent')}
71 <div class="parent">${_('Parent')}
70 <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
72 <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
71 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
73 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
72 </div>
74 </div>
73 %endfor
75 %endfor
74 %else:
76 %else:
75 <div class="parent">${_('No parents')}</div>
77 <div class="parent">${_('No parents')}</div>
76 %endif
78 %endif
77
79
78 <span class="logtags">
80 <span class="logtags">
79 %if len(cs.parents)>1:
81 %if len(cs.parents)>1:
80 <span class="merge">${_('merge')}</span>
82 <span class="merge">${_('merge')}</span>
81 %endif
83 %endif
82 %if cs.branch:
84 %if cs.branch:
83 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
85 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
84 ${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
86 ${h.link_to(cs.branch,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
85 %endif
87 %endif
86 %for tag in cs.tags:
88 %for tag in cs.tags:
87 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
89 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
88 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
90 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
89 %endfor
91 %endfor
90 </span>
92 </span>
91 </div>
93 </div>
92 </div>
94 </div>
93
95
94 %endfor
96 %endfor
95 <div class="pagination-wh pagination-left">
97 <div class="pagination-wh pagination-left">
96 ${c.pagination.pager('$link_previous ~2~ $link_next')}
98 ${c.pagination.pager('$link_previous ~2~ $link_next')}
97 </div>
99 </div>
98 </div>
100 </div>
99 </div>
101 </div>
100
102
101 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
103 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
102 <script type="text/javascript">
104 <script type="text/javascript">
103 YAHOO.util.Event.onDOMReady(function(){
105 YAHOO.util.Event.onDOMReady(function(){
104
106
105 //Monitor range checkboxes and build a link to changesets
107 //Monitor range checkboxes and build a link to changesets
106 //ranges
108 //ranges
107 var checkboxes = YUD.getElementsByClassName('changeset_range');
109 var checkboxes = YUD.getElementsByClassName('changeset_range');
108 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
110 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
109 YUE.on(checkboxes,'click',function(e){
111 YUE.on(checkboxes,'click',function(e){
110 var checked_checkboxes = [];
112 var checked_checkboxes = [];
111 for (pos in checkboxes){
113 for (pos in checkboxes){
112 if(checkboxes[pos].checked){
114 if(checkboxes[pos].checked){
113 checked_checkboxes.push(checkboxes[pos]);
115 checked_checkboxes.push(checkboxes[pos]);
114 }
116 }
115 }
117 }
116 if(checked_checkboxes.length>1){
118 if(checked_checkboxes.length>1){
117 var rev_end = checked_checkboxes[0].name;
119 var rev_end = checked_checkboxes[0].name;
118 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
120 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
119
121
120 var url = url_tmpl.replace('__REVRANGE__',
122 var url = url_tmpl.replace('__REVRANGE__',
121 rev_start+'...'+rev_end);
123 rev_start+'...'+rev_end);
122
124
123 var link = "<a href="+url+">${_('Show selected changes __S -> __E')}</a>"
125 var link = "<a href="+url+">${_('Show selected changes __S -> __E')}</a>"
124 link = link.replace('__S',rev_start);
126 link = link.replace('__S',rev_start);
125 link = link.replace('__E',rev_end);
127 link = link.replace('__E',rev_end);
126 YUD.get('rev_range_container').innerHTML = link;
128 YUD.get('rev_range_container').innerHTML = link;
127 YUD.setStyle('rev_range_container','display','');
129 YUD.setStyle('rev_range_container','display','');
128 }
130 }
129 else{
131 else{
130 YUD.setStyle('rev_range_container','display','none');
132 YUD.setStyle('rev_range_container','display','none');
131
133
132 }
134 }
133 });
135 });
134
136
137 var msgs = YUQ('.message');
138 // get firts element height;
139 var el = YUQ('.container')[0];
140 var row_h = el.clientHeight;
141 for(var i=0;i<msgs.length;i++){
142 var m = msgs[i];
143
144 var h = m.clientHeight;
145 var pad = YUD.getStyle(m,'padding');
146 if(h > row_h){
147 YUD.setStyle(m.nextElementSibling,'display','block');
148 YUD.setStyle(m.nextElementSibling,'margin-top',row_h-(h+14)+'px');
149 YUD.setAttribute(m.nextElementSibling,'expand',h);
150 };
151 }
152 YUE.on(YUQ('.expand'),'click',function(e){
153 var elem = e.currentTarget.parentElement.parentElement;
154 YUD.setStyle(e.currentTarget,'display','none');
155 YUD.setStyle(elem,'height',YUD.getAttribute(e.currentTarget,'expand')+'px');
156
157 //redraw the graph max_w and jsdata are global vars
158 set_canvas(max_w);
159
160 var r = new BranchRenderer();
161 r.render(jsdata,max_w);
162
163 })
164
135 // Fetch changeset details
165 // Fetch changeset details
136 YUE.on(YUD.getElementsByClassName('changed_total'),'click',function(e){
166 YUE.on(YUD.getElementsByClassName('changed_total'),'click',function(e){
137 var id = e.currentTarget.id
167 var id = e.currentTarget.id
138 var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}"
168 var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}"
139 var url = url.replace('__CS__',id);
169 var url = url.replace('__CS__',id);
140 ypjax(url,id+'_changes_info',function(){tooltip_activate()});
170 ypjax(url,id+'_changes_info',function(){tooltip_activate()});
141 });
171 });
142
172
143 // change branch filter
173 // change branch filter
144 YUE.on(YUD.get('branch_filter'),'change',function(e){
174 YUE.on(YUD.get('branch_filter'),'change',function(e){
145 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
175 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
146 console.log(selected_branch);
176 console.log(selected_branch);
147 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
177 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
148 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
178 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
149 var url = url.replace('__BRANCH__',selected_branch);
179 var url = url.replace('__BRANCH__',selected_branch);
150 if(selected_branch != ''){
180 if(selected_branch != ''){
151 window.location = url;
181 window.location = url;
152 }else{
182 }else{
153 window.location = url_main;
183 window.location = url_main;
154 }
184 }
155
185
156 });
186 });
157
187
158 function set_canvas(heads) {
188 function set_canvas(heads) {
159 var c = document.getElementById('graph_nodes');
189 var c = document.getElementById('graph_nodes');
160 var t = document.getElementById('graph_content');
190 var t = document.getElementById('graph_content');
161 canvas = document.getElementById('graph_canvas');
191 canvas = document.getElementById('graph_canvas');
162 var div_h = t.clientHeight;
192 var div_h = t.clientHeight;
163 c.style.height=div_h+'px';
193 c.style.height=div_h+'px';
164 canvas.setAttribute('height',div_h);
194 canvas.setAttribute('height',div_h);
165 c.style.height=max_w+'px';
195 c.style.height=max_w+'px';
166 canvas.setAttribute('width',max_w);
196 canvas.setAttribute('width',max_w);
167 };
197 };
168 var heads = 1;
198 var heads = 1;
169 var max_heads = 0;
199 var max_heads = 0;
170 var jsdata = ${c.jsdata|n};
200 var jsdata = ${c.jsdata|n};
171
201
172 for( var i=0;i<jsdata.length;i++){
202 for( var i=0;i<jsdata.length;i++){
173 var m = Math.max.apply(Math, jsdata[i][1]);
203 var m = Math.max.apply(Math, jsdata[i][1]);
174 if (m>max_heads){
204 if (m>max_heads){
175 max_heads = m;
205 max_heads = m;
176 }
206 }
177 }
207 }
178 var max_w = Math.max(100,max_heads*25);
208 var max_w = Math.max(100,max_heads*25);
179 set_canvas(max_w);
209 set_canvas(max_w);
180
210
181 var r = new BranchRenderer();
211 var r = new BranchRenderer();
182 r.render(jsdata,max_w);
212 r.render(jsdata,max_w);
183
213
184 });
214 });
185 </script>
215 </script>
186 %else:
216 %else:
187 ${_('There are no changes yet')}
217 ${_('There are no changes yet')}
188 %endif
218 %endif
189 </div>
219 </div>
190 </div>
220 </div>
191 </%def> No newline at end of file
221 </%def>
@@ -1,193 +1,193 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="main()">
21 <%def name="main()">
22 <div class="box">
22 <div class="box">
23 <!-- box / title -->
23 <!-- box / title -->
24 <div class="title">
24 <div class="title">
25 ${self.breadcrumbs()}
25 ${self.breadcrumbs()}
26 </div>
26 </div>
27 <div class="table">
27 <div class="table">
28 <div class="diffblock">
28 <div class="diffblock">
29 <div class="code-header">
29 <div class="code-header">
30 <div class="date">${c.changeset.revision}:
30 <div class="date">
31 ${h.link_to(h.short_id(c.changeset.raw_id),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}
31 R${c.changeset.revision}:${h.link_to(h.short_id(c.changeset.raw_id),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}
32 ${c.changeset.date}</div>
32 ${c.changeset.date}</div>
33 <span class="diff-actions">
33 <div class="diff-actions">
34 <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show')}" title="${_('raw diff')}"><img class="icon" src="${h.url('/images/icons/page_white_text.png')}"/></a>
34 <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show')}" title="${_('raw diff')}"><img class="icon" src="${h.url('/images/icons/page_white.png')}"/></a>
35 <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download')}" title="${_('download diff')}"><img class="icon" src="${h.url('/images/icons/down_16.png')}"/></a>
35 <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download')}" title="${_('download diff')}"><img class="icon" src="${h.url('/images/icons/page_white_get.png')}"/></a>
36 ${c.ignorews_url()}
36 ${c.ignorews_url()}
37 ${c.context_url()}
37 ${c.context_url()}
38 </span>
38 </div>
39 <div class="comments-number" style="float:right;padding-right:5px">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
39 <div class="comments-number" style="float:right;padding-right:5px">${len(c.comments)} comment(s) (${c.inline_cnt} ${_('inline')})</div>
40 </div>
40 </div>
41 </div>
41 </div>
42 <div id="changeset_content">
42 <div id="changeset_content">
43 <div class="container">
43 <div class="container">
44 <div class="left">
44 <div class="left">
45 <div class="author">
45 <div class="author">
46 <div class="gravatar">
46 <div class="gravatar">
47 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
47 <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
48 </div>
48 </div>
49 <span>${h.person(c.changeset.author)}</span><br/>
49 <span>${h.person(c.changeset.author)}</span><br/>
50 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
50 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
51 </div>
51 </div>
52 <div class="message">${h.urlify_commit(h.wrap_paragraphs(c.changeset.message))}</div>
52 <div class="message">${h.urlify_commit(h.wrap_paragraphs(c.changeset.message))}</div>
53 </div>
53 </div>
54 <div class="right">
54 <div class="right">
55 <div class="changes">
55 <div class="changes">
56 % if len(c.changeset.affected_files) <= c.affected_files_cut_off:
56 % if len(c.changeset.affected_files) <= c.affected_files_cut_off:
57 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
57 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
58 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
58 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
59 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
59 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
60 % else:
60 % else:
61 <span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
61 <span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
62 <span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
62 <span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
63 <span class="added" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
63 <span class="added" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
64 % endif
64 % endif
65 </div>
65 </div>
66
66
67 %if c.changeset.parents:
67 %if c.changeset.parents:
68 %for p_cs in reversed(c.changeset.parents):
68 %for p_cs in reversed(c.changeset.parents):
69 <div class="parent">${_('Parent')}
69 <div class="parent">${_('Parent')}
70 <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
70 <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
71 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
71 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
72 </div>
72 </div>
73 %endfor
73 %endfor
74 %else:
74 %else:
75 <div class="parent">${_('No parents')}</div>
75 <div class="parent">${_('No parents')}</div>
76 %endif
76 %endif
77 <span class="logtags">
77 <span class="logtags">
78 %if len(c.changeset.parents)>1:
78 %if len(c.changeset.parents)>1:
79 <span class="merge">${_('merge')}</span>
79 <span class="merge">${_('merge')}</span>
80 %endif
80 %endif
81 <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
81 <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
82 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
82 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
83 %for tag in c.changeset.tags:
83 %for tag in c.changeset.tags:
84 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
84 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
85 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
85 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
86 %endfor
86 %endfor
87 </span>
87 </span>
88 </div>
88 </div>
89 </div>
89 </div>
90 <span>
90 <span>
91 ${_('%s files affected with %s additions and %s deletions:') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
91 ${_('%s files affected with %s additions and %s deletions:') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}
92 </span>
92 </span>
93 <div class="cs_files">
93 <div class="cs_files">
94 %for change,filenode,diff,cs1,cs2,stat in c.changes:
94 %for change,filenode,diff,cs1,cs2,stat in c.changes:
95 <div class="cs_${change}">
95 <div class="cs_${change}">
96 <div class="node">
96 <div class="node">
97 %if change != 'removed':
97 %if change != 'removed':
98 ${h.link_to(h.safe_unicode(filenode.path),c.anchor_url(filenode.changeset.raw_id,filenode.path)+"_target")}
98 ${h.link_to(h.safe_unicode(filenode.path),c.anchor_url(filenode.changeset.raw_id,filenode.path)+"_target")}
99 %else:
99 %else:
100 ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=h.FID('',filenode.path)))}
100 ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=h.FID('',filenode.path)))}
101 %endif
101 %endif
102 </div>
102 </div>
103 <div class="changes">${h.fancy_file_stats(stat)}</div>
103 <div class="changes">${h.fancy_file_stats(stat)}</div>
104 </div>
104 </div>
105 %endfor
105 %endfor
106 % if c.cut_off:
106 % if c.cut_off:
107 ${_('Changeset was too big and was cut off...')}
107 ${_('Changeset was too big and was cut off...')}
108 % endif
108 % endif
109 </div>
109 </div>
110 </div>
110 </div>
111
111
112 </div>
112 </div>
113
113
114 ## diff block
114 ## diff block
115 <%namespace name="diff_block" file="/changeset/diff_block.html"/>
115 <%namespace name="diff_block" file="/changeset/diff_block.html"/>
116 ${diff_block.diff_block(c.changes)}
116 ${diff_block.diff_block(c.changes)}
117
117
118 ## template for inline comment form
118 ## template for inline comment form
119 <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
119 <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
120 ${comment.comment_inline_form(c.changeset)}
120 ${comment.comment_inline_form(c.changeset)}
121
121
122 ${comment.comments(c.changeset)}
122 ${comment.comments(c.changeset)}
123
123
124 <script type="text/javascript">
124 <script type="text/javascript">
125 var deleteComment = function(comment_id){
125 var deleteComment = function(comment_id){
126
126
127 var url = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}".replace('__COMMENT_ID__',comment_id);
127 var url = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}".replace('__COMMENT_ID__',comment_id);
128 var postData = '_method=delete';
128 var postData = '_method=delete';
129 var success = function(o){
129 var success = function(o){
130 var n = YUD.get('comment-'+comment_id);
130 var n = YUD.get('comment-'+comment_id);
131 n.parentNode.removeChild(n);
131 n.parentNode.removeChild(n);
132 }
132 }
133 ajaxPOST(url,postData,success);
133 ajaxPOST(url,postData,success);
134 }
134 }
135
135
136 YUE.onDOMReady(function(){
136 YUE.onDOMReady(function(){
137
137
138 YUE.on(YUQ('.show-inline-comments'),'change',function(e){
138 YUE.on(YUQ('.show-inline-comments'),'change',function(e){
139 var show = 'none';
139 var show = 'none';
140 var target = e.currentTarget;
140 var target = e.currentTarget;
141 console.log(target);
141 console.log(target);
142 if(target.checked){
142 if(target.checked){
143 var show = ''
143 var show = ''
144 }
144 }
145 console.log('aa')
145 console.log('aa')
146 var boxid = YUD.getAttribute(target,'id_for');
146 var boxid = YUD.getAttribute(target,'id_for');
147 console.log(boxid);
147 console.log(boxid);
148 var comments = YUQ('#{0} .inline-comments'.format(boxid));
148 var comments = YUQ('#{0} .inline-comments'.format(boxid));
149 console.log(comments)
149 console.log(comments)
150 for(c in comments){
150 for(c in comments){
151 YUD.setStyle(comments[c],'display',show);
151 YUD.setStyle(comments[c],'display',show);
152 }
152 }
153 var btns = YUQ('#{0} .inline-comments-button'.format(boxid));
153 var btns = YUQ('#{0} .inline-comments-button'.format(boxid));
154 for(c in btns){
154 for(c in btns){
155 YUD.setStyle(btns[c],'display',show);
155 YUD.setStyle(btns[c],'display',show);
156 }
156 }
157 })
157 })
158
158
159 YUE.on(YUQ('.line'),'click',function(e){
159 YUE.on(YUQ('.line'),'click',function(e){
160 var tr = e.currentTarget;
160 var tr = e.currentTarget;
161 injectInlineForm(tr);
161 injectInlineForm(tr);
162 });
162 });
163
163
164 // inject comments into they proper positions
164 // inject comments into they proper positions
165 var file_comments = YUQ('.inline-comment-placeholder');
165 var file_comments = YUQ('.inline-comment-placeholder');
166
166
167 for (f in file_comments){
167 for (f in file_comments){
168 var box = file_comments[f];
168 var box = file_comments[f];
169 var inlines = box.children;
169 var inlines = box.children;
170 for(var i=0; i<inlines.length; i++){
170 for(var i=0; i<inlines.length; i++){
171 try{
171 try{
172
172
173 var inline = inlines[i];
173 var inline = inlines[i];
174 var lineno = YUD.getAttribute(inlines[i],'line');
174 var lineno = YUD.getAttribute(inlines[i],'line');
175 var lineid = "{0}_{1}".format(YUD.getAttribute(inline,'target_id'),lineno);
175 var lineid = "{0}_{1}".format(YUD.getAttribute(inline,'target_id'),lineno);
176 var target_line = YUD.get(lineid);
176 var target_line = YUD.get(lineid);
177
177
178 var add = createInlineAddButton(target_line.parentNode,'${_("add another comment")}');
178 var add = createInlineAddButton(target_line.parentNode,'${_("add another comment")}');
179 YUD.insertAfter(add,target_line.parentNode);
179 YUD.insertAfter(add,target_line.parentNode);
180
180
181 var comment = new YAHOO.util.Element(tableTr('inline-comments',inline.innerHTML))
181 var comment = new YAHOO.util.Element(tableTr('inline-comments',inline.innerHTML))
182 YUD.insertAfter(comment,target_line.parentNode);
182 YUD.insertAfter(comment,target_line.parentNode);
183 }catch(e){
183 }catch(e){
184 console.log(e);
184 console.log(e);
185 }
185 }
186 }
186 }
187 }
187 }
188 })
188 })
189
189
190 </script>
190 </script>
191
191
192 </div>
192 </div>
193 </%def>
193 </%def>
@@ -1,41 +1,41 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 ##usage:
2 ##usage:
3 ## <%namespace name="diff_block" file="/changeset/diff_block.html"/>
3 ## <%namespace name="diff_block" file="/changeset/diff_block.html"/>
4 ## ${diff_block.diff_block(changes)}
4 ## ${diff_block.diff_block(changes)}
5 ##
5 ##
6 <%def name="diff_block(changes)">
6 <%def name="diff_block(changes)">
7
7
8 %for change,filenode,diff,cs1,cs2,stat in changes:
8 %for change,filenode,diff,cs1,cs2,stat in changes:
9 %if change !='removed':
9 %if change !='removed':
10 <div id="${h.FID(filenode.changeset.raw_id,filenode.path)}_target" style="clear:both;height:90px;margin-top:-60px"></div>
10 <div id="${h.FID(filenode.changeset.raw_id,filenode.path)}_target" style="clear:both;height:90px;margin-top:-60px"></div>
11 <div id="${h.FID(filenode.changeset.raw_id,filenode.path)}" class="diffblock margined comm">
11 <div id="${h.FID(filenode.changeset.raw_id,filenode.path)}" class="diffblock margined comm">
12 <div class="code-header">
12 <div class="code-header">
13 <div class="changeset_header">
13 <div class="changeset_header">
14 <div class="changeset_file">
14 <div class="changeset_file">
15 ${h.link_to_if(change!='removed',h.safe_unicode(filenode.path),h.url('files_home',repo_name=c.repo_name,
15 ${h.link_to_if(change!='removed',h.safe_unicode(filenode.path),h.url('files_home',repo_name=c.repo_name,
16 revision=filenode.changeset.raw_id,f_path=h.safe_unicode(filenode.path)))}
16 revision=filenode.changeset.raw_id,f_path=h.safe_unicode(filenode.path)))}
17 </div>
17 </div>
18 <span class="diff-actions">
18 <div class="diff-actions">
19 <a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='diff',fulldiff=1)}" title="${_('diff')}"><img class="icon" src="${h.url('/images/icons/page_white_text.png')}"/></a>
19 <a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='diff',fulldiff=1)}" title="${_('diff')}"><img class="icon" src="${h.url('/images/icons/page_white_go.png')}"/></a>
20 <a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='raw')}" title="${_('raw diff')}"><img class="icon" src="${h.url('/images/icons/page_white_text.png')}"/></a>
20 <a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='raw')}" title="${_('raw diff')}"><img class="icon" src="${h.url('/images/icons/page_white.png')}"/></a>
21 <a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='download')}" title="${_('download diff')}"><img class="icon" src="${h.url('/images/icons/down_16.png')}"/></a>
21 <a href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode.path),diff2=cs2,diff1=cs1,diff='download')}" title="${_('download diff')}"><img class="icon" src="${h.url('/images/icons/page_white_get.png')}"/></a>
22 ${c.ignorews_url(h.FID(filenode.changeset.raw_id,filenode.path))}
22 ${c.ignorews_url(h.FID(filenode.changeset.raw_id,filenode.path))}
23 ${c.context_url(h.FID(filenode.changeset.raw_id,filenode.path))}
23 ${c.context_url(h.FID(filenode.changeset.raw_id,filenode.path))}
24 </span>
24 </div>
25 <span style="float:right;margin-top:-3px">
25 <span style="float:right;margin-top:-3px">
26 <label>
26 <label>
27 ${_('show inline comments')}
27 ${_('show inline comments')}
28 ${h.checkbox('',checked="checked",class_="show-inline-comments",id_for=h.FID(filenode.changeset.raw_id,filenode.path))}
28 ${h.checkbox('',checked="checked",class_="show-inline-comments",id_for=h.FID(filenode.changeset.raw_id,filenode.path))}
29 </label>
29 </label>
30 </span>
30 </span>
31 </div>
31 </div>
32 </div>
32 </div>
33 <div class="code-body">
33 <div class="code-body">
34 <div class="full_f_path" path="${h.safe_unicode(filenode.path)}"></div>
34 <div class="full_f_path" path="${h.safe_unicode(filenode.path)}"></div>
35 ${diff|n}
35 ${diff|n}
36 </div>
36 </div>
37 </div>
37 </div>
38 %endif
38 %endif
39 %endfor
39 %endfor
40
40
41 </%def> No newline at end of file
41 </%def>
General Comments 0
You need to be logged in to leave comments. Login now