##// END OF EJS Templates
Summary page downloads limited to zip....
marcink -
r1751:47c2a006 beta
parent child Browse files
Show More
@@ -1,92 +1,93 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 rhodecode.model.__init__
3 rhodecode.model.__init__
4 ~~~~~~~~~~~~~~~~~~~~~~~~
4 ~~~~~~~~~~~~~~~~~~~~~~~~
5
5
6 The application's model objects
6 The application's model objects
7
7
8 :created_on: Nov 25, 2010
8 :created_on: Nov 25, 2010
9 :author: marcink
9 :author: marcink
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
11 :license: GPLv3, see COPYING for more details.
11 :license: GPLv3, see COPYING for more details.
12
12
13
13
14 :example:
14 :example:
15
15
16 .. code-block:: python
16 .. code-block:: python
17
17
18 from paste.deploy import appconfig
18 from paste.deploy import appconfig
19 from pylons import config
19 from pylons import config
20 from sqlalchemy import engine_from_config
20 from sqlalchemy import engine_from_config
21 from rhodecode.config.environment import load_environment
21 from rhodecode.config.environment import load_environment
22
22
23 conf = appconfig('config:development.ini', relative_to = './../../')
23 conf = appconfig('config:development.ini', relative_to = './../../')
24 load_environment(conf.global_conf, conf.local_conf)
24 load_environment(conf.global_conf, conf.local_conf)
25
25
26 engine = engine_from_config(config, 'sqlalchemy.')
26 engine = engine_from_config(config, 'sqlalchemy.')
27 init_model(engine)
27 init_model(engine)
28 # RUN YOUR CODE HERE
28 # RUN YOUR CODE HERE
29
29
30 """
30 """
31 # This program is free software: you can redistribute it and/or modify
31 # This program is free software: you can redistribute it and/or modify
32 # it under the terms of the GNU General Public License as published by
32 # it under the terms of the GNU General Public License as published by
33 # the Free Software Foundation, either version 3 of the License, or
33 # the Free Software Foundation, either version 3 of the License, or
34 # (at your option) any later version.
34 # (at your option) any later version.
35 #
35 #
36 # This program is distributed in the hope that it will be useful,
36 # This program is distributed in the hope that it will be useful,
37 # but WITHOUT ANY WARRANTY; without even the implied warranty of
37 # but WITHOUT ANY WARRANTY; without even the implied warranty of
38 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
38 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
39 # GNU General Public License for more details.
39 # GNU General Public License for more details.
40 #
40 #
41 # You should have received a copy of the GNU General Public License
41 # You should have received a copy of the GNU General Public License
42 # along with this program. If not, see <http://www.gnu.org/licenses/>.
42 # along with this program. If not, see <http://www.gnu.org/licenses/>.
43
43
44 import logging
44 import logging
45
45
46 from rhodecode.model import meta
46 from rhodecode.model import meta
47
47
48 log = logging.getLogger(__name__)
48 log = logging.getLogger(__name__)
49
49
50
50
51 def init_model(engine):
51 def init_model(engine):
52 """
52 """
53 Initializes db session, bind the engine with the metadata,
53 Initializes db session, bind the engine with the metadata,
54 Call this before using any of the tables or classes in the model,
54 Call this before using any of the tables or classes in the model,
55 preferably once in application start
55 preferably once in application start
56
56
57 :param engine: engine to bind to
57 :param engine: engine to bind to
58 """
58 """
59 log.info("initializing db for %s", engine)
59 log.info("initializing db for %s", engine)
60 meta.Base.metadata.bind = engine
60 meta.Base.metadata.bind = engine
61
61
62
62
63 class BaseModel(object):
63 class BaseModel(object):
64 """Base Model for all RhodeCode models, it adds sql alchemy session
64 """
65 Base Model for all RhodeCode models, it adds sql alchemy session
65 into instance of model
66 into instance of model
66
67
67 :param sa: If passed it reuses this session instead of creating a new one
68 :param sa: If passed it reuses this session instead of creating a new one
68 """
69 """
69
70
70 def __init__(self, sa=None):
71 def __init__(self, sa=None):
71 if sa is not None:
72 if sa is not None:
72 self.sa = sa
73 self.sa = sa
73 else:
74 else:
74 self.sa = meta.Session
75 self.sa = meta.Session
75
76
76 def _get_instance(self, cls, instance):
77 def _get_instance(self, cls, instance):
77 """
78 """
78 Get's instance of given cls using some simple lookup mechanism
79 Get's instance of given cls using some simple lookup mechanism
79
80
80 :param cls: class to fetch
81 :param cls: class to fetch
81 :param instance: int or Instance
82 :param instance: int or Instance
82 """
83 """
83
84
84 if isinstance(instance, cls):
85 if isinstance(instance, cls):
85 return instance
86 return instance
86 elif isinstance(instance, int) or str(instance).isdigit():
87 elif isinstance(instance, int) or str(instance).isdigit():
87 return cls.get(instance)
88 return cls.get(instance)
88 else:
89 else:
89 if instance:
90 if instance:
90 raise Exception('given object must be int or Instance'
91 raise Exception('given object must be int or Instance'
91 ' of %s got %s' % (type(cls),
92 ' of %s got %s' % (type(cls),
92 type(instance)))
93 type(instance)))
@@ -1,372 +1,372 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 rhodecode.model.scm
3 rhodecode.model.scm
4 ~~~~~~~~~~~~~~~~~~~
4 ~~~~~~~~~~~~~~~~~~~
5
5
6 Scm model for RhodeCode
6 Scm model for RhodeCode
7
7
8 :created_on: Apr 9, 2010
8 :created_on: Apr 9, 2010
9 :author: marcink
9 :author: marcink
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
11 :license: GPLv3, see COPYING for more details.
11 :license: GPLv3, see COPYING for more details.
12 """
12 """
13 # This program is free software: you can redistribute it and/or modify
13 # This program is free software: you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation, either version 3 of the License, or
15 # the Free Software Foundation, either version 3 of the License, or
16 # (at your option) any later version.
16 # (at your option) any later version.
17 #
17 #
18 # This program is distributed in the hope that it will be useful,
18 # This program is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # GNU General Public License for more details.
21 # GNU General Public License for more details.
22 #
22 #
23 # You should have received a copy of the GNU General Public License
23 # You should have received a copy of the GNU General Public License
24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
25 import os
25 import os
26 import time
26 import time
27 import traceback
27 import traceback
28 import logging
28 import logging
29
29
30 from vcs import get_backend
30 from vcs import get_backend
31 from vcs.exceptions import RepositoryError
31 from vcs.exceptions import RepositoryError
32 from vcs.utils.lazy import LazyProperty
32 from vcs.utils.lazy import LazyProperty
33 from vcs.nodes import FileNode
33 from vcs.nodes import FileNode
34
34
35 from rhodecode import BACKENDS
35 from rhodecode import BACKENDS
36 from rhodecode.lib import helpers as h
36 from rhodecode.lib import helpers as h
37 from rhodecode.lib import safe_str
37 from rhodecode.lib import safe_str
38 from rhodecode.lib.auth import HasRepoPermissionAny
38 from rhodecode.lib.auth import HasRepoPermissionAny
39 from rhodecode.lib.utils import get_repos as get_filesystem_repos, make_ui, \
39 from rhodecode.lib.utils import get_repos as get_filesystem_repos, make_ui, \
40 action_logger, EmptyChangeset
40 action_logger, EmptyChangeset
41 from rhodecode.model import BaseModel
41 from rhodecode.model import BaseModel
42 from rhodecode.model.db import Repository, RhodeCodeUi, CacheInvalidation, \
42 from rhodecode.model.db import Repository, RhodeCodeUi, CacheInvalidation, \
43 UserFollowing, UserLog, User
43 UserFollowing, UserLog, User
44
44
45 log = logging.getLogger(__name__)
45 log = logging.getLogger(__name__)
46
46
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 def __repr__(self):
52 def __repr__(self):
53 return "<%s('id:%s')>" % (self.__class__.__name__, self.user_id)
53 return "<%s('id:%s')>" % (self.__class__.__name__, self.user_id)
54
54
55
55
56 class RepoTemp(object):
56 class RepoTemp(object):
57 def __init__(self, repo_id):
57 def __init__(self, repo_id):
58 self.repo_id = repo_id
58 self.repo_id = repo_id
59
59
60 def __repr__(self):
60 def __repr__(self):
61 return "<%s('id:%s')>" % (self.__class__.__name__, self.repo_id)
61 return "<%s('id:%s')>" % (self.__class__.__name__, self.repo_id)
62
62
63 class CachedRepoList(object):
63 class CachedRepoList(object):
64
64
65 def __init__(self, db_repo_list, repos_path, order_by=None):
65 def __init__(self, db_repo_list, repos_path, order_by=None):
66 self.db_repo_list = db_repo_list
66 self.db_repo_list = db_repo_list
67 self.repos_path = repos_path
67 self.repos_path = repos_path
68 self.order_by = order_by
68 self.order_by = order_by
69 self.reversed = (order_by or '').startswith('-')
69 self.reversed = (order_by or '').startswith('-')
70
70
71 def __len__(self):
71 def __len__(self):
72 return len(self.db_repo_list)
72 return len(self.db_repo_list)
73
73
74 def __repr__(self):
74 def __repr__(self):
75 return '<%s (%s)>' % (self.__class__.__name__, self.__len__())
75 return '<%s (%s)>' % (self.__class__.__name__, self.__len__())
76
76
77 def __iter__(self):
77 def __iter__(self):
78 for dbr in self.db_repo_list:
78 for dbr in self.db_repo_list:
79 scmr = dbr.scm_instance_cached
79 scmr = dbr.scm_instance_cached
80 # check permission at this level
80 # check permission at this level
81 if not HasRepoPermissionAny('repository.read', 'repository.write',
81 if not HasRepoPermissionAny('repository.read', 'repository.write',
82 'repository.admin')(dbr.repo_name,
82 'repository.admin')(dbr.repo_name,
83 'get repo check'):
83 'get repo check'):
84 continue
84 continue
85
85
86 if scmr is None:
86 if scmr is None:
87 log.error('%s this repository is present in database but it '
87 log.error('%s this repository is present in database but it '
88 'cannot be created as an scm instance',
88 'cannot be created as an scm instance',
89 dbr.repo_name)
89 dbr.repo_name)
90 continue
90 continue
91
91
92 last_change = scmr.last_change
92 last_change = scmr.last_change
93 tip = h.get_changeset_safe(scmr, 'tip')
93 tip = h.get_changeset_safe(scmr, 'tip')
94
94
95 tmp_d = {}
95 tmp_d = {}
96 tmp_d['name'] = dbr.repo_name
96 tmp_d['name'] = dbr.repo_name
97 tmp_d['name_sort'] = tmp_d['name'].lower()
97 tmp_d['name_sort'] = tmp_d['name'].lower()
98 tmp_d['description'] = dbr.description
98 tmp_d['description'] = dbr.description
99 tmp_d['description_sort'] = tmp_d['description']
99 tmp_d['description_sort'] = tmp_d['description']
100 tmp_d['last_change'] = last_change
100 tmp_d['last_change'] = last_change
101 tmp_d['last_change_sort'] = time.mktime(last_change.timetuple())
101 tmp_d['last_change_sort'] = time.mktime(last_change.timetuple())
102 tmp_d['tip'] = tip.raw_id
102 tmp_d['tip'] = tip.raw_id
103 tmp_d['tip_sort'] = tip.revision
103 tmp_d['tip_sort'] = tip.revision
104 tmp_d['rev'] = tip.revision
104 tmp_d['rev'] = tip.revision
105 tmp_d['contact'] = dbr.user.full_contact
105 tmp_d['contact'] = dbr.user.full_contact
106 tmp_d['contact_sort'] = tmp_d['contact']
106 tmp_d['contact_sort'] = tmp_d['contact']
107 tmp_d['owner_sort'] = tmp_d['contact']
107 tmp_d['owner_sort'] = tmp_d['contact']
108 tmp_d['repo_archives'] = list(scmr._get_archives())
108 tmp_d['repo_archives'] = list(scmr._get_archives())
109 tmp_d['last_msg'] = tip.message
109 tmp_d['last_msg'] = tip.message
110 tmp_d['author'] = tip.author
110 tmp_d['author'] = tip.author
111 tmp_d['dbrepo'] = dbr.get_dict()
111 tmp_d['dbrepo'] = dbr.get_dict()
112 tmp_d['dbrepo_fork'] = dbr.fork.get_dict() if dbr.fork else {}
112 tmp_d['dbrepo_fork'] = dbr.fork.get_dict() if dbr.fork else {}
113 yield tmp_d
113 yield tmp_d
114
114
115 class ScmModel(BaseModel):
115 class ScmModel(BaseModel):
116 """
116 """
117 Generic Scm Model
117 Generic Scm Model
118 """
118 """
119
119
120 @LazyProperty
120 @LazyProperty
121 def repos_path(self):
121 def repos_path(self):
122 """
122 """
123 Get's the repositories root path from database
123 Get's the repositories root path from database
124 """
124 """
125
125
126 q = self.sa.query(RhodeCodeUi).filter(RhodeCodeUi.ui_key == '/').one()
126 q = self.sa.query(RhodeCodeUi).filter(RhodeCodeUi.ui_key == '/').one()
127
127
128 return q.ui_value
128 return q.ui_value
129
129
130 def repo_scan(self, repos_path=None):
130 def repo_scan(self, repos_path=None):
131 """
131 """
132 Listing of repositories in given path. This path should not be a
132 Listing of repositories in given path. This path should not be a
133 repository itself. Return a dictionary of repository objects
133 repository itself. Return a dictionary of repository objects
134
134
135 :param repos_path: path to directory containing repositories
135 :param repos_path: path to directory containing repositories
136 """
136 """
137
137
138 log.info('scanning for repositories in %s', repos_path)
138 log.info('scanning for repositories in %s', repos_path)
139
139
140 if repos_path is None:
140 if repos_path is None:
141 repos_path = self.repos_path
141 repos_path = self.repos_path
142
142
143 baseui = make_ui('db')
143 baseui = make_ui('db')
144 repos_list = {}
144 repos = {}
145
145
146 for name, path in get_filesystem_repos(repos_path, recursive=True):
146 for name, path in get_filesystem_repos(repos_path, recursive=True):
147
147
148 # name need to be decomposed and put back together using the /
148 # name need to be decomposed and put back together using the /
149 # since this is internal storage separator for rhodecode
149 # since this is internal storage separator for rhodecode
150 name = Repository.url_sep().join(name.split(os.sep))
150 name = Repository.url_sep().join(name.split(os.sep))
151
151
152 try:
152 try:
153 if name in repos_list:
153 if name in repos:
154 raise RepositoryError('Duplicate repository name %s '
154 raise RepositoryError('Duplicate repository name %s '
155 'found in %s' % (name, path))
155 'found in %s' % (name, path))
156 else:
156 else:
157
157
158 klass = get_backend(path[0])
158 klass = get_backend(path[0])
159
159
160 if path[0] == 'hg' and path[0] in BACKENDS.keys():
160 if path[0] == 'hg' and path[0] in BACKENDS.keys():
161
161
162 # for mercurial we need to have an str path
162 # for mercurial we need to have an str path
163 repos_list[name] = klass(safe_str(path[1]),
163 repos[name] = klass(safe_str(path[1]),
164 baseui=baseui)
164 baseui=baseui)
165
165
166 if path[0] == 'git' and path[0] in BACKENDS.keys():
166 if path[0] == 'git' and path[0] in BACKENDS.keys():
167 repos_list[name] = klass(path[1])
167 repos[name] = klass(path[1])
168 except OSError:
168 except OSError:
169 continue
169 continue
170
170
171 return repos_list
171 return repos
172
172
173 def get_repos(self, all_repos=None, sort_key=None):
173 def get_repos(self, all_repos=None, sort_key=None):
174 """
174 """
175 Get all repos from db and for each repo create it's
175 Get all repos from db and for each repo create it's
176 backend instance and fill that backed with information from database
176 backend instance and fill that backed with information from database
177
177
178 :param all_repos: list of repository names as strings
178 :param all_repos: list of repository names as strings
179 give specific repositories list, good for filtering
179 give specific repositories list, good for filtering
180 """
180 """
181 if all_repos is None:
181 if all_repos is None:
182 all_repos = self.sa.query(Repository)\
182 all_repos = self.sa.query(Repository)\
183 .filter(Repository.group_id == None)\
183 .filter(Repository.group_id == None)\
184 .order_by(Repository.repo_name).all()
184 .order_by(Repository.repo_name).all()
185
185
186 repo_iter = CachedRepoList(all_repos, repos_path=self.repos_path,
186 repo_iter = CachedRepoList(all_repos, repos_path=self.repos_path,
187 order_by=sort_key)
187 order_by=sort_key)
188
188
189 return repo_iter
189 return repo_iter
190
190
191 def mark_for_invalidation(self, repo_name):
191 def mark_for_invalidation(self, repo_name):
192 """Puts cache invalidation task into db for
192 """Puts cache invalidation task into db for
193 further global cache invalidation
193 further global cache invalidation
194
194
195 :param repo_name: this repo that should invalidation take place
195 :param repo_name: this repo that should invalidation take place
196 """
196 """
197 CacheInvalidation.set_invalidate(repo_name)
197 CacheInvalidation.set_invalidate(repo_name)
198 CacheInvalidation.set_invalidate(repo_name + "_README")
198 CacheInvalidation.set_invalidate(repo_name + "_README")
199
199
200 def toggle_following_repo(self, follow_repo_id, user_id):
200 def toggle_following_repo(self, follow_repo_id, user_id):
201
201
202 f = self.sa.query(UserFollowing)\
202 f = self.sa.query(UserFollowing)\
203 .filter(UserFollowing.follows_repo_id == follow_repo_id)\
203 .filter(UserFollowing.follows_repo_id == follow_repo_id)\
204 .filter(UserFollowing.user_id == user_id).scalar()
204 .filter(UserFollowing.user_id == user_id).scalar()
205
205
206 if f is not None:
206 if f is not None:
207 try:
207 try:
208 self.sa.delete(f)
208 self.sa.delete(f)
209 action_logger(UserTemp(user_id),
209 action_logger(UserTemp(user_id),
210 'stopped_following_repo',
210 'stopped_following_repo',
211 RepoTemp(follow_repo_id))
211 RepoTemp(follow_repo_id))
212 return
212 return
213 except:
213 except:
214 log.error(traceback.format_exc())
214 log.error(traceback.format_exc())
215 raise
215 raise
216
216
217 try:
217 try:
218 f = UserFollowing()
218 f = UserFollowing()
219 f.user_id = user_id
219 f.user_id = user_id
220 f.follows_repo_id = follow_repo_id
220 f.follows_repo_id = follow_repo_id
221 self.sa.add(f)
221 self.sa.add(f)
222
222
223 action_logger(UserTemp(user_id),
223 action_logger(UserTemp(user_id),
224 'started_following_repo',
224 'started_following_repo',
225 RepoTemp(follow_repo_id))
225 RepoTemp(follow_repo_id))
226 except:
226 except:
227 log.error(traceback.format_exc())
227 log.error(traceback.format_exc())
228 raise
228 raise
229
229
230 def toggle_following_user(self, follow_user_id, user_id):
230 def toggle_following_user(self, follow_user_id, user_id):
231 f = self.sa.query(UserFollowing)\
231 f = self.sa.query(UserFollowing)\
232 .filter(UserFollowing.follows_user_id == follow_user_id)\
232 .filter(UserFollowing.follows_user_id == follow_user_id)\
233 .filter(UserFollowing.user_id == user_id).scalar()
233 .filter(UserFollowing.user_id == user_id).scalar()
234
234
235 if f is not None:
235 if f is not None:
236 try:
236 try:
237 self.sa.delete(f)
237 self.sa.delete(f)
238 return
238 return
239 except:
239 except:
240 log.error(traceback.format_exc())
240 log.error(traceback.format_exc())
241 raise
241 raise
242
242
243 try:
243 try:
244 f = UserFollowing()
244 f = UserFollowing()
245 f.user_id = user_id
245 f.user_id = user_id
246 f.follows_user_id = follow_user_id
246 f.follows_user_id = follow_user_id
247 self.sa.add(f)
247 self.sa.add(f)
248 except:
248 except:
249 log.error(traceback.format_exc())
249 log.error(traceback.format_exc())
250 raise
250 raise
251
251
252 def is_following_repo(self, repo_name, user_id, cache=False):
252 def is_following_repo(self, repo_name, user_id, cache=False):
253 r = self.sa.query(Repository)\
253 r = self.sa.query(Repository)\
254 .filter(Repository.repo_name == repo_name).scalar()
254 .filter(Repository.repo_name == repo_name).scalar()
255
255
256 f = self.sa.query(UserFollowing)\
256 f = self.sa.query(UserFollowing)\
257 .filter(UserFollowing.follows_repository == r)\
257 .filter(UserFollowing.follows_repository == r)\
258 .filter(UserFollowing.user_id == user_id).scalar()
258 .filter(UserFollowing.user_id == user_id).scalar()
259
259
260 return f is not None
260 return f is not None
261
261
262 def is_following_user(self, username, user_id, cache=False):
262 def is_following_user(self, username, user_id, cache=False):
263 u = User.get_by_username(username)
263 u = User.get_by_username(username)
264
264
265 f = self.sa.query(UserFollowing)\
265 f = self.sa.query(UserFollowing)\
266 .filter(UserFollowing.follows_user == u)\
266 .filter(UserFollowing.follows_user == u)\
267 .filter(UserFollowing.user_id == user_id).scalar()
267 .filter(UserFollowing.user_id == user_id).scalar()
268
268
269 return f is not None
269 return f is not None
270
270
271 def get_followers(self, repo_id):
271 def get_followers(self, repo_id):
272 if not isinstance(repo_id, int):
272 if not isinstance(repo_id, int):
273 repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id')
273 repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id')
274
274
275 return self.sa.query(UserFollowing)\
275 return self.sa.query(UserFollowing)\
276 .filter(UserFollowing.follows_repo_id == repo_id).count()
276 .filter(UserFollowing.follows_repo_id == repo_id).count()
277
277
278 def get_forks(self, repo_id):
278 def get_forks(self, repo_id):
279 if not isinstance(repo_id, int):
279 if not isinstance(repo_id, int):
280 repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id')
280 repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id')
281
281
282 return self.sa.query(Repository)\
282 return self.sa.query(Repository)\
283 .filter(Repository.fork_id == repo_id).count()
283 .filter(Repository.fork_id == repo_id).count()
284
284
285 def pull_changes(self, repo_name, username):
285 def pull_changes(self, repo_name, username):
286 dbrepo = Repository.get_by_repo_name(repo_name)
286 dbrepo = Repository.get_by_repo_name(repo_name)
287 clone_uri = dbrepo.clone_uri
287 clone_uri = dbrepo.clone_uri
288 if not clone_uri:
288 if not clone_uri:
289 raise Exception("This repository doesn't have a clone uri")
289 raise Exception("This repository doesn't have a clone uri")
290
290
291 repo = dbrepo.scm_instance
291 repo = dbrepo.scm_instance
292 try:
292 try:
293 extras = {'ip': '',
293 extras = {'ip': '',
294 'username': username,
294 'username': username,
295 'action': 'push_remote',
295 'action': 'push_remote',
296 'repository': repo_name}
296 'repository': repo_name}
297
297
298 #inject ui extra param to log this action via push logger
298 #inject ui extra param to log this action via push logger
299 for k, v in extras.items():
299 for k, v in extras.items():
300 repo._repo.ui.setconfig('rhodecode_extras', k, v)
300 repo._repo.ui.setconfig('rhodecode_extras', k, v)
301
301
302 repo.pull(clone_uri)
302 repo.pull(clone_uri)
303 self.mark_for_invalidation(repo_name)
303 self.mark_for_invalidation(repo_name)
304 except:
304 except:
305 log.error(traceback.format_exc())
305 log.error(traceback.format_exc())
306 raise
306 raise
307
307
308 def commit_change(self, repo, repo_name, cs, user, author, message,
308 def commit_change(self, repo, repo_name, cs, user, author, message,
309 content, f_path):
309 content, f_path):
310
310
311 if repo.alias == 'hg':
311 if repo.alias == 'hg':
312 from vcs.backends.hg import MercurialInMemoryChangeset as IMC
312 from vcs.backends.hg import MercurialInMemoryChangeset as IMC
313 elif repo.alias == 'git':
313 elif repo.alias == 'git':
314 from vcs.backends.git import GitInMemoryChangeset as IMC
314 from vcs.backends.git import GitInMemoryChangeset as IMC
315
315
316 # decoding here will force that we have proper encoded values
316 # decoding here will force that we have proper encoded values
317 # in any other case this will throw exceptions and deny commit
317 # in any other case this will throw exceptions and deny commit
318 content = safe_str(content)
318 content = safe_str(content)
319 message = safe_str(message)
319 message = safe_str(message)
320 path = safe_str(f_path)
320 path = safe_str(f_path)
321 author = safe_str(author)
321 author = safe_str(author)
322 m = IMC(repo)
322 m = IMC(repo)
323 m.change(FileNode(path, content))
323 m.change(FileNode(path, content))
324 tip = m.commit(message=message,
324 tip = m.commit(message=message,
325 author=author,
325 author=author,
326 parents=[cs], branch=cs.branch)
326 parents=[cs], branch=cs.branch)
327
327
328 new_cs = tip.short_id
328 new_cs = tip.short_id
329 action = 'push_local:%s' % new_cs
329 action = 'push_local:%s' % new_cs
330
330
331 action_logger(user, action, repo_name)
331 action_logger(user, action, repo_name)
332
332
333 self.mark_for_invalidation(repo_name)
333 self.mark_for_invalidation(repo_name)
334
334
335 def create_node(self, repo, repo_name, cs, user, author, message, content,
335 def create_node(self, repo, repo_name, cs, user, author, message, content,
336 f_path):
336 f_path):
337 if repo.alias == 'hg':
337 if repo.alias == 'hg':
338 from vcs.backends.hg import MercurialInMemoryChangeset as IMC
338 from vcs.backends.hg import MercurialInMemoryChangeset as IMC
339 elif repo.alias == 'git':
339 elif repo.alias == 'git':
340 from vcs.backends.git import GitInMemoryChangeset as IMC
340 from vcs.backends.git import GitInMemoryChangeset as IMC
341 # decoding here will force that we have proper encoded values
341 # decoding here will force that we have proper encoded values
342 # in any other case this will throw exceptions and deny commit
342 # in any other case this will throw exceptions and deny commit
343
343
344 if isinstance(content, (basestring,)):
344 if isinstance(content, (basestring,)):
345 content = safe_str(content)
345 content = safe_str(content)
346 elif isinstance(content, file):
346 elif isinstance(content, file):
347 content = content.read()
347 content = content.read()
348
348
349 message = safe_str(message)
349 message = safe_str(message)
350 path = safe_str(f_path)
350 path = safe_str(f_path)
351 author = safe_str(author)
351 author = safe_str(author)
352 m = IMC(repo)
352 m = IMC(repo)
353
353
354 if isinstance(cs, EmptyChangeset):
354 if isinstance(cs, EmptyChangeset):
355 # Emptychangeset means we we're editing empty repository
355 # Emptychangeset means we we're editing empty repository
356 parents = None
356 parents = None
357 else:
357 else:
358 parents = [cs]
358 parents = [cs]
359
359
360 m.add(FileNode(path, content=content))
360 m.add(FileNode(path, content=content))
361 tip = m.commit(message=message,
361 tip = m.commit(message=message,
362 author=author,
362 author=author,
363 parents=parents, branch=cs.branch)
363 parents=parents, branch=cs.branch)
364 new_cs = tip.short_id
364 new_cs = tip.short_id
365 action = 'push_local:%s' % new_cs
365 action = 'push_local:%s' % new_cs
366
366
367 action_logger(user, action, repo_name)
367 action_logger(user, action, repo_name)
368
368
369 self.mark_for_invalidation(repo_name)
369 self.mark_for_invalidation(repo_name)
370
370
371 def get_unread_journal(self):
371 def get_unread_journal(self):
372 return self.sa.query(UserLog).count()
372 return self.sa.query(UserLog).count()
@@ -1,3590 +1,3614 b''
1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td
2 {
2 {
3 border: 0;
3 border: 0;
4 outline: 0;
4 outline: 0;
5 font-size: 100%;
5 font-size: 100%;
6 vertical-align: baseline;
6 vertical-align: baseline;
7 background: transparent;
7 background: transparent;
8 margin: 0;
8 margin: 0;
9 padding: 0;
9 padding: 0;
10 }
10 }
11
11
12 body {
12 body {
13 line-height: 1;
13 line-height: 1;
14 height: 100%;
14 height: 100%;
15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
18 color: #000;
18 color: #000;
19 margin: 0;
19 margin: 0;
20 padding: 0;
20 padding: 0;
21 font-size: 12px;
21 font-size: 12px;
22 }
22 }
23
23
24 ol,ul {
24 ol,ul {
25 list-style: none;
25 list-style: none;
26 }
26 }
27
27
28 blockquote,q {
28 blockquote,q {
29 quotes: none;
29 quotes: none;
30 }
30 }
31
31
32 blockquote:before,blockquote:after,q:before,q:after {
32 blockquote:before,blockquote:after,q:before,q:after {
33 content: none;
33 content: none;
34 }
34 }
35
35
36 :focus {
36 :focus {
37 outline: 0;
37 outline: 0;
38 }
38 }
39
39
40 del {
40 del {
41 text-decoration: line-through;
41 text-decoration: line-through;
42 }
42 }
43
43
44 table {
44 table {
45 border-collapse: collapse;
45 border-collapse: collapse;
46 border-spacing: 0;
46 border-spacing: 0;
47 }
47 }
48
48
49 html {
49 html {
50 height: 100%;
50 height: 100%;
51 }
51 }
52
52
53 a {
53 a {
54 color: #003367;
54 color: #003367;
55 text-decoration: none;
55 text-decoration: none;
56 cursor: pointer;
56 cursor: pointer;
57 }
57 }
58
58
59 a:hover {
59 a:hover {
60 color: #316293;
60 color: #316293;
61 text-decoration: underline;
61 text-decoration: underline;
62 }
62 }
63
63
64 h1,h2,h3,h4,h5,h6 {
64 h1,h2,h3,h4,h5,h6 {
65 color: #292929;
65 color: #292929;
66 font-weight: 700;
66 font-weight: 700;
67 }
67 }
68
68
69 h1 {
69 h1 {
70 font-size: 22px;
70 font-size: 22px;
71 }
71 }
72
72
73 h2 {
73 h2 {
74 font-size: 20px;
74 font-size: 20px;
75 }
75 }
76
76
77 h3 {
77 h3 {
78 font-size: 18px;
78 font-size: 18px;
79 }
79 }
80
80
81 h4 {
81 h4 {
82 font-size: 16px;
82 font-size: 16px;
83 }
83 }
84
84
85 h5 {
85 h5 {
86 font-size: 14px;
86 font-size: 14px;
87 }
87 }
88
88
89 h6 {
89 h6 {
90 font-size: 11px;
90 font-size: 11px;
91 }
91 }
92
92
93 ul.circle {
93 ul.circle {
94 list-style-type: circle;
94 list-style-type: circle;
95 }
95 }
96
96
97 ul.disc {
97 ul.disc {
98 list-style-type: disc;
98 list-style-type: disc;
99 }
99 }
100
100
101 ul.square {
101 ul.square {
102 list-style-type: square;
102 list-style-type: square;
103 }
103 }
104
104
105 ol.lower-roman {
105 ol.lower-roman {
106 list-style-type: lower-roman;
106 list-style-type: lower-roman;
107 }
107 }
108
108
109 ol.upper-roman {
109 ol.upper-roman {
110 list-style-type: upper-roman;
110 list-style-type: upper-roman;
111 }
111 }
112
112
113 ol.lower-alpha {
113 ol.lower-alpha {
114 list-style-type: lower-alpha;
114 list-style-type: lower-alpha;
115 }
115 }
116
116
117 ol.upper-alpha {
117 ol.upper-alpha {
118 list-style-type: upper-alpha;
118 list-style-type: upper-alpha;
119 }
119 }
120
120
121 ol.decimal {
121 ol.decimal {
122 list-style-type: decimal;
122 list-style-type: decimal;
123 }
123 }
124
124
125 div.color {
125 div.color {
126 clear: both;
126 clear: both;
127 overflow: hidden;
127 overflow: hidden;
128 position: absolute;
128 position: absolute;
129 background: #FFF;
129 background: #FFF;
130 margin: 7px 0 0 60px;
130 margin: 7px 0 0 60px;
131 padding: 1px 1px 1px 0;
131 padding: 1px 1px 1px 0;
132 }
132 }
133
133
134 div.color a {
134 div.color a {
135 width: 15px;
135 width: 15px;
136 height: 15px;
136 height: 15px;
137 display: block;
137 display: block;
138 float: left;
138 float: left;
139 margin: 0 0 0 1px;
139 margin: 0 0 0 1px;
140 padding: 0;
140 padding: 0;
141 }
141 }
142
142
143 div.options {
143 div.options {
144 clear: both;
144 clear: both;
145 overflow: hidden;
145 overflow: hidden;
146 position: absolute;
146 position: absolute;
147 background: #FFF;
147 background: #FFF;
148 margin: 7px 0 0 162px;
148 margin: 7px 0 0 162px;
149 padding: 0;
149 padding: 0;
150 }
150 }
151
151
152 div.options a {
152 div.options a {
153 height: 1%;
153 height: 1%;
154 display: block;
154 display: block;
155 text-decoration: none;
155 text-decoration: none;
156 margin: 0;
156 margin: 0;
157 padding: 3px 8px;
157 padding: 3px 8px;
158 }
158 }
159
159
160 .top-left-rounded-corner {
160 .top-left-rounded-corner {
161 -webkit-border-top-left-radius: 8px;
161 -webkit-border-top-left-radius: 8px;
162 -khtml-border-radius-topleft: 8px;
162 -khtml-border-radius-topleft: 8px;
163 -moz-border-radius-topleft: 8px;
163 -moz-border-radius-topleft: 8px;
164 border-top-left-radius: 8px;
164 border-top-left-radius: 8px;
165 }
165 }
166
166
167 .top-right-rounded-corner {
167 .top-right-rounded-corner {
168 -webkit-border-top-right-radius: 8px;
168 -webkit-border-top-right-radius: 8px;
169 -khtml-border-radius-topright: 8px;
169 -khtml-border-radius-topright: 8px;
170 -moz-border-radius-topright: 8px;
170 -moz-border-radius-topright: 8px;
171 border-top-right-radius: 8px;
171 border-top-right-radius: 8px;
172 }
172 }
173
173
174 .bottom-left-rounded-corner {
174 .bottom-left-rounded-corner {
175 -webkit-border-bottom-left-radius: 8px;
175 -webkit-border-bottom-left-radius: 8px;
176 -khtml-border-radius-bottomleft: 8px;
176 -khtml-border-radius-bottomleft: 8px;
177 -moz-border-radius-bottomleft: 8px;
177 -moz-border-radius-bottomleft: 8px;
178 border-bottom-left-radius: 8px;
178 border-bottom-left-radius: 8px;
179 }
179 }
180
180
181 .bottom-right-rounded-corner {
181 .bottom-right-rounded-corner {
182 -webkit-border-bottom-right-radius: 8px;
182 -webkit-border-bottom-right-radius: 8px;
183 -khtml-border-radius-bottomright: 8px;
183 -khtml-border-radius-bottomright: 8px;
184 -moz-border-radius-bottomright: 8px;
184 -moz-border-radius-bottomright: 8px;
185 border-bottom-right-radius: 8px;
185 border-bottom-right-radius: 8px;
186 }
186 }
187
187
188 #header {
188 #header {
189 margin: 0;
189 margin: 0;
190 padding: 0 10px;
190 padding: 0 10px;
191 }
191 }
192
192
193 #header ul#logged-user {
193 #header ul#logged-user {
194 margin-bottom: 5px !important;
194 margin-bottom: 5px !important;
195 -webkit-border-radius: 0px 0px 8px 8px;
195 -webkit-border-radius: 0px 0px 8px 8px;
196 -khtml-border-radius: 0px 0px 8px 8px;
196 -khtml-border-radius: 0px 0px 8px 8px;
197 -moz-border-radius: 0px 0px 8px 8px;
197 -moz-border-radius: 0px 0px 8px 8px;
198 border-radius: 0px 0px 8px 8px;
198 border-radius: 0px 0px 8px 8px;
199 height: 37px;
199 height: 37px;
200 background-color: #eedc94;
200 background-color: #eedc94;
201 background-repeat: repeat-x;
201 background-repeat: repeat-x;
202 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
202 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
203 to(#eedc94) );
203 to(#eedc94) );
204 background-image: -moz-linear-gradient(top, #003b76, #00376e);
204 background-image: -moz-linear-gradient(top, #003b76, #00376e);
205 background-image: -ms-linear-gradient(top, #003b76, #00376e);
205 background-image: -ms-linear-gradient(top, #003b76, #00376e);
206 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
206 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
207 color-stop(100%, #00376e) );
207 color-stop(100%, #00376e) );
208 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
208 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
209 background-image: -o-linear-gradient(top, #003b76, #00376e) );
209 background-image: -o-linear-gradient(top, #003b76, #00376e) );
210 background-image: linear-gradient(top, #003b76, #00376e);
210 background-image: linear-gradient(top, #003b76, #00376e);
211 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
211 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
212 endColorstr='#00376e', GradientType=0 );
212 endColorstr='#00376e', GradientType=0 );
213 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
213 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
214 }
214 }
215
215
216 #header ul#logged-user li {
216 #header ul#logged-user li {
217 list-style: none;
217 list-style: none;
218 float: left;
218 float: left;
219 margin: 8px 0 0;
219 margin: 8px 0 0;
220 padding: 4px 12px;
220 padding: 4px 12px;
221 border-left: 1px solid #316293;
221 border-left: 1px solid #316293;
222 }
222 }
223
223
224 #header ul#logged-user li.first {
224 #header ul#logged-user li.first {
225 border-left: none;
225 border-left: none;
226 margin: 4px;
226 margin: 4px;
227 }
227 }
228
228
229 #header ul#logged-user li.first div.gravatar {
229 #header ul#logged-user li.first div.gravatar {
230 margin-top: -2px;
230 margin-top: -2px;
231 }
231 }
232
232
233 #header ul#logged-user li.first div.account {
233 #header ul#logged-user li.first div.account {
234 padding-top: 4px;
234 padding-top: 4px;
235 float: left;
235 float: left;
236 }
236 }
237
237
238 #header ul#logged-user li.last {
238 #header ul#logged-user li.last {
239 border-right: none;
239 border-right: none;
240 }
240 }
241
241
242 #header ul#logged-user li a {
242 #header ul#logged-user li a {
243 color: #fff;
243 color: #fff;
244 font-weight: 700;
244 font-weight: 700;
245 text-decoration: none;
245 text-decoration: none;
246 }
246 }
247
247
248 #header ul#logged-user li a:hover {
248 #header ul#logged-user li a:hover {
249 text-decoration: underline;
249 text-decoration: underline;
250 }
250 }
251
251
252 #header ul#logged-user li.highlight a {
252 #header ul#logged-user li.highlight a {
253 color: #fff;
253 color: #fff;
254 }
254 }
255
255
256 #header ul#logged-user li.highlight a:hover {
256 #header ul#logged-user li.highlight a:hover {
257 color: #FFF;
257 color: #FFF;
258 }
258 }
259
259
260 #header #header-inner {
260 #header #header-inner {
261 min-height: 40px;
261 min-height: 40px;
262 clear: both;
262 clear: both;
263 position: relative;
263 position: relative;
264 background-color: #eedc94;
264 background-color: #eedc94;
265 background-repeat: repeat-x;
265 background-repeat: repeat-x;
266 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
266 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
267 to(#eedc94) );
267 to(#eedc94) );
268 background-image: -moz-linear-gradient(top, #003b76, #00376e);
268 background-image: -moz-linear-gradient(top, #003b76, #00376e);
269 background-image: -ms-linear-gradient(top, #003b76, #00376e);
269 background-image: -ms-linear-gradient(top, #003b76, #00376e);
270 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
270 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
271 color-stop(100%, #00376e) );
271 color-stop(100%, #00376e) );
272 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
272 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
273 background-image: -o-linear-gradient(top, #003b76, #00376e) );
273 background-image: -o-linear-gradient(top, #003b76, #00376e) );
274 background-image: linear-gradient(top, #003b76, #00376e);
274 background-image: linear-gradient(top, #003b76, #00376e);
275 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
275 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
276 endColorstr='#00376e', GradientType=0 );
276 endColorstr='#00376e', GradientType=0 );
277 margin: 0;
277 margin: 0;
278 padding: 0;
278 padding: 0;
279 display: block;
279 display: block;
280 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
280 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
281 -webkit-border-radius: 4px 4px 4px 4px;
281 -webkit-border-radius: 4px 4px 4px 4px;
282 -khtml-border-radius: 4px 4px 4px 4px;
282 -khtml-border-radius: 4px 4px 4px 4px;
283 -moz-border-radius: 4px 4px 4px 4px;
283 -moz-border-radius: 4px 4px 4px 4px;
284 border-radius: 4px 4px 4px 4px;
284 border-radius: 4px 4px 4px 4px;
285 }
285 }
286 #header #header-inner.hover{
286 #header #header-inner.hover{
287 position: fixed !important;
287 position: fixed !important;
288 width: 100% !important;
288 width: 100% !important;
289 margin-left: -10px !important;
289 margin-left: -10px !important;
290 z-index: 10000;
290 z-index: 10000;
291 border-radius: 0px 0px 4px 4px;
291 border-radius: 0px 0px 4px 4px;
292 }
292 }
293 #header #header-inner #home a {
293 #header #header-inner #home a {
294 height: 40px;
294 height: 40px;
295 width: 46px;
295 width: 46px;
296 display: block;
296 display: block;
297 background: url("../images/button_home.png");
297 background: url("../images/button_home.png");
298 background-position: 0 0;
298 background-position: 0 0;
299 margin: 0;
299 margin: 0;
300 padding: 0;
300 padding: 0;
301 }
301 }
302
302
303 #header #header-inner #home a:hover {
303 #header #header-inner #home a:hover {
304 background-position: 0 -40px;
304 background-position: 0 -40px;
305 }
305 }
306
306
307 #header #header-inner #logo {
307 #header #header-inner #logo {
308 float: left;
308 float: left;
309 position: absolute;
309 position: absolute;
310 }
310 }
311
311
312 #header #header-inner #logo h1 {
312 #header #header-inner #logo h1 {
313 color: #FFF;
313 color: #FFF;
314 font-size: 18px;
314 font-size: 18px;
315 margin: 10px 0 0 13px;
315 margin: 10px 0 0 13px;
316 padding: 0;
316 padding: 0;
317 }
317 }
318
318
319 #header #header-inner #logo a {
319 #header #header-inner #logo a {
320 color: #fff;
320 color: #fff;
321 text-decoration: none;
321 text-decoration: none;
322 }
322 }
323
323
324 #header #header-inner #logo a:hover {
324 #header #header-inner #logo a:hover {
325 color: #bfe3ff;
325 color: #bfe3ff;
326 }
326 }
327
327
328 #header #header-inner #quick,#header #header-inner #quick ul {
328 #header #header-inner #quick,#header #header-inner #quick ul {
329 position: relative;
329 position: relative;
330 float: right;
330 float: right;
331 list-style-type: none;
331 list-style-type: none;
332 list-style-position: outside;
332 list-style-position: outside;
333 margin: 6px 5px 0 0;
333 margin: 6px 5px 0 0;
334 padding: 0;
334 padding: 0;
335 }
335 }
336
336
337 #header #header-inner #quick li {
337 #header #header-inner #quick li {
338 position: relative;
338 position: relative;
339 float: left;
339 float: left;
340 margin: 0 5px 0 0;
340 margin: 0 5px 0 0;
341 padding: 0;
341 padding: 0;
342 }
342 }
343
343
344 #header #header-inner #quick li a {
344 #header #header-inner #quick li a {
345 top: 0;
345 top: 0;
346 left: 0;
346 left: 0;
347 height: 1%;
347 height: 1%;
348 display: block;
348 display: block;
349 clear: both;
349 clear: both;
350 overflow: hidden;
350 overflow: hidden;
351 color: #FFF;
351 color: #FFF;
352 font-weight: 700;
352 font-weight: 700;
353 text-decoration: none;
353 text-decoration: none;
354 background: #369;
354 background: #369;
355 padding: 0;
355 padding: 0;
356 -webkit-border-radius: 4px 4px 4px 4px;
356 -webkit-border-radius: 4px 4px 4px 4px;
357 -khtml-border-radius: 4px 4px 4px 4px;
357 -khtml-border-radius: 4px 4px 4px 4px;
358 -moz-border-radius: 4px 4px 4px 4px;
358 -moz-border-radius: 4px 4px 4px 4px;
359 border-radius: 4px 4px 4px 4px;
359 border-radius: 4px 4px 4px 4px;
360 }
360 }
361
361
362 #header #header-inner #quick li span.short {
362 #header #header-inner #quick li span.short {
363 padding: 9px 6px 8px 6px;
363 padding: 9px 6px 8px 6px;
364 }
364 }
365
365
366 #header #header-inner #quick li span {
366 #header #header-inner #quick li span {
367 top: 0;
367 top: 0;
368 right: 0;
368 right: 0;
369 height: 1%;
369 height: 1%;
370 display: block;
370 display: block;
371 float: left;
371 float: left;
372 border-left: 1px solid #3f6f9f;
372 border-left: 1px solid #3f6f9f;
373 margin: 0;
373 margin: 0;
374 padding: 10px 12px 8px 10px;
374 padding: 10px 12px 8px 10px;
375 }
375 }
376
376
377 #header #header-inner #quick li span.normal {
377 #header #header-inner #quick li span.normal {
378 border: none;
378 border: none;
379 padding: 10px 12px 8px;
379 padding: 10px 12px 8px;
380 }
380 }
381
381
382 #header #header-inner #quick li span.icon {
382 #header #header-inner #quick li span.icon {
383 top: 0;
383 top: 0;
384 left: 0;
384 left: 0;
385 border-left: none;
385 border-left: none;
386 border-right: 1px solid #2e5c89;
386 border-right: 1px solid #2e5c89;
387 padding: 8px 6px 4px;
387 padding: 8px 6px 4px;
388 }
388 }
389
389
390 #header #header-inner #quick li span.icon_short {
390 #header #header-inner #quick li span.icon_short {
391 top: 0;
391 top: 0;
392 left: 0;
392 left: 0;
393 border-left: none;
393 border-left: none;
394 border-right: 1px solid #2e5c89;
394 border-right: 1px solid #2e5c89;
395 padding: 8px 6px 4px;
395 padding: 8px 6px 4px;
396 }
396 }
397
397
398 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
398 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
399 {
399 {
400 margin: 0px -2px 0px 0px;
400 margin: 0px -2px 0px 0px;
401 }
401 }
402
402
403 #header #header-inner #quick li a:hover {
403 #header #header-inner #quick li a:hover {
404 background: #4e4e4e no-repeat top left;
404 background: #4e4e4e no-repeat top left;
405 }
405 }
406
406
407 #header #header-inner #quick li a:hover span {
407 #header #header-inner #quick li a:hover span {
408 border-left: 1px solid #545454;
408 border-left: 1px solid #545454;
409 }
409 }
410
410
411 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
411 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
412 {
412 {
413 border-left: none;
413 border-left: none;
414 border-right: 1px solid #464646;
414 border-right: 1px solid #464646;
415 }
415 }
416
416
417 #header #header-inner #quick ul {
417 #header #header-inner #quick ul {
418 top: 29px;
418 top: 29px;
419 right: 0;
419 right: 0;
420 min-width: 200px;
420 min-width: 200px;
421 display: none;
421 display: none;
422 position: absolute;
422 position: absolute;
423 background: #FFF;
423 background: #FFF;
424 border: 1px solid #666;
424 border: 1px solid #666;
425 border-top: 1px solid #003367;
425 border-top: 1px solid #003367;
426 z-index: 100;
426 z-index: 100;
427 margin: 0;
427 margin: 0;
428 padding: 0;
428 padding: 0;
429 }
429 }
430
430
431 #header #header-inner #quick ul.repo_switcher {
431 #header #header-inner #quick ul.repo_switcher {
432 max-height: 275px;
432 max-height: 275px;
433 overflow-x: hidden;
433 overflow-x: hidden;
434 overflow-y: auto;
434 overflow-y: auto;
435 }
435 }
436
436
437 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
437 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
438 float: none;
438 float: none;
439 margin: 0;
439 margin: 0;
440 border-bottom: 2px solid #003367;
440 border-bottom: 2px solid #003367;
441 }
441 }
442
442
443 #header #header-inner #quick .repo_switcher_type {
443 #header #header-inner #quick .repo_switcher_type {
444 position: absolute;
444 position: absolute;
445 left: 0;
445 left: 0;
446 top: 9px;
446 top: 9px;
447 }
447 }
448
448
449 #header #header-inner #quick li ul li {
449 #header #header-inner #quick li ul li {
450 border-bottom: 1px solid #ddd;
450 border-bottom: 1px solid #ddd;
451 }
451 }
452
452
453 #header #header-inner #quick li ul li a {
453 #header #header-inner #quick li ul li a {
454 width: 182px;
454 width: 182px;
455 height: auto;
455 height: auto;
456 display: block;
456 display: block;
457 float: left;
457 float: left;
458 background: #FFF;
458 background: #FFF;
459 color: #003367;
459 color: #003367;
460 font-weight: 400;
460 font-weight: 400;
461 margin: 0;
461 margin: 0;
462 padding: 7px 9px;
462 padding: 7px 9px;
463 }
463 }
464
464
465 #header #header-inner #quick li ul li a:hover {
465 #header #header-inner #quick li ul li a:hover {
466 color: #000;
466 color: #000;
467 background: #FFF;
467 background: #FFF;
468 }
468 }
469
469
470 #header #header-inner #quick ul ul {
470 #header #header-inner #quick ul ul {
471 top: auto;
471 top: auto;
472 }
472 }
473
473
474 #header #header-inner #quick li ul ul {
474 #header #header-inner #quick li ul ul {
475 right: 200px;
475 right: 200px;
476 max-height: 275px;
476 max-height: 275px;
477 overflow: auto;
477 overflow: auto;
478 overflow-x: hidden;
478 overflow-x: hidden;
479 white-space: normal;
479 white-space: normal;
480 }
480 }
481
481
482 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
482 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
483 {
483 {
484 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
484 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
485 #FFF;
485 #FFF;
486 width: 167px;
486 width: 167px;
487 margin: 0;
487 margin: 0;
488 padding: 12px 9px 7px 24px;
488 padding: 12px 9px 7px 24px;
489 }
489 }
490
490
491 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
491 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
492 {
492 {
493 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
493 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
494 #FFF;
494 #FFF;
495 min-width: 167px;
495 min-width: 167px;
496 margin: 0;
496 margin: 0;
497 padding: 12px 9px 7px 24px;
497 padding: 12px 9px 7px 24px;
498 }
498 }
499
499
500 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
500 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
501 {
501 {
502 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
502 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
503 9px #FFF;
503 9px #FFF;
504 min-width: 167px;
504 min-width: 167px;
505 margin: 0;
505 margin: 0;
506 padding: 12px 9px 7px 24px;
506 padding: 12px 9px 7px 24px;
507 }
507 }
508
508
509 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover
509 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover
510 {
510 {
511 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
511 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
512 #FFF;
512 #FFF;
513 min-width: 167px;
513 min-width: 167px;
514 margin: 0 0 0 14px;
514 margin: 0 0 0 14px;
515 padding: 12px 9px 7px 24px;
515 padding: 12px 9px 7px 24px;
516 }
516 }
517
517
518 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
518 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
519 {
519 {
520 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
520 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
521 #FFF;
521 #FFF;
522 min-width: 167px;
522 min-width: 167px;
523 margin: 0 0 0 14px;
523 margin: 0 0 0 14px;
524 padding: 12px 9px 7px 24px;
524 padding: 12px 9px 7px 24px;
525 }
525 }
526
526
527 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
527 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
528 {
528 {
529 background: url("../images/icons/database_edit.png") no-repeat scroll
529 background: url("../images/icons/database_edit.png") no-repeat scroll
530 4px 9px #FFF;
530 4px 9px #FFF;
531 width: 167px;
531 width: 167px;
532 margin: 0;
532 margin: 0;
533 padding: 12px 9px 7px 24px;
533 padding: 12px 9px 7px 24px;
534 }
534 }
535
535
536 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
536 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
537 {
537 {
538 background: url("../images/icons/database_link.png") no-repeat scroll
538 background: url("../images/icons/database_link.png") no-repeat scroll
539 4px 9px #FFF;
539 4px 9px #FFF;
540 width: 167px;
540 width: 167px;
541 margin: 0;
541 margin: 0;
542 padding: 12px 9px 7px 24px;
542 padding: 12px 9px 7px 24px;
543 }
543 }
544
544
545 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
545 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
546 {
546 {
547 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
547 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
548 width: 167px;
548 width: 167px;
549 margin: 0;
549 margin: 0;
550 padding: 12px 9px 7px 24px;
550 padding: 12px 9px 7px 24px;
551 }
551 }
552
552
553 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
553 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
554 {
554 {
555 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
555 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
556 width: 167px;
556 width: 167px;
557 margin: 0;
557 margin: 0;
558 padding: 12px 9px 7px 24px;
558 padding: 12px 9px 7px 24px;
559 }
559 }
560
560
561 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
561 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
562 {
562 {
563 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
563 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
564 width: 167px;
564 width: 167px;
565 margin: 0;
565 margin: 0;
566 padding: 12px 9px 7px 24px;
566 padding: 12px 9px 7px 24px;
567 }
567 }
568
568
569 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
569 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
570 {
570 {
571 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
571 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
572 width: 167px;
572 width: 167px;
573 margin: 0;
573 margin: 0;
574 padding: 12px 9px 7px 24px;
574 padding: 12px 9px 7px 24px;
575 }
575 }
576
576
577 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
577 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
578 {
578 {
579 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
579 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
580 width: 167px;
580 width: 167px;
581 margin: 0;
581 margin: 0;
582 padding: 12px 9px 7px 24px;
582 padding: 12px 9px 7px 24px;
583 }
583 }
584
584
585 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
585 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
586 {
586 {
587 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
587 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
588 9px;
588 9px;
589 width: 167px;
589 width: 167px;
590 margin: 0;
590 margin: 0;
591 padding: 12px 9px 7px 24px;
591 padding: 12px 9px 7px 24px;
592 }
592 }
593
593
594 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
594 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
595 {
595 {
596 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
596 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
597 width: 167px;
597 width: 167px;
598 margin: 0;
598 margin: 0;
599 padding: 12px 9px 7px 24px;
599 padding: 12px 9px 7px 24px;
600 }
600 }
601
601
602 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
602 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
603 {
603 {
604 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
604 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
605 width: 167px;
605 width: 167px;
606 margin: 0;
606 margin: 0;
607 padding: 12px 9px 7px 24px;
607 padding: 12px 9px 7px 24px;
608 }
608 }
609
609
610 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
610 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
611 {
611 {
612 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
612 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
613 9px;
613 9px;
614 width: 167px;
614 width: 167px;
615 margin: 0;
615 margin: 0;
616 padding: 12px 9px 7px 24px;
616 padding: 12px 9px 7px 24px;
617 }
617 }
618
618
619 #header #header-inner #quick li ul li a.tags,
619 #header #header-inner #quick li ul li a.tags,
620 #header #header-inner #quick li ul li a.tags:hover{
620 #header #header-inner #quick li ul li a.tags:hover{
621 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
621 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
622 width: 167px;
622 width: 167px;
623 margin: 0;
623 margin: 0;
624 padding: 12px 9px 7px 24px;
624 padding: 12px 9px 7px 24px;
625 }
625 }
626
626
627 #header #header-inner #quick li ul li a.bookmarks,
627 #header #header-inner #quick li ul li a.bookmarks,
628 #header #header-inner #quick li ul li a.bookmarks:hover{
628 #header #header-inner #quick li ul li a.bookmarks:hover{
629 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
629 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
630 width: 167px;
630 width: 167px;
631 margin: 0;
631 margin: 0;
632 padding: 12px 9px 7px 24px;
632 padding: 12px 9px 7px 24px;
633 }
633 }
634
634
635 #header #header-inner #quick li ul li a.admin,
635 #header #header-inner #quick li ul li a.admin,
636 #header #header-inner #quick li ul li a.admin:hover{
636 #header #header-inner #quick li ul li a.admin:hover{
637 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
637 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
638 width: 167px;
638 width: 167px;
639 margin: 0;
639 margin: 0;
640 padding: 12px 9px 7px 24px;
640 padding: 12px 9px 7px 24px;
641 }
641 }
642
642
643 .groups_breadcrumbs a {
643 .groups_breadcrumbs a {
644 color: #fff;
644 color: #fff;
645 }
645 }
646
646
647 .groups_breadcrumbs a:hover {
647 .groups_breadcrumbs a:hover {
648 color: #bfe3ff;
648 color: #bfe3ff;
649 text-decoration: none;
649 text-decoration: none;
650 }
650 }
651
651
652 .quick_repo_menu {
652 .quick_repo_menu {
653 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
653 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
654 cursor: pointer;
654 cursor: pointer;
655 width: 8px;
655 width: 8px;
656 border: 1px solid transparent;
656 border: 1px solid transparent;
657 }
657 }
658
658
659 .quick_repo_menu.active {
659 .quick_repo_menu.active {
660 background: url("../images/horizontal-indicator.png") no-repeat scroll 5px 50% #FFFFFF !important;
660 background: url("../images/horizontal-indicator.png") no-repeat scroll 5px 50% #FFFFFF !important;
661 border: 1px solid #003367;
661 border: 1px solid #003367;
662 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
662 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
663 cursor: pointer;
663 cursor: pointer;
664 }
664 }
665
665
666 .quick_repo_menu .menu_items {
666 .quick_repo_menu .menu_items {
667 margin-top: 10px;
667 margin-top: 10px;
668 margin-left:-6px;
668 margin-left:-6px;
669 width: 150px;
669 width: 150px;
670 position: absolute;
670 position: absolute;
671 background-color: #FFF;
671 background-color: #FFF;
672 background: none repeat scroll 0 0 #FFFFFF;
672 background: none repeat scroll 0 0 #FFFFFF;
673 border-color: #003367 #666666 #666666;
673 border-color: #003367 #666666 #666666;
674 border-right: 1px solid #666666;
674 border-right: 1px solid #666666;
675 border-style: solid;
675 border-style: solid;
676 border-width: 1px;
676 border-width: 1px;
677 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
677 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
678 border-top-style: none;
678 border-top-style: none;
679 }
679 }
680
680
681 .quick_repo_menu .menu_items li {
681 .quick_repo_menu .menu_items li {
682 padding: 0 !important;
682 padding: 0 !important;
683 }
683 }
684
684
685 .quick_repo_menu .menu_items a {
685 .quick_repo_menu .menu_items a {
686 display: block;
686 display: block;
687 padding: 4px 12px 4px 8px;
687 padding: 4px 12px 4px 8px;
688 }
688 }
689
689
690 .quick_repo_menu .menu_items a:hover {
690 .quick_repo_menu .menu_items a:hover {
691 background-color: #EEE;
691 background-color: #EEE;
692 text-decoration: none;
692 text-decoration: none;
693 }
693 }
694
694
695 .quick_repo_menu .menu_items .icon img {
695 .quick_repo_menu .menu_items .icon img {
696 margin-bottom: -2px;
696 margin-bottom: -2px;
697 }
697 }
698
698
699 .quick_repo_menu .menu_items.hidden {
699 .quick_repo_menu .menu_items.hidden {
700 display: none;
700 display: none;
701 }
701 }
702
702
703 #content #left {
703 #content #left {
704 left: 0;
704 left: 0;
705 width: 280px;
705 width: 280px;
706 position: absolute;
706 position: absolute;
707 }
707 }
708
708
709 #content #right {
709 #content #right {
710 margin: 0 60px 10px 290px;
710 margin: 0 60px 10px 290px;
711 }
711 }
712
712
713 #content div.box {
713 #content div.box {
714 clear: both;
714 clear: both;
715 overflow: hidden;
715 overflow: hidden;
716 background: #fff;
716 background: #fff;
717 margin: 0 0 10px;
717 margin: 0 0 10px;
718 padding: 0 0 10px;
718 padding: 0 0 10px;
719 -webkit-border-radius: 4px 4px 4px 4px;
719 -webkit-border-radius: 4px 4px 4px 4px;
720 -khtml-border-radius: 4px 4px 4px 4px;
720 -khtml-border-radius: 4px 4px 4px 4px;
721 -moz-border-radius: 4px 4px 4px 4px;
721 -moz-border-radius: 4px 4px 4px 4px;
722 border-radius: 4px 4px 4px 4px;
722 border-radius: 4px 4px 4px 4px;
723 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
723 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
724 }
724 }
725
725
726 #content div.box-left {
726 #content div.box-left {
727 width: 49%;
727 width: 49%;
728 clear: none;
728 clear: none;
729 float: left;
729 float: left;
730 margin: 0 0 10px;
730 margin: 0 0 10px;
731 }
731 }
732
732
733 #content div.box-right {
733 #content div.box-right {
734 width: 49%;
734 width: 49%;
735 clear: none;
735 clear: none;
736 float: right;
736 float: right;
737 margin: 0 0 10px;
737 margin: 0 0 10px;
738 }
738 }
739
739
740 #content div.box div.title {
740 #content div.box div.title {
741 clear: both;
741 clear: both;
742 overflow: hidden;
742 overflow: hidden;
743 background-color: #eedc94;
743 background-color: #eedc94;
744 background-repeat: repeat-x;
744 background-repeat: repeat-x;
745 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
745 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
746 to(#eedc94) );
746 to(#eedc94) );
747 background-image: -moz-linear-gradient(top, #003b76, #00376e);
747 background-image: -moz-linear-gradient(top, #003b76, #00376e);
748 background-image: -ms-linear-gradient(top, #003b76, #00376e);
748 background-image: -ms-linear-gradient(top, #003b76, #00376e);
749 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
749 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
750 color-stop(100%, #00376e) );
750 color-stop(100%, #00376e) );
751 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
751 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
752 background-image: -o-linear-gradient(top, #003b76, #00376e) );
752 background-image: -o-linear-gradient(top, #003b76, #00376e) );
753 background-image: linear-gradient(top, #003b76, #00376e);
753 background-image: linear-gradient(top, #003b76, #00376e);
754 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
754 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
755 endColorstr='#00376e', GradientType=0 );
755 endColorstr='#00376e', GradientType=0 );
756 margin: 0 0 20px;
756 margin: 0 0 20px;
757 padding: 0;
757 padding: 0;
758 }
758 }
759
759
760 #content div.box div.title h5 {
760 #content div.box div.title h5 {
761 float: left;
761 float: left;
762 border: none;
762 border: none;
763 color: #fff;
763 color: #fff;
764 text-transform: uppercase;
764 text-transform: uppercase;
765 margin: 0;
765 margin: 0;
766 padding: 11px 0 11px 10px;
766 padding: 11px 0 11px 10px;
767 }
767 }
768
768
769 #content div.box div.title .link-white{
769 #content div.box div.title .link-white{
770 color: #FFFFFF;
770 color: #FFFFFF;
771 }
771 }
772
772
773 #content div.box div.title ul.links li {
773 #content div.box div.title ul.links li {
774 list-style: none;
774 list-style: none;
775 float: left;
775 float: left;
776 margin: 0;
776 margin: 0;
777 padding: 0;
777 padding: 0;
778 }
778 }
779
779
780 #content div.box div.title ul.links li a {
780 #content div.box div.title ul.links li a {
781 border-left: 1px solid #316293;
781 border-left: 1px solid #316293;
782 color: #FFFFFF;
782 color: #FFFFFF;
783 display: block;
783 display: block;
784 float: left;
784 float: left;
785 font-size: 13px;
785 font-size: 13px;
786 font-weight: 700;
786 font-weight: 700;
787 height: 1%;
787 height: 1%;
788 margin: 0;
788 margin: 0;
789 padding: 11px 22px 12px;
789 padding: 11px 22px 12px;
790 text-decoration: none;
790 text-decoration: none;
791 }
791 }
792
792
793 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
793 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
794 {
794 {
795 clear: both;
795 clear: both;
796 overflow: hidden;
796 overflow: hidden;
797 border-bottom: 1px solid #DDD;
797 border-bottom: 1px solid #DDD;
798 margin: 10px 20px;
798 margin: 10px 20px;
799 padding: 0 0 15px;
799 padding: 0 0 15px;
800 }
800 }
801
801
802 #content div.box p {
802 #content div.box p {
803 color: #5f5f5f;
803 color: #5f5f5f;
804 font-size: 12px;
804 font-size: 12px;
805 line-height: 150%;
805 line-height: 150%;
806 margin: 0 24px 10px;
806 margin: 0 24px 10px;
807 padding: 0;
807 padding: 0;
808 }
808 }
809
809
810 #content div.box blockquote {
810 #content div.box blockquote {
811 border-left: 4px solid #DDD;
811 border-left: 4px solid #DDD;
812 color: #5f5f5f;
812 color: #5f5f5f;
813 font-size: 11px;
813 font-size: 11px;
814 line-height: 150%;
814 line-height: 150%;
815 margin: 0 34px;
815 margin: 0 34px;
816 padding: 0 0 0 14px;
816 padding: 0 0 0 14px;
817 }
817 }
818
818
819 #content div.box blockquote p {
819 #content div.box blockquote p {
820 margin: 10px 0;
820 margin: 10px 0;
821 padding: 0;
821 padding: 0;
822 }
822 }
823
823
824 #content div.box dl {
824 #content div.box dl {
825 margin: 10px 0px;
825 margin: 10px 0px;
826 }
826 }
827
827
828 #content div.box dt {
828 #content div.box dt {
829 font-size: 12px;
829 font-size: 12px;
830 margin: 0;
830 margin: 0;
831 }
831 }
832
832
833 #content div.box dd {
833 #content div.box dd {
834 font-size: 12px;
834 font-size: 12px;
835 margin: 0;
835 margin: 0;
836 padding: 8px 0 8px 15px;
836 padding: 8px 0 8px 15px;
837 }
837 }
838
838
839 #content div.box li {
839 #content div.box li {
840 font-size: 12px;
840 font-size: 12px;
841 padding: 4px 0;
841 padding: 4px 0;
842 }
842 }
843
843
844 #content div.box ul.disc,#content div.box ul.circle {
844 #content div.box ul.disc,#content div.box ul.circle {
845 margin: 10px 24px 10px 38px;
845 margin: 10px 24px 10px 38px;
846 }
846 }
847
847
848 #content div.box ul.square {
848 #content div.box ul.square {
849 margin: 10px 24px 10px 40px;
849 margin: 10px 24px 10px 40px;
850 }
850 }
851
851
852 #content div.box img.left {
852 #content div.box img.left {
853 border: none;
853 border: none;
854 float: left;
854 float: left;
855 margin: 10px 10px 10px 0;
855 margin: 10px 10px 10px 0;
856 }
856 }
857
857
858 #content div.box img.right {
858 #content div.box img.right {
859 border: none;
859 border: none;
860 float: right;
860 float: right;
861 margin: 10px 0 10px 10px;
861 margin: 10px 0 10px 10px;
862 }
862 }
863
863
864 #content div.box div.messages {
864 #content div.box div.messages {
865 clear: both;
865 clear: both;
866 overflow: hidden;
866 overflow: hidden;
867 margin: 0 20px;
867 margin: 0 20px;
868 padding: 0;
868 padding: 0;
869 }
869 }
870
870
871 #content div.box div.message {
871 #content div.box div.message {
872 clear: both;
872 clear: both;
873 overflow: hidden;
873 overflow: hidden;
874 margin: 0;
874 margin: 0;
875 padding: 10px 0;
875 padding: 10px 0;
876 }
876 }
877
877
878 #content div.box div.message a {
878 #content div.box div.message a {
879 font-weight: 400 !important;
879 font-weight: 400 !important;
880 }
880 }
881
881
882 #content div.box div.message div.image {
882 #content div.box div.message div.image {
883 float: left;
883 float: left;
884 margin: 9px 0 0 5px;
884 margin: 9px 0 0 5px;
885 padding: 6px;
885 padding: 6px;
886 }
886 }
887
887
888 #content div.box div.message div.image img {
888 #content div.box div.message div.image img {
889 vertical-align: middle;
889 vertical-align: middle;
890 margin: 0;
890 margin: 0;
891 }
891 }
892
892
893 #content div.box div.message div.text {
893 #content div.box div.message div.text {
894 float: left;
894 float: left;
895 margin: 0;
895 margin: 0;
896 padding: 9px 6px;
896 padding: 9px 6px;
897 }
897 }
898
898
899 #content div.box div.message div.dismiss a {
899 #content div.box div.message div.dismiss a {
900 height: 16px;
900 height: 16px;
901 width: 16px;
901 width: 16px;
902 display: block;
902 display: block;
903 background: url("../images/icons/cross.png") no-repeat;
903 background: url("../images/icons/cross.png") no-repeat;
904 margin: 15px 14px 0 0;
904 margin: 15px 14px 0 0;
905 padding: 0;
905 padding: 0;
906 }
906 }
907
907
908 #content div.box div.message div.text h1,#content div.box div.message div.text h2,#content div.box div.message div.text h3,#content div.box div.message div.text h4,#content div.box div.message div.text h5,#content div.box div.message div.text h6
908 #content div.box div.message div.text h1,#content div.box div.message div.text h2,#content div.box div.message div.text h3,#content div.box div.message div.text h4,#content div.box div.message div.text h5,#content div.box div.message div.text h6
909 {
909 {
910 border: none;
910 border: none;
911 margin: 0;
911 margin: 0;
912 padding: 0;
912 padding: 0;
913 }
913 }
914
914
915 #content div.box div.message div.text span {
915 #content div.box div.message div.text span {
916 height: 1%;
916 height: 1%;
917 display: block;
917 display: block;
918 margin: 0;
918 margin: 0;
919 padding: 5px 0 0;
919 padding: 5px 0 0;
920 }
920 }
921
921
922 #content div.box div.message-error {
922 #content div.box div.message-error {
923 height: 1%;
923 height: 1%;
924 clear: both;
924 clear: both;
925 overflow: hidden;
925 overflow: hidden;
926 background: #FBE3E4;
926 background: #FBE3E4;
927 border: 1px solid #FBC2C4;
927 border: 1px solid #FBC2C4;
928 color: #860006;
928 color: #860006;
929 }
929 }
930
930
931 #content div.box div.message-error h6 {
931 #content div.box div.message-error h6 {
932 color: #860006;
932 color: #860006;
933 }
933 }
934
934
935 #content div.box div.message-warning {
935 #content div.box div.message-warning {
936 height: 1%;
936 height: 1%;
937 clear: both;
937 clear: both;
938 overflow: hidden;
938 overflow: hidden;
939 background: #FFF6BF;
939 background: #FFF6BF;
940 border: 1px solid #FFD324;
940 border: 1px solid #FFD324;
941 color: #5f5200;
941 color: #5f5200;
942 }
942 }
943
943
944 #content div.box div.message-warning h6 {
944 #content div.box div.message-warning h6 {
945 color: #5f5200;
945 color: #5f5200;
946 }
946 }
947
947
948 #content div.box div.message-notice {
948 #content div.box div.message-notice {
949 height: 1%;
949 height: 1%;
950 clear: both;
950 clear: both;
951 overflow: hidden;
951 overflow: hidden;
952 background: #8FBDE0;
952 background: #8FBDE0;
953 border: 1px solid #6BACDE;
953 border: 1px solid #6BACDE;
954 color: #003863;
954 color: #003863;
955 }
955 }
956
956
957 #content div.box div.message-notice h6 {
957 #content div.box div.message-notice h6 {
958 color: #003863;
958 color: #003863;
959 }
959 }
960
960
961 #content div.box div.message-success {
961 #content div.box div.message-success {
962 height: 1%;
962 height: 1%;
963 clear: both;
963 clear: both;
964 overflow: hidden;
964 overflow: hidden;
965 background: #E6EFC2;
965 background: #E6EFC2;
966 border: 1px solid #C6D880;
966 border: 1px solid #C6D880;
967 color: #4e6100;
967 color: #4e6100;
968 }
968 }
969
969
970 #content div.box div.message-success h6 {
970 #content div.box div.message-success h6 {
971 color: #4e6100;
971 color: #4e6100;
972 }
972 }
973
973
974 #content div.box div.form div.fields div.field {
974 #content div.box div.form div.fields div.field {
975 height: 1%;
975 height: 1%;
976 border-bottom: 1px solid #DDD;
976 border-bottom: 1px solid #DDD;
977 clear: both;
977 clear: both;
978 margin: 0;
978 margin: 0;
979 padding: 10px 0;
979 padding: 10px 0;
980 }
980 }
981
981
982 #content div.box div.form div.fields div.field-first {
982 #content div.box div.form div.fields div.field-first {
983 padding: 0 0 10px;
983 padding: 0 0 10px;
984 }
984 }
985
985
986 #content div.box div.form div.fields div.field-noborder {
986 #content div.box div.form div.fields div.field-noborder {
987 border-bottom: 0 !important;
987 border-bottom: 0 !important;
988 }
988 }
989
989
990 #content div.box div.form div.fields div.field span.error-message {
990 #content div.box div.form div.fields div.field span.error-message {
991 height: 1%;
991 height: 1%;
992 display: inline-block;
992 display: inline-block;
993 color: red;
993 color: red;
994 margin: 8px 0 0 4px;
994 margin: 8px 0 0 4px;
995 padding: 0;
995 padding: 0;
996 }
996 }
997
997
998 #content div.box div.form div.fields div.field span.success {
998 #content div.box div.form div.fields div.field span.success {
999 height: 1%;
999 height: 1%;
1000 display: block;
1000 display: block;
1001 color: #316309;
1001 color: #316309;
1002 margin: 8px 0 0;
1002 margin: 8px 0 0;
1003 padding: 0;
1003 padding: 0;
1004 }
1004 }
1005
1005
1006 #content div.box div.form div.fields div.field div.label {
1006 #content div.box div.form div.fields div.field div.label {
1007 left: 70px;
1007 left: 70px;
1008 width: 155px;
1008 width: 155px;
1009 position: absolute;
1009 position: absolute;
1010 margin: 0;
1010 margin: 0;
1011 padding: 5px 0 0 0px;
1011 padding: 5px 0 0 0px;
1012 }
1012 }
1013
1013
1014 #content div.box div.form div.fields div.field div.label-summary {
1014 #content div.box div.form div.fields div.field div.label-summary {
1015 left: 30px;
1015 left: 30px;
1016 width: 155px;
1016 width: 155px;
1017 position: absolute;
1017 position: absolute;
1018 margin: 0;
1018 margin: 0;
1019 padding: 0px 0 0 0px;
1019 padding: 0px 0 0 0px;
1020 }
1020 }
1021
1021
1022 #content div.box-left div.form div.fields div.field div.label,
1022 #content div.box-left div.form div.fields div.field div.label,
1023 #content div.box-right div.form div.fields div.field div.label,
1023 #content div.box-right div.form div.fields div.field div.label,
1024 #content div.box-left div.form div.fields div.field div.label,
1024 #content div.box-left div.form div.fields div.field div.label,
1025 #content div.box-left div.form div.fields div.field div.label-summary,
1025 #content div.box-left div.form div.fields div.field div.label-summary,
1026 #content div.box-right div.form div.fields div.field div.label-summary,
1026 #content div.box-right div.form div.fields div.field div.label-summary,
1027 #content div.box-left div.form div.fields div.field div.label-summary
1027 #content div.box-left div.form div.fields div.field div.label-summary
1028 {
1028 {
1029 clear: both;
1029 clear: both;
1030 overflow: hidden;
1030 overflow: hidden;
1031 left: 0;
1031 left: 0;
1032 width: auto;
1032 width: auto;
1033 position: relative;
1033 position: relative;
1034 margin: 0;
1034 margin: 0;
1035 padding: 0 0 8px;
1035 padding: 0 0 8px;
1036 }
1036 }
1037
1037
1038 #content div.box div.form div.fields div.field div.label-select {
1038 #content div.box div.form div.fields div.field div.label-select {
1039 padding: 5px 0 0 5px;
1039 padding: 5px 0 0 5px;
1040 }
1040 }
1041
1041
1042 #content div.box-left div.form div.fields div.field div.label-select,
1042 #content div.box-left div.form div.fields div.field div.label-select,
1043 #content div.box-right div.form div.fields div.field div.label-select
1043 #content div.box-right div.form div.fields div.field div.label-select
1044 {
1044 {
1045 padding: 0 0 8px;
1045 padding: 0 0 8px;
1046 }
1046 }
1047
1047
1048 #content div.box-left div.form div.fields div.field div.label-textarea,
1048 #content div.box-left div.form div.fields div.field div.label-textarea,
1049 #content div.box-right div.form div.fields div.field div.label-textarea
1049 #content div.box-right div.form div.fields div.field div.label-textarea
1050 {
1050 {
1051 padding: 0 0 8px !important;
1051 padding: 0 0 8px !important;
1052 }
1052 }
1053
1053
1054 #content div.box div.form div.fields div.field div.label label,div.label label
1054 #content div.box div.form div.fields div.field div.label label,div.label label
1055 {
1055 {
1056 color: #393939;
1056 color: #393939;
1057 font-weight: 700;
1057 font-weight: 700;
1058 }
1058 }
1059 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1059 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1060 {
1060 {
1061 color: #393939;
1061 color: #393939;
1062 font-weight: 700;
1062 font-weight: 700;
1063 }
1063 }
1064 #content div.box div.form div.fields div.field div.input {
1064 #content div.box div.form div.fields div.field div.input {
1065 margin: 0 0 0 200px;
1065 margin: 0 0 0 200px;
1066 }
1066 }
1067
1067
1068 #content div.box div.form div.fields div.field div.input.summary {
1068 #content div.box div.form div.fields div.field div.input.summary {
1069 margin: 0 0 0 110px;
1069 margin: 0 0 0 110px;
1070 }
1070 }
1071 #content div.box div.form div.fields div.field div.input.summary-short {
1071 #content div.box div.form div.fields div.field div.input.summary-short {
1072 margin: 0 0 0 110px;
1072 margin: 0 0 0 110px;
1073 }
1073 }
1074 #content div.box div.form div.fields div.field div.file {
1074 #content div.box div.form div.fields div.field div.file {
1075 margin: 0 0 0 200px;
1075 margin: 0 0 0 200px;
1076 }
1076 }
1077
1077
1078 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1078 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1079 {
1079 {
1080 margin: 0 0 0 0px;
1080 margin: 0 0 0 0px;
1081 }
1081 }
1082
1082
1083 #content div.box div.form div.fields div.field div.input input {
1083 #content div.box div.form div.fields div.field div.input input {
1084 background: #FFF;
1084 background: #FFF;
1085 border-top: 1px solid #b3b3b3;
1085 border-top: 1px solid #b3b3b3;
1086 border-left: 1px solid #b3b3b3;
1086 border-left: 1px solid #b3b3b3;
1087 border-right: 1px solid #eaeaea;
1087 border-right: 1px solid #eaeaea;
1088 border-bottom: 1px solid #eaeaea;
1088 border-bottom: 1px solid #eaeaea;
1089 color: #000;
1089 color: #000;
1090 font-size: 11px;
1090 font-size: 11px;
1091 margin: 0;
1091 margin: 0;
1092 padding: 7px 7px 6px;
1092 padding: 7px 7px 6px;
1093 }
1093 }
1094
1094
1095 #content div.box div.form div.fields div.field div.input input#clone_url{
1095 #content div.box div.form div.fields div.field div.input input#clone_url{
1096 font-size: 16px;
1096 font-size: 16px;
1097 padding: 2px 7px 2px;
1097 padding: 2px 7px 2px;
1098 }
1098 }
1099
1099
1100 #content div.box div.form div.fields div.field div.file input {
1100 #content div.box div.form div.fields div.field div.file input {
1101 background: none repeat scroll 0 0 #FFFFFF;
1101 background: none repeat scroll 0 0 #FFFFFF;
1102 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1102 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1103 border-style: solid;
1103 border-style: solid;
1104 border-width: 1px;
1104 border-width: 1px;
1105 color: #000000;
1105 color: #000000;
1106 font-size: 11px;
1106 font-size: 11px;
1107 margin: 0;
1107 margin: 0;
1108 padding: 7px 7px 6px;
1108 padding: 7px 7px 6px;
1109 }
1109 }
1110
1110
1111 #content div.box div.form div.fields div.field div.input input.small {
1111 #content div.box div.form div.fields div.field div.input input.small {
1112 width: 30%;
1112 width: 30%;
1113 }
1113 }
1114
1114
1115 #content div.box div.form div.fields div.field div.input input.medium {
1115 #content div.box div.form div.fields div.field div.input input.medium {
1116 width: 55%;
1116 width: 55%;
1117 }
1117 }
1118
1118
1119 #content div.box div.form div.fields div.field div.input input.large {
1119 #content div.box div.form div.fields div.field div.input input.large {
1120 width: 85%;
1120 width: 85%;
1121 }
1121 }
1122
1122
1123 #content div.box div.form div.fields div.field div.input input.date {
1123 #content div.box div.form div.fields div.field div.input input.date {
1124 width: 177px;
1124 width: 177px;
1125 }
1125 }
1126
1126
1127 #content div.box div.form div.fields div.field div.input input.button {
1127 #content div.box div.form div.fields div.field div.input input.button {
1128 background: #D4D0C8;
1128 background: #D4D0C8;
1129 border-top: 1px solid #FFF;
1129 border-top: 1px solid #FFF;
1130 border-left: 1px solid #FFF;
1130 border-left: 1px solid #FFF;
1131 border-right: 1px solid #404040;
1131 border-right: 1px solid #404040;
1132 border-bottom: 1px solid #404040;
1132 border-bottom: 1px solid #404040;
1133 color: #000;
1133 color: #000;
1134 margin: 0;
1134 margin: 0;
1135 padding: 4px 8px;
1135 padding: 4px 8px;
1136 }
1136 }
1137
1137
1138 #content div.box div.form div.fields div.field div.textarea {
1138 #content div.box div.form div.fields div.field div.textarea {
1139 border-top: 1px solid #b3b3b3;
1139 border-top: 1px solid #b3b3b3;
1140 border-left: 1px solid #b3b3b3;
1140 border-left: 1px solid #b3b3b3;
1141 border-right: 1px solid #eaeaea;
1141 border-right: 1px solid #eaeaea;
1142 border-bottom: 1px solid #eaeaea;
1142 border-bottom: 1px solid #eaeaea;
1143 margin: 0 0 0 200px;
1143 margin: 0 0 0 200px;
1144 padding: 10px;
1144 padding: 10px;
1145 }
1145 }
1146
1146
1147 #content div.box div.form div.fields div.field div.textarea-editor {
1147 #content div.box div.form div.fields div.field div.textarea-editor {
1148 border: 1px solid #ddd;
1148 border: 1px solid #ddd;
1149 padding: 0;
1149 padding: 0;
1150 }
1150 }
1151
1151
1152 #content div.box div.form div.fields div.field div.textarea textarea {
1152 #content div.box div.form div.fields div.field div.textarea textarea {
1153 width: 100%;
1153 width: 100%;
1154 height: 220px;
1154 height: 220px;
1155 overflow: hidden;
1155 overflow: hidden;
1156 background: #FFF;
1156 background: #FFF;
1157 color: #000;
1157 color: #000;
1158 font-size: 11px;
1158 font-size: 11px;
1159 outline: none;
1159 outline: none;
1160 border-width: 0;
1160 border-width: 0;
1161 margin: 0;
1161 margin: 0;
1162 padding: 0;
1162 padding: 0;
1163 }
1163 }
1164
1164
1165 #content div.box-left div.form div.fields div.field div.textarea textarea,#content div.box-right div.form div.fields div.field div.textarea textarea
1165 #content div.box-left div.form div.fields div.field div.textarea textarea,#content div.box-right div.form div.fields div.field div.textarea textarea
1166 {
1166 {
1167 width: 100%;
1167 width: 100%;
1168 height: 100px;
1168 height: 100px;
1169 }
1169 }
1170
1170
1171 #content div.box div.form div.fields div.field div.textarea table {
1171 #content div.box div.form div.fields div.field div.textarea table {
1172 width: 100%;
1172 width: 100%;
1173 border: none;
1173 border: none;
1174 margin: 0;
1174 margin: 0;
1175 padding: 0;
1175 padding: 0;
1176 }
1176 }
1177
1177
1178 #content div.box div.form div.fields div.field div.textarea table td {
1178 #content div.box div.form div.fields div.field div.textarea table td {
1179 background: #DDD;
1179 background: #DDD;
1180 border: none;
1180 border: none;
1181 padding: 0;
1181 padding: 0;
1182 }
1182 }
1183
1183
1184 #content div.box div.form div.fields div.field div.textarea table td table
1184 #content div.box div.form div.fields div.field div.textarea table td table
1185 {
1185 {
1186 width: auto;
1186 width: auto;
1187 border: none;
1187 border: none;
1188 margin: 0;
1188 margin: 0;
1189 padding: 0;
1189 padding: 0;
1190 }
1190 }
1191
1191
1192 #content div.box div.form div.fields div.field div.textarea table td table td
1192 #content div.box div.form div.fields div.field div.textarea table td table td
1193 {
1193 {
1194 font-size: 11px;
1194 font-size: 11px;
1195 padding: 5px 5px 5px 0;
1195 padding: 5px 5px 5px 0;
1196 }
1196 }
1197
1197
1198 #content div.box div.form div.fields div.field input[type=text]:focus,#content div.box div.form div.fields div.field input[type=password]:focus,#content div.box div.form div.fields div.field input[type=file]:focus,#content div.box div.form div.fields div.field textarea:focus,#content div.box div.form div.fields div.field select:focus
1198 #content div.box div.form div.fields div.field input[type=text]:focus,#content div.box div.form div.fields div.field input[type=password]:focus,#content div.box div.form div.fields div.field input[type=file]:focus,#content div.box div.form div.fields div.field textarea:focus,#content div.box div.form div.fields div.field select:focus
1199 {
1199 {
1200 background: #f6f6f6;
1200 background: #f6f6f6;
1201 border-color: #666;
1201 border-color: #666;
1202 }
1202 }
1203
1203
1204 div.form div.fields div.field div.button {
1204 div.form div.fields div.field div.button {
1205 margin: 0;
1205 margin: 0;
1206 padding: 0 0 0 8px;
1206 padding: 0 0 0 8px;
1207 }
1207 }
1208 #content div.box table.noborder {
1208 #content div.box table.noborder {
1209 border: 1px solid transparent;
1209 border: 1px solid transparent;
1210 }
1210 }
1211
1211
1212 #content div.box table {
1212 #content div.box table {
1213 width: 100%;
1213 width: 100%;
1214 border-collapse: separate;
1214 border-collapse: separate;
1215 margin: 0;
1215 margin: 0;
1216 padding: 0;
1216 padding: 0;
1217 border: 1px solid #eee;
1217 border: 1px solid #eee;
1218 -webkit-border-radius: 4px;
1218 -webkit-border-radius: 4px;
1219 -moz-border-radius: 4px;
1219 -moz-border-radius: 4px;
1220 border-radius: 4px;
1220 border-radius: 4px;
1221 }
1221 }
1222
1222
1223 #content div.box table th {
1223 #content div.box table th {
1224 background: #eee;
1224 background: #eee;
1225 border-bottom: 1px solid #ddd;
1225 border-bottom: 1px solid #ddd;
1226 padding: 5px 0px 5px 5px;
1226 padding: 5px 0px 5px 5px;
1227 }
1227 }
1228
1228
1229 #content div.box table th.left {
1229 #content div.box table th.left {
1230 text-align: left;
1230 text-align: left;
1231 }
1231 }
1232
1232
1233 #content div.box table th.right {
1233 #content div.box table th.right {
1234 text-align: right;
1234 text-align: right;
1235 }
1235 }
1236
1236
1237 #content div.box table th.center {
1237 #content div.box table th.center {
1238 text-align: center;
1238 text-align: center;
1239 }
1239 }
1240
1240
1241 #content div.box table th.selected {
1241 #content div.box table th.selected {
1242 vertical-align: middle;
1242 vertical-align: middle;
1243 padding: 0;
1243 padding: 0;
1244 }
1244 }
1245
1245
1246 #content div.box table td {
1246 #content div.box table td {
1247 background: #fff;
1247 background: #fff;
1248 border-bottom: 1px solid #cdcdcd;
1248 border-bottom: 1px solid #cdcdcd;
1249 vertical-align: middle;
1249 vertical-align: middle;
1250 padding: 5px;
1250 padding: 5px;
1251 }
1251 }
1252
1252
1253 #content div.box table tr.selected td {
1253 #content div.box table tr.selected td {
1254 background: #FFC;
1254 background: #FFC;
1255 }
1255 }
1256
1256
1257 #content div.box table td.selected {
1257 #content div.box table td.selected {
1258 width: 3%;
1258 width: 3%;
1259 text-align: center;
1259 text-align: center;
1260 vertical-align: middle;
1260 vertical-align: middle;
1261 padding: 0;
1261 padding: 0;
1262 }
1262 }
1263
1263
1264 #content div.box table td.action {
1264 #content div.box table td.action {
1265 width: 45%;
1265 width: 45%;
1266 text-align: left;
1266 text-align: left;
1267 }
1267 }
1268
1268
1269 #content div.box table td.date {
1269 #content div.box table td.date {
1270 width: 33%;
1270 width: 33%;
1271 text-align: center;
1271 text-align: center;
1272 }
1272 }
1273
1273
1274 #content div.box div.action {
1274 #content div.box div.action {
1275 float: right;
1275 float: right;
1276 background: #FFF;
1276 background: #FFF;
1277 text-align: right;
1277 text-align: right;
1278 margin: 10px 0 0;
1278 margin: 10px 0 0;
1279 padding: 0;
1279 padding: 0;
1280 }
1280 }
1281
1281
1282 #content div.box div.action select {
1282 #content div.box div.action select {
1283 font-size: 11px;
1283 font-size: 11px;
1284 margin: 0;
1284 margin: 0;
1285 }
1285 }
1286
1286
1287 #content div.box div.action .ui-selectmenu {
1287 #content div.box div.action .ui-selectmenu {
1288 margin: 0;
1288 margin: 0;
1289 padding: 0;
1289 padding: 0;
1290 }
1290 }
1291
1291
1292 #content div.box div.pagination {
1292 #content div.box div.pagination {
1293 height: 1%;
1293 height: 1%;
1294 clear: both;
1294 clear: both;
1295 overflow: hidden;
1295 overflow: hidden;
1296 margin: 10px 0 0;
1296 margin: 10px 0 0;
1297 padding: 0;
1297 padding: 0;
1298 }
1298 }
1299
1299
1300 #content div.box div.pagination ul.pager {
1300 #content div.box div.pagination ul.pager {
1301 float: right;
1301 float: right;
1302 text-align: right;
1302 text-align: right;
1303 margin: 0;
1303 margin: 0;
1304 padding: 0;
1304 padding: 0;
1305 }
1305 }
1306
1306
1307 #content div.box div.pagination ul.pager li {
1307 #content div.box div.pagination ul.pager li {
1308 height: 1%;
1308 height: 1%;
1309 float: left;
1309 float: left;
1310 list-style: none;
1310 list-style: none;
1311 background: #ebebeb url("../images/pager.png") repeat-x;
1311 background: #ebebeb url("../images/pager.png") repeat-x;
1312 border-top: 1px solid #dedede;
1312 border-top: 1px solid #dedede;
1313 border-left: 1px solid #cfcfcf;
1313 border-left: 1px solid #cfcfcf;
1314 border-right: 1px solid #c4c4c4;
1314 border-right: 1px solid #c4c4c4;
1315 border-bottom: 1px solid #c4c4c4;
1315 border-bottom: 1px solid #c4c4c4;
1316 color: #4A4A4A;
1316 color: #4A4A4A;
1317 font-weight: 700;
1317 font-weight: 700;
1318 margin: 0 0 0 4px;
1318 margin: 0 0 0 4px;
1319 padding: 0;
1319 padding: 0;
1320 }
1320 }
1321
1321
1322 #content div.box div.pagination ul.pager li.separator {
1322 #content div.box div.pagination ul.pager li.separator {
1323 padding: 6px;
1323 padding: 6px;
1324 }
1324 }
1325
1325
1326 #content div.box div.pagination ul.pager li.current {
1326 #content div.box div.pagination ul.pager li.current {
1327 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1327 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1328 border-top: 1px solid #ccc;
1328 border-top: 1px solid #ccc;
1329 border-left: 1px solid #bebebe;
1329 border-left: 1px solid #bebebe;
1330 border-right: 1px solid #b1b1b1;
1330 border-right: 1px solid #b1b1b1;
1331 border-bottom: 1px solid #afafaf;
1331 border-bottom: 1px solid #afafaf;
1332 color: #515151;
1332 color: #515151;
1333 padding: 6px;
1333 padding: 6px;
1334 }
1334 }
1335
1335
1336 #content div.box div.pagination ul.pager li a {
1336 #content div.box div.pagination ul.pager li a {
1337 height: 1%;
1337 height: 1%;
1338 display: block;
1338 display: block;
1339 float: left;
1339 float: left;
1340 color: #515151;
1340 color: #515151;
1341 text-decoration: none;
1341 text-decoration: none;
1342 margin: 0;
1342 margin: 0;
1343 padding: 6px;
1343 padding: 6px;
1344 }
1344 }
1345
1345
1346 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1346 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1347 {
1347 {
1348 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1348 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1349 border-top: 1px solid #ccc;
1349 border-top: 1px solid #ccc;
1350 border-left: 1px solid #bebebe;
1350 border-left: 1px solid #bebebe;
1351 border-right: 1px solid #b1b1b1;
1351 border-right: 1px solid #b1b1b1;
1352 border-bottom: 1px solid #afafaf;
1352 border-bottom: 1px solid #afafaf;
1353 margin: -1px;
1353 margin: -1px;
1354 }
1354 }
1355
1355
1356 #content div.box div.pagination-wh {
1356 #content div.box div.pagination-wh {
1357 height: 1%;
1357 height: 1%;
1358 clear: both;
1358 clear: both;
1359 overflow: hidden;
1359 overflow: hidden;
1360 text-align: right;
1360 text-align: right;
1361 margin: 10px 0 0;
1361 margin: 10px 0 0;
1362 padding: 0;
1362 padding: 0;
1363 }
1363 }
1364
1364
1365 #content div.box div.pagination-right {
1365 #content div.box div.pagination-right {
1366 float: right;
1366 float: right;
1367 }
1367 }
1368
1368
1369 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1369 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1370 {
1370 {
1371 height: 1%;
1371 height: 1%;
1372 float: left;
1372 float: left;
1373 background: #ebebeb url("../images/pager.png") repeat-x;
1373 background: #ebebeb url("../images/pager.png") repeat-x;
1374 border-top: 1px solid #dedede;
1374 border-top: 1px solid #dedede;
1375 border-left: 1px solid #cfcfcf;
1375 border-left: 1px solid #cfcfcf;
1376 border-right: 1px solid #c4c4c4;
1376 border-right: 1px solid #c4c4c4;
1377 border-bottom: 1px solid #c4c4c4;
1377 border-bottom: 1px solid #c4c4c4;
1378 color: #4A4A4A;
1378 color: #4A4A4A;
1379 font-weight: 700;
1379 font-weight: 700;
1380 margin: 0 0 0 4px;
1380 margin: 0 0 0 4px;
1381 padding: 6px;
1381 padding: 6px;
1382 }
1382 }
1383
1383
1384 #content div.box div.pagination-wh span.pager_curpage {
1384 #content div.box div.pagination-wh span.pager_curpage {
1385 height: 1%;
1385 height: 1%;
1386 float: left;
1386 float: left;
1387 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1387 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1388 border-top: 1px solid #ccc;
1388 border-top: 1px solid #ccc;
1389 border-left: 1px solid #bebebe;
1389 border-left: 1px solid #bebebe;
1390 border-right: 1px solid #b1b1b1;
1390 border-right: 1px solid #b1b1b1;
1391 border-bottom: 1px solid #afafaf;
1391 border-bottom: 1px solid #afafaf;
1392 color: #515151;
1392 color: #515151;
1393 font-weight: 700;
1393 font-weight: 700;
1394 margin: 0 0 0 4px;
1394 margin: 0 0 0 4px;
1395 padding: 6px;
1395 padding: 6px;
1396 }
1396 }
1397
1397
1398 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1398 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1399 {
1399 {
1400 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1400 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1401 border-top: 1px solid #ccc;
1401 border-top: 1px solid #ccc;
1402 border-left: 1px solid #bebebe;
1402 border-left: 1px solid #bebebe;
1403 border-right: 1px solid #b1b1b1;
1403 border-right: 1px solid #b1b1b1;
1404 border-bottom: 1px solid #afafaf;
1404 border-bottom: 1px solid #afafaf;
1405 text-decoration: none;
1405 text-decoration: none;
1406 }
1406 }
1407
1407
1408 #content div.box div.traffic div.legend {
1408 #content div.box div.traffic div.legend {
1409 clear: both;
1409 clear: both;
1410 overflow: hidden;
1410 overflow: hidden;
1411 border-bottom: 1px solid #ddd;
1411 border-bottom: 1px solid #ddd;
1412 margin: 0 0 10px;
1412 margin: 0 0 10px;
1413 padding: 0 0 10px;
1413 padding: 0 0 10px;
1414 }
1414 }
1415
1415
1416 #content div.box div.traffic div.legend h6 {
1416 #content div.box div.traffic div.legend h6 {
1417 float: left;
1417 float: left;
1418 border: none;
1418 border: none;
1419 margin: 0;
1419 margin: 0;
1420 padding: 0;
1420 padding: 0;
1421 }
1421 }
1422
1422
1423 #content div.box div.traffic div.legend li {
1423 #content div.box div.traffic div.legend li {
1424 list-style: none;
1424 list-style: none;
1425 float: left;
1425 float: left;
1426 font-size: 11px;
1426 font-size: 11px;
1427 margin: 0;
1427 margin: 0;
1428 padding: 0 8px 0 4px;
1428 padding: 0 8px 0 4px;
1429 }
1429 }
1430
1430
1431 #content div.box div.traffic div.legend li.visits {
1431 #content div.box div.traffic div.legend li.visits {
1432 border-left: 12px solid #edc240;
1432 border-left: 12px solid #edc240;
1433 }
1433 }
1434
1434
1435 #content div.box div.traffic div.legend li.pageviews {
1435 #content div.box div.traffic div.legend li.pageviews {
1436 border-left: 12px solid #afd8f8;
1436 border-left: 12px solid #afd8f8;
1437 }
1437 }
1438
1438
1439 #content div.box div.traffic table {
1439 #content div.box div.traffic table {
1440 width: auto;
1440 width: auto;
1441 }
1441 }
1442
1442
1443 #content div.box div.traffic table td {
1443 #content div.box div.traffic table td {
1444 background: transparent;
1444 background: transparent;
1445 border: none;
1445 border: none;
1446 padding: 2px 3px 3px;
1446 padding: 2px 3px 3px;
1447 }
1447 }
1448
1448
1449 #content div.box div.traffic table td.legendLabel {
1449 #content div.box div.traffic table td.legendLabel {
1450 padding: 0 3px 2px;
1450 padding: 0 3px 2px;
1451 }
1451 }
1452
1452
1453 #summary {
1453 #summary {
1454
1454
1455 }
1455 }
1456
1456
1457 #summary .desc {
1457 #summary .desc {
1458 white-space: pre;
1458 white-space: pre;
1459 width: 100%;
1459 width: 100%;
1460 }
1460 }
1461
1461
1462 #summary .repo_name {
1462 #summary .repo_name {
1463 font-size: 1.6em;
1463 font-size: 1.6em;
1464 font-weight: bold;
1464 font-weight: bold;
1465 vertical-align: baseline;
1465 vertical-align: baseline;
1466 clear: right
1466 clear: right
1467 }
1467 }
1468
1468
1469 #footer {
1469 #footer {
1470 clear: both;
1470 clear: both;
1471 overflow: hidden;
1471 overflow: hidden;
1472 text-align: right;
1472 text-align: right;
1473 margin: 0;
1473 margin: 0;
1474 padding: 0 10px 4px;
1474 padding: 0 10px 4px;
1475 margin: -10px 0 0;
1475 margin: -10px 0 0;
1476 }
1476 }
1477
1477
1478 #footer div#footer-inner {
1478 #footer div#footer-inner {
1479 background-color: #eedc94; background-repeat : repeat-x;
1479 background-color: #eedc94; background-repeat : repeat-x;
1480 background-image : -khtml-gradient( linear, left top, left bottom,
1480 background-image : -khtml-gradient( linear, left top, left bottom,
1481 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1481 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1482 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1482 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1483 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1483 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1484 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1484 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1485 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1485 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1486 background-image : -o-linear-gradient( top, #003b76, #00376e));
1486 background-image : -o-linear-gradient( top, #003b76, #00376e));
1487 background-image : linear-gradient( top, #003b76, #00376e); filter :
1487 background-image : linear-gradient( top, #003b76, #00376e); filter :
1488 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1488 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1489 '#003b76', endColorstr = '#00376e', GradientType = 0);
1489 '#003b76', endColorstr = '#00376e', GradientType = 0);
1490 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1490 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1491 -webkit-border-radius: 4px 4px 4px 4px;
1491 -webkit-border-radius: 4px 4px 4px 4px;
1492 -khtml-border-radius: 4px 4px 4px 4px;
1492 -khtml-border-radius: 4px 4px 4px 4px;
1493 -moz-border-radius: 4px 4px 4px 4px;
1493 -moz-border-radius: 4px 4px 4px 4px;
1494 border-radius: 4px 4px 4px 4px;
1494 border-radius: 4px 4px 4px 4px;
1495 background-repeat: repeat-x;
1495 background-repeat: repeat-x;
1496 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1496 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1497 to(#eedc94) );
1497 to(#eedc94) );
1498 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1498 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1499 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1499 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1500 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1500 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1501 color-stop(100%, #00376e) );
1501 color-stop(100%, #00376e) );
1502 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1502 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1503 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1503 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1504 background-image: linear-gradient(top, #003b76, #00376e);
1504 background-image: linear-gradient(top, #003b76, #00376e);
1505 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1505 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1506 endColorstr='#00376e', GradientType=0 );
1506 endColorstr='#00376e', GradientType=0 );
1507 }
1507 }
1508
1508
1509 #footer div#footer-inner p {
1509 #footer div#footer-inner p {
1510 padding: 15px 25px 15px 0;
1510 padding: 15px 25px 15px 0;
1511 color: #FFF;
1511 color: #FFF;
1512 font-weight: 700;
1512 font-weight: 700;
1513 }
1513 }
1514
1514
1515 #footer div#footer-inner .footer-link {
1515 #footer div#footer-inner .footer-link {
1516 float: left;
1516 float: left;
1517 padding-left: 10px;
1517 padding-left: 10px;
1518 }
1518 }
1519
1519
1520 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1520 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1521 {
1521 {
1522 color: #FFF;
1522 color: #FFF;
1523 }
1523 }
1524
1524
1525 #login div.title {
1525 #login div.title {
1526 width: 420px;
1526 width: 420px;
1527 clear: both;
1527 clear: both;
1528 overflow: hidden;
1528 overflow: hidden;
1529 position: relative;
1529 position: relative;
1530 background-color: #eedc94; background-repeat : repeat-x;
1530 background-color: #eedc94; background-repeat : repeat-x;
1531 background-image : -khtml-gradient( linear, left top, left bottom,
1531 background-image : -khtml-gradient( linear, left top, left bottom,
1532 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1532 from( #fceec1), to( #eedc94)); background-image : -moz-linear-gradient(
1533 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1533 top, #003b76, #00376e); background-image : -ms-linear-gradient( top,
1534 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1534 #003b76, #00376e); background-image : -webkit-gradient( linear, left
1535 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1535 top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1536 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1536 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1537 background-image : -o-linear-gradient( top, #003b76, #00376e));
1537 background-image : -o-linear-gradient( top, #003b76, #00376e));
1538 background-image : linear-gradient( top, #003b76, #00376e); filter :
1538 background-image : linear-gradient( top, #003b76, #00376e); filter :
1539 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1539 progid : DXImageTransform.Microsoft.gradient ( startColorstr =
1540 '#003b76', endColorstr = '#00376e', GradientType = 0);
1540 '#003b76', endColorstr = '#00376e', GradientType = 0);
1541 margin: 0 auto;
1541 margin: 0 auto;
1542 padding: 0;
1542 padding: 0;
1543 background-repeat: repeat-x;
1543 background-repeat: repeat-x;
1544 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1544 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1545 to(#eedc94) );
1545 to(#eedc94) );
1546 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1546 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1547 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1547 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1548 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1548 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1549 color-stop(100%, #00376e) );
1549 color-stop(100%, #00376e) );
1550 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1550 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1551 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1551 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1552 background-image: linear-gradient(top, #003b76, #00376e);
1552 background-image: linear-gradient(top, #003b76, #00376e);
1553 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1553 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1554 endColorstr='#00376e', GradientType=0 );
1554 endColorstr='#00376e', GradientType=0 );
1555 }
1555 }
1556
1556
1557 #login div.inner {
1557 #login div.inner {
1558 width: 380px;
1558 width: 380px;
1559 background: #FFF url("../images/login.png") no-repeat top left;
1559 background: #FFF url("../images/login.png") no-repeat top left;
1560 border-top: none;
1560 border-top: none;
1561 border-bottom: none;
1561 border-bottom: none;
1562 margin: 0 auto;
1562 margin: 0 auto;
1563 padding: 20px;
1563 padding: 20px;
1564 }
1564 }
1565
1565
1566 #login div.form div.fields div.field div.label {
1566 #login div.form div.fields div.field div.label {
1567 width: 173px;
1567 width: 173px;
1568 float: left;
1568 float: left;
1569 text-align: right;
1569 text-align: right;
1570 margin: 2px 10px 0 0;
1570 margin: 2px 10px 0 0;
1571 padding: 5px 0 0 5px;
1571 padding: 5px 0 0 5px;
1572 }
1572 }
1573
1573
1574 #login div.form div.fields div.field div.input input {
1574 #login div.form div.fields div.field div.input input {
1575 width: 176px;
1575 width: 176px;
1576 background: #FFF;
1576 background: #FFF;
1577 border-top: 1px solid #b3b3b3;
1577 border-top: 1px solid #b3b3b3;
1578 border-left: 1px solid #b3b3b3;
1578 border-left: 1px solid #b3b3b3;
1579 border-right: 1px solid #eaeaea;
1579 border-right: 1px solid #eaeaea;
1580 border-bottom: 1px solid #eaeaea;
1580 border-bottom: 1px solid #eaeaea;
1581 color: #000;
1581 color: #000;
1582 font-size: 11px;
1582 font-size: 11px;
1583 margin: 0;
1583 margin: 0;
1584 padding: 7px 7px 6px;
1584 padding: 7px 7px 6px;
1585 }
1585 }
1586
1586
1587 #login div.form div.fields div.buttons {
1587 #login div.form div.fields div.buttons {
1588 clear: both;
1588 clear: both;
1589 overflow: hidden;
1589 overflow: hidden;
1590 border-top: 1px solid #DDD;
1590 border-top: 1px solid #DDD;
1591 text-align: right;
1591 text-align: right;
1592 margin: 0;
1592 margin: 0;
1593 padding: 10px 0 0;
1593 padding: 10px 0 0;
1594 }
1594 }
1595
1595
1596 #login div.form div.links {
1596 #login div.form div.links {
1597 clear: both;
1597 clear: both;
1598 overflow: hidden;
1598 overflow: hidden;
1599 margin: 10px 0 0;
1599 margin: 10px 0 0;
1600 padding: 0 0 2px;
1600 padding: 0 0 2px;
1601 }
1601 }
1602
1602
1603 #quick_login {
1603 #quick_login {
1604 top: 31px;
1604 top: 31px;
1605 background-color: rgb(0, 51, 103);
1605 background-color: rgb(0, 51, 103);
1606 z-index: 999;
1606 z-index: 999;
1607 height: 150px;
1607 height: 150px;
1608 position: absolute;
1608 position: absolute;
1609 margin-left: -16px;
1609 margin-left: -16px;
1610 width: 281px;
1610 width: 281px;
1611 -webkit-border-radius: 0px 0px 4px 4px;
1611 -webkit-border-radius: 0px 0px 4px 4px;
1612 -khtml-border-radius: 0px 0px 4px 4px;
1612 -khtml-border-radius: 0px 0px 4px 4px;
1613 -moz-border-radius: 0px 0px 4px 4px;
1613 -moz-border-radius: 0px 0px 4px 4px;
1614 border-radius: 0px 0px 4px 4px;
1614 border-radius: 0px 0px 4px 4px;
1615 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1615 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1616 }
1616 }
1617
1617
1618 #quick_login .password_forgoten {
1618 #quick_login .password_forgoten {
1619 padding-right: 10px;
1619 padding-right: 10px;
1620 padding-top: 0px;
1620 padding-top: 0px;
1621 float: left;
1621 float: left;
1622 }
1622 }
1623
1623
1624 #quick_login .password_forgoten a {
1624 #quick_login .password_forgoten a {
1625 font-size: 10px
1625 font-size: 10px
1626 }
1626 }
1627
1627
1628 #quick_login .register {
1628 #quick_login .register {
1629 padding-right: 10px;
1629 padding-right: 10px;
1630 padding-top: 5px;
1630 padding-top: 5px;
1631 float: left;
1631 float: left;
1632 }
1632 }
1633
1633
1634 #quick_login .register a {
1634 #quick_login .register a {
1635 font-size: 10px
1635 font-size: 10px
1636 }
1636 }
1637
1637
1638 #quick_login div.form div.fields {
1638 #quick_login div.form div.fields {
1639 padding-top: 2px;
1639 padding-top: 2px;
1640 padding-left: 10px;
1640 padding-left: 10px;
1641 }
1641 }
1642
1642
1643 #quick_login div.form div.fields div.field {
1643 #quick_login div.form div.fields div.field {
1644 padding: 5px;
1644 padding: 5px;
1645 }
1645 }
1646
1646
1647 #quick_login div.form div.fields div.field div.label label {
1647 #quick_login div.form div.fields div.field div.label label {
1648 color: #fff;
1648 color: #fff;
1649 padding-bottom: 3px;
1649 padding-bottom: 3px;
1650 }
1650 }
1651
1651
1652 #quick_login div.form div.fields div.field div.input input {
1652 #quick_login div.form div.fields div.field div.input input {
1653 width: 236px;
1653 width: 236px;
1654 background: #FFF;
1654 background: #FFF;
1655 border-top: 1px solid #b3b3b3;
1655 border-top: 1px solid #b3b3b3;
1656 border-left: 1px solid #b3b3b3;
1656 border-left: 1px solid #b3b3b3;
1657 border-right: 1px solid #eaeaea;
1657 border-right: 1px solid #eaeaea;
1658 border-bottom: 1px solid #eaeaea;
1658 border-bottom: 1px solid #eaeaea;
1659 color: #000;
1659 color: #000;
1660 font-size: 11px;
1660 font-size: 11px;
1661 margin: 0;
1661 margin: 0;
1662 padding: 5px 7px 4px;
1662 padding: 5px 7px 4px;
1663 }
1663 }
1664
1664
1665 #quick_login div.form div.fields div.buttons {
1665 #quick_login div.form div.fields div.buttons {
1666 clear: both;
1666 clear: both;
1667 overflow: hidden;
1667 overflow: hidden;
1668 text-align: right;
1668 text-align: right;
1669 margin: 0;
1669 margin: 0;
1670 padding: 10px 14px 0px 5px;
1670 padding: 10px 14px 0px 5px;
1671 }
1671 }
1672
1672
1673 #quick_login div.form div.links {
1673 #quick_login div.form div.links {
1674 clear: both;
1674 clear: both;
1675 overflow: hidden;
1675 overflow: hidden;
1676 margin: 10px 0 0;
1676 margin: 10px 0 0;
1677 padding: 0 0 2px;
1677 padding: 0 0 2px;
1678 }
1678 }
1679
1679
1680 #register div.title {
1680 #register div.title {
1681 clear: both;
1681 clear: both;
1682 overflow: hidden;
1682 overflow: hidden;
1683 position: relative;
1683 position: relative;
1684 background-color: #eedc94;
1684 background-color: #eedc94;
1685 background-repeat: repeat-x;
1685 background-repeat: repeat-x;
1686 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1686 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
1687 to(#eedc94) );
1687 to(#eedc94) );
1688 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1688 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1689 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1689 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1690 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1690 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),
1691 color-stop(100%, #00376e) );
1691 color-stop(100%, #00376e) );
1692 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1692 background-image: -webkit-linear-gradient(top, #003b76, #00376e) );
1693 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1693 background-image: -o-linear-gradient(top, #003b76, #00376e) );
1694 background-image: linear-gradient(top, #003b76, #00376e);
1694 background-image: linear-gradient(top, #003b76, #00376e);
1695 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1695 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
1696 endColorstr='#00376e', GradientType=0 );
1696 endColorstr='#00376e', GradientType=0 );
1697 margin: 0 auto;
1697 margin: 0 auto;
1698 padding: 0;
1698 padding: 0;
1699 }
1699 }
1700
1700
1701 #register div.inner {
1701 #register div.inner {
1702 background: #FFF;
1702 background: #FFF;
1703 border-top: none;
1703 border-top: none;
1704 border-bottom: none;
1704 border-bottom: none;
1705 margin: 0 auto;
1705 margin: 0 auto;
1706 padding: 20px;
1706 padding: 20px;
1707 }
1707 }
1708
1708
1709 #register div.form div.fields div.field div.label {
1709 #register div.form div.fields div.field div.label {
1710 width: 135px;
1710 width: 135px;
1711 float: left;
1711 float: left;
1712 text-align: right;
1712 text-align: right;
1713 margin: 2px 10px 0 0;
1713 margin: 2px 10px 0 0;
1714 padding: 5px 0 0 5px;
1714 padding: 5px 0 0 5px;
1715 }
1715 }
1716
1716
1717 #register div.form div.fields div.field div.input input {
1717 #register div.form div.fields div.field div.input input {
1718 width: 300px;
1718 width: 300px;
1719 background: #FFF;
1719 background: #FFF;
1720 border-top: 1px solid #b3b3b3;
1720 border-top: 1px solid #b3b3b3;
1721 border-left: 1px solid #b3b3b3;
1721 border-left: 1px solid #b3b3b3;
1722 border-right: 1px solid #eaeaea;
1722 border-right: 1px solid #eaeaea;
1723 border-bottom: 1px solid #eaeaea;
1723 border-bottom: 1px solid #eaeaea;
1724 color: #000;
1724 color: #000;
1725 font-size: 11px;
1725 font-size: 11px;
1726 margin: 0;
1726 margin: 0;
1727 padding: 7px 7px 6px;
1727 padding: 7px 7px 6px;
1728 }
1728 }
1729
1729
1730 #register div.form div.fields div.buttons {
1730 #register div.form div.fields div.buttons {
1731 clear: both;
1731 clear: both;
1732 overflow: hidden;
1732 overflow: hidden;
1733 border-top: 1px solid #DDD;
1733 border-top: 1px solid #DDD;
1734 text-align: left;
1734 text-align: left;
1735 margin: 0;
1735 margin: 0;
1736 padding: 10px 0 0 150px;
1736 padding: 10px 0 0 150px;
1737 }
1737 }
1738
1738
1739 #register div.form div.activation_msg {
1739 #register div.form div.activation_msg {
1740 padding-top: 4px;
1740 padding-top: 4px;
1741 padding-bottom: 4px;
1741 padding-bottom: 4px;
1742 }
1742 }
1743
1743
1744 #journal .journal_day {
1744 #journal .journal_day {
1745 font-size: 20px;
1745 font-size: 20px;
1746 padding: 10px 0px;
1746 padding: 10px 0px;
1747 border-bottom: 2px solid #DDD;
1747 border-bottom: 2px solid #DDD;
1748 margin-left: 10px;
1748 margin-left: 10px;
1749 margin-right: 10px;
1749 margin-right: 10px;
1750 }
1750 }
1751
1751
1752 #journal .journal_container {
1752 #journal .journal_container {
1753 padding: 5px;
1753 padding: 5px;
1754 clear: both;
1754 clear: both;
1755 margin: 0px 5px 0px 10px;
1755 margin: 0px 5px 0px 10px;
1756 }
1756 }
1757
1757
1758 #journal .journal_action_container {
1758 #journal .journal_action_container {
1759 padding-left: 38px;
1759 padding-left: 38px;
1760 }
1760 }
1761
1761
1762 #journal .journal_user {
1762 #journal .journal_user {
1763 color: #747474;
1763 color: #747474;
1764 font-size: 14px;
1764 font-size: 14px;
1765 font-weight: bold;
1765 font-weight: bold;
1766 height: 30px;
1766 height: 30px;
1767 }
1767 }
1768
1768
1769 #journal .journal_icon {
1769 #journal .journal_icon {
1770 clear: both;
1770 clear: both;
1771 float: left;
1771 float: left;
1772 padding-right: 4px;
1772 padding-right: 4px;
1773 padding-top: 3px;
1773 padding-top: 3px;
1774 }
1774 }
1775
1775
1776 #journal .journal_action {
1776 #journal .journal_action {
1777 padding-top: 4px;
1777 padding-top: 4px;
1778 min-height: 2px;
1778 min-height: 2px;
1779 float: left
1779 float: left
1780 }
1780 }
1781
1781
1782 #journal .journal_action_params {
1782 #journal .journal_action_params {
1783 clear: left;
1783 clear: left;
1784 padding-left: 22px;
1784 padding-left: 22px;
1785 }
1785 }
1786
1786
1787 #journal .journal_repo {
1787 #journal .journal_repo {
1788 float: left;
1788 float: left;
1789 margin-left: 6px;
1789 margin-left: 6px;
1790 padding-top: 3px;
1790 padding-top: 3px;
1791 }
1791 }
1792
1792
1793 #journal .date {
1793 #journal .date {
1794 clear: both;
1794 clear: both;
1795 color: #777777;
1795 color: #777777;
1796 font-size: 11px;
1796 font-size: 11px;
1797 padding-left: 22px;
1797 padding-left: 22px;
1798 }
1798 }
1799
1799
1800 #journal .journal_repo .journal_repo_name {
1800 #journal .journal_repo .journal_repo_name {
1801 font-weight: bold;
1801 font-weight: bold;
1802 font-size: 1.1em;
1802 font-size: 1.1em;
1803 }
1803 }
1804
1804
1805 #journal .compare_view {
1805 #journal .compare_view {
1806 padding: 5px 0px 5px 0px;
1806 padding: 5px 0px 5px 0px;
1807 width: 95px;
1807 width: 95px;
1808 }
1808 }
1809
1809
1810 .journal_highlight {
1810 .journal_highlight {
1811 font-weight: bold;
1811 font-weight: bold;
1812 padding: 0 2px;
1812 padding: 0 2px;
1813 vertical-align: bottom;
1813 vertical-align: bottom;
1814 }
1814 }
1815
1815
1816 .trending_language_tbl,.trending_language_tbl td {
1816 .trending_language_tbl,.trending_language_tbl td {
1817 border: 0 !important;
1817 border: 0 !important;
1818 margin: 0 !important;
1818 margin: 0 !important;
1819 padding: 0 !important;
1819 padding: 0 !important;
1820 }
1820 }
1821
1821
1822 .trending_language_tbl,.trending_language_tbl tr {
1822 .trending_language_tbl,.trending_language_tbl tr {
1823 border-spacing: 1px;
1823 border-spacing: 1px;
1824 }
1824 }
1825
1825
1826 .trending_language {
1826 .trending_language {
1827 background-color: #003367;
1827 background-color: #003367;
1828 color: #FFF;
1828 color: #FFF;
1829 display: block;
1829 display: block;
1830 min-width: 20px;
1830 min-width: 20px;
1831 text-decoration: none;
1831 text-decoration: none;
1832 height: 12px;
1832 height: 12px;
1833 margin-bottom: 0px;
1833 margin-bottom: 0px;
1834 margin-left: 5px;
1834 margin-left: 5px;
1835 white-space: pre;
1835 white-space: pre;
1836 padding: 3px;
1836 padding: 3px;
1837 }
1837 }
1838
1838
1839 h3.files_location {
1839 h3.files_location {
1840 font-size: 1.8em;
1840 font-size: 1.8em;
1841 font-weight: 700;
1841 font-weight: 700;
1842 border-bottom: none !important;
1842 border-bottom: none !important;
1843 margin: 10px 0 !important;
1843 margin: 10px 0 !important;
1844 }
1844 }
1845
1845
1846 #files_data dl dt {
1846 #files_data dl dt {
1847 float: left;
1847 float: left;
1848 width: 60px;
1848 width: 60px;
1849 margin: 0 !important;
1849 margin: 0 !important;
1850 padding: 5px;
1850 padding: 5px;
1851 }
1851 }
1852
1852
1853 #files_data dl dd {
1853 #files_data dl dd {
1854 margin: 0 !important;
1854 margin: 0 !important;
1855 padding: 5px !important;
1855 padding: 5px !important;
1856 }
1856 }
1857
1857
1858 #changeset_content {
1858 #changeset_content {
1859 border: 1px solid #CCC;
1859 border: 1px solid #CCC;
1860 padding: 5px;
1860 padding: 5px;
1861 }
1861 }
1862
1862
1863 #changeset_compare_view_content {
1863 #changeset_compare_view_content {
1864 border: 1px solid #CCC;
1864 border: 1px solid #CCC;
1865 padding: 5px;
1865 padding: 5px;
1866 }
1866 }
1867
1867
1868 #changeset_content .container {
1868 #changeset_content .container {
1869 min-height: 120px;
1869 min-height: 120px;
1870 font-size: 1.2em;
1870 font-size: 1.2em;
1871 overflow: hidden;
1871 overflow: hidden;
1872 }
1872 }
1873
1873
1874 #changeset_compare_view_content .compare_view_commits {
1874 #changeset_compare_view_content .compare_view_commits {
1875 width: auto !important;
1875 width: auto !important;
1876 }
1876 }
1877
1877
1878 #changeset_compare_view_content .compare_view_commits td {
1878 #changeset_compare_view_content .compare_view_commits td {
1879 padding: 0px 0px 0px 12px !important;
1879 padding: 0px 0px 0px 12px !important;
1880 }
1880 }
1881
1881
1882 #changeset_content .container .right {
1882 #changeset_content .container .right {
1883 float: right;
1883 float: right;
1884 width: 25%;
1884 width: 25%;
1885 text-align: right;
1885 text-align: right;
1886 }
1886 }
1887
1887
1888 #changeset_content .container .left .message {
1888 #changeset_content .container .left .message {
1889 font-style: italic;
1889 font-style: italic;
1890 color: #556CB5;
1890 color: #556CB5;
1891 white-space: pre-wrap;
1891 white-space: pre-wrap;
1892 }
1892 }
1893
1893
1894 .cs_files .cur_cs {
1894 .cs_files .cur_cs {
1895 margin: 10px 2px;
1895 margin: 10px 2px;
1896 font-weight: bold;
1896 font-weight: bold;
1897 }
1897 }
1898
1898
1899 .cs_files .node {
1899 .cs_files .node {
1900 float: left;
1900 float: left;
1901 }
1901 }
1902
1902
1903 .cs_files .changes {
1903 .cs_files .changes {
1904 float: right;
1904 float: right;
1905 color:#003367;
1905 color:#003367;
1906
1906
1907 }
1907 }
1908
1908
1909 .cs_files .changes .added {
1909 .cs_files .changes .added {
1910 background-color: #BBFFBB;
1910 background-color: #BBFFBB;
1911 float: left;
1911 float: left;
1912 text-align: center;
1912 text-align: center;
1913 font-size: 9px;
1913 font-size: 9px;
1914 padding: 2px 0px 2px 0px;
1914 padding: 2px 0px 2px 0px;
1915 }
1915 }
1916
1916
1917 .cs_files .changes .deleted {
1917 .cs_files .changes .deleted {
1918 background-color: #FF8888;
1918 background-color: #FF8888;
1919 float: left;
1919 float: left;
1920 text-align: center;
1920 text-align: center;
1921 font-size: 9px;
1921 font-size: 9px;
1922 padding: 2px 0px 2px 0px;
1922 padding: 2px 0px 2px 0px;
1923 }
1923 }
1924
1924
1925 .cs_files .cs_added {
1925 .cs_files .cs_added {
1926 background: url("../images/icons/page_white_add.png") no-repeat scroll
1926 background: url("../images/icons/page_white_add.png") no-repeat scroll
1927 3px;
1927 3px;
1928 height: 16px;
1928 height: 16px;
1929 padding-left: 20px;
1929 padding-left: 20px;
1930 margin-top: 7px;
1930 margin-top: 7px;
1931 text-align: left;
1931 text-align: left;
1932 }
1932 }
1933
1933
1934 .cs_files .cs_changed {
1934 .cs_files .cs_changed {
1935 background: url("../images/icons/page_white_edit.png") no-repeat scroll
1935 background: url("../images/icons/page_white_edit.png") no-repeat scroll
1936 3px;
1936 3px;
1937 height: 16px;
1937 height: 16px;
1938 padding-left: 20px;
1938 padding-left: 20px;
1939 margin-top: 7px;
1939 margin-top: 7px;
1940 text-align: left;
1940 text-align: left;
1941 }
1941 }
1942
1942
1943 .cs_files .cs_removed {
1943 .cs_files .cs_removed {
1944 background: url("../images/icons/page_white_delete.png") no-repeat
1944 background: url("../images/icons/page_white_delete.png") no-repeat
1945 scroll 3px;
1945 scroll 3px;
1946 height: 16px;
1946 height: 16px;
1947 padding-left: 20px;
1947 padding-left: 20px;
1948 margin-top: 7px;
1948 margin-top: 7px;
1949 text-align: left;
1949 text-align: left;
1950 }
1950 }
1951
1951
1952 #graph {
1952 #graph {
1953 overflow: hidden;
1953 overflow: hidden;
1954 }
1954 }
1955
1955
1956 #graph_nodes {
1956 #graph_nodes {
1957 float: left;
1957 float: left;
1958 margin-right: -6px;
1958 margin-right: -6px;
1959 margin-top: 0px;
1959 margin-top: 0px;
1960 }
1960 }
1961
1961
1962 #graph_content {
1962 #graph_content {
1963 width: 800px;
1963 width: 800px;
1964 float: left;
1964 float: left;
1965 }
1965 }
1966
1966
1967 #graph_content .container_header {
1967 #graph_content .container_header {
1968 border: 1px solid #CCC;
1968 border: 1px solid #CCC;
1969 padding: 10px;
1969 padding: 10px;
1970 height: 45px;
1970 height: 45px;
1971 -webkit-border-radius: 6px 6px 0px 0px;
1971 -webkit-border-radius: 6px 6px 0px 0px;
1972 -moz-border-radius: 6px 6px 0px 0px;
1972 -moz-border-radius: 6px 6px 0px 0px;
1973 border-radius: 6px 6px 0px 0px;
1973 border-radius: 6px 6px 0px 0px;
1974 }
1974 }
1975
1975
1976 #graph_content #rev_range_container {
1976 #graph_content #rev_range_container {
1977 padding: 10px 0px;
1977 padding: 10px 0px;
1978 clear: both;
1978 clear: both;
1979 }
1979 }
1980
1980
1981 #graph_content .container {
1981 #graph_content .container {
1982 border-bottom: 1px solid #CCC;
1982 border-bottom: 1px solid #CCC;
1983 border-left: 1px solid #CCC;
1983 border-left: 1px solid #CCC;
1984 border-right: 1px solid #CCC;
1984 border-right: 1px solid #CCC;
1985 min-height: 70px;
1985 min-height: 70px;
1986 overflow: hidden;
1986 overflow: hidden;
1987 font-size: 1.2em;
1987 font-size: 1.2em;
1988 }
1988 }
1989
1989
1990 #graph_content .container .right {
1990 #graph_content .container .right {
1991 float: right;
1991 float: right;
1992 width: 28%;
1992 width: 28%;
1993 text-align: right;
1993 text-align: right;
1994 padding-bottom: 5px;
1994 padding-bottom: 5px;
1995 }
1995 }
1996
1996
1997 #graph_content .container .left .date {
1997 #graph_content .container .left .date {
1998 font-weight: 700;
1998 font-weight: 700;
1999 padding-bottom: 5px;
1999 padding-bottom: 5px;
2000 }
2000 }
2001
2001
2002 #graph_content .container .left .date span {
2002 #graph_content .container .left .date span {
2003 vertical-align: text-top;
2003 vertical-align: text-top;
2004 }
2004 }
2005
2005
2006 #graph_content .container .left .author {
2006 #graph_content .container .left .author {
2007 height: 22px;
2007 height: 22px;
2008 }
2008 }
2009
2009
2010 #graph_content .container .left .author .user {
2010 #graph_content .container .left .author .user {
2011 color: #444444;
2011 color: #444444;
2012 float: left;
2012 float: left;
2013 font-size: 12px;
2013 font-size: 12px;
2014 margin-left: -4px;
2014 margin-left: -4px;
2015 margin-top: 4px;
2015 margin-top: 4px;
2016 }
2016 }
2017
2017
2018 #graph_content .container .left .message {
2018 #graph_content .container .left .message {
2019 font-size: 100%;
2019 font-size: 100%;
2020 padding-top: 3px;
2020 padding-top: 3px;
2021 white-space: pre-wrap;
2021 white-space: pre-wrap;
2022 }
2022 }
2023
2023
2024 #graph_content .container .left .message a:hover{
2024 #graph_content .container .left .message a:hover{
2025 text-decoration: none;
2025 text-decoration: none;
2026 }
2026 }
2027
2027
2028 .right div {
2028 .right div {
2029 clear: both;
2029 clear: both;
2030 }
2030 }
2031
2031
2032 .right .changes .changed_total {
2032 .right .changes .changed_total {
2033 border: 0px solid #DDD;
2033 border: 0px solid #DDD;
2034 display: block;
2034 display: block;
2035 float: right;
2035 float: right;
2036 text-align: center;
2036 text-align: center;
2037 min-width: 45px;
2037 min-width: 45px;
2038 cursor: pointer;
2038 cursor: pointer;
2039 background: #FD8;
2039 background: #FD8;
2040 font-weight: bold;
2040 font-weight: bold;
2041 -webkit-border-radius: 0px 0px 0px 6px;
2041 -webkit-border-radius: 0px 0px 0px 6px;
2042 -moz-border-radius: 0px 0px 0px 6px;
2042 -moz-border-radius: 0px 0px 0px 6px;
2043 border-radius: 0px 0px 0px 6px;
2043 border-radius: 0px 0px 0px 6px;
2044 padding: 2px;
2044 padding: 2px;
2045 }
2045 }
2046
2046
2047 .right .changes .added,.changed,.removed {
2047 .right .changes .added,.changed,.removed {
2048 border: 1px solid #DDD;
2048 border: 1px solid #DDD;
2049 display: block;
2049 display: block;
2050 float: right;
2050 float: right;
2051 text-align: center;
2051 text-align: center;
2052 min-width: 15px;
2052 min-width: 15px;
2053 cursor: help;
2053 cursor: help;
2054 }
2054 }
2055
2055
2056 .right .changes .large {
2056 .right .changes .large {
2057 border: 1px solid #DDD;
2057 border: 1px solid #DDD;
2058 display: block;
2058 display: block;
2059 float: right;
2059 float: right;
2060 text-align: center;
2060 text-align: center;
2061 min-width: 45px;
2061 min-width: 45px;
2062 cursor: help;
2062 cursor: help;
2063 background: #54A9F7;
2063 background: #54A9F7;
2064 }
2064 }
2065
2065
2066 .right .changes .added {
2066 .right .changes .added {
2067 background: #BFB;
2067 background: #BFB;
2068 }
2068 }
2069
2069
2070 .right .changes .changed {
2070 .right .changes .changed {
2071 background: #FD8;
2071 background: #FD8;
2072 }
2072 }
2073
2073
2074 .right .changes .removed {
2074 .right .changes .removed {
2075 background: #F88;
2075 background: #F88;
2076 }
2076 }
2077
2077
2078 .right .merge {
2078 .right .merge {
2079 vertical-align: top;
2079 vertical-align: top;
2080 font-size: 0.75em;
2080 font-size: 0.75em;
2081 font-weight: 700;
2081 font-weight: 700;
2082 }
2082 }
2083
2083
2084 .right .parent {
2084 .right .parent {
2085 font-size: 90%;
2085 font-size: 90%;
2086 font-family: monospace;
2086 font-family: monospace;
2087 padding: 2px 2px 2px 2px;
2087 padding: 2px 2px 2px 2px;
2088 }
2088 }
2089 .right .logtags{
2089 .right .logtags{
2090 padding: 2px 2px 2px 2px;
2090 padding: 2px 2px 2px 2px;
2091 }
2091 }
2092 .right .logtags .branchtag,.logtags .branchtag {
2092 .right .logtags .branchtag,.logtags .branchtag {
2093 padding: 1px 3px 2px;
2093 padding: 1px 3px 2px;
2094 background-color: #bfbfbf;
2094 background-color: #bfbfbf;
2095 font-size: 9.75px;
2095 font-size: 9.75px;
2096 font-weight: bold;
2096 font-weight: bold;
2097 color: #ffffff;
2097 color: #ffffff;
2098 text-transform: uppercase;
2098 text-transform: uppercase;
2099 white-space: nowrap;
2099 white-space: nowrap;
2100 -webkit-border-radius: 3px;
2100 -webkit-border-radius: 3px;
2101 -moz-border-radius: 3px;
2101 -moz-border-radius: 3px;
2102 border-radius: 3px;
2102 border-radius: 3px;
2103 padding-left:4px;
2103 padding-left:4px;
2104 }
2104 }
2105 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2105 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2106 color: #ffffff;
2106 color: #ffffff;
2107 }
2107 }
2108 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2108 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2109 text-decoration: none;
2109 text-decoration: none;
2110 color: #ffffff;
2110 color: #ffffff;
2111 }
2111 }
2112 .right .logtags .tagtag,.logtags .tagtag {
2112 .right .logtags .tagtag,.logtags .tagtag {
2113 padding: 1px 3px 2px;
2113 padding: 1px 3px 2px;
2114 background-color: #62cffc;
2114 background-color: #62cffc;
2115 font-size: 9.75px;
2115 font-size: 9.75px;
2116 font-weight: bold;
2116 font-weight: bold;
2117 color: #ffffff;
2117 color: #ffffff;
2118 text-transform: uppercase;
2118 text-transform: uppercase;
2119 white-space: nowrap;
2119 white-space: nowrap;
2120 -webkit-border-radius: 3px;
2120 -webkit-border-radius: 3px;
2121 -moz-border-radius: 3px;
2121 -moz-border-radius: 3px;
2122 border-radius: 3px;
2122 border-radius: 3px;
2123 }
2123 }
2124 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2124 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2125 color: #ffffff;
2125 color: #ffffff;
2126 }
2126 }
2127 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2127 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2128 text-decoration: none;
2128 text-decoration: none;
2129 color: #ffffff;
2129 color: #ffffff;
2130 }
2130 }
2131 .right .logbooks .bookbook,.logbooks .bookbook {
2131 .right .logbooks .bookbook,.logbooks .bookbook {
2132 padding: 1px 3px 2px;
2132 padding: 1px 3px 2px;
2133 background-color: #46A546;
2133 background-color: #46A546;
2134 font-size: 9.75px;
2134 font-size: 9.75px;
2135 font-weight: bold;
2135 font-weight: bold;
2136 color: #ffffff;
2136 color: #ffffff;
2137 text-transform: uppercase;
2137 text-transform: uppercase;
2138 white-space: nowrap;
2138 white-space: nowrap;
2139 -webkit-border-radius: 3px;
2139 -webkit-border-radius: 3px;
2140 -moz-border-radius: 3px;
2140 -moz-border-radius: 3px;
2141 border-radius: 3px;
2141 border-radius: 3px;
2142 }
2142 }
2143 .right .logbooks .bookbook,.logbooks .bookbook a{
2143 .right .logbooks .bookbook,.logbooks .bookbook a{
2144 color: #ffffff;
2144 color: #ffffff;
2145 }
2145 }
2146 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2146 .right .logbooks .bookbook,.logbooks .bookbook a:hover{
2147 text-decoration: none;
2147 text-decoration: none;
2148 color: #ffffff;
2148 color: #ffffff;
2149 }
2149 }
2150 div.browserblock {
2150 div.browserblock {
2151 overflow: hidden;
2151 overflow: hidden;
2152 border: 1px solid #ccc;
2152 border: 1px solid #ccc;
2153 background: #f8f8f8;
2153 background: #f8f8f8;
2154 font-size: 100%;
2154 font-size: 100%;
2155 line-height: 125%;
2155 line-height: 125%;
2156 padding: 0;
2156 padding: 0;
2157 -webkit-border-radius: 6px 6px 0px 0px;
2158 -moz-border-radius: 6px 6px 0px 0px;
2159 border-radius: 6px 6px 0px 0px;
2157 }
2160 }
2158
2161
2159 div.browserblock .browser-header {
2162 div.browserblock .browser-header {
2160 background: #FFF;
2163 background: #FFF;
2161 padding: 10px 0px 15px 0px;
2164 padding: 10px 0px 15px 0px;
2162 width: 100%;
2165 width: 100%;
2163 }
2166 }
2164
2167
2165 div.browserblock .browser-nav {
2168 div.browserblock .browser-nav {
2166 float: left
2169 float: left
2167 }
2170 }
2168
2171
2169 div.browserblock .browser-branch {
2172 div.browserblock .browser-branch {
2170 float: left;
2173 float: left;
2171 }
2174 }
2172
2175
2173 div.browserblock .browser-branch label {
2176 div.browserblock .browser-branch label {
2174 color: #4A4A4A;
2177 color: #4A4A4A;
2175 vertical-align: text-top;
2178 vertical-align: text-top;
2176 }
2179 }
2177
2180
2178 div.browserblock .browser-header span {
2181 div.browserblock .browser-header span {
2179 margin-left: 5px;
2182 margin-left: 5px;
2180 font-weight: 700;
2183 font-weight: 700;
2181 }
2184 }
2182
2185
2183 div.browserblock .browser-search {
2186 div.browserblock .browser-search {
2184 clear: both;
2187 clear: both;
2185 padding: 8px 8px 0px 5px;
2188 padding: 8px 8px 0px 5px;
2186 height: 20px;
2189 height: 20px;
2187 }
2190 }
2188
2191
2189 div.browserblock #node_filter_box {
2192 div.browserblock #node_filter_box {
2190
2193
2191 }
2194 }
2192
2195
2193 div.browserblock .search_activate {
2196 div.browserblock .search_activate {
2194 float: left
2197 float: left
2195 }
2198 }
2196
2199
2197 div.browserblock .add_node {
2200 div.browserblock .add_node {
2198 float: left;
2201 float: left;
2199 padding-left: 5px;
2202 padding-left: 5px;
2200 }
2203 }
2201
2204
2202 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2205 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2203 {
2206 {
2204 text-decoration: none !important;
2207 text-decoration: none !important;
2205 }
2208 }
2206
2209
2207 div.browserblock .browser-body {
2210 div.browserblock .browser-body {
2208 background: #EEE;
2211 background: #EEE;
2209 border-top: 1px solid #CCC;
2212 border-top: 1px solid #CCC;
2210 }
2213 }
2211
2214
2212 table.code-browser {
2215 table.code-browser {
2213 border-collapse: collapse;
2216 border-collapse: collapse;
2214 width: 100%;
2217 width: 100%;
2215 }
2218 }
2216
2219
2217 table.code-browser tr {
2220 table.code-browser tr {
2218 margin: 3px;
2221 margin: 3px;
2219 }
2222 }
2220
2223
2221 table.code-browser thead th {
2224 table.code-browser thead th {
2222 background-color: #EEE;
2225 background-color: #EEE;
2223 height: 20px;
2226 height: 20px;
2224 font-size: 1.1em;
2227 font-size: 1.1em;
2225 font-weight: 700;
2228 font-weight: 700;
2226 text-align: left;
2229 text-align: left;
2227 padding-left: 10px;
2230 padding-left: 10px;
2228 }
2231 }
2229
2232
2230 table.code-browser tbody td {
2233 table.code-browser tbody td {
2231 padding-left: 10px;
2234 padding-left: 10px;
2232 height: 20px;
2235 height: 20px;
2233 }
2236 }
2234
2237
2235 table.code-browser .browser-file {
2238 table.code-browser .browser-file {
2236 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2239 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2237 height: 16px;
2240 height: 16px;
2238 padding-left: 20px;
2241 padding-left: 20px;
2239 text-align: left;
2242 text-align: left;
2240 }
2243 }
2241
2244
2242 .diffblock .changeset_file {
2245 .diffblock .changeset_file {
2243 background: url("../images/icons/file.png") no-repeat scroll 3px;
2246 background: url("../images/icons/file.png") no-repeat scroll 3px;
2244 height: 16px;
2247 height: 16px;
2245 padding-left: 22px;
2248 padding-left: 22px;
2246 text-align: left;
2249 text-align: left;
2247 font-size: 14px;
2250 font-size: 14px;
2248 }
2251 }
2249
2252
2250 .diffblock .changeset_header {
2253 .diffblock .changeset_header {
2251 margin-left: 6px !important;
2254 margin-left: 6px !important;
2252 }
2255 }
2253
2256
2254 table.code-browser .browser-dir {
2257 table.code-browser .browser-dir {
2255 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2258 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2256 height: 16px;
2259 height: 16px;
2257 padding-left: 20px;
2260 padding-left: 20px;
2258 text-align: left;
2261 text-align: left;
2259 }
2262 }
2260
2263
2261 .box .search {
2264 .box .search {
2262 clear: both;
2265 clear: both;
2263 overflow: hidden;
2266 overflow: hidden;
2264 margin: 0;
2267 margin: 0;
2265 padding: 0 20px 10px;
2268 padding: 0 20px 10px;
2266 }
2269 }
2267
2270
2268 .box .search div.search_path {
2271 .box .search div.search_path {
2269 background: none repeat scroll 0 0 #EEE;
2272 background: none repeat scroll 0 0 #EEE;
2270 border: 1px solid #CCC;
2273 border: 1px solid #CCC;
2271 color: blue;
2274 color: blue;
2272 margin-bottom: 10px;
2275 margin-bottom: 10px;
2273 padding: 10px 0;
2276 padding: 10px 0;
2274 }
2277 }
2275
2278
2276 .box .search div.search_path div.link {
2279 .box .search div.search_path div.link {
2277 font-weight: 700;
2280 font-weight: 700;
2278 margin-left: 25px;
2281 margin-left: 25px;
2279 }
2282 }
2280
2283
2281 .box .search div.search_path div.link a {
2284 .box .search div.search_path div.link a {
2282 color: #003367;
2285 color: #003367;
2283 cursor: pointer;
2286 cursor: pointer;
2284 text-decoration: none;
2287 text-decoration: none;
2285 }
2288 }
2286
2289
2287 #path_unlock {
2290 #path_unlock {
2288 color: red;
2291 color: red;
2289 font-size: 1.2em;
2292 font-size: 1.2em;
2290 padding-left: 4px;
2293 padding-left: 4px;
2291 }
2294 }
2292
2295
2293 .info_box span {
2296 .info_box span {
2294 margin-left: 3px;
2297 margin-left: 3px;
2295 margin-right: 3px;
2298 margin-right: 3px;
2296 }
2299 }
2297
2300
2298 .info_box .rev {
2301 .info_box .rev {
2299 color: #003367;
2302 color: #003367;
2300 font-size: 1.6em;
2303 font-size: 1.6em;
2301 font-weight: bold;
2304 font-weight: bold;
2302 vertical-align: sub;
2305 vertical-align: sub;
2303 }
2306 }
2304
2307
2305 .info_box input#at_rev,.info_box input#size {
2308 .info_box input#at_rev,.info_box input#size {
2306 background: #FFF;
2309 background: #FFF;
2307 border-top: 1px solid #b3b3b3;
2310 border-top: 1px solid #b3b3b3;
2308 border-left: 1px solid #b3b3b3;
2311 border-left: 1px solid #b3b3b3;
2309 border-right: 1px solid #eaeaea;
2312 border-right: 1px solid #eaeaea;
2310 border-bottom: 1px solid #eaeaea;
2313 border-bottom: 1px solid #eaeaea;
2311 color: #000;
2314 color: #000;
2312 font-size: 12px;
2315 font-size: 12px;
2313 margin: 0;
2316 margin: 0;
2314 padding: 1px 5px 1px;
2317 padding: 1px 5px 1px;
2315 }
2318 }
2316
2319
2317 .info_box input#view {
2320 .info_box input#view {
2318 text-align: center;
2321 text-align: center;
2319 padding: 4px 3px 2px 2px;
2322 padding: 4px 3px 2px 2px;
2320 }
2323 }
2321
2324
2322 .yui-overlay,.yui-panel-container {
2325 .yui-overlay,.yui-panel-container {
2323 visibility: hidden;
2326 visibility: hidden;
2324 position: absolute;
2327 position: absolute;
2325 z-index: 2;
2328 z-index: 2;
2326 }
2329 }
2327
2330
2328 .yui-tt {
2331 .yui-tt {
2329 visibility: hidden;
2332 visibility: hidden;
2330 position: absolute;
2333 position: absolute;
2331 color: #666;
2334 color: #666;
2332 background-color: #FFF;
2335 background-color: #FFF;
2333 border: 2px solid #003367;
2336 border: 2px solid #003367;
2334 font: 100% sans-serif;
2337 font: 100% sans-serif;
2335 width: auto;
2338 width: auto;
2336 opacity: 1px;
2339 opacity: 1px;
2337 padding: 8px;
2340 padding: 8px;
2338 white-space: pre-wrap;
2341 white-space: pre-wrap;
2339 -webkit-border-radius: 8px 8px 8px 8px;
2342 -webkit-border-radius: 8px 8px 8px 8px;
2340 -khtml-border-radius: 8px 8px 8px 8px;
2343 -khtml-border-radius: 8px 8px 8px 8px;
2341 -moz-border-radius: 8px 8px 8px 8px;
2344 -moz-border-radius: 8px 8px 8px 8px;
2342 border-radius: 8px 8px 8px 8px;
2345 border-radius: 8px 8px 8px 8px;
2343 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2346 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2344 }
2347 }
2345
2348
2346 .ac {
2349 .ac {
2347 vertical-align: top;
2350 vertical-align: top;
2348 }
2351 }
2349
2352
2350 .ac .yui-ac {
2353 .ac .yui-ac {
2351 position: relative;
2354 position: relative;
2352 font-size: 100%;
2355 font-size: 100%;
2353 }
2356 }
2354
2357
2355 .ac .perm_ac {
2358 .ac .perm_ac {
2356 width: 15em;
2359 width: 15em;
2357 }
2360 }
2358
2361
2359 .ac .yui-ac-input {
2362 .ac .yui-ac-input {
2360 width: 100%;
2363 width: 100%;
2361 }
2364 }
2362
2365
2363 .ac .yui-ac-container {
2366 .ac .yui-ac-container {
2364 position: absolute;
2367 position: absolute;
2365 top: 1.6em;
2368 top: 1.6em;
2366 width: 100%;
2369 width: 100%;
2367 }
2370 }
2368
2371
2369 .ac .yui-ac-content {
2372 .ac .yui-ac-content {
2370 position: absolute;
2373 position: absolute;
2371 width: 100%;
2374 width: 100%;
2372 border: 1px solid gray;
2375 border: 1px solid gray;
2373 background: #fff;
2376 background: #fff;
2374 overflow: hidden;
2377 overflow: hidden;
2375 z-index: 9050;
2378 z-index: 9050;
2376 }
2379 }
2377
2380
2378 .ac .yui-ac-shadow {
2381 .ac .yui-ac-shadow {
2379 position: absolute;
2382 position: absolute;
2380 width: 100%;
2383 width: 100%;
2381 background: #000;
2384 background: #000;
2382 -moz-opacity: 0.1px;
2385 -moz-opacity: 0.1px;
2383 opacity: .10;
2386 opacity: .10;
2384 filter: alpha(opacity = 10);
2387 filter: alpha(opacity = 10);
2385 z-index: 9049;
2388 z-index: 9049;
2386 margin: .3em;
2389 margin: .3em;
2387 }
2390 }
2388
2391
2389 .ac .yui-ac-content ul {
2392 .ac .yui-ac-content ul {
2390 width: 100%;
2393 width: 100%;
2391 margin: 0;
2394 margin: 0;
2392 padding: 0;
2395 padding: 0;
2393 }
2396 }
2394
2397
2395 .ac .yui-ac-content li {
2398 .ac .yui-ac-content li {
2396 cursor: default;
2399 cursor: default;
2397 white-space: nowrap;
2400 white-space: nowrap;
2398 margin: 0;
2401 margin: 0;
2399 padding: 2px 5px;
2402 padding: 2px 5px;
2400 }
2403 }
2401
2404
2402 .ac .yui-ac-content li.yui-ac-prehighlight {
2405 .ac .yui-ac-content li.yui-ac-prehighlight {
2403 background: #B3D4FF;
2406 background: #B3D4FF;
2404 }
2407 }
2405
2408
2406 .ac .yui-ac-content li.yui-ac-highlight {
2409 .ac .yui-ac-content li.yui-ac-highlight {
2407 background: #556CB5;
2410 background: #556CB5;
2408 color: #FFF;
2411 color: #FFF;
2409 }
2412 }
2410
2413
2411 .follow {
2414 .follow {
2412 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2415 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2413 height: 16px;
2416 height: 16px;
2414 width: 20px;
2417 width: 20px;
2415 cursor: pointer;
2418 cursor: pointer;
2416 display: block;
2419 display: block;
2417 float: right;
2420 float: right;
2418 margin-top: 2px;
2421 margin-top: 2px;
2419 }
2422 }
2420
2423
2421 .following {
2424 .following {
2422 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2425 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2423 height: 16px;
2426 height: 16px;
2424 width: 20px;
2427 width: 20px;
2425 cursor: pointer;
2428 cursor: pointer;
2426 display: block;
2429 display: block;
2427 float: right;
2430 float: right;
2428 margin-top: 2px;
2431 margin-top: 2px;
2429 }
2432 }
2430
2433
2431 .currently_following {
2434 .currently_following {
2432 padding-left: 10px;
2435 padding-left: 10px;
2433 padding-bottom: 5px;
2436 padding-bottom: 5px;
2434 }
2437 }
2435
2438
2436 .add_icon {
2439 .add_icon {
2437 background: url("../images/icons/add.png") no-repeat scroll 3px;
2440 background: url("../images/icons/add.png") no-repeat scroll 3px;
2438 padding-left: 20px;
2441 padding-left: 20px;
2439 padding-top: 0px;
2442 padding-top: 0px;
2440 text-align: left;
2443 text-align: left;
2441 }
2444 }
2442
2445
2443 .edit_icon {
2446 .edit_icon {
2444 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2447 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2445 padding-left: 20px;
2448 padding-left: 20px;
2446 padding-top: 0px;
2449 padding-top: 0px;
2447 text-align: left;
2450 text-align: left;
2448 }
2451 }
2449
2452
2450 .delete_icon {
2453 .delete_icon {
2451 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2454 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2452 padding-left: 20px;
2455 padding-left: 20px;
2453 padding-top: 0px;
2456 padding-top: 0px;
2454 text-align: left;
2457 text-align: left;
2455 }
2458 }
2456
2459
2457 .refresh_icon {
2460 .refresh_icon {
2458 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2461 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2459 3px;
2462 3px;
2460 padding-left: 20px;
2463 padding-left: 20px;
2461 padding-top: 0px;
2464 padding-top: 0px;
2462 text-align: left;
2465 text-align: left;
2463 }
2466 }
2464
2467
2465 .pull_icon {
2468 .pull_icon {
2466 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2469 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2467 padding-left: 20px;
2470 padding-left: 20px;
2468 padding-top: 0px;
2471 padding-top: 0px;
2469 text-align: left;
2472 text-align: left;
2470 }
2473 }
2471
2474
2472 .rss_icon {
2475 .rss_icon {
2473 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2476 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2474 padding-left: 20px;
2477 padding-left: 20px;
2475 padding-top: 4px;
2478 padding-top: 4px;
2476 text-align: left;
2479 text-align: left;
2477 font-size: 8px
2480 font-size: 8px
2478 }
2481 }
2479
2482
2480 .atom_icon {
2483 .atom_icon {
2481 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2484 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2482 padding-left: 20px;
2485 padding-left: 20px;
2483 padding-top: 4px;
2486 padding-top: 4px;
2484 text-align: left;
2487 text-align: left;
2485 font-size: 8px
2488 font-size: 8px
2486 }
2489 }
2487
2490
2488 .archive_icon {
2491 .archive_icon {
2489 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2492 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2490 padding-left: 20px;
2493 padding-left: 20px;
2491 text-align: left;
2494 text-align: left;
2492 padding-top: 1px;
2495 padding-top: 1px;
2493 }
2496 }
2494
2497
2495 .start_following_icon {
2498 .start_following_icon {
2496 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2499 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2497 padding-left: 20px;
2500 padding-left: 20px;
2498 text-align: left;
2501 text-align: left;
2499 padding-top: 0px;
2502 padding-top: 0px;
2500 }
2503 }
2501
2504
2502 .stop_following_icon {
2505 .stop_following_icon {
2503 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2506 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2504 padding-left: 20px;
2507 padding-left: 20px;
2505 text-align: left;
2508 text-align: left;
2506 padding-top: 0px;
2509 padding-top: 0px;
2507 }
2510 }
2508
2511
2509 .action_button {
2512 .action_button {
2510 border: 0;
2513 border: 0;
2511 display: inline;
2514 display: inline;
2512 }
2515 }
2513
2516
2514 .action_button:hover {
2517 .action_button:hover {
2515 border: 0;
2518 border: 0;
2516 text-decoration: underline;
2519 text-decoration: underline;
2517 cursor: pointer;
2520 cursor: pointer;
2518 }
2521 }
2519
2522
2520 #switch_repos {
2523 #switch_repos {
2521 position: absolute;
2524 position: absolute;
2522 height: 25px;
2525 height: 25px;
2523 z-index: 1;
2526 z-index: 1;
2524 }
2527 }
2525
2528
2526 #switch_repos select {
2529 #switch_repos select {
2527 min-width: 150px;
2530 min-width: 150px;
2528 max-height: 250px;
2531 max-height: 250px;
2529 z-index: 1;
2532 z-index: 1;
2530 }
2533 }
2531
2534
2532 .breadcrumbs {
2535 .breadcrumbs {
2533 border: medium none;
2536 border: medium none;
2534 color: #FFF;
2537 color: #FFF;
2535 float: left;
2538 float: left;
2536 text-transform: uppercase;
2539 text-transform: uppercase;
2537 font-weight: 700;
2540 font-weight: 700;
2538 font-size: 14px;
2541 font-size: 14px;
2539 margin: 0;
2542 margin: 0;
2540 padding: 11px 0 11px 10px;
2543 padding: 11px 0 11px 10px;
2541 }
2544 }
2542
2545
2543 .breadcrumbs a {
2546 .breadcrumbs a {
2544 color: #FFF;
2547 color: #FFF;
2545 }
2548 }
2546
2549
2547 .flash_msg {
2550 .flash_msg {
2548
2551
2549 }
2552 }
2550
2553
2551 .flash_msg ul {
2554 .flash_msg ul {
2552
2555
2553 }
2556 }
2554
2557
2555 .error_msg {
2558 .error_msg {
2556 background-color: #c43c35;
2559 background-color: #c43c35;
2557 background-repeat: repeat-x;
2560 background-repeat: repeat-x;
2558 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2561 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b),
2559 to(#c43c35) );
2562 to(#c43c35) );
2560 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2563 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
2561 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2564 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
2562 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2565 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b),
2563 color-stop(100%, #c43c35) );
2566 color-stop(100%, #c43c35) );
2564 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2567 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
2565 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2568 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
2566 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2569 background-image: linear-gradient(top, #ee5f5b, #c43c35);
2567 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2570 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',
2568 endColorstr='#c43c35', GradientType=0 );
2571 endColorstr='#c43c35', GradientType=0 );
2569 border-color: #c43c35 #c43c35 #882a25;
2572 border-color: #c43c35 #c43c35 #882a25;
2570 }
2573 }
2571
2574
2572 .warning_msg {
2575 .warning_msg {
2573 color: #404040 !important;
2576 color: #404040 !important;
2574 background-color: #eedc94;
2577 background-color: #eedc94;
2575 background-repeat: repeat-x;
2578 background-repeat: repeat-x;
2576 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2579 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
2577 to(#eedc94) );
2580 to(#eedc94) );
2578 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2581 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
2579 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2582 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
2580 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2583 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1),
2581 color-stop(100%, #eedc94) );
2584 color-stop(100%, #eedc94) );
2582 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2585 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
2583 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2586 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
2584 background-image: linear-gradient(top, #fceec1, #eedc94);
2587 background-image: linear-gradient(top, #fceec1, #eedc94);
2585 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2588 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',
2586 endColorstr='#eedc94', GradientType=0 );
2589 endColorstr='#eedc94', GradientType=0 );
2587 border-color: #eedc94 #eedc94 #e4c652;
2590 border-color: #eedc94 #eedc94 #e4c652;
2588 }
2591 }
2589
2592
2590 .success_msg {
2593 .success_msg {
2591 background-color: #57a957;
2594 background-color: #57a957;
2592 background-repeat: repeat-x !important;
2595 background-repeat: repeat-x !important;
2593 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2596 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462),
2594 to(#57a957) );
2597 to(#57a957) );
2595 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2598 background-image: -moz-linear-gradient(top, #62c462, #57a957);
2596 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2599 background-image: -ms-linear-gradient(top, #62c462, #57a957);
2597 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2600 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462),
2598 color-stop(100%, #57a957) );
2601 color-stop(100%, #57a957) );
2599 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2602 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
2600 background-image: -o-linear-gradient(top, #62c462, #57a957);
2603 background-image: -o-linear-gradient(top, #62c462, #57a957);
2601 background-image: linear-gradient(top, #62c462, #57a957);
2604 background-image: linear-gradient(top, #62c462, #57a957);
2602 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2605 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',
2603 endColorstr='#57a957', GradientType=0 );
2606 endColorstr='#57a957', GradientType=0 );
2604 border-color: #57a957 #57a957 #3d773d;
2607 border-color: #57a957 #57a957 #3d773d;
2605 }
2608 }
2606
2609
2607 .notice_msg {
2610 .notice_msg {
2608 background-color: #339bb9;
2611 background-color: #339bb9;
2609 background-repeat: repeat-x;
2612 background-repeat: repeat-x;
2610 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2613 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de),
2611 to(#339bb9) );
2614 to(#339bb9) );
2612 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2615 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
2613 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2616 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
2614 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2617 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de),
2615 color-stop(100%, #339bb9) );
2618 color-stop(100%, #339bb9) );
2616 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2619 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
2617 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2620 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
2618 background-image: linear-gradient(top, #5bc0de, #339bb9);
2621 background-image: linear-gradient(top, #5bc0de, #339bb9);
2619 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2622 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',
2620 endColorstr='#339bb9', GradientType=0 );
2623 endColorstr='#339bb9', GradientType=0 );
2621 border-color: #339bb9 #339bb9 #22697d;
2624 border-color: #339bb9 #339bb9 #22697d;
2622 }
2625 }
2623
2626
2624 .success_msg,.error_msg,.notice_msg,.warning_msg {
2627 .success_msg,.error_msg,.notice_msg,.warning_msg {
2625 font-size: 12px;
2628 font-size: 12px;
2626 font-weight: 700;
2629 font-weight: 700;
2627 min-height: 14px;
2630 min-height: 14px;
2628 line-height: 14px;
2631 line-height: 14px;
2629 margin-bottom: 10px;
2632 margin-bottom: 10px;
2630 margin-top: 0;
2633 margin-top: 0;
2631 display: block;
2634 display: block;
2632 overflow: auto;
2635 overflow: auto;
2633 padding: 6px 10px 6px 10px;
2636 padding: 6px 10px 6px 10px;
2634 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2637 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
2635 position: relative;
2638 position: relative;
2636 color: #FFF;
2639 color: #FFF;
2637 border-width: 1px;
2640 border-width: 1px;
2638 border-style: solid;
2641 border-style: solid;
2639 -webkit-border-radius: 4px;
2642 -webkit-border-radius: 4px;
2640 -moz-border-radius: 4px;
2643 -moz-border-radius: 4px;
2641 border-radius: 4px;
2644 border-radius: 4px;
2642 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2645 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2643 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2646 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2644 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2647 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
2645 }
2648 }
2646
2649
2647 #msg_close {
2650 #msg_close {
2648 background: transparent url("../icons/cross_grey_small.png") no-repeat
2651 background: transparent url("../icons/cross_grey_small.png") no-repeat
2649 scroll 0 0;
2652 scroll 0 0;
2650 cursor: pointer;
2653 cursor: pointer;
2651 height: 16px;
2654 height: 16px;
2652 position: absolute;
2655 position: absolute;
2653 right: 5px;
2656 right: 5px;
2654 top: 5px;
2657 top: 5px;
2655 width: 16px;
2658 width: 16px;
2656 }
2659 }
2657
2660
2658 div#legend_container table,div#legend_choices table {
2661 div#legend_container table,div#legend_choices table {
2659 width: auto !important;
2662 width: auto !important;
2660 }
2663 }
2661
2664
2662 table#permissions_manage {
2665 table#permissions_manage {
2663 width: 0 !important;
2666 width: 0 !important;
2664 }
2667 }
2665
2668
2666 table#permissions_manage span.private_repo_msg {
2669 table#permissions_manage span.private_repo_msg {
2667 font-size: 0.8em;
2670 font-size: 0.8em;
2668 opacity: 0.6px;
2671 opacity: 0.6px;
2669 }
2672 }
2670
2673
2671 table#permissions_manage td.private_repo_msg {
2674 table#permissions_manage td.private_repo_msg {
2672 font-size: 0.8em;
2675 font-size: 0.8em;
2673 }
2676 }
2674
2677
2675 table#permissions_manage tr#add_perm_input td {
2678 table#permissions_manage tr#add_perm_input td {
2676 vertical-align: middle;
2679 vertical-align: middle;
2677 }
2680 }
2678
2681
2679 div.gravatar {
2682 div.gravatar {
2680 background-color: #FFF;
2683 background-color: #FFF;
2681 border: 0px solid #D0D0D0;
2684 border: 0px solid #D0D0D0;
2682 float: left;
2685 float: left;
2683 margin-right: 0.7em;
2686 margin-right: 0.7em;
2684 padding: 2px 2px 2px 2px;
2687 padding: 2px 2px 2px 2px;
2685 line-height:0;
2688 line-height:0;
2686 -webkit-border-radius: 6px;
2689 -webkit-border-radius: 6px;
2687 -khtml-border-radius: 6px;
2690 -khtml-border-radius: 6px;
2688 -moz-border-radius: 6px;
2691 -moz-border-radius: 6px;
2689 border-radius: 6px;
2692 border-radius: 6px;
2690 }
2693 }
2691
2694
2692 div.gravatar img {
2695 div.gravatar img {
2693 -webkit-border-radius: 4px;
2696 -webkit-border-radius: 4px;
2694 -khtml-border-radius: 4px;
2697 -khtml-border-radius: 4px;
2695 -moz-border-radius: 4px;
2698 -moz-border-radius: 4px;
2696 border-radius: 4px;
2699 border-radius: 4px;
2697 }
2700 }
2698
2701
2699 #header,#content,#footer {
2702 #header,#content,#footer {
2700 min-width: 978px;
2703 min-width: 978px;
2701 }
2704 }
2702
2705
2703 #content {
2706 #content {
2704 clear: both;
2707 clear: both;
2705 overflow: hidden;
2708 overflow: hidden;
2706 padding: 14px 10px;
2709 padding: 14px 10px;
2707 }
2710 }
2708
2711
2709 #content div.box div.title div.search {
2712 #content div.box div.title div.search {
2710
2713
2711 border-left: 1px solid #316293;
2714 border-left: 1px solid #316293;
2712 }
2715 }
2713
2716
2714 #content div.box div.title div.search div.input input {
2717 #content div.box div.title div.search div.input input {
2715 border: 1px solid #316293;
2718 border: 1px solid #316293;
2716 }
2719 }
2717
2720
2718 .ui-button-small a:hover {
2721 input.ui-button-small,
2719
2722 .ui-button-small {
2720 }
2723 background-color: #eedc94;
2721
2724 background-repeat: repeat-x;
2722 input.ui-button-small,.ui-button-small {
2725 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#ECECEC) );
2723 background: #e5e3e3 url("../images/button.png") repeat-x !important;
2726 background-image: -moz-linear-gradient(top, #F4F4F4, #ECECEC);
2727 background-image: -ms-linear-gradient(top, #F4F4F4, #ECECEC);
2728 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #F4F4F4) );
2729 background-image: -webkit-linear-gradient(top, #F4F4F4, #ECECEC) );
2730 background-image: -o-linear-gradient(top, #F4F4F4, #ECECEC) );
2731 background-image: linear-gradient(top, #F4F4F4, #ECECEC);
2732
2724 border-top: 1px solid #DDD !important;
2733 border-top: 1px solid #DDD !important;
2725 border-left: 1px solid #c6c6c6 !important;
2734 border-left: 1px solid #c6c6c6 !important;
2726 border-right: 1px solid #DDD !important;
2735 border-right: 1px solid #DDD !important;
2727 border-bottom: 1px solid #c6c6c6 !important;
2736 border-bottom: 1px solid #c6c6c6 !important;
2728 color: #515151 !important;
2737 color: #515151 !important;
2729 outline: none !important;
2738 outline: none !important;
2730 margin: 0 !important;
2739 margin: 0 !important;
2731 -webkit-border-radius: 4px 4px 4px 4px !important;
2740 -webkit-border-radius: 4px 4px 4px 4px !important;
2732 -khtml-border-radius: 4px 4px 4px 4px !important;
2741 -khtml-border-radius: 4px 4px 4px 4px !important;
2733 -moz-border-radius: 4px 4px 4px 4px !important;
2742 -moz-border-radius: 4px 4px 4px 4px !important;
2734 border-radius: 4px 4px 4px 4px !important;
2743 border-radius: 4px 4px 4px 4px !important;
2735 box-shadow: 0 1px 0 #ececec !important;
2744 box-shadow: 0 1px 0 #ececec !important;
2736 cursor: pointer !important;
2745 cursor: pointer !important;
2737 padding: 3px 3px 3px 3px;
2746 padding: 3px 3px 3px 3px;
2738 }
2747 }
2739
2748
2740 input.ui-button-small.xsmall,.ui-button-small.xsmall{
2749 input.ui-button-small.xsmall,
2750 .ui-button-small.xsmall{
2741 padding: 1px 2px 1px 1px;
2751 padding: 1px 2px 1px 1px;
2742 }
2752 }
2743
2753
2744 input.ui-button-small:hover,.ui-button-small:hover {
2754 input.ui-button-small:hover,
2745 background: #b4b4b4 url("../images/button_selected.png") repeat-x
2755 .ui-button-small:hover,
2746 !important;
2756 .ui-button-small.xsmall:hover
2757 {
2758 background: #b4b4b4 url("../images/button_selected.png") repeat-x !important;
2747 border-top: 1px solid #ccc !important;
2759 border-top: 1px solid #ccc !important;
2748 border-left: 1px solid #bebebe !important;
2760 border-left: 1px solid #bebebe !important;
2749 border-right: 1px solid #b1b1b1 !important;
2761 border-right: 1px solid #b1b1b1 !important;
2750 border-bottom: 1px solid #afafaf !important;
2762 border-bottom: 1px solid #afafaf !important;
2751 text-decoration: none;
2763 text-decoration: none;
2752 }
2764 }
2753
2765
2754 input.ui-button-small-blue,.ui-button-small-blue {
2766 input.ui-button-small-blue,.ui-button-small-blue {
2755 background: #4e85bb url("../images/button_highlight.png") repeat-x;
2767 background: #4e85bb url("../images/button_highlight.png") repeat-x;
2756 border-top: 1px solid #5c91a4;
2768 border-top: 1px solid #5c91a4;
2757 border-left: 1px solid #2a6f89;
2769 border-left: 1px solid #2a6f89;
2758 border-right: 1px solid #2b7089;
2770 border-right: 1px solid #2b7089;
2759 border-bottom: 1px solid #1a6480;
2771 border-bottom: 1px solid #1a6480;
2760 color: #fff;
2772 color: #fff;
2761 -webkit-border-radius: 4px 4px 4px 4px;
2773 -webkit-border-radius: 4px 4px 4px 4px;
2762 -khtml-border-radius: 4px 4px 4px 4px;
2774 -khtml-border-radius: 4px 4px 4px 4px;
2763 -moz-border-radius: 4px 4px 4px 4px;
2775 -moz-border-radius: 4px 4px 4px 4px;
2764 border-radius: 4px 4px 4px 4px;
2776 border-radius: 4px 4px 4px 4px;
2765 box-shadow: 0 1px 0 #ececec;
2777 box-shadow: 0 1px 0 #ececec;
2766 cursor: pointer;
2778 cursor: pointer;
2767 padding: 0px 2px 1px 2px;
2779 padding: 0px 2px 1px 2px;
2768 }
2780 }
2769
2781
2770 input.ui-button-small-blue:hover {
2782 input.ui-button-small-blue:hover {
2771
2783
2772 }
2784 }
2773
2785
2774 ins,div.options a:hover {
2786 ins,div.options a:hover {
2775 text-decoration: none;
2787 text-decoration: none;
2776 }
2788 }
2777
2789
2778 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
2790 img,
2791 #header #header-inner #quick li a:hover span.normal,
2792 #header #header-inner #quick li ul li.last,
2793 #content div.box div.form div.fields div.field div.textarea table td table td a,
2794 #clone_url
2779 {
2795 {
2780 border: none;
2796 border: none;
2781 }
2797 }
2782
2798
2783 img.icon,.right .merge img {
2799 img.icon,.right .merge img {
2784 vertical-align: bottom;
2800 vertical-align: bottom;
2785 }
2801 }
2786
2802
2787 #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
2803 #header ul#logged-user,#content div.box div.title ul.links,
2804 #content div.box div.message div.dismiss,
2805 #content div.box div.traffic div.legend ul
2788 {
2806 {
2789 float: right;
2807 float: right;
2790 margin: 0;
2808 margin: 0;
2791 padding: 0;
2809 padding: 0;
2792 }
2810 }
2793
2811
2794 #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
2812 #header #header-inner #home,#header #header-inner #logo,
2813 #content div.box ul.left,#content div.box ol.left,
2814 #content div.box div.pagination-left,div#commit_history,
2815 div#legend_data,div#legend_container,div#legend_choices
2795 {
2816 {
2796 float: left;
2817 float: left;
2797 }
2818 }
2798
2819
2799 #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
2820 #header #header-inner #quick li:hover ul ul,
2821 #header #header-inner #quick li:hover ul ul ul,
2822 #header #header-inner #quick li:hover ul ul ul ul,
2823 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
2800 {
2824 {
2801 display: none;
2825 display: none;
2802 }
2826 }
2803
2827
2804 #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
2828 #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
2805 {
2829 {
2806 display: block;
2830 display: block;
2807 }
2831 }
2808
2832
2809 #content div.graph {
2833 #content div.graph {
2810 padding: 0 10px 10px;
2834 padding: 0 10px 10px;
2811 }
2835 }
2812
2836
2813 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
2837 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
2814 {
2838 {
2815 color: #bfe3ff;
2839 color: #bfe3ff;
2816 }
2840 }
2817
2841
2818 #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
2842 #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
2819 {
2843 {
2820 margin: 10px 24px 10px 44px;
2844 margin: 10px 24px 10px 44px;
2821 }
2845 }
2822
2846
2823 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
2847 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
2824 {
2848 {
2825 clear: both;
2849 clear: both;
2826 overflow: hidden;
2850 overflow: hidden;
2827 margin: 0;
2851 margin: 0;
2828 padding: 0 20px 10px;
2852 padding: 0 20px 10px;
2829 }
2853 }
2830
2854
2831 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
2855 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
2832 {
2856 {
2833 clear: both;
2857 clear: both;
2834 overflow: hidden;
2858 overflow: hidden;
2835 margin: 0;
2859 margin: 0;
2836 padding: 0;
2860 padding: 0;
2837 }
2861 }
2838
2862
2839 #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
2863 #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
2840 {
2864 {
2841 height: 1%;
2865 height: 1%;
2842 display: block;
2866 display: block;
2843 color: #363636;
2867 color: #363636;
2844 margin: 0;
2868 margin: 0;
2845 padding: 2px 0 0;
2869 padding: 2px 0 0;
2846 }
2870 }
2847
2871
2848 #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
2872 #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
2849 {
2873 {
2850 background: #FBE3E4;
2874 background: #FBE3E4;
2851 border-top: 1px solid #e1b2b3;
2875 border-top: 1px solid #e1b2b3;
2852 border-left: 1px solid #e1b2b3;
2876 border-left: 1px solid #e1b2b3;
2853 border-right: 1px solid #FBC2C4;
2877 border-right: 1px solid #FBC2C4;
2854 border-bottom: 1px solid #FBC2C4;
2878 border-bottom: 1px solid #FBC2C4;
2855 }
2879 }
2856
2880
2857 #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
2881 #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
2858 {
2882 {
2859 background: #E6EFC2;
2883 background: #E6EFC2;
2860 border-top: 1px solid #cebb98;
2884 border-top: 1px solid #cebb98;
2861 border-left: 1px solid #cebb98;
2885 border-left: 1px solid #cebb98;
2862 border-right: 1px solid #c6d880;
2886 border-right: 1px solid #c6d880;
2863 border-bottom: 1px solid #c6d880;
2887 border-bottom: 1px solid #c6d880;
2864 }
2888 }
2865
2889
2866 #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
2890 #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
2867 {
2891 {
2868 margin: 0;
2892 margin: 0;
2869 }
2893 }
2870
2894
2871 #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
2895 #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
2872 {
2896 {
2873 margin: 0 0 0 0px !important;
2897 margin: 0 0 0 0px !important;
2874 padding: 0;
2898 padding: 0;
2875 }
2899 }
2876
2900
2877 #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
2901 #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
2878 {
2902 {
2879 margin: 0 0 0 200px;
2903 margin: 0 0 0 200px;
2880 padding: 0;
2904 padding: 0;
2881 }
2905 }
2882
2906
2883 #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
2907 #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
2884 {
2908 {
2885 color: #000;
2909 color: #000;
2886 text-decoration: none;
2910 text-decoration: none;
2887 }
2911 }
2888
2912
2889 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
2913 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
2890 {
2914 {
2891 border: 1px solid #666;
2915 border: 1px solid #666;
2892 }
2916 }
2893
2917
2894 #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
2918 #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
2895 {
2919 {
2896 clear: both;
2920 clear: both;
2897 overflow: hidden;
2921 overflow: hidden;
2898 margin: 0;
2922 margin: 0;
2899 padding: 8px 0 2px;
2923 padding: 8px 0 2px;
2900 }
2924 }
2901
2925
2902 #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
2926 #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
2903 {
2927 {
2904 float: left;
2928 float: left;
2905 margin: 0;
2929 margin: 0;
2906 }
2930 }
2907
2931
2908 #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
2932 #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
2909 {
2933 {
2910 height: 1%;
2934 height: 1%;
2911 display: block;
2935 display: block;
2912 float: left;
2936 float: left;
2913 margin: 2px 0 0 4px;
2937 margin: 2px 0 0 4px;
2914 }
2938 }
2915
2939
2916 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
2940 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
2917 {
2941 {
2918 color: #000;
2942 color: #000;
2919 font-size: 11px;
2943 font-size: 11px;
2920 font-weight: 700;
2944 font-weight: 700;
2921 margin: 0;
2945 margin: 0;
2922 }
2946 }
2923
2947
2924 input.ui-button {
2948 input.ui-button {
2925 background: #e5e3e3 url("../images/button.png") repeat-x;
2949 background: #e5e3e3 url("../images/button.png") repeat-x;
2926 border-top: 1px solid #DDD;
2950 border-top: 1px solid #DDD;
2927 border-left: 1px solid #c6c6c6;
2951 border-left: 1px solid #c6c6c6;
2928 border-right: 1px solid #DDD;
2952 border-right: 1px solid #DDD;
2929 border-bottom: 1px solid #c6c6c6;
2953 border-bottom: 1px solid #c6c6c6;
2930 color: #515151 !important;
2954 color: #515151 !important;
2931 outline: none;
2955 outline: none;
2932 margin: 0;
2956 margin: 0;
2933 padding: 6px 12px;
2957 padding: 6px 12px;
2934 -webkit-border-radius: 4px 4px 4px 4px;
2958 -webkit-border-radius: 4px 4px 4px 4px;
2935 -khtml-border-radius: 4px 4px 4px 4px;
2959 -khtml-border-radius: 4px 4px 4px 4px;
2936 -moz-border-radius: 4px 4px 4px 4px;
2960 -moz-border-radius: 4px 4px 4px 4px;
2937 border-radius: 4px 4px 4px 4px;
2961 border-radius: 4px 4px 4px 4px;
2938 box-shadow: 0 1px 0 #ececec;
2962 box-shadow: 0 1px 0 #ececec;
2939 cursor: pointer;
2963 cursor: pointer;
2940 }
2964 }
2941
2965
2942 input.ui-button:hover {
2966 input.ui-button:hover {
2943 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
2967 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
2944 border-top: 1px solid #ccc;
2968 border-top: 1px solid #ccc;
2945 border-left: 1px solid #bebebe;
2969 border-left: 1px solid #bebebe;
2946 border-right: 1px solid #b1b1b1;
2970 border-right: 1px solid #b1b1b1;
2947 border-bottom: 1px solid #afafaf;
2971 border-bottom: 1px solid #afafaf;
2948 }
2972 }
2949
2973
2950 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
2974 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
2951 {
2975 {
2952 display: inline;
2976 display: inline;
2953 }
2977 }
2954
2978
2955 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
2979 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
2956 {
2980 {
2957 margin: 10px 0 0 200px;
2981 margin: 10px 0 0 200px;
2958 padding: 0;
2982 padding: 0;
2959 }
2983 }
2960
2984
2961 #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
2985 #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
2962 {
2986 {
2963 margin: 10px 0 0;
2987 margin: 10px 0 0;
2964 }
2988 }
2965
2989
2966 #content div.box table td.user,#content div.box table td.address {
2990 #content div.box table td.user,#content div.box table td.address {
2967 width: 10%;
2991 width: 10%;
2968 text-align: center;
2992 text-align: center;
2969 }
2993 }
2970
2994
2971 #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
2995 #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
2972 {
2996 {
2973 text-align: right;
2997 text-align: right;
2974 margin: 6px 0 0;
2998 margin: 6px 0 0;
2975 padding: 0;
2999 padding: 0;
2976 }
3000 }
2977
3001
2978 #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
3002 #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
2979 {
3003 {
2980 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3004 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
2981 border-top: 1px solid #ccc;
3005 border-top: 1px solid #ccc;
2982 border-left: 1px solid #bebebe;
3006 border-left: 1px solid #bebebe;
2983 border-right: 1px solid #b1b1b1;
3007 border-right: 1px solid #b1b1b1;
2984 border-bottom: 1px solid #afafaf;
3008 border-bottom: 1px solid #afafaf;
2985 color: #515151;
3009 color: #515151;
2986 margin: 0;
3010 margin: 0;
2987 padding: 6px 12px;
3011 padding: 6px 12px;
2988 }
3012 }
2989
3013
2990 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3014 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
2991 {
3015 {
2992 text-align: left;
3016 text-align: left;
2993 float: left;
3017 float: left;
2994 margin: 0;
3018 margin: 0;
2995 padding: 0;
3019 padding: 0;
2996 }
3020 }
2997
3021
2998 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3022 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
2999 {
3023 {
3000 height: 1%;
3024 height: 1%;
3001 display: block;
3025 display: block;
3002 float: left;
3026 float: left;
3003 background: #ebebeb url("../images/pager.png") repeat-x;
3027 background: #ebebeb url("../images/pager.png") repeat-x;
3004 border-top: 1px solid #dedede;
3028 border-top: 1px solid #dedede;
3005 border-left: 1px solid #cfcfcf;
3029 border-left: 1px solid #cfcfcf;
3006 border-right: 1px solid #c4c4c4;
3030 border-right: 1px solid #c4c4c4;
3007 border-bottom: 1px solid #c4c4c4;
3031 border-bottom: 1px solid #c4c4c4;
3008 color: #4A4A4A;
3032 color: #4A4A4A;
3009 font-weight: 700;
3033 font-weight: 700;
3010 margin: 0;
3034 margin: 0;
3011 padding: 6px 8px;
3035 padding: 6px 8px;
3012 }
3036 }
3013
3037
3014 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3038 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3015 {
3039 {
3016 color: #B4B4B4;
3040 color: #B4B4B4;
3017 padding: 6px;
3041 padding: 6px;
3018 }
3042 }
3019
3043
3020 #login,#register {
3044 #login,#register {
3021 width: 520px;
3045 width: 520px;
3022 margin: 10% auto 0;
3046 margin: 10% auto 0;
3023 padding: 0;
3047 padding: 0;
3024 }
3048 }
3025
3049
3026 #login div.color,#register div.color {
3050 #login div.color,#register div.color {
3027 clear: both;
3051 clear: both;
3028 overflow: hidden;
3052 overflow: hidden;
3029 background: #FFF;
3053 background: #FFF;
3030 margin: 10px auto 0;
3054 margin: 10px auto 0;
3031 padding: 3px 3px 3px 0;
3055 padding: 3px 3px 3px 0;
3032 }
3056 }
3033
3057
3034 #login div.color a,#register div.color a {
3058 #login div.color a,#register div.color a {
3035 width: 20px;
3059 width: 20px;
3036 height: 20px;
3060 height: 20px;
3037 display: block;
3061 display: block;
3038 float: left;
3062 float: left;
3039 margin: 0 0 0 3px;
3063 margin: 0 0 0 3px;
3040 padding: 0;
3064 padding: 0;
3041 }
3065 }
3042
3066
3043 #login div.title h5,#register div.title h5 {
3067 #login div.title h5,#register div.title h5 {
3044 color: #fff;
3068 color: #fff;
3045 margin: 10px;
3069 margin: 10px;
3046 padding: 0;
3070 padding: 0;
3047 }
3071 }
3048
3072
3049 #login div.form div.fields div.field,#register div.form div.fields div.field
3073 #login div.form div.fields div.field,#register div.form div.fields div.field
3050 {
3074 {
3051 clear: both;
3075 clear: both;
3052 overflow: hidden;
3076 overflow: hidden;
3053 margin: 0;
3077 margin: 0;
3054 padding: 0 0 10px;
3078 padding: 0 0 10px;
3055 }
3079 }
3056
3080
3057 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3081 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3058 {
3082 {
3059 height: 1%;
3083 height: 1%;
3060 display: block;
3084 display: block;
3061 color: red;
3085 color: red;
3062 margin: 8px 0 0;
3086 margin: 8px 0 0;
3063 padding: 0;
3087 padding: 0;
3064 max-width: 320px;
3088 max-width: 320px;
3065 }
3089 }
3066
3090
3067 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3091 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3068 {
3092 {
3069 color: #000;
3093 color: #000;
3070 font-weight: 700;
3094 font-weight: 700;
3071 }
3095 }
3072
3096
3073 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3097 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3074 {
3098 {
3075 float: left;
3099 float: left;
3076 margin: 0;
3100 margin: 0;
3077 padding: 0;
3101 padding: 0;
3078 }
3102 }
3079
3103
3080 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3104 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3081 {
3105 {
3082 margin: 0 0 0 184px;
3106 margin: 0 0 0 184px;
3083 padding: 0;
3107 padding: 0;
3084 }
3108 }
3085
3109
3086 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3110 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3087 {
3111 {
3088 color: #565656;
3112 color: #565656;
3089 font-weight: 700;
3113 font-weight: 700;
3090 }
3114 }
3091
3115
3092 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3116 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3093 {
3117 {
3094 color: #000;
3118 color: #000;
3095 font-size: 1em;
3119 font-size: 1em;
3096 font-weight: 700;
3120 font-weight: 700;
3097 margin: 0;
3121 margin: 0;
3098 }
3122 }
3099
3123
3100 #changeset_content .container .wrapper,#graph_content .container .wrapper
3124 #changeset_content .container .wrapper,#graph_content .container .wrapper
3101 {
3125 {
3102 width: 600px;
3126 width: 600px;
3103 }
3127 }
3104
3128
3105 #changeset_content .container .left,#graph_content .container .left {
3129 #changeset_content .container .left,#graph_content .container .left {
3106 float: left;
3130 float: left;
3107 width: 70%;
3131 width: 70%;
3108 padding-left: 5px;
3132 padding-left: 5px;
3109 }
3133 }
3110
3134
3111 #changeset_content .container .left .date,.ac .match {
3135 #changeset_content .container .left .date,.ac .match {
3112 font-weight: 700;
3136 font-weight: 700;
3113 padding-top: 5px;
3137 padding-top: 5px;
3114 padding-bottom: 5px;
3138 padding-bottom: 5px;
3115 }
3139 }
3116
3140
3117 div#legend_container table td,div#legend_choices table td {
3141 div#legend_container table td,div#legend_choices table td {
3118 border: none !important;
3142 border: none !important;
3119 height: 20px !important;
3143 height: 20px !important;
3120 padding: 0 !important;
3144 padding: 0 !important;
3121 }
3145 }
3122
3146
3123 .q_filter_box {
3147 .q_filter_box {
3124 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3148 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3125 -webkit-border-radius: 4px;
3149 -webkit-border-radius: 4px;
3126 -moz-border-radius: 4px;
3150 -moz-border-radius: 4px;
3127 border-radius: 4px;
3151 border-radius: 4px;
3128 border: 0 none;
3152 border: 0 none;
3129 color: #AAAAAA;
3153 color: #AAAAAA;
3130 margin-bottom: -4px;
3154 margin-bottom: -4px;
3131 margin-top: -4px;
3155 margin-top: -4px;
3132 padding-left: 3px;
3156 padding-left: 3px;
3133 }
3157 }
3134
3158
3135 #node_filter {
3159 #node_filter {
3136 border: 0px solid #545454;
3160 border: 0px solid #545454;
3137 color: #AAAAAA;
3161 color: #AAAAAA;
3138 padding-left: 3px;
3162 padding-left: 3px;
3139 }
3163 }
3140
3164
3141 /*README STYLE*/
3165 /*README STYLE*/
3142
3166
3143 div.readme {
3167 div.readme {
3144 padding:0px;
3168 padding:0px;
3145 }
3169 }
3146
3170
3147 div.readme h2 {
3171 div.readme h2 {
3148 font-weight: normal;
3172 font-weight: normal;
3149 }
3173 }
3150
3174
3151 div.readme .readme_box {
3175 div.readme .readme_box {
3152 background-color: #fafafa;
3176 background-color: #fafafa;
3153 }
3177 }
3154
3178
3155 div.readme .readme_box {
3179 div.readme .readme_box {
3156 clear:both;
3180 clear:both;
3157 overflow:hidden;
3181 overflow:hidden;
3158 margin:0;
3182 margin:0;
3159 padding:0 20px 10px;
3183 padding:0 20px 10px;
3160 }
3184 }
3161
3185
3162 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
3186 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
3163 border-bottom: 0 !important;
3187 border-bottom: 0 !important;
3164 margin: 0 !important;
3188 margin: 0 !important;
3165 padding: 0 !important;
3189 padding: 0 !important;
3166 line-height: 1.5em !important;
3190 line-height: 1.5em !important;
3167 }
3191 }
3168
3192
3169
3193
3170 div.readme .readme_box h1:first-child {
3194 div.readme .readme_box h1:first-child {
3171 padding-top: .25em !important;
3195 padding-top: .25em !important;
3172 }
3196 }
3173
3197
3174 div.readme .readme_box h2, div.readme .readme_box h3 {
3198 div.readme .readme_box h2, div.readme .readme_box h3 {
3175 margin: 1em 0 !important;
3199 margin: 1em 0 !important;
3176 }
3200 }
3177
3201
3178 div.readme .readme_box h2 {
3202 div.readme .readme_box h2 {
3179 margin-top: 1.5em !important;
3203 margin-top: 1.5em !important;
3180 border-top: 4px solid #e0e0e0 !important;
3204 border-top: 4px solid #e0e0e0 !important;
3181 padding-top: .5em !important;
3205 padding-top: .5em !important;
3182 }
3206 }
3183
3207
3184 div.readme .readme_box p {
3208 div.readme .readme_box p {
3185 color: black !important;
3209 color: black !important;
3186 margin: 1em 0 !important;
3210 margin: 1em 0 !important;
3187 line-height: 1.5em !important;
3211 line-height: 1.5em !important;
3188 }
3212 }
3189
3213
3190 div.readme .readme_box ul {
3214 div.readme .readme_box ul {
3191 list-style: disc !important;
3215 list-style: disc !important;
3192 margin: 1em 0 1em 2em !important;
3216 margin: 1em 0 1em 2em !important;
3193 }
3217 }
3194
3218
3195 div.readme .readme_box ol {
3219 div.readme .readme_box ol {
3196 list-style: decimal;
3220 list-style: decimal;
3197 margin: 1em 0 1em 2em !important;
3221 margin: 1em 0 1em 2em !important;
3198 }
3222 }
3199
3223
3200 div.readme .readme_box pre, code {
3224 div.readme .readme_box pre, code {
3201 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3225 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3202 }
3226 }
3203
3227
3204 div.readme .readme_box code {
3228 div.readme .readme_box code {
3205 font-size: 12px !important;
3229 font-size: 12px !important;
3206 background-color: ghostWhite !important;
3230 background-color: ghostWhite !important;
3207 color: #444 !important;
3231 color: #444 !important;
3208 padding: 0 .2em !important;
3232 padding: 0 .2em !important;
3209 border: 1px solid #dedede !important;
3233 border: 1px solid #dedede !important;
3210 }
3234 }
3211
3235
3212 div.readme .readme_box pre code {
3236 div.readme .readme_box pre code {
3213 padding: 0 !important;
3237 padding: 0 !important;
3214 font-size: 12px !important;
3238 font-size: 12px !important;
3215 background-color: #eee !important;
3239 background-color: #eee !important;
3216 border: none !important;
3240 border: none !important;
3217 }
3241 }
3218
3242
3219 div.readme .readme_box pre {
3243 div.readme .readme_box pre {
3220 margin: 1em 0;
3244 margin: 1em 0;
3221 font-size: 12px;
3245 font-size: 12px;
3222 background-color: #eee;
3246 background-color: #eee;
3223 border: 1px solid #ddd;
3247 border: 1px solid #ddd;
3224 padding: 5px;
3248 padding: 5px;
3225 color: #444;
3249 color: #444;
3226 overflow: auto;
3250 overflow: auto;
3227 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3251 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3228 -webkit-border-radius: 3px;
3252 -webkit-border-radius: 3px;
3229 -moz-border-radius: 3px;
3253 -moz-border-radius: 3px;
3230 border-radius: 3px;
3254 border-radius: 3px;
3231 }
3255 }
3232
3256
3233
3257
3234 /** RST STYLE **/
3258 /** RST STYLE **/
3235
3259
3236
3260
3237 div.rst-block {
3261 div.rst-block {
3238 padding:0px;
3262 padding:0px;
3239 }
3263 }
3240
3264
3241 div.rst-block h2 {
3265 div.rst-block h2 {
3242 font-weight: normal;
3266 font-weight: normal;
3243 }
3267 }
3244
3268
3245 div.rst-block {
3269 div.rst-block {
3246 background-color: #fafafa;
3270 background-color: #fafafa;
3247 }
3271 }
3248
3272
3249 div.rst-block {
3273 div.rst-block {
3250 clear:both;
3274 clear:both;
3251 overflow:hidden;
3275 overflow:hidden;
3252 margin:0;
3276 margin:0;
3253 padding:0 20px 10px;
3277 padding:0 20px 10px;
3254 }
3278 }
3255
3279
3256 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3280 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3257 border-bottom: 0 !important;
3281 border-bottom: 0 !important;
3258 margin: 0 !important;
3282 margin: 0 !important;
3259 padding: 0 !important;
3283 padding: 0 !important;
3260 line-height: 1.5em !important;
3284 line-height: 1.5em !important;
3261 }
3285 }
3262
3286
3263
3287
3264 div.rst-block h1:first-child {
3288 div.rst-block h1:first-child {
3265 padding-top: .25em !important;
3289 padding-top: .25em !important;
3266 }
3290 }
3267
3291
3268 div.rst-block h2, div.rst-block h3 {
3292 div.rst-block h2, div.rst-block h3 {
3269 margin: 1em 0 !important;
3293 margin: 1em 0 !important;
3270 }
3294 }
3271
3295
3272 div.rst-block h2 {
3296 div.rst-block h2 {
3273 margin-top: 1.5em !important;
3297 margin-top: 1.5em !important;
3274 border-top: 4px solid #e0e0e0 !important;
3298 border-top: 4px solid #e0e0e0 !important;
3275 padding-top: .5em !important;
3299 padding-top: .5em !important;
3276 }
3300 }
3277
3301
3278 div.rst-block p {
3302 div.rst-block p {
3279 color: black !important;
3303 color: black !important;
3280 margin: 1em 0 !important;
3304 margin: 1em 0 !important;
3281 line-height: 1.5em !important;
3305 line-height: 1.5em !important;
3282 }
3306 }
3283
3307
3284 div.rst-block ul {
3308 div.rst-block ul {
3285 list-style: disc !important;
3309 list-style: disc !important;
3286 margin: 1em 0 1em 2em !important;
3310 margin: 1em 0 1em 2em !important;
3287 }
3311 }
3288
3312
3289 div.rst-block ol {
3313 div.rst-block ol {
3290 list-style: decimal;
3314 list-style: decimal;
3291 margin: 1em 0 1em 2em !important;
3315 margin: 1em 0 1em 2em !important;
3292 }
3316 }
3293
3317
3294 div.rst-block pre, code {
3318 div.rst-block pre, code {
3295 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3319 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3296 }
3320 }
3297
3321
3298 div.rst-block code {
3322 div.rst-block code {
3299 font-size: 12px !important;
3323 font-size: 12px !important;
3300 background-color: ghostWhite !important;
3324 background-color: ghostWhite !important;
3301 color: #444 !important;
3325 color: #444 !important;
3302 padding: 0 .2em !important;
3326 padding: 0 .2em !important;
3303 border: 1px solid #dedede !important;
3327 border: 1px solid #dedede !important;
3304 }
3328 }
3305
3329
3306 div.rst-block pre code {
3330 div.rst-block pre code {
3307 padding: 0 !important;
3331 padding: 0 !important;
3308 font-size: 12px !important;
3332 font-size: 12px !important;
3309 background-color: #eee !important;
3333 background-color: #eee !important;
3310 border: none !important;
3334 border: none !important;
3311 }
3335 }
3312
3336
3313 div.rst-block pre {
3337 div.rst-block pre {
3314 margin: 1em 0;
3338 margin: 1em 0;
3315 font-size: 12px;
3339 font-size: 12px;
3316 background-color: #eee;
3340 background-color: #eee;
3317 border: 1px solid #ddd;
3341 border: 1px solid #ddd;
3318 padding: 5px;
3342 padding: 5px;
3319 color: #444;
3343 color: #444;
3320 overflow: auto;
3344 overflow: auto;
3321 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3345 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3322 -webkit-border-radius: 3px;
3346 -webkit-border-radius: 3px;
3323 -moz-border-radius: 3px;
3347 -moz-border-radius: 3px;
3324 border-radius: 3px;
3348 border-radius: 3px;
3325 }
3349 }
3326
3350
3327
3351
3328 /** comment main **/
3352 /** comment main **/
3329 .comments {
3353 .comments {
3330 padding:10px 20px;
3354 padding:10px 20px;
3331 }
3355 }
3332
3356
3333 .comments .comment {
3357 .comments .comment {
3334 border: 1px solid #ddd;
3358 border: 1px solid #ddd;
3335 margin-top: 10px;
3359 margin-top: 10px;
3336 -webkit-border-radius: 4px;
3360 -webkit-border-radius: 4px;
3337 -moz-border-radius: 4px;
3361 -moz-border-radius: 4px;
3338 border-radius: 4px;
3362 border-radius: 4px;
3339 }
3363 }
3340
3364
3341 .comments .comment .meta {
3365 .comments .comment .meta {
3342 background: #f8f8f8;
3366 background: #f8f8f8;
3343 padding: 6px;
3367 padding: 6px;
3344 border-bottom: 1px solid #ddd;
3368 border-bottom: 1px solid #ddd;
3345 }
3369 }
3346
3370
3347 .comments .comment .meta img {
3371 .comments .comment .meta img {
3348 vertical-align: middle;
3372 vertical-align: middle;
3349 }
3373 }
3350
3374
3351 .comments .comment .meta .user {
3375 .comments .comment .meta .user {
3352 font-weight: bold;
3376 font-weight: bold;
3353 }
3377 }
3354
3378
3355 .comments .comment .meta .date {
3379 .comments .comment .meta .date {
3356 float: right;
3380 float: right;
3357 }
3381 }
3358
3382
3359 .comments .comment .text {
3383 .comments .comment .text {
3360 padding: 8px 6px 6px 14px;
3384 padding: 8px 6px 6px 14px;
3361 background-color: #FAFAFA;
3385 background-color: #FAFAFA;
3362 }
3386 }
3363
3387
3364 .comments .comments-number{
3388 .comments .comments-number{
3365 padding:0px 0px 10px 0px;
3389 padding:0px 0px 10px 0px;
3366 font-weight: bold;
3390 font-weight: bold;
3367 color: #666;
3391 color: #666;
3368 font-size: 16px;
3392 font-size: 16px;
3369 }
3393 }
3370
3394
3371 /** comment form **/
3395 /** comment form **/
3372
3396
3373 .comment-form .clearfix{
3397 .comment-form .clearfix{
3374 background: #EEE;
3398 background: #EEE;
3375 -webkit-border-radius: 4px;
3399 -webkit-border-radius: 4px;
3376 -moz-border-radius: 4px;
3400 -moz-border-radius: 4px;
3377 border-radius: 4px;
3401 border-radius: 4px;
3378 padding: 10px;
3402 padding: 10px;
3379 }
3403 }
3380
3404
3381 div.comment-form {
3405 div.comment-form {
3382 margin-top: 20px;
3406 margin-top: 20px;
3383 }
3407 }
3384
3408
3385 .comment-form strong {
3409 .comment-form strong {
3386 display: block;
3410 display: block;
3387 margin-bottom: 15px;
3411 margin-bottom: 15px;
3388 }
3412 }
3389
3413
3390 .comment-form textarea {
3414 .comment-form textarea {
3391 width: 100%;
3415 width: 100%;
3392 height: 100px;
3416 height: 100px;
3393 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3417 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3394 }
3418 }
3395
3419
3396 form.comment-form {
3420 form.comment-form {
3397 margin-top: 10px;
3421 margin-top: 10px;
3398 margin-left: 10px;
3422 margin-left: 10px;
3399 }
3423 }
3400
3424
3401 .comment-form-submit {
3425 .comment-form-submit {
3402 margin-top: 5px;
3426 margin-top: 5px;
3403 margin-left: 525px;
3427 margin-left: 525px;
3404 }
3428 }
3405
3429
3406 .file-comments {
3430 .file-comments {
3407 display: none;
3431 display: none;
3408 }
3432 }
3409
3433
3410 .comment-form .comment {
3434 .comment-form .comment {
3411 margin-left: 10px;
3435 margin-left: 10px;
3412 }
3436 }
3413
3437
3414 .comment-form .comment-help{
3438 .comment-form .comment-help{
3415 padding: 0px 0px 5px 0px;
3439 padding: 0px 0px 5px 0px;
3416 color: #666;
3440 color: #666;
3417 }
3441 }
3418
3442
3419 .comment-form .comment-button{
3443 .comment-form .comment-button{
3420 padding-top:5px;
3444 padding-top:5px;
3421 }
3445 }
3422
3446
3423 .add-another-button {
3447 .add-another-button {
3424 margin-left: 10px;
3448 margin-left: 10px;
3425 margin-top: 10px;
3449 margin-top: 10px;
3426 margin-bottom: 10px;
3450 margin-bottom: 10px;
3427 }
3451 }
3428
3452
3429 .comment .buttons {
3453 .comment .buttons {
3430 position: absolute;
3454 position: absolute;
3431 right:40px;
3455 right:40px;
3432 }
3456 }
3433
3457
3434
3458
3435 .show-inline-comments{
3459 .show-inline-comments{
3436 position: relative;
3460 position: relative;
3437 top:1px
3461 top:1px
3438 }
3462 }
3439
3463
3440 /** comment inline form **/
3464 /** comment inline form **/
3441
3465
3442 .comment-inline-form .clearfix{
3466 .comment-inline-form .clearfix{
3443 background: #EEE;
3467 background: #EEE;
3444 -webkit-border-radius: 4px;
3468 -webkit-border-radius: 4px;
3445 -moz-border-radius: 4px;
3469 -moz-border-radius: 4px;
3446 border-radius: 4px;
3470 border-radius: 4px;
3447 padding: 5px;
3471 padding: 5px;
3448 }
3472 }
3449
3473
3450 div.comment-inline-form {
3474 div.comment-inline-form {
3451 margin-top: 5px;
3475 margin-top: 5px;
3452 padding:2px 6px 8px 6px;
3476 padding:2px 6px 8px 6px;
3453 }
3477 }
3454
3478
3455 .comment-inline-form strong {
3479 .comment-inline-form strong {
3456 display: block;
3480 display: block;
3457 margin-bottom: 15px;
3481 margin-bottom: 15px;
3458 }
3482 }
3459
3483
3460 .comment-inline-form textarea {
3484 .comment-inline-form textarea {
3461 width: 100%;
3485 width: 100%;
3462 height: 100px;
3486 height: 100px;
3463 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3487 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3464 }
3488 }
3465
3489
3466 form.comment-inline-form {
3490 form.comment-inline-form {
3467 margin-top: 10px;
3491 margin-top: 10px;
3468 margin-left: 10px;
3492 margin-left: 10px;
3469 }
3493 }
3470
3494
3471 .comment-inline-form-submit {
3495 .comment-inline-form-submit {
3472 margin-top: 5px;
3496 margin-top: 5px;
3473 margin-left: 525px;
3497 margin-left: 525px;
3474 }
3498 }
3475
3499
3476 .file-comments {
3500 .file-comments {
3477 display: none;
3501 display: none;
3478 }
3502 }
3479
3503
3480 .comment-inline-form .comment {
3504 .comment-inline-form .comment {
3481 margin-left: 10px;
3505 margin-left: 10px;
3482 }
3506 }
3483
3507
3484 .comment-inline-form .comment-help{
3508 .comment-inline-form .comment-help{
3485 padding: 0px 0px 2px 0px;
3509 padding: 0px 0px 2px 0px;
3486 color: #666666;
3510 color: #666666;
3487 font-size: 10px;
3511 font-size: 10px;
3488 }
3512 }
3489
3513
3490 .comment-inline-form .comment-button{
3514 .comment-inline-form .comment-button{
3491 padding-top:5px;
3515 padding-top:5px;
3492 }
3516 }
3493
3517
3494 /** comment inline **/
3518 /** comment inline **/
3495 .inline-comments {
3519 .inline-comments {
3496 padding:10px 20px;
3520 padding:10px 20px;
3497 }
3521 }
3498
3522
3499 .inline-comments div.rst-block {
3523 .inline-comments div.rst-block {
3500 clear:both;
3524 clear:both;
3501 overflow:hidden;
3525 overflow:hidden;
3502 margin:0;
3526 margin:0;
3503 padding:0 20px 0px;
3527 padding:0 20px 0px;
3504 }
3528 }
3505 .inline-comments .comment {
3529 .inline-comments .comment {
3506 border: 1px solid #ddd;
3530 border: 1px solid #ddd;
3507 -webkit-border-radius: 4px;
3531 -webkit-border-radius: 4px;
3508 -moz-border-radius: 4px;
3532 -moz-border-radius: 4px;
3509 border-radius: 4px;
3533 border-radius: 4px;
3510 margin: 3px 3px 5px 5px;
3534 margin: 3px 3px 5px 5px;
3511 }
3535 }
3512
3536
3513 .inline-comments .comment .meta {
3537 .inline-comments .comment .meta {
3514 background: #f8f8f8;
3538 background: #f8f8f8;
3515 padding: 6px;
3539 padding: 6px;
3516 border-bottom: 1px solid #ddd;
3540 border-bottom: 1px solid #ddd;
3517 }
3541 }
3518
3542
3519 .inline-comments .comment .meta img {
3543 .inline-comments .comment .meta img {
3520 vertical-align: middle;
3544 vertical-align: middle;
3521 }
3545 }
3522
3546
3523 .inline-comments .comment .meta .user {
3547 .inline-comments .comment .meta .user {
3524 font-weight: bold;
3548 font-weight: bold;
3525 }
3549 }
3526
3550
3527 .inline-comments .comment .meta .date {
3551 .inline-comments .comment .meta .date {
3528 float: right;
3552 float: right;
3529 }
3553 }
3530
3554
3531 .inline-comments .comment .text {
3555 .inline-comments .comment .text {
3532 padding: 8px 6px 6px 14px;
3556 padding: 8px 6px 6px 14px;
3533 background-color: #FAFAFA;
3557 background-color: #FAFAFA;
3534 }
3558 }
3535
3559
3536 .inline-comments .comments-number{
3560 .inline-comments .comments-number{
3537 padding:0px 0px 10px 0px;
3561 padding:0px 0px 10px 0px;
3538 font-weight: bold;
3562 font-weight: bold;
3539 color: #666;
3563 color: #666;
3540 font-size: 16px;
3564 font-size: 16px;
3541 }
3565 }
3542 .inline-comments-button .add-comment{
3566 .inline-comments-button .add-comment{
3543 margin:10px 5px !important;
3567 margin:10px 5px !important;
3544 }
3568 }
3545 .notifications{
3569 .notifications{
3546 width:22px;
3570 width:22px;
3547 padding:2px;
3571 padding:2px;
3548 float:right;
3572 float:right;
3549 -webkit-border-radius: 4px;
3573 -webkit-border-radius: 4px;
3550 -moz-border-radius: 4px;
3574 -moz-border-radius: 4px;
3551 border-radius: 4px;
3575 border-radius: 4px;
3552 text-align: center;
3576 text-align: center;
3553 margin: 0px -10px 0px 5px;
3577 margin: 0px -10px 0px 5px;
3554 background-color: #DEDEDE;
3578 background-color: #DEDEDE;
3555 }
3579 }
3556 .notifications a{
3580 .notifications a{
3557 color:#888 !important;
3581 color:#888 !important;
3558 display: block;
3582 display: block;
3559 font-size: 10px
3583 font-size: 10px
3560 }
3584 }
3561 .notifications a:hover{
3585 .notifications a:hover{
3562 text-decoration: none !important;
3586 text-decoration: none !important;
3563 }
3587 }
3564 .notification-header{
3588 .notification-header{
3565
3589
3566 }
3590 }
3567 .notification-header .desc{
3591 .notification-header .desc{
3568 font-size: 16px;
3592 font-size: 16px;
3569 height: 24px;
3593 height: 24px;
3570 padding-top: 6px;
3594 padding-top: 6px;
3571 float: left
3595 float: left
3572 }
3596 }
3573 .notification-list .container.unread{
3597 .notification-list .container.unread{
3574
3598
3575 }
3599 }
3576 .notification-header .desc.unread{
3600 .notification-header .desc.unread{
3577 font-weight: bold;
3601 font-weight: bold;
3578 font-size: 17px;
3602 font-size: 17px;
3579 }
3603 }
3580
3604
3581 .notification-header .delete-notifications{
3605 .notification-header .delete-notifications{
3582 float: right;
3606 float: right;
3583 padding-top: 8px;
3607 padding-top: 8px;
3584 cursor: pointer;
3608 cursor: pointer;
3585 }
3609 }
3586 .notification-subject{
3610 .notification-subject{
3587 clear:both;
3611 clear:both;
3588 border-bottom: 1px solid #eee;
3612 border-bottom: 1px solid #eee;
3589 padding:5px 0px 5px 38px;
3613 padding:5px 0px 5px 38px;
3590 } No newline at end of file
3614 }
@@ -1,676 +1,670 b''
1 <%inherit file="/base/base.html"/>
1 <%inherit file="/base/base.html"/>
2
2
3 <%def name="title()">
3 <%def name="title()">
4 ${c.repo_name} ${_('Summary')} - ${c.rhodecode_name}
4 ${c.repo_name} ${_('Summary')} - ${c.rhodecode_name}
5 </%def>
5 </%def>
6
6
7 <%def name="breadcrumbs_links()">
7 <%def name="breadcrumbs_links()">
8 ${h.link_to(u'Home',h.url('/'))}
8 ${h.link_to(u'Home',h.url('/'))}
9 &raquo;
9 &raquo;
10 ${h.link_to(c.dbrepo.just_name,h.url('summary_home',repo_name=c.repo_name))}
10 ${h.link_to(c.dbrepo.just_name,h.url('summary_home',repo_name=c.repo_name))}
11 &raquo;
11 &raquo;
12 ${_('summary')}
12 ${_('summary')}
13 </%def>
13 </%def>
14
14
15 <%def name="page_nav()">
15 <%def name="page_nav()">
16 ${self.menu('summary')}
16 ${self.menu('summary')}
17 </%def>
17 </%def>
18
18
19 <%def name="main()">
19 <%def name="main()">
20 <%
20 <%
21 summary = lambda n:{False:'summary-short'}.get(n)
21 summary = lambda n:{False:'summary-short'}.get(n)
22 %>
22 %>
23 %if c.show_stats:
23 %if c.show_stats:
24 <div class="box box-left">
24 <div class="box box-left">
25 %else:
25 %else:
26 <div class="box">
26 <div class="box">
27 %endif
27 %endif
28 <!-- box / title -->
28 <!-- box / title -->
29 <div class="title">
29 <div class="title">
30 ${self.breadcrumbs()}
30 ${self.breadcrumbs()}
31 </div>
31 </div>
32 <!-- end box / title -->
32 <!-- end box / title -->
33 <div class="form">
33 <div class="form">
34 <div id="summary" class="fields">
34 <div id="summary" class="fields">
35
35
36 <div class="field">
36 <div class="field">
37 <div class="label-summary">
37 <div class="label-summary">
38 <label>${_('Name')}:</label>
38 <label>${_('Name')}:</label>
39 </div>
39 </div>
40 <div class="input ${summary(c.show_stats)}">
40 <div class="input ${summary(c.show_stats)}">
41 <div style="float:right;padding:5px 0px 0px 5px">
41 <div style="float:right;padding:5px 0px 0px 5px">
42 %if c.rhodecode_user.username != 'default':
42 %if c.rhodecode_user.username != 'default':
43 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='rss_icon')}
43 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='rss_icon')}
44 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='atom_icon')}
44 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='atom_icon')}
45 %else:
45 %else:
46 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name),class_='rss_icon')}
46 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name),class_='rss_icon')}
47 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='atom_icon')}
47 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='atom_icon')}
48 %endif
48 %endif
49 </div>
49 </div>
50 %if c.rhodecode_user.username != 'default':
50 %if c.rhodecode_user.username != 'default':
51 %if c.following:
51 %if c.following:
52 <span id="follow_toggle" class="following" title="${_('Stop following this repository')}"
52 <span id="follow_toggle" class="following" title="${_('Stop following this repository')}"
53 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
53 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
54 </span>
54 </span>
55 %else:
55 %else:
56 <span id="follow_toggle" class="follow" title="${_('Start following this repository')}"
56 <span id="follow_toggle" class="follow" title="${_('Start following this repository')}"
57 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
57 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
58 </span>
58 </span>
59 %endif
59 %endif
60 %endif:
60 %endif:
61 ##REPO TYPE
61 ##REPO TYPE
62 %if c.dbrepo.repo_type =='hg':
62 %if c.dbrepo.repo_type =='hg':
63 <img style="margin-bottom:2px" class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
63 <img style="margin-bottom:2px" class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
64 %endif
64 %endif
65 %if c.dbrepo.repo_type =='git':
65 %if c.dbrepo.repo_type =='git':
66 <img style="margin-bottom:2px" class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
66 <img style="margin-bottom:2px" class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
67 %endif
67 %endif
68
68
69 ##PUBLIC/PRIVATE
69 ##PUBLIC/PRIVATE
70 %if c.dbrepo.private:
70 %if c.dbrepo.private:
71 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
71 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
72 %else:
72 %else:
73 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
73 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
74 %endif
74 %endif
75
75
76 ##REPO NAME
76 ##REPO NAME
77 <span class="repo_name">${h.repo_link(c.dbrepo.groups_and_repo)}</span>
77 <span class="repo_name">${h.repo_link(c.dbrepo.groups_and_repo)}</span>
78
78
79 ##FORK
79 ##FORK
80 %if c.dbrepo.fork:
80 %if c.dbrepo.fork:
81 <div style="margin-top:5px;clear:both"">
81 <div style="margin-top:5px;clear:both"">
82 <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
82 <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
83 ${_('Fork of')} ${c.dbrepo.fork.repo_name}
83 ${_('Fork of')} ${c.dbrepo.fork.repo_name}
84 </a>
84 </a>
85 </div>
85 </div>
86 %endif
86 %endif
87 ##REMOTE
87 ##REMOTE
88 %if c.dbrepo.clone_uri:
88 %if c.dbrepo.clone_uri:
89 <div style="margin-top:5px;clear:both">
89 <div style="margin-top:5px;clear:both">
90 <a href="${h.url(str(h.hide_credentials(c.dbrepo.clone_uri)))}"><img class="icon" alt="${_('remote clone')}" title="${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}" src="${h.url('/images/icons/connect.png')}"/>
90 <a href="${h.url(str(h.hide_credentials(c.dbrepo.clone_uri)))}"><img class="icon" alt="${_('remote clone')}" title="${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}" src="${h.url('/images/icons/connect.png')}"/>
91 ${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}
91 ${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}
92 </a>
92 </a>
93 </div>
93 </div>
94 %endif
94 %endif
95 </div>
95 </div>
96 </div>
96 </div>
97
97
98 <div class="field">
98 <div class="field">
99 <div class="label-summary">
99 <div class="label-summary">
100 <label>${_('Description')}:</label>
100 <label>${_('Description')}:</label>
101 </div>
101 </div>
102 <div class="input ${summary(c.show_stats)} desc">${h.urlify_text(c.dbrepo.description)}</div>
102 <div class="input ${summary(c.show_stats)} desc">${h.urlify_text(c.dbrepo.description)}</div>
103 </div>
103 </div>
104
104
105 <div class="field">
105 <div class="field">
106 <div class="label-summary">
106 <div class="label-summary">
107 <label>${_('Contact')}:</label>
107 <label>${_('Contact')}:</label>
108 </div>
108 </div>
109 <div class="input ${summary(c.show_stats)}">
109 <div class="input ${summary(c.show_stats)}">
110 <div class="gravatar">
110 <div class="gravatar">
111 <img alt="gravatar" src="${h.gravatar_url(c.dbrepo.user.email)}"/>
111 <img alt="gravatar" src="${h.gravatar_url(c.dbrepo.user.email)}"/>
112 </div>
112 </div>
113 ${_('Username')}: ${c.dbrepo.user.username}<br/>
113 ${_('Username')}: ${c.dbrepo.user.username}<br/>
114 ${_('Name')}: ${c.dbrepo.user.name} ${c.dbrepo.user.lastname}<br/>
114 ${_('Name')}: ${c.dbrepo.user.name} ${c.dbrepo.user.lastname}<br/>
115 ${_('Email')}: <a href="mailto:${c.dbrepo.user.email}">${c.dbrepo.user.email}</a>
115 ${_('Email')}: <a href="mailto:${c.dbrepo.user.email}">${c.dbrepo.user.email}</a>
116 </div>
116 </div>
117 </div>
117 </div>
118
118
119 <div class="field">
119 <div class="field">
120 <div class="label-summary">
120 <div class="label-summary">
121 <label>${_('Clone url')}:</label>
121 <label>${_('Clone url')}:</label>
122 </div>
122 </div>
123 <div class="input ${summary(c.show_stats)}">
123 <div class="input ${summary(c.show_stats)}">
124 <input type="text" id="clone_url" readonly="readonly" value="${c.clone_repo_url}" size="70"/>
124 <input type="text" id="clone_url" readonly="readonly" value="${c.clone_repo_url}" size="70"/>
125 </div>
125 </div>
126 </div>
126 </div>
127
127
128 <div class="field">
128 <div class="field">
129 <div class="label-summary">
129 <div class="label-summary">
130 <label>${_('Trending files')}:</label>
130 <label>${_('Trending files')}:</label>
131 </div>
131 </div>
132 <div class="input ${summary(c.show_stats)}">
132 <div class="input ${summary(c.show_stats)}">
133 %if c.show_stats:
133 %if c.show_stats:
134 <div id="lang_stats"></div>
134 <div id="lang_stats"></div>
135 %else:
135 %else:
136 ${_('Statistics are disabled for this repository')}
136 ${_('Statistics are disabled for this repository')}
137 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
137 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
138 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
138 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
139 %endif
139 %endif
140 %endif
140 %endif
141 </div>
141 </div>
142 </div>
142 </div>
143
143
144 <div class="field">
144 <div class="field">
145 <div class="label-summary">
145 <div class="label-summary">
146 <label>${_('Download')}:</label>
146 <label>${_('Download')}:</label>
147 </div>
147 </div>
148 <div class="input ${summary(c.show_stats)}">
148 <div class="input ${summary(c.show_stats)}">
149 %if len(c.rhodecode_repo.revisions) == 0:
149 %if len(c.rhodecode_repo.revisions) == 0:
150 ${_('There are no downloads yet')}
150 ${_('There are no downloads yet')}
151 %elif c.enable_downloads is False:
151 %elif c.enable_downloads is False:
152 ${_('Downloads are disabled for this repository')}
152 ${_('Downloads are disabled for this repository')}
153 %if h.HasPermissionAll('hg.admin')('enable downloads on from summary'):
153 %if h.HasPermissionAll('hg.admin')('enable downloads on from summary'):
154 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
154 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
155 %endif
155 %endif
156 %else:
156 %else:
157 ${h.select('download_options',c.rhodecode_repo.get_changeset().raw_id,c.download_options)}
157 ${h.select('download_options',c.rhodecode_repo.get_changeset().raw_id,c.download_options)}
158 %for cnt,archive in enumerate(c.rhodecode_repo._get_archives()):
158 <span id="${'zip_link'}">${h.link_to('Download as zip',h.url('files_archive_home',repo_name=c.dbrepo.repo_name,fname='tip.zip'),class_="archive_icon ui-button-small")}</span>
159 %if cnt >=1:
160 |
161 %endif
162 <span class="tooltip" title="${_('Download %s as %s') %('tip',archive['type'])}"
163 id="${archive['type']+'_link'}">${h.link_to(archive['type'],
164 h.url('files_archive_home',repo_name=c.dbrepo.repo_name,
165 fname='tip'+archive['extension']),class_="archive_icon")}</span>
166 %endfor
167 <span style="vertical-align: bottom">
159 <span style="vertical-align: bottom">
168 <input id="archive_subrepos" type="checkbox" name="subrepos"/> <span class="tooltip" title="${_('Check this to download archive with subrepos')}" >${_('with subrepos')}</span>
160 <input id="archive_subrepos" type="checkbox" name="subrepos"/> <span class="tooltip" title="${_('Check this to download archive with subrepos')}" >${_('with subrepos')}</span>
169 </span>
161 </span>
170 %endif
162 %endif
171 </div>
163 </div>
172 </div>
164 </div>
173 </div>
165 </div>
174 </div>
166 </div>
175 </div>
167 </div>
176
168
177 %if c.show_stats:
169 %if c.show_stats:
178 <div class="box box-right" style="min-height:455px">
170 <div class="box box-right" style="min-height:455px">
179 <!-- box / title -->
171 <!-- box / title -->
180 <div class="title">
172 <div class="title">
181 <h5>${_('Commit activity by day / author')}</h5>
173 <h5>${_('Commit activity by day / author')}</h5>
182 </div>
174 </div>
183
175
184 <div class="graph">
176 <div class="graph">
185 <div style="padding:0 10px 10px 15px;font-size: 1.2em;">
177 <div style="padding:0 10px 10px 15px;font-size: 1.2em;">
186 %if c.no_data:
178 %if c.no_data:
187 ${c.no_data_msg}
179 ${c.no_data_msg}
188 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
180 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
189 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
181 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-button-small")}
190 %endif
182 %endif
191 %else:
183 %else:
192 ${_('Loaded in')} ${c.stats_percentage} %
184 ${_('Loaded in')} ${c.stats_percentage} %
193 %endif
185 %endif
194 </div>
186 </div>
195 <div id="commit_history" style="width:450px;height:300px;float:left"></div>
187 <div id="commit_history" style="width:450px;height:300px;float:left"></div>
196 <div style="clear: both;height: 10px"></div>
188 <div style="clear: both;height: 10px"></div>
197 <div id="overview" style="width:450px;height:100px;float:left"></div>
189 <div id="overview" style="width:450px;height:100px;float:left"></div>
198
190
199 <div id="legend_data" style="clear:both;margin-top:10px;">
191 <div id="legend_data" style="clear:both;margin-top:10px;">
200 <div id="legend_container"></div>
192 <div id="legend_container"></div>
201 <div id="legend_choices">
193 <div id="legend_choices">
202 <table id="legend_choices_tables" class="noborder" style="font-size:smaller;color:#545454"></table>
194 <table id="legend_choices_tables" class="noborder" style="font-size:smaller;color:#545454"></table>
203 </div>
195 </div>
204 </div>
196 </div>
205 </div>
197 </div>
206 </div>
198 </div>
207 %endif
199 %endif
208
200
209 <div class="box">
201 <div class="box">
210 <div class="title">
202 <div class="title">
211 <div class="breadcrumbs">
203 <div class="breadcrumbs">
212 %if c.repo_changesets:
204 %if c.repo_changesets:
213 ${h.link_to(_('Shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
205 ${h.link_to(_('Shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
214 %else:
206 %else:
215 ${_('Quick start')}
207 ${_('Quick start')}
216 %endif
208 %endif
217 </div>
209 </div>
218 </div>
210 </div>
219 <div class="table">
211 <div class="table">
220 <div id="shortlog_data">
212 <div id="shortlog_data">
221 <%include file='../shortlog/shortlog_data.html'/>
213 <%include file='../shortlog/shortlog_data.html'/>
222 </div>
214 </div>
223 </div>
215 </div>
224 </div>
216 </div>
225
217
226 %if c.readme_data:
218 %if c.readme_data:
227 <div class="box" style="background-color: #FAFAFA">
219 <div class="box" style="background-color: #FAFAFA">
228 <div class="title">
220 <div class="title">
229 <div class="breadcrumbs"><a href="${h.url('files_home',repo_name=c.repo_name,revision='tip',f_path=c.readme_file)}">${c.readme_file}</a></div>
221 <div class="breadcrumbs"><a href="${h.url('files_home',repo_name=c.repo_name,revision='tip',f_path=c.readme_file)}">${c.readme_file}</a></div>
230 </div>
222 </div>
231 <div class="readme">
223 <div class="readme">
232 <div class="readme_box">
224 <div class="readme_box">
233 ${c.readme_data|n}
225 ${c.readme_data|n}
234 </div>
226 </div>
235 </div>
227 </div>
236 </div>
228 </div>
237 %endif
229 %endif
238
230
239 <script type="text/javascript">
231 <script type="text/javascript">
240 var clone_url = 'clone_url';
232 var clone_url = 'clone_url';
241 YUE.on(clone_url,'click',function(e){
233 YUE.on(clone_url,'click',function(e){
242 if(YUD.hasClass(clone_url,'selected')){
234 if(YUD.hasClass(clone_url,'selected')){
243 return
235 return
244 }
236 }
245 else{
237 else{
246 YUD.addClass(clone_url,'selected');
238 YUD.addClass(clone_url,'selected');
247 YUD.get(clone_url).select();
239 YUD.get(clone_url).select();
248 }
240 }
249 })
241 })
250
242
251 var tmpl_links = {};
243 var tmpl_links = {};
252 %for cnt,archive in enumerate(c.rhodecode_repo._get_archives()):
244 %for cnt,archive in enumerate(c.rhodecode_repo._get_archives()):
253 tmpl_links['${archive['type']}'] = '${h.link_to(archive['type'],
245 tmpl_links["${archive['type']}"] = '${h.link_to('__NAME__', h.url('files_archive_home',repo_name=c.dbrepo.repo_name, fname='__CS__'+archive['extension'],subrepos='__SUB__'),class_='archive_icon ui-button-small')}';
254 h.url('files_archive_home',repo_name=c.dbrepo.repo_name,
255 fname='__CS__'+archive['extension'],subrepos='__SUB__'),class_="archive_icon")}';
256 %endfor
246 %endfor
257
247
258 YUE.on(['download_options','archive_subrepos'],'change',function(e){
248 YUE.on(['download_options','archive_subrepos'],'change',function(e){
259 var sm = YUD.get('download_options');
249 var sm = YUD.get('download_options');
260 var new_cs = sm.options[sm.selectedIndex];
250 var new_cs = sm.options[sm.selectedIndex];
261
251
262 for(k in tmpl_links){
252 for(k in tmpl_links){
263 var s = YUD.get(k+'_link');
253 var s = YUD.get(k+'_link');
264 title_tmpl = "${_('Download %s as %s') % ('__CS_NAME__','__CS_EXT__')}";
254 if(s){
265 s.title = title_tmpl.replace('__CS_NAME__',new_cs.text);
255 var title_tmpl = "${_('Download %s as %s') % ('__CS_NAME__','__CS_EXT__')}";
266 s.title = s.title.replace('__CS_EXT__',k);
256 title_tmpl= title_tmpl.replace('__CS_NAME__',new_cs.text);
257 title_tmpl = title_tmpl.replace('__CS_EXT__',k);
258
267 var url = tmpl_links[k].replace('__CS__',new_cs.value);
259 var url = tmpl_links[k].replace('__CS__',new_cs.value);
268 var subrepos = YUD.get('archive_subrepos').checked
260 var subrepos = YUD.get('archive_subrepos').checked;
269 url = url.replace('__SUB__',subrepos);
261 url = url.replace('__SUB__',subrepos);
262 url = url.replace('__NAME__',title_tmpl);
270 s.innerHTML = url
263 s.innerHTML = url
271 }
264 }
265 }
272 });
266 });
273 </script>
267 </script>
274 %if c.show_stats:
268 %if c.show_stats:
275 <script type="text/javascript">
269 <script type="text/javascript">
276 var data = ${c.trending_languages|n};
270 var data = ${c.trending_languages|n};
277 var total = 0;
271 var total = 0;
278 var no_data = true;
272 var no_data = true;
279 for (k in data){
273 for (k in data){
280 total += data[k].count;
274 total += data[k].count;
281 no_data = false;
275 no_data = false;
282 }
276 }
283 var tbl = document.createElement('table');
277 var tbl = document.createElement('table');
284 tbl.setAttribute('class','trending_language_tbl');
278 tbl.setAttribute('class','trending_language_tbl');
285 var cnt = 0;
279 var cnt = 0;
286 for (k in data){
280 for (k in data){
287 cnt += 1;
281 cnt += 1;
288 var hide = cnt>2;
282 var hide = cnt>2;
289 var tr = document.createElement('tr');
283 var tr = document.createElement('tr');
290 if (hide){
284 if (hide){
291 tr.setAttribute('style','display:none');
285 tr.setAttribute('style','display:none');
292 tr.setAttribute('class','stats_hidden');
286 tr.setAttribute('class','stats_hidden');
293 }
287 }
294 var percentage = Math.round((data[k].count/total*100),2);
288 var percentage = Math.round((data[k].count/total*100),2);
295 var value = data[k].count;
289 var value = data[k].count;
296 var td1 = document.createElement('td');
290 var td1 = document.createElement('td');
297 td1.width = 150;
291 td1.width = 150;
298 var trending_language_label = document.createElement('div');
292 var trending_language_label = document.createElement('div');
299 trending_language_label.innerHTML = data[k].desc+" ("+k+")";
293 trending_language_label.innerHTML = data[k].desc+" ("+k+")";
300 td1.appendChild(trending_language_label);
294 td1.appendChild(trending_language_label);
301
295
302 var td2 = document.createElement('td');
296 var td2 = document.createElement('td');
303 td2.setAttribute('style','padding-right:14px !important');
297 td2.setAttribute('style','padding-right:14px !important');
304 var trending_language = document.createElement('div');
298 var trending_language = document.createElement('div');
305 var nr_files = value+" ${_('files')}";
299 var nr_files = value+" ${_('files')}";
306
300
307 trending_language.title = k+" "+nr_files;
301 trending_language.title = k+" "+nr_files;
308
302
309 if (percentage>22){
303 if (percentage>22){
310 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"% "+nr_files+ "</b>";
304 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"% "+nr_files+ "</b>";
311 }
305 }
312 else{
306 else{
313 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"%</b>";
307 trending_language.innerHTML = "<b style='font-size:0.8em'>"+percentage+"%</b>";
314 }
308 }
315
309
316 trending_language.setAttribute("class", 'trending_language top-right-rounded-corner bottom-right-rounded-corner');
310 trending_language.setAttribute("class", 'trending_language top-right-rounded-corner bottom-right-rounded-corner');
317 trending_language.style.width=percentage+"%";
311 trending_language.style.width=percentage+"%";
318 td2.appendChild(trending_language);
312 td2.appendChild(trending_language);
319
313
320 tr.appendChild(td1);
314 tr.appendChild(td1);
321 tr.appendChild(td2);
315 tr.appendChild(td2);
322 tbl.appendChild(tr);
316 tbl.appendChild(tr);
323 if(cnt == 3){
317 if(cnt == 3){
324 var show_more = document.createElement('tr');
318 var show_more = document.createElement('tr');
325 var td = document.createElement('td');
319 var td = document.createElement('td');
326 lnk = document.createElement('a');
320 lnk = document.createElement('a');
327
321
328 lnk.href='#';
322 lnk.href='#';
329 lnk.innerHTML = "${_('show more')}";
323 lnk.innerHTML = "${_('show more')}";
330 lnk.id='code_stats_show_more';
324 lnk.id='code_stats_show_more';
331 td.appendChild(lnk);
325 td.appendChild(lnk);
332
326
333 show_more.appendChild(td);
327 show_more.appendChild(td);
334 show_more.appendChild(document.createElement('td'));
328 show_more.appendChild(document.createElement('td'));
335 tbl.appendChild(show_more);
329 tbl.appendChild(show_more);
336 }
330 }
337
331
338 }
332 }
339
333
340 YUD.get('lang_stats').appendChild(tbl);
334 YUD.get('lang_stats').appendChild(tbl);
341 YUE.on('code_stats_show_more','click',function(){
335 YUE.on('code_stats_show_more','click',function(){
342 l = YUD.getElementsByClassName('stats_hidden')
336 l = YUD.getElementsByClassName('stats_hidden')
343 for (e in l){
337 for (e in l){
344 YUD.setStyle(l[e],'display','');
338 YUD.setStyle(l[e],'display','');
345 };
339 };
346 YUD.setStyle(YUD.get('code_stats_show_more'),
340 YUD.setStyle(YUD.get('code_stats_show_more'),
347 'display','none');
341 'display','none');
348 });
342 });
349 </script>
343 </script>
350 <script type="text/javascript">
344 <script type="text/javascript">
351 /**
345 /**
352 * Plots summary graph
346 * Plots summary graph
353 *
347 *
354 * @class SummaryPlot
348 * @class SummaryPlot
355 * @param {from} initial from for detailed graph
349 * @param {from} initial from for detailed graph
356 * @param {to} initial to for detailed graph
350 * @param {to} initial to for detailed graph
357 * @param {dataset}
351 * @param {dataset}
358 * @param {overview_dataset}
352 * @param {overview_dataset}
359 */
353 */
360 function SummaryPlot(from,to,dataset,overview_dataset) {
354 function SummaryPlot(from,to,dataset,overview_dataset) {
361 var initial_ranges = {
355 var initial_ranges = {
362 "xaxis":{
356 "xaxis":{
363 "from":from,
357 "from":from,
364 "to":to,
358 "to":to,
365 },
359 },
366 };
360 };
367 var dataset = dataset;
361 var dataset = dataset;
368 var overview_dataset = [overview_dataset];
362 var overview_dataset = [overview_dataset];
369 var choiceContainer = YUD.get("legend_choices");
363 var choiceContainer = YUD.get("legend_choices");
370 var choiceContainerTable = YUD.get("legend_choices_tables");
364 var choiceContainerTable = YUD.get("legend_choices_tables");
371 var plotContainer = YUD.get('commit_history');
365 var plotContainer = YUD.get('commit_history');
372 var overviewContainer = YUD.get('overview');
366 var overviewContainer = YUD.get('overview');
373
367
374 var plot_options = {
368 var plot_options = {
375 bars: {show:true,align:'center',lineWidth:4},
369 bars: {show:true,align:'center',lineWidth:4},
376 legend: {show:true, container:"legend_container"},
370 legend: {show:true, container:"legend_container"},
377 points: {show:true,radius:0,fill:false},
371 points: {show:true,radius:0,fill:false},
378 yaxis: {tickDecimals:0,},
372 yaxis: {tickDecimals:0,},
379 xaxis: {
373 xaxis: {
380 mode: "time",
374 mode: "time",
381 timeformat: "%d/%m",
375 timeformat: "%d/%m",
382 min:from,
376 min:from,
383 max:to,
377 max:to,
384 },
378 },
385 grid: {
379 grid: {
386 hoverable: true,
380 hoverable: true,
387 clickable: true,
381 clickable: true,
388 autoHighlight:true,
382 autoHighlight:true,
389 color: "#999"
383 color: "#999"
390 },
384 },
391 //selection: {mode: "x"}
385 //selection: {mode: "x"}
392 };
386 };
393 var overview_options = {
387 var overview_options = {
394 legend:{show:false},
388 legend:{show:false},
395 bars: {show:true,barWidth: 2,},
389 bars: {show:true,barWidth: 2,},
396 shadowSize: 0,
390 shadowSize: 0,
397 xaxis: {mode: "time", timeformat: "%d/%m/%y",},
391 xaxis: {mode: "time", timeformat: "%d/%m/%y",},
398 yaxis: {ticks: 3, min: 0,tickDecimals:0,},
392 yaxis: {ticks: 3, min: 0,tickDecimals:0,},
399 grid: {color: "#999",},
393 grid: {color: "#999",},
400 selection: {mode: "x"}
394 selection: {mode: "x"}
401 };
395 };
402
396
403 /**
397 /**
404 *get dummy data needed in few places
398 *get dummy data needed in few places
405 */
399 */
406 function getDummyData(label){
400 function getDummyData(label){
407 return {"label":label,
401 return {"label":label,
408 "data":[{"time":0,
402 "data":[{"time":0,
409 "commits":0,
403 "commits":0,
410 "added":0,
404 "added":0,
411 "changed":0,
405 "changed":0,
412 "removed":0,
406 "removed":0,
413 }],
407 }],
414 "schema":["commits"],
408 "schema":["commits"],
415 "color":'#ffffff',
409 "color":'#ffffff',
416 }
410 }
417 }
411 }
418
412
419 /**
413 /**
420 * generate checkboxes accordindly to data
414 * generate checkboxes accordindly to data
421 * @param keys
415 * @param keys
422 * @returns
416 * @returns
423 */
417 */
424 function generateCheckboxes(data) {
418 function generateCheckboxes(data) {
425 //append checkboxes
419 //append checkboxes
426 var i = 0;
420 var i = 0;
427 choiceContainerTable.innerHTML = '';
421 choiceContainerTable.innerHTML = '';
428 for(var pos in data) {
422 for(var pos in data) {
429
423
430 data[pos].color = i;
424 data[pos].color = i;
431 i++;
425 i++;
432 if(data[pos].label != ''){
426 if(data[pos].label != ''){
433 choiceContainerTable.innerHTML += '<tr><td>'+
427 choiceContainerTable.innerHTML += '<tr><td>'+
434 '<input type="checkbox" name="' + data[pos].label +'" checked="checked" />'
428 '<input type="checkbox" name="' + data[pos].label +'" checked="checked" />'
435 +data[pos].label+
429 +data[pos].label+
436 '</td></tr>';
430 '</td></tr>';
437 }
431 }
438 }
432 }
439 }
433 }
440
434
441 /**
435 /**
442 * ToolTip show
436 * ToolTip show
443 */
437 */
444 function showTooltip(x, y, contents) {
438 function showTooltip(x, y, contents) {
445 var div=document.getElementById('tooltip');
439 var div=document.getElementById('tooltip');
446 if(!div) {
440 if(!div) {
447 div = document.createElement('div');
441 div = document.createElement('div');
448 div.id="tooltip";
442 div.id="tooltip";
449 div.style.position="absolute";
443 div.style.position="absolute";
450 div.style.border='1px solid #fdd';
444 div.style.border='1px solid #fdd';
451 div.style.padding='2px';
445 div.style.padding='2px';
452 div.style.backgroundColor='#fee';
446 div.style.backgroundColor='#fee';
453 document.body.appendChild(div);
447 document.body.appendChild(div);
454 }
448 }
455 YUD.setStyle(div, 'opacity', 0);
449 YUD.setStyle(div, 'opacity', 0);
456 div.innerHTML = contents;
450 div.innerHTML = contents;
457 div.style.top=(y + 5) + "px";
451 div.style.top=(y + 5) + "px";
458 div.style.left=(x + 5) + "px";
452 div.style.left=(x + 5) + "px";
459
453
460 var anim = new YAHOO.util.Anim(div, {opacity: {to: 0.8}}, 0.2);
454 var anim = new YAHOO.util.Anim(div, {opacity: {to: 0.8}}, 0.2);
461 anim.animate();
455 anim.animate();
462 }
456 }
463
457
464 /**
458 /**
465 * This function will detect if selected period has some changesets
459 * This function will detect if selected period has some changesets
466 for this user if it does this data is then pushed for displaying
460 for this user if it does this data is then pushed for displaying
467 Additionally it will only display users that are selected by the checkbox
461 Additionally it will only display users that are selected by the checkbox
468 */
462 */
469 function getDataAccordingToRanges(ranges) {
463 function getDataAccordingToRanges(ranges) {
470
464
471 var data = [];
465 var data = [];
472 var new_dataset = {};
466 var new_dataset = {};
473 var keys = [];
467 var keys = [];
474 var max_commits = 0;
468 var max_commits = 0;
475 for(var key in dataset){
469 for(var key in dataset){
476
470
477 for(var ds in dataset[key].data){
471 for(var ds in dataset[key].data){
478 commit_data = dataset[key].data[ds];
472 commit_data = dataset[key].data[ds];
479 if (commit_data.time >= ranges.xaxis.from && commit_data.time <= ranges.xaxis.to){
473 if (commit_data.time >= ranges.xaxis.from && commit_data.time <= ranges.xaxis.to){
480
474
481 if(new_dataset[key] === undefined){
475 if(new_dataset[key] === undefined){
482 new_dataset[key] = {data:[],schema:["commits"],label:key};
476 new_dataset[key] = {data:[],schema:["commits"],label:key};
483 }
477 }
484 new_dataset[key].data.push(commit_data);
478 new_dataset[key].data.push(commit_data);
485 }
479 }
486 }
480 }
487 if (new_dataset[key] !== undefined){
481 if (new_dataset[key] !== undefined){
488 data.push(new_dataset[key]);
482 data.push(new_dataset[key]);
489 }
483 }
490 }
484 }
491
485
492 if (data.length > 0){
486 if (data.length > 0){
493 return data;
487 return data;
494 }
488 }
495 else{
489 else{
496 //just return dummy data for graph to plot itself
490 //just return dummy data for graph to plot itself
497 return [getDummyData('')];
491 return [getDummyData('')];
498 }
492 }
499 }
493 }
500
494
501 /**
495 /**
502 * redraw using new checkbox data
496 * redraw using new checkbox data
503 */
497 */
504 function plotchoiced(e,args){
498 function plotchoiced(e,args){
505 var cur_data = args[0];
499 var cur_data = args[0];
506 var cur_ranges = args[1];
500 var cur_ranges = args[1];
507
501
508 var new_data = [];
502 var new_data = [];
509 var inputs = choiceContainer.getElementsByTagName("input");
503 var inputs = choiceContainer.getElementsByTagName("input");
510
504
511 //show only checked labels
505 //show only checked labels
512 for(var i=0; i<inputs.length; i++) {
506 for(var i=0; i<inputs.length; i++) {
513 var checkbox_key = inputs[i].name;
507 var checkbox_key = inputs[i].name;
514
508
515 if(inputs[i].checked){
509 if(inputs[i].checked){
516 for(var d in cur_data){
510 for(var d in cur_data){
517 if(cur_data[d].label == checkbox_key){
511 if(cur_data[d].label == checkbox_key){
518 new_data.push(cur_data[d]);
512 new_data.push(cur_data[d]);
519 }
513 }
520 }
514 }
521 }
515 }
522 else{
516 else{
523 //push dummy data to not hide the label
517 //push dummy data to not hide the label
524 new_data.push(getDummyData(checkbox_key));
518 new_data.push(getDummyData(checkbox_key));
525 }
519 }
526 }
520 }
527
521
528 var new_options = YAHOO.lang.merge(plot_options, {
522 var new_options = YAHOO.lang.merge(plot_options, {
529 xaxis: {
523 xaxis: {
530 min: cur_ranges.xaxis.from,
524 min: cur_ranges.xaxis.from,
531 max: cur_ranges.xaxis.to,
525 max: cur_ranges.xaxis.to,
532 mode:"time",
526 mode:"time",
533 timeformat: "%d/%m",
527 timeformat: "%d/%m",
534 },
528 },
535 });
529 });
536 if (!new_data){
530 if (!new_data){
537 new_data = [[0,1]];
531 new_data = [[0,1]];
538 }
532 }
539 // do the zooming
533 // do the zooming
540 plot = YAHOO.widget.Flot(plotContainer, new_data, new_options);
534 plot = YAHOO.widget.Flot(plotContainer, new_data, new_options);
541
535
542 plot.subscribe("plotselected", plotselected);
536 plot.subscribe("plotselected", plotselected);
543
537
544 //resubscribe plothover
538 //resubscribe plothover
545 plot.subscribe("plothover", plothover);
539 plot.subscribe("plothover", plothover);
546
540
547 // don't fire event on the overview to prevent eternal loop
541 // don't fire event on the overview to prevent eternal loop
548 overview.setSelection(cur_ranges, true);
542 overview.setSelection(cur_ranges, true);
549
543
550 }
544 }
551
545
552 /**
546 /**
553 * plot only selected items from overview
547 * plot only selected items from overview
554 * @param ranges
548 * @param ranges
555 * @returns
549 * @returns
556 */
550 */
557 function plotselected(ranges,cur_data) {
551 function plotselected(ranges,cur_data) {
558 //updates the data for new plot
552 //updates the data for new plot
559 var data = getDataAccordingToRanges(ranges);
553 var data = getDataAccordingToRanges(ranges);
560 generateCheckboxes(data);
554 generateCheckboxes(data);
561
555
562 var new_options = YAHOO.lang.merge(plot_options, {
556 var new_options = YAHOO.lang.merge(plot_options, {
563 xaxis: {
557 xaxis: {
564 min: ranges.xaxis.from,
558 min: ranges.xaxis.from,
565 max: ranges.xaxis.to,
559 max: ranges.xaxis.to,
566 mode:"time",
560 mode:"time",
567 timeformat: "%d/%m",
561 timeformat: "%d/%m",
568 },
562 },
569 });
563 });
570 // do the zooming
564 // do the zooming
571 plot = YAHOO.widget.Flot(plotContainer, data, new_options);
565 plot = YAHOO.widget.Flot(plotContainer, data, new_options);
572
566
573 plot.subscribe("plotselected", plotselected);
567 plot.subscribe("plotselected", plotselected);
574
568
575 //resubscribe plothover
569 //resubscribe plothover
576 plot.subscribe("plothover", plothover);
570 plot.subscribe("plothover", plothover);
577
571
578 // don't fire event on the overview to prevent eternal loop
572 // don't fire event on the overview to prevent eternal loop
579 overview.setSelection(ranges, true);
573 overview.setSelection(ranges, true);
580
574
581 //resubscribe choiced
575 //resubscribe choiced
582 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]);
576 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, ranges]);
583 }
577 }
584
578
585 var previousPoint = null;
579 var previousPoint = null;
586
580
587 function plothover(o) {
581 function plothover(o) {
588 var pos = o.pos;
582 var pos = o.pos;
589 var item = o.item;
583 var item = o.item;
590
584
591 //YUD.get("x").innerHTML = pos.x.toFixed(2);
585 //YUD.get("x").innerHTML = pos.x.toFixed(2);
592 //YUD.get("y").innerHTML = pos.y.toFixed(2);
586 //YUD.get("y").innerHTML = pos.y.toFixed(2);
593 if (item) {
587 if (item) {
594 if (previousPoint != item.datapoint) {
588 if (previousPoint != item.datapoint) {
595 previousPoint = item.datapoint;
589 previousPoint = item.datapoint;
596
590
597 var tooltip = YUD.get("tooltip");
591 var tooltip = YUD.get("tooltip");
598 if(tooltip) {
592 if(tooltip) {
599 tooltip.parentNode.removeChild(tooltip);
593 tooltip.parentNode.removeChild(tooltip);
600 }
594 }
601 var x = item.datapoint.x.toFixed(2);
595 var x = item.datapoint.x.toFixed(2);
602 var y = item.datapoint.y.toFixed(2);
596 var y = item.datapoint.y.toFixed(2);
603
597
604 if (!item.series.label){
598 if (!item.series.label){
605 item.series.label = 'commits';
599 item.series.label = 'commits';
606 }
600 }
607 var d = new Date(x*1000);
601 var d = new Date(x*1000);
608 var fd = d.toDateString()
602 var fd = d.toDateString()
609 var nr_commits = parseInt(y);
603 var nr_commits = parseInt(y);
610
604
611 var cur_data = dataset[item.series.label].data[item.dataIndex];
605 var cur_data = dataset[item.series.label].data[item.dataIndex];
612 var added = cur_data.added;
606 var added = cur_data.added;
613 var changed = cur_data.changed;
607 var changed = cur_data.changed;
614 var removed = cur_data.removed;
608 var removed = cur_data.removed;
615
609
616 var nr_commits_suffix = " ${_('commits')} ";
610 var nr_commits_suffix = " ${_('commits')} ";
617 var added_suffix = " ${_('files added')} ";
611 var added_suffix = " ${_('files added')} ";
618 var changed_suffix = " ${_('files changed')} ";
612 var changed_suffix = " ${_('files changed')} ";
619 var removed_suffix = " ${_('files removed')} ";
613 var removed_suffix = " ${_('files removed')} ";
620
614
621
615
622 if(nr_commits == 1){nr_commits_suffix = " ${_('commit')} ";}
616 if(nr_commits == 1){nr_commits_suffix = " ${_('commit')} ";}
623 if(added==1){added_suffix=" ${_('file added')} ";}
617 if(added==1){added_suffix=" ${_('file added')} ";}
624 if(changed==1){changed_suffix=" ${_('file changed')} ";}
618 if(changed==1){changed_suffix=" ${_('file changed')} ";}
625 if(removed==1){removed_suffix=" ${_('file removed')} ";}
619 if(removed==1){removed_suffix=" ${_('file removed')} ";}
626
620
627 showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd
621 showTooltip(item.pageX, item.pageY, item.series.label + " on " + fd
628 +'<br/>'+
622 +'<br/>'+
629 nr_commits + nr_commits_suffix+'<br/>'+
623 nr_commits + nr_commits_suffix+'<br/>'+
630 added + added_suffix +'<br/>'+
624 added + added_suffix +'<br/>'+
631 changed + changed_suffix + '<br/>'+
625 changed + changed_suffix + '<br/>'+
632 removed + removed_suffix + '<br/>');
626 removed + removed_suffix + '<br/>');
633 }
627 }
634 }
628 }
635 else {
629 else {
636 var tooltip = YUD.get("tooltip");
630 var tooltip = YUD.get("tooltip");
637
631
638 if(tooltip) {
632 if(tooltip) {
639 tooltip.parentNode.removeChild(tooltip);
633 tooltip.parentNode.removeChild(tooltip);
640 }
634 }
641 previousPoint = null;
635 previousPoint = null;
642 }
636 }
643 }
637 }
644
638
645 /**
639 /**
646 * MAIN EXECUTION
640 * MAIN EXECUTION
647 */
641 */
648
642
649 var data = getDataAccordingToRanges(initial_ranges);
643 var data = getDataAccordingToRanges(initial_ranges);
650 generateCheckboxes(data);
644 generateCheckboxes(data);
651
645
652 //main plot
646 //main plot
653 var plot = YAHOO.widget.Flot(plotContainer,data,plot_options);
647 var plot = YAHOO.widget.Flot(plotContainer,data,plot_options);
654
648
655 //overview
649 //overview
656 var overview = YAHOO.widget.Flot(overviewContainer,
650 var overview = YAHOO.widget.Flot(overviewContainer,
657 overview_dataset, overview_options);
651 overview_dataset, overview_options);
658
652
659 //show initial selection on overview
653 //show initial selection on overview
660 overview.setSelection(initial_ranges);
654 overview.setSelection(initial_ranges);
661
655
662 plot.subscribe("plotselected", plotselected);
656 plot.subscribe("plotselected", plotselected);
663 plot.subscribe("plothover", plothover)
657 plot.subscribe("plothover", plothover)
664
658
665 overview.subscribe("plotselected", function (ranges) {
659 overview.subscribe("plotselected", function (ranges) {
666 plot.setSelection(ranges);
660 plot.setSelection(ranges);
667 });
661 });
668
662
669 // user choices on overview
663 // user choices on overview
670 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]);
664 YUE.on(choiceContainer.getElementsByTagName("input"), "click", plotchoiced, [data, initial_ranges]);
671 }
665 }
672 SummaryPlot(${c.ts_min},${c.ts_max},${c.commit_data|n},${c.overview_data|n});
666 SummaryPlot(${c.ts_min},${c.ts_max},${c.commit_data|n},${c.overview_data|n});
673 </script>
667 </script>
674 %endif
668 %endif
675
669
676 </%def>
670 </%def>
General Comments 0
You need to be logged in to leave comments. Login now