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