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