##// END OF EJS Templates
Added mentions autocomplete into main comments form...
marcink -
r2368:5143b8df beta
parent child Browse files
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -1,397 +1,401 b''
1 1 # -*- coding: utf-8 -*-
2 2 """
3 3 rhodecode.controllers.changeset
4 4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 5
6 6 changeset controller for pylons showoing changes beetween
7 7 revisions
8 8
9 9 :created_on: Apr 25, 2010
10 10 :author: marcink
11 11 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com>
12 12 :license: GPLv3, see COPYING for more details.
13 13 """
14 14 # This program is free software: you can redistribute it and/or modify
15 15 # it under the terms of the GNU General Public License as published by
16 16 # the Free Software Foundation, either version 3 of the License, or
17 17 # (at your option) any later version.
18 18 #
19 19 # This program is distributed in the hope that it will be useful,
20 20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 22 # GNU General Public License for more details.
23 23 #
24 24 # You should have received a copy of the GNU General Public License
25 25 # along with this program. If not, see <http://www.gnu.org/licenses/>.
26 26 import logging
27 27 import traceback
28 28 from collections import defaultdict
29 29 from webob.exc import HTTPForbidden
30 30
31 31 from pylons import tmpl_context as c, url, request, response
32 32 from pylons.i18n.translation import _
33 33 from pylons.controllers.util import redirect
34 34 from pylons.decorators import jsonify
35 35
36 36 from rhodecode.lib.vcs.exceptions import RepositoryError, ChangesetError, \
37 37 ChangesetDoesNotExistError
38 38 from rhodecode.lib.vcs.nodes import FileNode
39 39
40 40 import rhodecode.lib.helpers as h
41 41 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
42 42 from rhodecode.lib.base import BaseRepoController, render
43 43 from rhodecode.lib.utils import EmptyChangeset
44 44 from rhodecode.lib.compat import OrderedDict
45 45 from rhodecode.lib import diffs
46 46 from rhodecode.model.db import ChangesetComment
47 47 from rhodecode.model.comment import ChangesetCommentsModel
48 48 from rhodecode.model.meta import Session
49 49 from rhodecode.lib.diffs import wrapped_diff
50 from rhodecode.model.repo import RepoModel
50 51
51 52 log = logging.getLogger(__name__)
52 53
53 54
54 55 def _update_with_GET(params, GET):
55 56 for k in ['diff1', 'diff2', 'diff']:
56 57 params[k] += GET.getall(k)
57 58
58 59
59 60 def anchor_url(revision, path, GET):
60 61 fid = h.FID(revision, path)
61 62 return h.url.current(anchor=fid, **dict(GET))
62 63
63 64
64 65 def get_ignore_ws(fid, GET):
65 66 ig_ws_global = GET.get('ignorews')
66 67 ig_ws = filter(lambda k: k.startswith('WS'), GET.getall(fid))
67 68 if ig_ws:
68 69 try:
69 70 return int(ig_ws[0].split(':')[-1])
70 71 except:
71 72 pass
72 73 return ig_ws_global
73 74
74 75
75 76 def _ignorews_url(GET, fileid=None):
76 77 fileid = str(fileid) if fileid else None
77 78 params = defaultdict(list)
78 79 _update_with_GET(params, GET)
79 80 lbl = _('show white space')
80 81 ig_ws = get_ignore_ws(fileid, GET)
81 82 ln_ctx = get_line_ctx(fileid, GET)
82 83 # global option
83 84 if fileid is None:
84 85 if ig_ws is None:
85 86 params['ignorews'] += [1]
86 87 lbl = _('ignore white space')
87 88 ctx_key = 'context'
88 89 ctx_val = ln_ctx
89 90 # per file options
90 91 else:
91 92 if ig_ws is None:
92 93 params[fileid] += ['WS:1']
93 94 lbl = _('ignore white space')
94 95
95 96 ctx_key = fileid
96 97 ctx_val = 'C:%s' % ln_ctx
97 98 # if we have passed in ln_ctx pass it along to our params
98 99 if ln_ctx:
99 100 params[ctx_key] += [ctx_val]
100 101
101 102 params['anchor'] = fileid
102 103 img = h.image(h.url('/images/icons/text_strikethrough.png'), lbl, class_='icon')
103 104 return h.link_to(img, h.url.current(**params), title=lbl, class_='tooltip')
104 105
105 106
106 107 def get_line_ctx(fid, GET):
107 108 ln_ctx_global = GET.get('context')
108 109 ln_ctx = filter(lambda k: k.startswith('C'), GET.getall(fid))
109 110
110 111 if ln_ctx:
111 112 retval = ln_ctx[0].split(':')[-1]
112 113 else:
113 114 retval = ln_ctx_global
114 115
115 116 try:
116 117 return int(retval)
117 118 except:
118 119 return
119 120
120 121
121 122 def _context_url(GET, fileid=None):
122 123 """
123 124 Generates url for context lines
124 125
125 126 :param fileid:
126 127 """
127 128
128 129 fileid = str(fileid) if fileid else None
129 130 ig_ws = get_ignore_ws(fileid, GET)
130 131 ln_ctx = (get_line_ctx(fileid, GET) or 3) * 2
131 132
132 133 params = defaultdict(list)
133 134 _update_with_GET(params, GET)
134 135
135 136 # global option
136 137 if fileid is None:
137 138 if ln_ctx > 0:
138 139 params['context'] += [ln_ctx]
139 140
140 141 if ig_ws:
141 142 ig_ws_key = 'ignorews'
142 143 ig_ws_val = 1
143 144
144 145 # per file option
145 146 else:
146 147 params[fileid] += ['C:%s' % ln_ctx]
147 148 ig_ws_key = fileid
148 149 ig_ws_val = 'WS:%s' % 1
149 150
150 151 if ig_ws:
151 152 params[ig_ws_key] += [ig_ws_val]
152 153
153 154 lbl = _('%s line context') % ln_ctx
154 155
155 156 params['anchor'] = fileid
156 157 img = h.image(h.url('/images/icons/table_add.png'), lbl, class_='icon')
157 158 return h.link_to(img, h.url.current(**params), title=lbl, class_='tooltip')
158 159
159 160
160 161 class ChangesetController(BaseRepoController):
161 162
162 163 @LoginRequired()
163 164 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
164 165 'repository.admin')
165 166 def __before__(self):
166 167 super(ChangesetController, self).__before__()
167 168 c.affected_files_cut_off = 60
169 repo_model = RepoModel()
170 c.users_array = repo_model.get_users_js()
171 c.users_groups_array = repo_model.get_users_groups_js()
168 172
169 173 def index(self, revision):
170 174
171 175 c.anchor_url = anchor_url
172 176 c.ignorews_url = _ignorews_url
173 177 c.context_url = _context_url
174 178 limit_off = request.GET.get('fulldiff')
175 179 #get ranges of revisions if preset
176 180 rev_range = revision.split('...')[:2]
177 181 enable_comments = True
178 182 try:
179 183 if len(rev_range) == 2:
180 184 enable_comments = False
181 185 rev_start = rev_range[0]
182 186 rev_end = rev_range[1]
183 187 rev_ranges = c.rhodecode_repo.get_changesets(start=rev_start,
184 188 end=rev_end)
185 189 else:
186 190 rev_ranges = [c.rhodecode_repo.get_changeset(revision)]
187 191
188 192 c.cs_ranges = list(rev_ranges)
189 193 if not c.cs_ranges:
190 194 raise RepositoryError('Changeset range returned empty result')
191 195
192 196 except (RepositoryError, ChangesetDoesNotExistError, Exception), e:
193 197 log.error(traceback.format_exc())
194 198 h.flash(str(e), category='warning')
195 199 return redirect(url('home'))
196 200
197 201 c.changes = OrderedDict()
198 202
199 203 c.lines_added = 0 # count of lines added
200 204 c.lines_deleted = 0 # count of lines removes
201 205
202 206 cumulative_diff = 0
203 207 c.cut_off = False # defines if cut off limit is reached
204 208
205 209 c.comments = []
206 210 c.inline_comments = []
207 211 c.inline_cnt = 0
208 212 # Iterate over ranges (default changeset view is always one changeset)
209 213 for changeset in c.cs_ranges:
210 214 c.comments.extend(ChangesetCommentsModel()\
211 215 .get_comments(c.rhodecode_db_repo.repo_id,
212 216 changeset.raw_id))
213 217 inlines = ChangesetCommentsModel()\
214 218 .get_inline_comments(c.rhodecode_db_repo.repo_id,
215 219 changeset.raw_id)
216 220 c.inline_comments.extend(inlines)
217 221 c.changes[changeset.raw_id] = []
218 222 try:
219 223 changeset_parent = changeset.parents[0]
220 224 except IndexError:
221 225 changeset_parent = None
222 226
223 227 #==================================================================
224 228 # ADDED FILES
225 229 #==================================================================
226 230 for node in changeset.added:
227 231 fid = h.FID(revision, node.path)
228 232 line_context_lcl = get_line_ctx(fid, request.GET)
229 233 ign_whitespace_lcl = get_ignore_ws(fid, request.GET)
230 234 lim = self.cut_off_limit
231 235 if cumulative_diff > self.cut_off_limit:
232 236 lim = -1 if limit_off is None else None
233 237 size, cs1, cs2, diff, st = wrapped_diff(
234 238 filenode_old=None,
235 239 filenode_new=node,
236 240 cut_off_limit=lim,
237 241 ignore_whitespace=ign_whitespace_lcl,
238 242 line_context=line_context_lcl,
239 243 enable_comments=enable_comments
240 244 )
241 245 cumulative_diff += size
242 246 c.lines_added += st[0]
243 247 c.lines_deleted += st[1]
244 248 c.changes[changeset.raw_id].append(
245 249 ('added', node, diff, cs1, cs2, st)
246 250 )
247 251
248 252 #==================================================================
249 253 # CHANGED FILES
250 254 #==================================================================
251 255 for node in changeset.changed:
252 256 try:
253 257 filenode_old = changeset_parent.get_node(node.path)
254 258 except ChangesetError:
255 259 log.warning('Unable to fetch parent node for diff')
256 260 filenode_old = FileNode(node.path, '', EmptyChangeset())
257 261
258 262 fid = h.FID(revision, node.path)
259 263 line_context_lcl = get_line_ctx(fid, request.GET)
260 264 ign_whitespace_lcl = get_ignore_ws(fid, request.GET)
261 265 lim = self.cut_off_limit
262 266 if cumulative_diff > self.cut_off_limit:
263 267 lim = -1 if limit_off is None else None
264 268 size, cs1, cs2, diff, st = wrapped_diff(
265 269 filenode_old=filenode_old,
266 270 filenode_new=node,
267 271 cut_off_limit=lim,
268 272 ignore_whitespace=ign_whitespace_lcl,
269 273 line_context=line_context_lcl,
270 274 enable_comments=enable_comments
271 275 )
272 276 cumulative_diff += size
273 277 c.lines_added += st[0]
274 278 c.lines_deleted += st[1]
275 279 c.changes[changeset.raw_id].append(
276 280 ('changed', node, diff, cs1, cs2, st)
277 281 )
278 282 #==================================================================
279 283 # REMOVED FILES
280 284 #==================================================================
281 285 for node in changeset.removed:
282 286 c.changes[changeset.raw_id].append(
283 287 ('removed', node, None, None, None, (0, 0))
284 288 )
285 289
286 290 # count inline comments
287 291 for path, lines in c.inline_comments:
288 292 for comments in lines.values():
289 293 c.inline_cnt += len(comments)
290 294
291 295 if len(c.cs_ranges) == 1:
292 296 c.changeset = c.cs_ranges[0]
293 297 c.changes = c.changes[c.changeset.raw_id]
294 298
295 299 return render('changeset/changeset.html')
296 300 else:
297 301 return render('changeset/changeset_range.html')
298 302
299 303 def raw_changeset(self, revision):
300 304
301 305 method = request.GET.get('diff', 'show')
302 306 ignore_whitespace = request.GET.get('ignorews') == '1'
303 307 line_context = request.GET.get('context', 3)
304 308 try:
305 309 c.scm_type = c.rhodecode_repo.alias
306 310 c.changeset = c.rhodecode_repo.get_changeset(revision)
307 311 except RepositoryError:
308 312 log.error(traceback.format_exc())
309 313 return redirect(url('home'))
310 314 else:
311 315 try:
312 316 c.changeset_parent = c.changeset.parents[0]
313 317 except IndexError:
314 318 c.changeset_parent = None
315 319 c.changes = []
316 320
317 321 for node in c.changeset.added:
318 322 filenode_old = FileNode(node.path, '')
319 323 if filenode_old.is_binary or node.is_binary:
320 324 diff = _('binary file') + '\n'
321 325 else:
322 326 f_gitdiff = diffs.get_gitdiff(filenode_old, node,
323 327 ignore_whitespace=ignore_whitespace,
324 328 context=line_context)
325 329 diff = diffs.DiffProcessor(f_gitdiff,
326 330 format='gitdiff').raw_diff()
327 331
328 332 cs1 = None
329 333 cs2 = node.changeset.raw_id
330 334 c.changes.append(('added', node, diff, cs1, cs2))
331 335
332 336 for node in c.changeset.changed:
333 337 filenode_old = c.changeset_parent.get_node(node.path)
334 338 if filenode_old.is_binary or node.is_binary:
335 339 diff = _('binary file')
336 340 else:
337 341 f_gitdiff = diffs.get_gitdiff(filenode_old, node,
338 342 ignore_whitespace=ignore_whitespace,
339 343 context=line_context)
340 344 diff = diffs.DiffProcessor(f_gitdiff,
341 345 format='gitdiff').raw_diff()
342 346
343 347 cs1 = filenode_old.changeset.raw_id
344 348 cs2 = node.changeset.raw_id
345 349 c.changes.append(('changed', node, diff, cs1, cs2))
346 350
347 351 response.content_type = 'text/plain'
348 352
349 353 if method == 'download':
350 354 response.content_disposition = 'attachment; filename=%s.patch' \
351 355 % revision
352 356
353 357 c.parent_tmpl = ''.join(['# Parent %s\n' % x.raw_id
354 358 for x in c.changeset.parents])
355 359
356 360 c.diffs = ''
357 361 for x in c.changes:
358 362 c.diffs += x[2]
359 363
360 364 return render('changeset/raw_changeset.html')
361 365
362 366 @jsonify
363 367 def comment(self, repo_name, revision):
364 368 comm = ChangesetCommentsModel().create(
365 369 text=request.POST.get('text'),
366 370 repo_id=c.rhodecode_db_repo.repo_id,
367 371 user_id=c.rhodecode_user.user_id,
368 372 revision=revision,
369 373 f_path=request.POST.get('f_path'),
370 374 line_no=request.POST.get('line')
371 375 )
372 376 Session.commit()
373 377 if not request.environ.get('HTTP_X_PARTIAL_XHR'):
374 378 return redirect(h.url('changeset_home', repo_name=repo_name,
375 379 revision=revision))
376 380
377 381 data = {
378 382 'target_id': h.safeid(h.safe_unicode(request.POST.get('f_path'))),
379 383 }
380 384 if comm:
381 385 c.co = comm
382 386 data.update(comm.get_dict())
383 387 data.update({'rendered_text':
384 388 render('changeset/changeset_comment_block.html')})
385 389
386 390 return data
387 391
388 392 @jsonify
389 393 def delete_comment(self, repo_name, comment_id):
390 394 co = ChangesetComment.get(comment_id)
391 395 owner = lambda: co.author.user_id == c.rhodecode_user.user_id
392 396 if h.HasPermissionAny('hg.admin', 'repository.admin')() or owner:
393 397 ChangesetCommentsModel().delete(comment=co)
394 398 Session.commit()
395 399 return True
396 400 else:
397 401 raise HTTPForbidden()
@@ -1,4401 +1,4408 b''
1 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 3 border: 0;
4 4 outline: 0;
5 5 font-size: 100%;
6 6 vertical-align: baseline;
7 7 background: transparent;
8 8 margin: 0;
9 9 padding: 0;
10 10 }
11 11
12 12 body {
13 13 line-height: 1;
14 14 height: 100%;
15 15 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
16 16 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
17 17 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
18 18 color: #000;
19 19 margin: 0;
20 20 padding: 0;
21 21 font-size: 12px;
22 22 }
23 23
24 24 ol,ul {
25 25 list-style: none;
26 26 }
27 27
28 28 blockquote,q {
29 29 quotes: none;
30 30 }
31 31
32 32 blockquote:before,blockquote:after,q:before,q:after {
33 33 content: none;
34 34 }
35 35
36 36 :focus {
37 37 outline: 0;
38 38 }
39 39
40 40 del {
41 41 text-decoration: line-through;
42 42 }
43 43
44 44 table {
45 45 border-collapse: collapse;
46 46 border-spacing: 0;
47 47 }
48 48
49 49 html {
50 50 height: 100%;
51 51 }
52 52
53 53 a {
54 54 color: #003367;
55 55 text-decoration: none;
56 56 cursor: pointer;
57 57 }
58 58
59 59 a:hover {
60 60 color: #316293;
61 61 text-decoration: underline;
62 62 }
63 63
64 64 h1,h2,h3,h4,h5,h6 {
65 65 color: #292929;
66 66 font-weight: 700;
67 67 }
68 68
69 69 h1 {
70 70 font-size: 22px;
71 71 }
72 72
73 73 h2 {
74 74 font-size: 20px;
75 75 }
76 76
77 77 h3 {
78 78 font-size: 18px;
79 79 }
80 80
81 81 h4 {
82 82 font-size: 16px;
83 83 }
84 84
85 85 h5 {
86 86 font-size: 14px;
87 87 }
88 88
89 89 h6 {
90 90 font-size: 11px;
91 91 }
92 92
93 93 ul.circle {
94 94 list-style-type: circle;
95 95 }
96 96
97 97 ul.disc {
98 98 list-style-type: disc;
99 99 }
100 100
101 101 ul.square {
102 102 list-style-type: square;
103 103 }
104 104
105 105 ol.lower-roman {
106 106 list-style-type: lower-roman;
107 107 }
108 108
109 109 ol.upper-roman {
110 110 list-style-type: upper-roman;
111 111 }
112 112
113 113 ol.lower-alpha {
114 114 list-style-type: lower-alpha;
115 115 }
116 116
117 117 ol.upper-alpha {
118 118 list-style-type: upper-alpha;
119 119 }
120 120
121 121 ol.decimal {
122 122 list-style-type: decimal;
123 123 }
124 124
125 125 div.color {
126 126 clear: both;
127 127 overflow: hidden;
128 128 position: absolute;
129 129 background: #FFF;
130 130 margin: 7px 0 0 60px;
131 131 padding: 1px 1px 1px 0;
132 132 }
133 133
134 134 div.color a {
135 135 width: 15px;
136 136 height: 15px;
137 137 display: block;
138 138 float: left;
139 139 margin: 0 0 0 1px;
140 140 padding: 0;
141 141 }
142 142
143 143 div.options {
144 144 clear: both;
145 145 overflow: hidden;
146 146 position: absolute;
147 147 background: #FFF;
148 148 margin: 7px 0 0 162px;
149 149 padding: 0;
150 150 }
151 151
152 152 div.options a {
153 153 height: 1%;
154 154 display: block;
155 155 text-decoration: none;
156 156 margin: 0;
157 157 padding: 3px 8px;
158 158 }
159 159
160 160 .top-left-rounded-corner {
161 161 -webkit-border-top-left-radius: 8px;
162 162 -khtml-border-radius-topleft: 8px;
163 163 -moz-border-radius-topleft: 8px;
164 164 border-top-left-radius: 8px;
165 165 }
166 166
167 167 .top-right-rounded-corner {
168 168 -webkit-border-top-right-radius: 8px;
169 169 -khtml-border-radius-topright: 8px;
170 170 -moz-border-radius-topright: 8px;
171 171 border-top-right-radius: 8px;
172 172 }
173 173
174 174 .bottom-left-rounded-corner {
175 175 -webkit-border-bottom-left-radius: 8px;
176 176 -khtml-border-radius-bottomleft: 8px;
177 177 -moz-border-radius-bottomleft: 8px;
178 178 border-bottom-left-radius: 8px;
179 179 }
180 180
181 181 .bottom-right-rounded-corner {
182 182 -webkit-border-bottom-right-radius: 8px;
183 183 -khtml-border-radius-bottomright: 8px;
184 184 -moz-border-radius-bottomright: 8px;
185 185 border-bottom-right-radius: 8px;
186 186 }
187 187
188 188 .top-left-rounded-corner-mid {
189 189 -webkit-border-top-left-radius: 4px;
190 190 -khtml-border-radius-topleft: 4px;
191 191 -moz-border-radius-topleft: 4px;
192 192 border-top-left-radius: 4px;
193 193 }
194 194
195 195 .top-right-rounded-corner-mid {
196 196 -webkit-border-top-right-radius: 4px;
197 197 -khtml-border-radius-topright: 4px;
198 198 -moz-border-radius-topright: 4px;
199 199 border-top-right-radius: 4px;
200 200 }
201 201
202 202 .bottom-left-rounded-corner-mid {
203 203 -webkit-border-bottom-left-radius: 4px;
204 204 -khtml-border-radius-bottomleft: 4px;
205 205 -moz-border-radius-bottomleft: 4px;
206 206 border-bottom-left-radius: 4px;
207 207 }
208 208
209 209 .bottom-right-rounded-corner-mid {
210 210 -webkit-border-bottom-right-radius: 4px;
211 211 -khtml-border-radius-bottomright: 4px;
212 212 -moz-border-radius-bottomright: 4px;
213 213 border-bottom-right-radius: 4px;
214 214 }
215 215
216 216 .help-block {
217 217 color: #999999;
218 218 display: block;
219 219 margin-bottom: 0;
220 220 margin-top: 5px;
221 221 }
222 222
223 223 #header {
224 224 margin: 0;
225 225 padding: 0 10px;
226 226 }
227 227
228 228 #header ul#logged-user {
229 229 margin-bottom: 5px !important;
230 230 -webkit-border-radius: 0px 0px 8px 8px;
231 231 -khtml-border-radius: 0px 0px 8px 8px;
232 232 -moz-border-radius: 0px 0px 8px 8px;
233 233 border-radius: 0px 0px 8px 8px;
234 234 height: 37px;
235 235 background-color: #003B76;
236 236 background-repeat: repeat-x;
237 237 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
238 238 background-image: -moz-linear-gradient(top, #003b76, #00376e);
239 239 background-image: -ms-linear-gradient(top, #003b76, #00376e);
240 240 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
241 241 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
242 242 background-image: -o-linear-gradient(top, #003b76, #00376e);
243 243 background-image: linear-gradient(top, #003b76, #00376e);
244 244 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
245 245 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
246 246 }
247 247
248 248 #header ul#logged-user li {
249 249 list-style: none;
250 250 float: left;
251 251 margin: 8px 0 0;
252 252 padding: 4px 12px;
253 253 border-left: 1px solid #316293;
254 254 }
255 255
256 256 #header ul#logged-user li.first {
257 257 border-left: none;
258 258 margin: 4px;
259 259 }
260 260
261 261 #header ul#logged-user li.first div.gravatar {
262 262 margin-top: -2px;
263 263 }
264 264
265 265 #header ul#logged-user li.first div.account {
266 266 padding-top: 4px;
267 267 float: left;
268 268 }
269 269
270 270 #header ul#logged-user li.last {
271 271 border-right: none;
272 272 }
273 273
274 274 #header ul#logged-user li a {
275 275 color: #fff;
276 276 font-weight: 700;
277 277 text-decoration: none;
278 278 }
279 279
280 280 #header ul#logged-user li a:hover {
281 281 text-decoration: underline;
282 282 }
283 283
284 284 #header ul#logged-user li.highlight a {
285 285 color: #fff;
286 286 }
287 287
288 288 #header ul#logged-user li.highlight a:hover {
289 289 color: #FFF;
290 290 }
291 291
292 292 #header #header-inner {
293 293 min-height: 44px;
294 294 clear: both;
295 295 position: relative;
296 296 background-color: #003B76;
297 297 background-repeat: repeat-x;
298 298 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
299 299 background-image: -moz-linear-gradient(top, #003b76, #00376e);
300 300 background-image: -ms-linear-gradient(top, #003b76, #00376e);
301 301 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),color-stop(100%, #00376e) );
302 302 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
303 303 background-image: -o-linear-gradient(top, #003b76, #00376e);
304 304 background-image: linear-gradient(top, #003b76, #00376e);
305 305 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
306 306 margin: 0;
307 307 padding: 0;
308 308 display: block;
309 309 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
310 310 -webkit-border-radius: 4px 4px 4px 4px;
311 311 -khtml-border-radius: 4px 4px 4px 4px;
312 312 -moz-border-radius: 4px 4px 4px 4px;
313 313 border-radius: 4px 4px 4px 4px;
314 314 }
315 315 #header #header-inner.hover{
316 316 position: fixed !important;
317 317 width: 100% !important;
318 318 margin-left: -10px !important;
319 319 z-index: 10000;
320 320 -webkit-border-radius: 0px 0px 0px 0px;
321 321 -khtml-border-radius: 0px 0px 0px 0px;
322 322 -moz-border-radius: 0px 0px 0px 0px;
323 323 border-radius: 0px 0px 0px 0px;
324 324 }
325 325
326 326 .ie7 #header #header-inner.hover,
327 327 .ie8 #header #header-inner.hover,
328 328 .ie9 #header #header-inner.hover
329 329 {
330 330 z-index: auto !important;
331 331 }
332 332
333 333 .header-pos-fix{
334 334 margin-top: -44px;
335 335 padding-top: 44px;
336 336 }
337 337
338 338 #header #header-inner #home a {
339 339 height: 40px;
340 340 width: 46px;
341 341 display: block;
342 342 background: url("../images/button_home.png");
343 343 background-position: 0 0;
344 344 margin: 0;
345 345 padding: 0;
346 346 }
347 347
348 348 #header #header-inner #home a:hover {
349 349 background-position: 0 -40px;
350 350 }
351 351
352 352 #header #header-inner #logo {
353 353 float: left;
354 354 position: absolute;
355 355 }
356 356
357 357 #header #header-inner #logo h1 {
358 358 color: #FFF;
359 359 font-size: 20px;
360 360 margin: 12px 0 0 13px;
361 361 padding: 0;
362 362 }
363 363
364 364 #header #header-inner #logo a {
365 365 color: #fff;
366 366 text-decoration: none;
367 367 }
368 368
369 369 #header #header-inner #logo a:hover {
370 370 color: #bfe3ff;
371 371 }
372 372
373 373 #header #header-inner #quick,#header #header-inner #quick ul {
374 374 position: relative;
375 375 float: right;
376 376 list-style-type: none;
377 377 list-style-position: outside;
378 378 margin: 8px 8px 0 0;
379 379 padding: 0;
380 380 }
381 381
382 382 #header #header-inner #quick li {
383 383 position: relative;
384 384 float: left;
385 385 margin: 0 5px 0 0;
386 386 padding: 0;
387 387 }
388 388
389 389 #header #header-inner #quick li a.menu_link {
390 390 top: 0;
391 391 left: 0;
392 392 height: 1%;
393 393 display: block;
394 394 clear: both;
395 395 overflow: hidden;
396 396 color: #FFF;
397 397 font-weight: 700;
398 398 text-decoration: none;
399 399 background: #369;
400 400 padding: 0;
401 401 -webkit-border-radius: 4px 4px 4px 4px;
402 402 -khtml-border-radius: 4px 4px 4px 4px;
403 403 -moz-border-radius: 4px 4px 4px 4px;
404 404 border-radius: 4px 4px 4px 4px;
405 405 }
406 406
407 407 #header #header-inner #quick li span.short {
408 408 padding: 9px 6px 8px 6px;
409 409 }
410 410
411 411 #header #header-inner #quick li span {
412 412 top: 0;
413 413 right: 0;
414 414 height: 1%;
415 415 display: block;
416 416 float: left;
417 417 border-left: 1px solid #3f6f9f;
418 418 margin: 0;
419 419 padding: 10px 12px 8px 10px;
420 420 }
421 421
422 422 #header #header-inner #quick li span.normal {
423 423 border: none;
424 424 padding: 10px 12px 8px;
425 425 }
426 426
427 427 #header #header-inner #quick li span.icon {
428 428 top: 0;
429 429 left: 0;
430 430 border-left: none;
431 431 border-right: 1px solid #2e5c89;
432 432 padding: 8px 6px 4px;
433 433 }
434 434
435 435 #header #header-inner #quick li span.icon_short {
436 436 top: 0;
437 437 left: 0;
438 438 border-left: none;
439 439 border-right: 1px solid #2e5c89;
440 440 padding: 8px 6px 4px;
441 441 }
442 442
443 443 #header #header-inner #quick li span.icon img,#header #header-inner #quick li span.icon_short img
444 444 {
445 445 margin: 0px -2px 0px 0px;
446 446 }
447 447
448 448 #header #header-inner #quick li a:hover {
449 449 background: #4e4e4e no-repeat top left;
450 450 }
451 451
452 452 #header #header-inner #quick li a:hover span {
453 453 border-left: 1px solid #545454;
454 454 }
455 455
456 456 #header #header-inner #quick li a:hover span.icon,#header #header-inner #quick li a:hover span.icon_short
457 457 {
458 458 border-left: none;
459 459 border-right: 1px solid #464646;
460 460 }
461 461
462 462 #header #header-inner #quick ul {
463 463 top: 29px;
464 464 right: 0;
465 465 min-width: 200px;
466 466 display: none;
467 467 position: absolute;
468 468 background: #FFF;
469 469 border: 1px solid #666;
470 470 border-top: 1px solid #003367;
471 471 z-index: 100;
472 472 margin: 0px 0px 0px 0px;
473 473 padding: 0;
474 474 }
475 475
476 476 #header #header-inner #quick ul.repo_switcher {
477 477 max-height: 275px;
478 478 overflow-x: hidden;
479 479 overflow-y: auto;
480 480 }
481 481
482 482 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
483 483 float: none;
484 484 margin: 0;
485 485 border-bottom: 2px solid #003367;
486 486 }
487 487
488 488 #header #header-inner #quick .repo_switcher_type {
489 489 position: absolute;
490 490 left: 0;
491 491 top: 9px;
492 492 }
493 493
494 494 #header #header-inner #quick li ul li {
495 495 border-bottom: 1px solid #ddd;
496 496 }
497 497
498 498 #header #header-inner #quick li ul li a {
499 499 width: 182px;
500 500 height: auto;
501 501 display: block;
502 502 float: left;
503 503 background: #FFF;
504 504 color: #003367;
505 505 font-weight: 400;
506 506 margin: 0;
507 507 padding: 7px 9px;
508 508 }
509 509
510 510 #header #header-inner #quick li ul li a:hover {
511 511 color: #000;
512 512 background: #FFF;
513 513 }
514 514
515 515 #header #header-inner #quick ul ul {
516 516 top: auto;
517 517 }
518 518
519 519 #header #header-inner #quick li ul ul {
520 520 right: 200px;
521 521 max-height: 275px;
522 522 overflow: auto;
523 523 overflow-x: hidden;
524 524 white-space: normal;
525 525 }
526 526
527 527 #header #header-inner #quick li ul li a.journal,#header #header-inner #quick li ul li a.journal:hover
528 528 {
529 529 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
530 530 #FFF;
531 531 width: 167px;
532 532 margin: 0;
533 533 padding: 12px 9px 7px 24px;
534 534 }
535 535
536 536 #header #header-inner #quick li ul li a.private_repo,#header #header-inner #quick li ul li a.private_repo:hover
537 537 {
538 538 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
539 539 #FFF;
540 540 min-width: 167px;
541 541 margin: 0;
542 542 padding: 12px 9px 7px 24px;
543 543 }
544 544
545 545 #header #header-inner #quick li ul li a.public_repo,#header #header-inner #quick li ul li a.public_repo:hover
546 546 {
547 547 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
548 548 9px #FFF;
549 549 min-width: 167px;
550 550 margin: 0;
551 551 padding: 12px 9px 7px 24px;
552 552 }
553 553
554 554 #header #header-inner #quick li ul li a.hg,#header #header-inner #quick li ul li a.hg:hover
555 555 {
556 556 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
557 557 #FFF;
558 558 min-width: 167px;
559 559 margin: 0 0 0 14px;
560 560 padding: 12px 9px 7px 24px;
561 561 }
562 562
563 563 #header #header-inner #quick li ul li a.git,#header #header-inner #quick li ul li a.git:hover
564 564 {
565 565 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
566 566 #FFF;
567 567 min-width: 167px;
568 568 margin: 0 0 0 14px;
569 569 padding: 12px 9px 7px 24px;
570 570 }
571 571
572 572 #header #header-inner #quick li ul li a.repos,#header #header-inner #quick li ul li a.repos:hover
573 573 {
574 574 background: url("../images/icons/database_edit.png") no-repeat scroll
575 575 4px 9px #FFF;
576 576 width: 167px;
577 577 margin: 0;
578 578 padding: 12px 9px 7px 24px;
579 579 }
580 580
581 581 #header #header-inner #quick li ul li a.repos_groups,#header #header-inner #quick li ul li a.repos_groups:hover
582 582 {
583 583 background: url("../images/icons/database_link.png") no-repeat scroll
584 584 4px 9px #FFF;
585 585 width: 167px;
586 586 margin: 0;
587 587 padding: 12px 9px 7px 24px;
588 588 }
589 589
590 590 #header #header-inner #quick li ul li a.users,#header #header-inner #quick li ul li a.users:hover
591 591 {
592 592 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
593 593 width: 167px;
594 594 margin: 0;
595 595 padding: 12px 9px 7px 24px;
596 596 }
597 597
598 598 #header #header-inner #quick li ul li a.groups,#header #header-inner #quick li ul li a.groups:hover
599 599 {
600 600 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
601 601 width: 167px;
602 602 margin: 0;
603 603 padding: 12px 9px 7px 24px;
604 604 }
605 605
606 606 #header #header-inner #quick li ul li a.settings,#header #header-inner #quick li ul li a.settings:hover
607 607 {
608 608 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
609 609 width: 167px;
610 610 margin: 0;
611 611 padding: 12px 9px 7px 24px;
612 612 }
613 613
614 614 #header #header-inner #quick li ul li a.permissions,#header #header-inner #quick li ul li a.permissions:hover
615 615 {
616 616 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
617 617 width: 167px;
618 618 margin: 0;
619 619 padding: 12px 9px 7px 24px;
620 620 }
621 621
622 622 #header #header-inner #quick li ul li a.ldap,#header #header-inner #quick li ul li a.ldap:hover
623 623 {
624 624 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
625 625 width: 167px;
626 626 margin: 0;
627 627 padding: 12px 9px 7px 24px;
628 628 }
629 629
630 630 #header #header-inner #quick li ul li a.fork,#header #header-inner #quick li ul li a.fork:hover
631 631 {
632 632 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
633 633 9px;
634 634 width: 167px;
635 635 margin: 0;
636 636 padding: 12px 9px 7px 24px;
637 637 }
638 638
639 639 #header #header-inner #quick li ul li a.search,#header #header-inner #quick li ul li a.search:hover
640 640 {
641 641 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
642 642 width: 167px;
643 643 margin: 0;
644 644 padding: 12px 9px 7px 24px;
645 645 }
646 646
647 647 #header #header-inner #quick li ul li a.delete,#header #header-inner #quick li ul li a.delete:hover
648 648 {
649 649 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
650 650 width: 167px;
651 651 margin: 0;
652 652 padding: 12px 9px 7px 24px;
653 653 }
654 654
655 655 #header #header-inner #quick li ul li a.branches,#header #header-inner #quick li ul li a.branches:hover
656 656 {
657 657 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
658 658 9px;
659 659 width: 167px;
660 660 margin: 0;
661 661 padding: 12px 9px 7px 24px;
662 662 }
663 663
664 664 #header #header-inner #quick li ul li a.tags,
665 665 #header #header-inner #quick li ul li a.tags:hover{
666 666 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
667 667 width: 167px;
668 668 margin: 0;
669 669 padding: 12px 9px 7px 24px;
670 670 }
671 671
672 672 #header #header-inner #quick li ul li a.bookmarks,
673 673 #header #header-inner #quick li ul li a.bookmarks:hover{
674 674 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
675 675 width: 167px;
676 676 margin: 0;
677 677 padding: 12px 9px 7px 24px;
678 678 }
679 679
680 680 #header #header-inner #quick li ul li a.admin,
681 681 #header #header-inner #quick li ul li a.admin:hover{
682 682 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
683 683 width: 167px;
684 684 margin: 0;
685 685 padding: 12px 9px 7px 24px;
686 686 }
687 687
688 688 .groups_breadcrumbs a {
689 689 color: #fff;
690 690 }
691 691
692 692 .groups_breadcrumbs a:hover {
693 693 color: #bfe3ff;
694 694 text-decoration: none;
695 695 }
696 696
697 697 td.quick_repo_menu {
698 698 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
699 699 cursor: pointer;
700 700 width: 8px;
701 701 border: 1px solid transparent;
702 702 }
703 703
704 704 td.quick_repo_menu.active {
705 705 background: url("../images/dt-arrow-dn.png") no-repeat scroll 5px 50% #FFFFFF !important;
706 706 border: 1px solid #003367;
707 707 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
708 708 cursor: pointer;
709 709 }
710 710
711 711 td.quick_repo_menu .menu_items {
712 712 margin-top: 10px;
713 713 margin-left:-6px;
714 714 width: 150px;
715 715 position: absolute;
716 716 background-color: #FFF;
717 717 background: none repeat scroll 0 0 #FFFFFF;
718 718 border-color: #003367 #666666 #666666;
719 719 border-right: 1px solid #666666;
720 720 border-style: solid;
721 721 border-width: 1px;
722 722 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
723 723 border-top-style: none;
724 724 }
725 725
726 726 td.quick_repo_menu .menu_items li {
727 727 padding: 0 !important;
728 728 }
729 729
730 730 td.quick_repo_menu .menu_items a {
731 731 display: block;
732 732 padding: 4px 12px 4px 8px;
733 733 }
734 734
735 735 td.quick_repo_menu .menu_items a:hover {
736 736 background-color: #EEE;
737 737 text-decoration: none;
738 738 }
739 739
740 740 td.quick_repo_menu .menu_items .icon img {
741 741 margin-bottom: -2px;
742 742 }
743 743
744 744 td.quick_repo_menu .menu_items.hidden {
745 745 display: none;
746 746 }
747 747
748 748 .yui-dt-first th {
749 749 text-align: left;
750 750 }
751 751
752 752 /*
753 753 Copyright (c) 2011, Yahoo! Inc. All rights reserved.
754 754 Code licensed under the BSD License:
755 755 http://developer.yahoo.com/yui/license.html
756 756 version: 2.9.0
757 757 */
758 758 .yui-skin-sam .yui-dt-mask {
759 759 position: absolute;
760 760 z-index: 9500;
761 761 }
762 762 .yui-dt-tmp {
763 763 position: absolute;
764 764 left: -9000px;
765 765 }
766 766 .yui-dt-scrollable .yui-dt-bd { overflow: auto }
767 767 .yui-dt-scrollable .yui-dt-hd {
768 768 overflow: hidden;
769 769 position: relative;
770 770 }
771 771 .yui-dt-scrollable .yui-dt-bd thead tr,
772 772 .yui-dt-scrollable .yui-dt-bd thead th {
773 773 position: absolute;
774 774 left: -1500px;
775 775 }
776 776 .yui-dt-scrollable tbody { -moz-outline: 0 }
777 777 .yui-skin-sam thead .yui-dt-sortable { cursor: pointer }
778 778 .yui-skin-sam thead .yui-dt-draggable { cursor: move }
779 779 .yui-dt-coltarget {
780 780 position: absolute;
781 781 z-index: 999;
782 782 }
783 783 .yui-dt-hd { zoom: 1 }
784 784 th.yui-dt-resizeable .yui-dt-resizerliner { position: relative }
785 785 .yui-dt-resizer {
786 786 position: absolute;
787 787 right: 0;
788 788 bottom: 0;
789 789 height: 100%;
790 790 cursor: e-resize;
791 791 cursor: col-resize;
792 792 background-color: #CCC;
793 793 opacity: 0;
794 794 filter: alpha(opacity=0);
795 795 }
796 796 .yui-dt-resizerproxy {
797 797 visibility: hidden;
798 798 position: absolute;
799 799 z-index: 9000;
800 800 background-color: #CCC;
801 801 opacity: 0;
802 802 filter: alpha(opacity=0);
803 803 }
804 804 th.yui-dt-hidden .yui-dt-liner,
805 805 td.yui-dt-hidden .yui-dt-liner,
806 806 th.yui-dt-hidden .yui-dt-resizer { display: none }
807 807 .yui-dt-editor,
808 808 .yui-dt-editor-shim {
809 809 position: absolute;
810 810 z-index: 9000;
811 811 }
812 812 .yui-skin-sam .yui-dt table {
813 813 margin: 0;
814 814 padding: 0;
815 815 font-family: arial;
816 816 font-size: inherit;
817 817 border-collapse: separate;
818 818 *border-collapse: collapse;
819 819 border-spacing: 0;
820 820 border: 1px solid #7f7f7f;
821 821 }
822 822 .yui-skin-sam .yui-dt thead { border-spacing: 0 }
823 823 .yui-skin-sam .yui-dt caption {
824 824 color: #000;
825 825 font-size: 85%;
826 826 font-weight: normal;
827 827 font-style: italic;
828 828 line-height: 1;
829 829 padding: 1em 0;
830 830 text-align: center;
831 831 }
832 832 .yui-skin-sam .yui-dt th { background: #d8d8da url(../images/sprite.png) repeat-x 0 0 }
833 833 .yui-skin-sam .yui-dt th,
834 834 .yui-skin-sam .yui-dt th a {
835 835 font-weight: normal;
836 836 text-decoration: none;
837 837 color: #000;
838 838 vertical-align: bottom;
839 839 }
840 840 .yui-skin-sam .yui-dt th {
841 841 margin: 0;
842 842 padding: 0;
843 843 border: 0;
844 844 border-right: 1px solid #cbcbcb;
845 845 }
846 846 .yui-skin-sam .yui-dt tr.yui-dt-first td { border-top: 1px solid #7f7f7f }
847 847 .yui-skin-sam .yui-dt th .yui-dt-liner { white-space: nowrap }
848 848 .yui-skin-sam .yui-dt-liner {
849 849 margin: 0;
850 850 padding: 0;
851 851 }
852 852 .yui-skin-sam .yui-dt-coltarget {
853 853 width: 5px;
854 854 background-color: red;
855 855 }
856 856 .yui-skin-sam .yui-dt td {
857 857 margin: 0;
858 858 padding: 0;
859 859 border: 0;
860 860 border-right: 1px solid #cbcbcb;
861 861 text-align: left;
862 862 }
863 863 .yui-skin-sam .yui-dt-list td { border-right: 0 }
864 864 .yui-skin-sam .yui-dt-resizer { width: 6px }
865 865 .yui-skin-sam .yui-dt-mask {
866 866 background-color: #000;
867 867 opacity: .25;
868 868 filter: alpha(opacity=25);
869 869 }
870 870 .yui-skin-sam .yui-dt-message { background-color: #FFF }
871 871 .yui-skin-sam .yui-dt-scrollable table { border: 0 }
872 872 .yui-skin-sam .yui-dt-scrollable .yui-dt-hd {
873 873 border-left: 1px solid #7f7f7f;
874 874 border-top: 1px solid #7f7f7f;
875 875 border-right: 1px solid #7f7f7f;
876 876 }
877 877 .yui-skin-sam .yui-dt-scrollable .yui-dt-bd {
878 878 border-left: 1px solid #7f7f7f;
879 879 border-bottom: 1px solid #7f7f7f;
880 880 border-right: 1px solid #7f7f7f;
881 881 background-color: #FFF;
882 882 }
883 883 .yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { border-bottom: 1px solid #7f7f7f }
884 884 .yui-skin-sam th.yui-dt-asc,
885 885 .yui-skin-sam th.yui-dt-desc { background: url(../images/sprite.png) repeat-x 0 -100px }
886 886 .yui-skin-sam th.yui-dt-sortable .yui-dt-label { margin-right: 10px }
887 887 .yui-skin-sam th.yui-dt-asc .yui-dt-liner { background: url(../images/dt-arrow-up.png) no-repeat right }
888 888 .yui-skin-sam th.yui-dt-desc .yui-dt-liner { background: url(../images/dt-arrow-dn.png) no-repeat right }
889 889 tbody .yui-dt-editable { cursor: pointer }
890 890 .yui-dt-editor {
891 891 text-align: left;
892 892 background-color: #f2f2f2;
893 893 border: 1px solid #808080;
894 894 padding: 6px;
895 895 }
896 896 .yui-dt-editor label {
897 897 padding-left: 4px;
898 898 padding-right: 6px;
899 899 }
900 900 .yui-dt-editor .yui-dt-button {
901 901 padding-top: 6px;
902 902 text-align: right;
903 903 }
904 904 .yui-dt-editor .yui-dt-button button {
905 905 background: url(../images/sprite.png) repeat-x 0 0;
906 906 border: 1px solid #999;
907 907 width: 4em;
908 908 height: 1.8em;
909 909 margin-left: 6px;
910 910 }
911 911 .yui-dt-editor .yui-dt-button button.yui-dt-default {
912 912 background: url(../images/sprite.png) repeat-x 0 -1400px;
913 913 background-color: #5584e0;
914 914 border: 1px solid #304369;
915 915 color: #FFF;
916 916 }
917 917 .yui-dt-editor .yui-dt-button button:hover {
918 918 background: url(../images/sprite.png) repeat-x 0 -1300px;
919 919 color: #000;
920 920 }
921 921 .yui-dt-editor .yui-dt-button button:active {
922 922 background: url(../images/sprite.png) repeat-x 0 -1700px;
923 923 color: #000;
924 924 }
925 925 .yui-skin-sam tr.yui-dt-even { background-color: #FFF }
926 926 .yui-skin-sam tr.yui-dt-odd { background-color: #edf5ff }
927 927 .yui-skin-sam tr.yui-dt-even td.yui-dt-asc,
928 928 .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
929 929 .yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,
930 930 .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { background-color: #dbeaff }
931 931 .yui-skin-sam .yui-dt-list tr.yui-dt-even { background-color: #FFF }
932 932 .yui-skin-sam .yui-dt-list tr.yui-dt-odd { background-color: #FFF }
933 933 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,
934 934 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
935 935 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,
936 936 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { background-color: #edf5ff }
937 937 .yui-skin-sam th.yui-dt-highlighted,
938 938 .yui-skin-sam th.yui-dt-highlighted a { background-color: #b2d2ff }
939 939 .yui-skin-sam tr.yui-dt-highlighted,
940 940 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,
941 941 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,
942 942 .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,
943 943 .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted {
944 944 cursor: pointer;
945 945 background-color: #b2d2ff;
946 946 }
947 947 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted,
948 948 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { background-color: #b2d2ff }
949 949 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,
950 950 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,
951 951 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,
952 952 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,
953 953 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted {
954 954 cursor: pointer;
955 955 background-color: #b2d2ff;
956 956 }
957 957 .yui-skin-sam th.yui-dt-selected,
958 958 .yui-skin-sam th.yui-dt-selected a { background-color: #446cd7 }
959 959 .yui-skin-sam tr.yui-dt-selected td,
960 960 .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,
961 961 .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc {
962 962 background-color: #426fd9;
963 963 color: #FFF;
964 964 }
965 965 .yui-skin-sam tr.yui-dt-even td.yui-dt-selected,
966 966 .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected {
967 967 background-color: #446cd7;
968 968 color: #FFF;
969 969 }
970 970 .yui-skin-sam .yui-dt-list th.yui-dt-selected,
971 971 .yui-skin-sam .yui-dt-list th.yui-dt-selected a { background-color: #446cd7 }
972 972 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,
973 973 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,
974 974 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc {
975 975 background-color: #426fd9;
976 976 color: #FFF;
977 977 }
978 978 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,
979 979 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected {
980 980 background-color: #446cd7;
981 981 color: #FFF;
982 982 }
983 983 .yui-skin-sam .yui-dt-paginator {
984 984 display: block;
985 985 margin: 6px 0;
986 986 white-space: nowrap;
987 987 }
988 988 .yui-skin-sam .yui-dt-paginator .yui-dt-first,
989 989 .yui-skin-sam .yui-dt-paginator .yui-dt-last,
990 990 .yui-skin-sam .yui-dt-paginator .yui-dt-selected { padding: 2px 6px }
991 991 .yui-skin-sam .yui-dt-paginator a.yui-dt-first,
992 992 .yui-skin-sam .yui-dt-paginator a.yui-dt-last { text-decoration: none }
993 993 .yui-skin-sam .yui-dt-paginator .yui-dt-previous,
994 994 .yui-skin-sam .yui-dt-paginator .yui-dt-next { display: none }
995 995 .yui-skin-sam a.yui-dt-page {
996 996 border: 1px solid #cbcbcb;
997 997 padding: 2px 6px;
998 998 text-decoration: none;
999 999 background-color: #fff;
1000 1000 }
1001 1001 .yui-skin-sam .yui-dt-selected {
1002 1002 border: 1px solid #fff;
1003 1003 background-color: #fff;
1004 1004 }
1005 1005
1006 1006 #content #left {
1007 1007 left: 0;
1008 1008 width: 280px;
1009 1009 position: absolute;
1010 1010 }
1011 1011
1012 1012 #content #right {
1013 1013 margin: 0 60px 10px 290px;
1014 1014 }
1015 1015
1016 1016 #content div.box {
1017 1017 clear: both;
1018 1018 overflow: hidden;
1019 1019 background: #fff;
1020 1020 margin: 0 0 10px;
1021 1021 padding: 0 0 10px;
1022 1022 -webkit-border-radius: 4px 4px 4px 4px;
1023 1023 -khtml-border-radius: 4px 4px 4px 4px;
1024 1024 -moz-border-radius: 4px 4px 4px 4px;
1025 1025 border-radius: 4px 4px 4px 4px;
1026 1026 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1027 1027 }
1028 1028
1029 1029 #content div.box-left {
1030 1030 width: 49%;
1031 1031 clear: none;
1032 1032 float: left;
1033 1033 margin: 0 0 10px;
1034 1034 }
1035 1035
1036 1036 #content div.box-right {
1037 1037 width: 49%;
1038 1038 clear: none;
1039 1039 float: right;
1040 1040 margin: 0 0 10px;
1041 1041 }
1042 1042
1043 1043 #content div.box div.title {
1044 1044 clear: both;
1045 1045 overflow: hidden;
1046 1046 background-color: #003B76;
1047 1047 background-repeat: repeat-x;
1048 1048 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
1049 1049 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1050 1050 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1051 1051 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
1052 1052 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
1053 1053 background-image: -o-linear-gradient(top, #003b76, #00376e);
1054 1054 background-image: linear-gradient(top, #003b76, #00376e);
1055 1055 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
1056 1056 margin: 0 0 20px;
1057 1057 padding: 0;
1058 1058 }
1059 1059
1060 1060 #content div.box div.title h5 {
1061 1061 float: left;
1062 1062 border: none;
1063 1063 color: #fff;
1064 1064 text-transform: uppercase;
1065 1065 margin: 0;
1066 1066 padding: 11px 0 11px 10px;
1067 1067 }
1068 1068
1069 1069 #content div.box div.title .link-white{
1070 1070 color: #FFFFFF;
1071 1071 }
1072 1072
1073 1073 #content div.box div.title ul.links li {
1074 1074 list-style: none;
1075 1075 float: left;
1076 1076 margin: 0;
1077 1077 padding: 0;
1078 1078 }
1079 1079
1080 1080 #content div.box div.title ul.links li a {
1081 1081 border-left: 1px solid #316293;
1082 1082 color: #FFFFFF;
1083 1083 display: block;
1084 1084 float: left;
1085 1085 font-size: 13px;
1086 1086 font-weight: 700;
1087 1087 height: 1%;
1088 1088 margin: 0;
1089 1089 padding: 11px 22px 12px;
1090 1090 text-decoration: none;
1091 1091 }
1092 1092
1093 1093 #content div.box h1,#content div.box h2,#content div.box h3,#content div.box h4,#content div.box h5,#content div.box h6
1094 1094 {
1095 1095 clear: both;
1096 1096 overflow: hidden;
1097 1097 border-bottom: 1px solid #DDD;
1098 1098 margin: 10px 20px;
1099 1099 padding: 0 0 15px;
1100 1100 }
1101 1101
1102 1102 #content div.box p {
1103 1103 color: #5f5f5f;
1104 1104 font-size: 12px;
1105 1105 line-height: 150%;
1106 1106 margin: 0 24px 10px;
1107 1107 padding: 0;
1108 1108 }
1109 1109
1110 1110 #content div.box blockquote {
1111 1111 border-left: 4px solid #DDD;
1112 1112 color: #5f5f5f;
1113 1113 font-size: 11px;
1114 1114 line-height: 150%;
1115 1115 margin: 0 34px;
1116 1116 padding: 0 0 0 14px;
1117 1117 }
1118 1118
1119 1119 #content div.box blockquote p {
1120 1120 margin: 10px 0;
1121 1121 padding: 0;
1122 1122 }
1123 1123
1124 1124 #content div.box dl {
1125 1125 margin: 10px 0px;
1126 1126 }
1127 1127
1128 1128 #content div.box dt {
1129 1129 font-size: 12px;
1130 1130 margin: 0;
1131 1131 }
1132 1132
1133 1133 #content div.box dd {
1134 1134 font-size: 12px;
1135 1135 margin: 0;
1136 1136 padding: 8px 0 8px 15px;
1137 1137 }
1138 1138
1139 1139 #content div.box li {
1140 1140 font-size: 12px;
1141 1141 padding: 4px 0;
1142 1142 }
1143 1143
1144 1144 #content div.box ul.disc,#content div.box ul.circle {
1145 1145 margin: 10px 24px 10px 38px;
1146 1146 }
1147 1147
1148 1148 #content div.box ul.square {
1149 1149 margin: 10px 24px 10px 40px;
1150 1150 }
1151 1151
1152 1152 #content div.box img.left {
1153 1153 border: none;
1154 1154 float: left;
1155 1155 margin: 10px 10px 10px 0;
1156 1156 }
1157 1157
1158 1158 #content div.box img.right {
1159 1159 border: none;
1160 1160 float: right;
1161 1161 margin: 10px 0 10px 10px;
1162 1162 }
1163 1163
1164 1164 #content div.box div.messages {
1165 1165 clear: both;
1166 1166 overflow: hidden;
1167 1167 margin: 0 20px;
1168 1168 padding: 0;
1169 1169 }
1170 1170
1171 1171 #content div.box div.message {
1172 1172 clear: both;
1173 1173 overflow: hidden;
1174 1174 margin: 0;
1175 1175 padding: 5px 0;
1176 1176 white-space: pre-wrap;
1177 1177 }
1178 1178 #content div.box div.expand {
1179 1179 width: 110%;
1180 1180 height:14px;
1181 1181 font-size:10px;
1182 1182 text-align:center;
1183 1183 cursor: pointer;
1184 1184 color:#666;
1185 1185
1186 1186 background:-webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,rgba(64,96,128,0.1)));
1187 1187 background:-webkit-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1188 1188 background:-moz-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1189 1189 background:-o-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1190 1190 background:-ms-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1191 1191 background:linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1192 1192
1193 1193 display: none;
1194 1194 }
1195 1195 #content div.box div.expand .expandtext {
1196 1196 background-color: #ffffff;
1197 1197 padding: 2px;
1198 1198 border-radius: 2px;
1199 1199 }
1200 1200
1201 1201 #content div.box div.message a {
1202 1202 font-weight: 400 !important;
1203 1203 }
1204 1204
1205 1205 #content div.box div.message div.image {
1206 1206 float: left;
1207 1207 margin: 9px 0 0 5px;
1208 1208 padding: 6px;
1209 1209 }
1210 1210
1211 1211 #content div.box div.message div.image img {
1212 1212 vertical-align: middle;
1213 1213 margin: 0;
1214 1214 }
1215 1215
1216 1216 #content div.box div.message div.text {
1217 1217 float: left;
1218 1218 margin: 0;
1219 1219 padding: 9px 6px;
1220 1220 }
1221 1221
1222 1222 #content div.box div.message div.dismiss a {
1223 1223 height: 16px;
1224 1224 width: 16px;
1225 1225 display: block;
1226 1226 background: url("../images/icons/cross.png") no-repeat;
1227 1227 margin: 15px 14px 0 0;
1228 1228 padding: 0;
1229 1229 }
1230 1230
1231 1231 #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
1232 1232 {
1233 1233 border: none;
1234 1234 margin: 0;
1235 1235 padding: 0;
1236 1236 }
1237 1237
1238 1238 #content div.box div.message div.text span {
1239 1239 height: 1%;
1240 1240 display: block;
1241 1241 margin: 0;
1242 1242 padding: 5px 0 0;
1243 1243 }
1244 1244
1245 1245 #content div.box div.message-error {
1246 1246 height: 1%;
1247 1247 clear: both;
1248 1248 overflow: hidden;
1249 1249 background: #FBE3E4;
1250 1250 border: 1px solid #FBC2C4;
1251 1251 color: #860006;
1252 1252 }
1253 1253
1254 1254 #content div.box div.message-error h6 {
1255 1255 color: #860006;
1256 1256 }
1257 1257
1258 1258 #content div.box div.message-warning {
1259 1259 height: 1%;
1260 1260 clear: both;
1261 1261 overflow: hidden;
1262 1262 background: #FFF6BF;
1263 1263 border: 1px solid #FFD324;
1264 1264 color: #5f5200;
1265 1265 }
1266 1266
1267 1267 #content div.box div.message-warning h6 {
1268 1268 color: #5f5200;
1269 1269 }
1270 1270
1271 1271 #content div.box div.message-notice {
1272 1272 height: 1%;
1273 1273 clear: both;
1274 1274 overflow: hidden;
1275 1275 background: #8FBDE0;
1276 1276 border: 1px solid #6BACDE;
1277 1277 color: #003863;
1278 1278 }
1279 1279
1280 1280 #content div.box div.message-notice h6 {
1281 1281 color: #003863;
1282 1282 }
1283 1283
1284 1284 #content div.box div.message-success {
1285 1285 height: 1%;
1286 1286 clear: both;
1287 1287 overflow: hidden;
1288 1288 background: #E6EFC2;
1289 1289 border: 1px solid #C6D880;
1290 1290 color: #4e6100;
1291 1291 }
1292 1292
1293 1293 #content div.box div.message-success h6 {
1294 1294 color: #4e6100;
1295 1295 }
1296 1296
1297 1297 #content div.box div.form div.fields div.field {
1298 1298 height: 1%;
1299 1299 border-bottom: 1px solid #DDD;
1300 1300 clear: both;
1301 1301 margin: 0;
1302 1302 padding: 10px 0;
1303 1303 }
1304 1304
1305 1305 #content div.box div.form div.fields div.field-first {
1306 1306 padding: 0 0 10px;
1307 1307 }
1308 1308
1309 1309 #content div.box div.form div.fields div.field-noborder {
1310 1310 border-bottom: 0 !important;
1311 1311 }
1312 1312
1313 1313 #content div.box div.form div.fields div.field span.error-message {
1314 1314 height: 1%;
1315 1315 display: inline-block;
1316 1316 color: red;
1317 1317 margin: 8px 0 0 4px;
1318 1318 padding: 0;
1319 1319 }
1320 1320
1321 1321 #content div.box div.form div.fields div.field span.success {
1322 1322 height: 1%;
1323 1323 display: block;
1324 1324 color: #316309;
1325 1325 margin: 8px 0 0;
1326 1326 padding: 0;
1327 1327 }
1328 1328
1329 1329 #content div.box div.form div.fields div.field div.label {
1330 1330 left: 70px;
1331 1331 width: 155px;
1332 1332 position: absolute;
1333 1333 margin: 0;
1334 1334 padding: 5px 0 0 0px;
1335 1335 }
1336 1336
1337 1337 #content div.box div.form div.fields div.field div.label-summary {
1338 1338 left: 30px;
1339 1339 width: 155px;
1340 1340 position: absolute;
1341 1341 margin: 0;
1342 1342 padding: 0px 0 0 0px;
1343 1343 }
1344 1344
1345 1345 #content div.box-left div.form div.fields div.field div.label,
1346 1346 #content div.box-right div.form div.fields div.field div.label,
1347 1347 #content div.box-left div.form div.fields div.field div.label,
1348 1348 #content div.box-left div.form div.fields div.field div.label-summary,
1349 1349 #content div.box-right div.form div.fields div.field div.label-summary,
1350 1350 #content div.box-left div.form div.fields div.field div.label-summary
1351 1351 {
1352 1352 clear: both;
1353 1353 overflow: hidden;
1354 1354 left: 0;
1355 1355 width: auto;
1356 1356 position: relative;
1357 1357 margin: 0;
1358 1358 padding: 0 0 8px;
1359 1359 }
1360 1360
1361 1361 #content div.box div.form div.fields div.field div.label-select {
1362 1362 padding: 5px 0 0 5px;
1363 1363 }
1364 1364
1365 1365 #content div.box-left div.form div.fields div.field div.label-select,
1366 1366 #content div.box-right div.form div.fields div.field div.label-select
1367 1367 {
1368 1368 padding: 0 0 8px;
1369 1369 }
1370 1370
1371 1371 #content div.box-left div.form div.fields div.field div.label-textarea,
1372 1372 #content div.box-right div.form div.fields div.field div.label-textarea
1373 1373 {
1374 1374 padding: 0 0 8px !important;
1375 1375 }
1376 1376
1377 1377 #content div.box div.form div.fields div.field div.label label,div.label label
1378 1378 {
1379 1379 color: #393939;
1380 1380 font-weight: 700;
1381 1381 }
1382 1382 #content div.box div.form div.fields div.field div.label label,div.label-summary label
1383 1383 {
1384 1384 color: #393939;
1385 1385 font-weight: 700;
1386 1386 }
1387 1387 #content div.box div.form div.fields div.field div.input {
1388 1388 margin: 0 0 0 200px;
1389 1389 }
1390 1390
1391 1391 #content div.box div.form div.fields div.field div.input.summary {
1392 1392 margin: 0 0 0 110px;
1393 1393 }
1394 1394 #content div.box div.form div.fields div.field div.input.summary-short {
1395 1395 margin: 0 0 0 110px;
1396 1396 }
1397 1397 #content div.box div.form div.fields div.field div.file {
1398 1398 margin: 0 0 0 200px;
1399 1399 }
1400 1400
1401 1401 #content div.box-left div.form div.fields div.field div.input,#content div.box-right div.form div.fields div.field div.input
1402 1402 {
1403 1403 margin: 0 0 0 0px;
1404 1404 }
1405 1405
1406 1406 #content div.box div.form div.fields div.field div.input input {
1407 1407 background: #FFF;
1408 1408 border-top: 1px solid #b3b3b3;
1409 1409 border-left: 1px solid #b3b3b3;
1410 1410 border-right: 1px solid #eaeaea;
1411 1411 border-bottom: 1px solid #eaeaea;
1412 1412 color: #000;
1413 1413 font-size: 11px;
1414 1414 margin: 0;
1415 1415 padding: 7px 7px 6px;
1416 1416 }
1417 1417
1418 1418 #content div.box div.form div.fields div.field div.input input#clone_url,
1419 1419 #content div.box div.form div.fields div.field div.input input#clone_url_id
1420 1420 {
1421 1421 font-size: 16px;
1422 1422 padding: 2px;
1423 1423 }
1424 1424
1425 1425 #content div.box div.form div.fields div.field div.file input {
1426 1426 background: none repeat scroll 0 0 #FFFFFF;
1427 1427 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1428 1428 border-style: solid;
1429 1429 border-width: 1px;
1430 1430 color: #000000;
1431 1431 font-size: 11px;
1432 1432 margin: 0;
1433 1433 padding: 7px 7px 6px;
1434 1434 }
1435 1435
1436 1436 input.disabled {
1437 1437 background-color: #F5F5F5 !important;
1438 1438 }
1439 1439 #content div.box div.form div.fields div.field div.input input.small {
1440 1440 width: 30%;
1441 1441 }
1442 1442
1443 1443 #content div.box div.form div.fields div.field div.input input.medium {
1444 1444 width: 55%;
1445 1445 }
1446 1446
1447 1447 #content div.box div.form div.fields div.field div.input input.large {
1448 1448 width: 85%;
1449 1449 }
1450 1450
1451 1451 #content div.box div.form div.fields div.field div.input input.date {
1452 1452 width: 177px;
1453 1453 }
1454 1454
1455 1455 #content div.box div.form div.fields div.field div.input input.button {
1456 1456 background: #D4D0C8;
1457 1457 border-top: 1px solid #FFF;
1458 1458 border-left: 1px solid #FFF;
1459 1459 border-right: 1px solid #404040;
1460 1460 border-bottom: 1px solid #404040;
1461 1461 color: #000;
1462 1462 margin: 0;
1463 1463 padding: 4px 8px;
1464 1464 }
1465 1465
1466 1466 #content div.box div.form div.fields div.field div.textarea {
1467 1467 border-top: 1px solid #b3b3b3;
1468 1468 border-left: 1px solid #b3b3b3;
1469 1469 border-right: 1px solid #eaeaea;
1470 1470 border-bottom: 1px solid #eaeaea;
1471 1471 margin: 0 0 0 200px;
1472 1472 padding: 10px;
1473 1473 }
1474 1474
1475 1475 #content div.box div.form div.fields div.field div.textarea-editor {
1476 1476 border: 1px solid #ddd;
1477 1477 padding: 0;
1478 1478 }
1479 1479
1480 1480 #content div.box div.form div.fields div.field div.textarea textarea {
1481 1481 width: 100%;
1482 1482 height: 220px;
1483 1483 overflow: hidden;
1484 1484 background: #FFF;
1485 1485 color: #000;
1486 1486 font-size: 11px;
1487 1487 outline: none;
1488 1488 border-width: 0;
1489 1489 margin: 0;
1490 1490 padding: 0;
1491 1491 }
1492 1492
1493 1493 #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
1494 1494 {
1495 1495 width: 100%;
1496 1496 height: 100px;
1497 1497 }
1498 1498
1499 1499 #content div.box div.form div.fields div.field div.textarea table {
1500 1500 width: 100%;
1501 1501 border: none;
1502 1502 margin: 0;
1503 1503 padding: 0;
1504 1504 }
1505 1505
1506 1506 #content div.box div.form div.fields div.field div.textarea table td {
1507 1507 background: #DDD;
1508 1508 border: none;
1509 1509 padding: 0;
1510 1510 }
1511 1511
1512 1512 #content div.box div.form div.fields div.field div.textarea table td table
1513 1513 {
1514 1514 width: auto;
1515 1515 border: none;
1516 1516 margin: 0;
1517 1517 padding: 0;
1518 1518 }
1519 1519
1520 1520 #content div.box div.form div.fields div.field div.textarea table td table td
1521 1521 {
1522 1522 font-size: 11px;
1523 1523 padding: 5px 5px 5px 0;
1524 1524 }
1525 1525
1526 1526 #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
1527 1527 {
1528 1528 background: #f6f6f6;
1529 1529 border-color: #666;
1530 1530 }
1531 1531
1532 1532 div.form div.fields div.field div.button {
1533 1533 margin: 0;
1534 1534 padding: 0 0 0 8px;
1535 1535 }
1536 1536 #content div.box table.noborder {
1537 1537 border: 1px solid transparent;
1538 1538 }
1539 1539
1540 1540 #content div.box table {
1541 1541 width: 100%;
1542 1542 border-collapse: separate;
1543 1543 margin: 0;
1544 1544 padding: 0;
1545 1545 border: 1px solid #eee;
1546 1546 -webkit-border-radius: 4px;
1547 1547 -moz-border-radius: 4px;
1548 1548 border-radius: 4px;
1549 1549 }
1550 1550
1551 1551 #content div.box table th {
1552 1552 background: #eee;
1553 1553 border-bottom: 1px solid #ddd;
1554 1554 padding: 5px 0px 5px 5px;
1555 1555 }
1556 1556
1557 1557 #content div.box table th.left {
1558 1558 text-align: left;
1559 1559 }
1560 1560
1561 1561 #content div.box table th.right {
1562 1562 text-align: right;
1563 1563 }
1564 1564
1565 1565 #content div.box table th.center {
1566 1566 text-align: center;
1567 1567 }
1568 1568
1569 1569 #content div.box table th.selected {
1570 1570 vertical-align: middle;
1571 1571 padding: 0;
1572 1572 }
1573 1573
1574 1574 #content div.box table td {
1575 1575 background: #fff;
1576 1576 border-bottom: 1px solid #cdcdcd;
1577 1577 vertical-align: middle;
1578 1578 padding: 5px;
1579 1579 }
1580 1580
1581 1581 #content div.box table tr.selected td {
1582 1582 background: #FFC;
1583 1583 }
1584 1584
1585 1585 #content div.box table td.selected {
1586 1586 width: 3%;
1587 1587 text-align: center;
1588 1588 vertical-align: middle;
1589 1589 padding: 0;
1590 1590 }
1591 1591
1592 1592 #content div.box table td.action {
1593 1593 width: 45%;
1594 1594 text-align: left;
1595 1595 }
1596 1596
1597 1597 #content div.box table td.date {
1598 1598 width: 33%;
1599 1599 text-align: center;
1600 1600 }
1601 1601
1602 1602 #content div.box div.action {
1603 1603 float: right;
1604 1604 background: #FFF;
1605 1605 text-align: right;
1606 1606 margin: 10px 0 0;
1607 1607 padding: 0;
1608 1608 }
1609 1609
1610 1610 #content div.box div.action select {
1611 1611 font-size: 11px;
1612 1612 margin: 0;
1613 1613 }
1614 1614
1615 1615 #content div.box div.action .ui-selectmenu {
1616 1616 margin: 0;
1617 1617 padding: 0;
1618 1618 }
1619 1619
1620 1620 #content div.box div.pagination {
1621 1621 height: 1%;
1622 1622 clear: both;
1623 1623 overflow: hidden;
1624 1624 margin: 10px 0 0;
1625 1625 padding: 0;
1626 1626 }
1627 1627
1628 1628 #content div.box div.pagination ul.pager {
1629 1629 float: right;
1630 1630 text-align: right;
1631 1631 margin: 0;
1632 1632 padding: 0;
1633 1633 }
1634 1634
1635 1635 #content div.box div.pagination ul.pager li {
1636 1636 height: 1%;
1637 1637 float: left;
1638 1638 list-style: none;
1639 1639 background: #ebebeb url("../images/pager.png") repeat-x;
1640 1640 border-top: 1px solid #dedede;
1641 1641 border-left: 1px solid #cfcfcf;
1642 1642 border-right: 1px solid #c4c4c4;
1643 1643 border-bottom: 1px solid #c4c4c4;
1644 1644 color: #4A4A4A;
1645 1645 font-weight: 700;
1646 1646 margin: 0 0 0 4px;
1647 1647 padding: 0;
1648 1648 }
1649 1649
1650 1650 #content div.box div.pagination ul.pager li.separator {
1651 1651 padding: 6px;
1652 1652 }
1653 1653
1654 1654 #content div.box div.pagination ul.pager li.current {
1655 1655 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1656 1656 border-top: 1px solid #ccc;
1657 1657 border-left: 1px solid #bebebe;
1658 1658 border-right: 1px solid #b1b1b1;
1659 1659 border-bottom: 1px solid #afafaf;
1660 1660 color: #515151;
1661 1661 padding: 6px;
1662 1662 }
1663 1663
1664 1664 #content div.box div.pagination ul.pager li a {
1665 1665 height: 1%;
1666 1666 display: block;
1667 1667 float: left;
1668 1668 color: #515151;
1669 1669 text-decoration: none;
1670 1670 margin: 0;
1671 1671 padding: 6px;
1672 1672 }
1673 1673
1674 1674 #content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active
1675 1675 {
1676 1676 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1677 1677 border-top: 1px solid #ccc;
1678 1678 border-left: 1px solid #bebebe;
1679 1679 border-right: 1px solid #b1b1b1;
1680 1680 border-bottom: 1px solid #afafaf;
1681 1681 margin: -1px;
1682 1682 }
1683 1683
1684 1684 #content div.box div.pagination-wh {
1685 1685 height: 1%;
1686 1686 clear: both;
1687 1687 overflow: hidden;
1688 1688 text-align: right;
1689 1689 margin: 10px 0 0;
1690 1690 padding: 0;
1691 1691 }
1692 1692
1693 1693 #content div.box div.pagination-right {
1694 1694 float: right;
1695 1695 }
1696 1696
1697 1697 #content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot
1698 1698 {
1699 1699 height: 1%;
1700 1700 float: left;
1701 1701 background: #ebebeb url("../images/pager.png") repeat-x;
1702 1702 border-top: 1px solid #dedede;
1703 1703 border-left: 1px solid #cfcfcf;
1704 1704 border-right: 1px solid #c4c4c4;
1705 1705 border-bottom: 1px solid #c4c4c4;
1706 1706 color: #4A4A4A;
1707 1707 font-weight: 700;
1708 1708 margin: 0 0 0 4px;
1709 1709 padding: 6px;
1710 1710 }
1711 1711
1712 1712 #content div.box div.pagination-wh span.pager_curpage {
1713 1713 height: 1%;
1714 1714 float: left;
1715 1715 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1716 1716 border-top: 1px solid #ccc;
1717 1717 border-left: 1px solid #bebebe;
1718 1718 border-right: 1px solid #b1b1b1;
1719 1719 border-bottom: 1px solid #afafaf;
1720 1720 color: #515151;
1721 1721 font-weight: 700;
1722 1722 margin: 0 0 0 4px;
1723 1723 padding: 6px;
1724 1724 }
1725 1725
1726 1726 #content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active
1727 1727 {
1728 1728 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1729 1729 border-top: 1px solid #ccc;
1730 1730 border-left: 1px solid #bebebe;
1731 1731 border-right: 1px solid #b1b1b1;
1732 1732 border-bottom: 1px solid #afafaf;
1733 1733 text-decoration: none;
1734 1734 }
1735 1735
1736 1736 #content div.box div.traffic div.legend {
1737 1737 clear: both;
1738 1738 overflow: hidden;
1739 1739 border-bottom: 1px solid #ddd;
1740 1740 margin: 0 0 10px;
1741 1741 padding: 0 0 10px;
1742 1742 }
1743 1743
1744 1744 #content div.box div.traffic div.legend h6 {
1745 1745 float: left;
1746 1746 border: none;
1747 1747 margin: 0;
1748 1748 padding: 0;
1749 1749 }
1750 1750
1751 1751 #content div.box div.traffic div.legend li {
1752 1752 list-style: none;
1753 1753 float: left;
1754 1754 font-size: 11px;
1755 1755 margin: 0;
1756 1756 padding: 0 8px 0 4px;
1757 1757 }
1758 1758
1759 1759 #content div.box div.traffic div.legend li.visits {
1760 1760 border-left: 12px solid #edc240;
1761 1761 }
1762 1762
1763 1763 #content div.box div.traffic div.legend li.pageviews {
1764 1764 border-left: 12px solid #afd8f8;
1765 1765 }
1766 1766
1767 1767 #content div.box div.traffic table {
1768 1768 width: auto;
1769 1769 }
1770 1770
1771 1771 #content div.box div.traffic table td {
1772 1772 background: transparent;
1773 1773 border: none;
1774 1774 padding: 2px 3px 3px;
1775 1775 }
1776 1776
1777 1777 #content div.box div.traffic table td.legendLabel {
1778 1778 padding: 0 3px 2px;
1779 1779 }
1780 1780
1781 1781 #summary {
1782 1782
1783 1783 }
1784 1784
1785 1785 #summary .desc {
1786 1786 white-space: pre;
1787 1787 width: 100%;
1788 1788 }
1789 1789
1790 1790 #summary .repo_name {
1791 1791 font-size: 1.6em;
1792 1792 font-weight: bold;
1793 1793 vertical-align: baseline;
1794 1794 clear: right
1795 1795 }
1796 1796
1797 1797 #footer {
1798 1798 clear: both;
1799 1799 overflow: hidden;
1800 1800 text-align: right;
1801 1801 margin: 0;
1802 1802 padding: 0 10px 4px;
1803 1803 margin: -10px 0 0;
1804 1804 }
1805 1805
1806 1806 #footer div#footer-inner {
1807 1807 background-color: #003B76;
1808 1808 background-repeat : repeat-x;
1809 1809 background-image : -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
1810 1810 background-image : -moz-linear-gradient(top, #003b76, #00376e);
1811 1811 background-image : -ms-linear-gradient( top, #003b76, #00376e);
1812 1812 background-image : -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1813 1813 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1814 1814 background-image : -o-linear-gradient( top, #003b76, #00376e));
1815 1815 background-image : linear-gradient( top, #003b76, #00376e);
1816 1816 filter :progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
1817 1817 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1818 1818 -webkit-border-radius: 4px 4px 4px 4px;
1819 1819 -khtml-border-radius: 4px 4px 4px 4px;
1820 1820 -moz-border-radius: 4px 4px 4px 4px;
1821 1821 border-radius: 4px 4px 4px 4px;
1822 1822 }
1823 1823
1824 1824 #footer div#footer-inner p {
1825 1825 padding: 15px 25px 15px 0;
1826 1826 color: #FFF;
1827 1827 font-weight: 700;
1828 1828 }
1829 1829
1830 1830 #footer div#footer-inner .footer-link {
1831 1831 float: left;
1832 1832 padding-left: 10px;
1833 1833 }
1834 1834
1835 1835 #footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a
1836 1836 {
1837 1837 color: #FFF;
1838 1838 }
1839 1839
1840 1840 #login div.title {
1841 1841 width: 420px;
1842 1842 clear: both;
1843 1843 overflow: hidden;
1844 1844 position: relative;
1845 1845 background-color: #003B76;
1846 1846 background-repeat : repeat-x;
1847 1847 background-image : -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
1848 1848 background-image : -moz-linear-gradient( top, #003b76, #00376e);
1849 1849 background-image : -ms-linear-gradient( top, #003b76, #00376e);
1850 1850 background-image : -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1851 1851 background-image : -webkit-linear-gradient( top, #003b76, #00376e));
1852 1852 background-image : -o-linear-gradient( top, #003b76, #00376e));
1853 1853 background-image : linear-gradient( top, #003b76, #00376e);
1854 1854 filter : progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
1855 1855 margin: 0 auto;
1856 1856 padding: 0;
1857 1857 }
1858 1858
1859 1859 #login div.inner {
1860 1860 width: 380px;
1861 1861 background: #FFF url("../images/login.png") no-repeat top left;
1862 1862 border-top: none;
1863 1863 border-bottom: none;
1864 1864 margin: 0 auto;
1865 1865 padding: 20px;
1866 1866 }
1867 1867
1868 1868 #login div.form div.fields div.field div.label {
1869 1869 width: 173px;
1870 1870 float: left;
1871 1871 text-align: right;
1872 1872 margin: 2px 10px 0 0;
1873 1873 padding: 5px 0 0 5px;
1874 1874 }
1875 1875
1876 1876 #login div.form div.fields div.field div.input input {
1877 1877 width: 176px;
1878 1878 background: #FFF;
1879 1879 border-top: 1px solid #b3b3b3;
1880 1880 border-left: 1px solid #b3b3b3;
1881 1881 border-right: 1px solid #eaeaea;
1882 1882 border-bottom: 1px solid #eaeaea;
1883 1883 color: #000;
1884 1884 font-size: 11px;
1885 1885 margin: 0;
1886 1886 padding: 7px 7px 6px;
1887 1887 }
1888 1888
1889 1889 #login div.form div.fields div.buttons {
1890 1890 clear: both;
1891 1891 overflow: hidden;
1892 1892 border-top: 1px solid #DDD;
1893 1893 text-align: right;
1894 1894 margin: 0;
1895 1895 padding: 10px 0 0;
1896 1896 }
1897 1897
1898 1898 #login div.form div.links {
1899 1899 clear: both;
1900 1900 overflow: hidden;
1901 1901 margin: 10px 0 0;
1902 1902 padding: 0 0 2px;
1903 1903 }
1904 1904
1905 1905 .user-menu{
1906 1906 margin: 0px !important;
1907 1907 float: left;
1908 1908 }
1909 1909
1910 1910 .user-menu .container{
1911 1911 padding:0px 4px 0px 4px;
1912 1912 margin: 0px 0px 0px 0px;
1913 1913 }
1914 1914
1915 1915 .user-menu .gravatar{
1916 1916 margin: 0px 0px 0px 0px;
1917 1917 cursor: pointer;
1918 1918 }
1919 1919 .user-menu .gravatar.enabled{
1920 1920 background-color: #FDF784 !important;
1921 1921 }
1922 1922 .user-menu .gravatar:hover{
1923 1923 background-color: #FDF784 !important;
1924 1924 }
1925 1925 #quick_login{
1926 1926 min-height: 80px;
1927 1927 margin: 37px 0 0 -251px;
1928 1928 padding: 4px;
1929 1929 position: absolute;
1930 1930 width: 278px;
1931 1931
1932 1932 background-repeat: repeat-x;
1933 1933 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
1934 1934 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1935 1935 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1936 1936 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
1937 1937 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
1938 1938 background-image: -o-linear-gradient(top, #003b76, #00376e);
1939 1939 background-image: linear-gradient(top, #003b76, #00376e);
1940 1940 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
1941 1941
1942 1942 z-index: 999;
1943 1943 -webkit-border-radius: 0px 0px 4px 4px;
1944 1944 -khtml-border-radius: 0px 0px 4px 4px;
1945 1945 -moz-border-radius: 0px 0px 4px 4px;
1946 1946 border-radius: 0px 0px 4px 4px;
1947 1947 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1948 1948 }
1949 1949 #quick_login h4{
1950 1950 color: #fff;
1951 1951 padding: 5px 0px 5px 14px;
1952 1952 }
1953 1953
1954 1954 #quick_login .password_forgoten {
1955 1955 padding-right: 10px;
1956 1956 padding-top: 0px;
1957 1957 text-align: left;
1958 1958 }
1959 1959
1960 1960 #quick_login .password_forgoten a {
1961 1961 font-size: 10px;
1962 1962 color: #fff;
1963 1963 }
1964 1964
1965 1965 #quick_login .register {
1966 1966 padding-right: 10px;
1967 1967 padding-top: 5px;
1968 1968 text-align: left;
1969 1969 }
1970 1970
1971 1971 #quick_login .register a {
1972 1972 font-size: 10px;
1973 1973 color: #fff;
1974 1974 }
1975 1975
1976 1976 #quick_login .submit {
1977 1977 margin: -20px 0 0 0px;
1978 1978 position: absolute;
1979 1979 right: 15px;
1980 1980 }
1981 1981
1982 1982 #quick_login .links_left{
1983 1983 float: left;
1984 1984 }
1985 1985 #quick_login .links_right{
1986 1986 float: right;
1987 1987 }
1988 1988 #quick_login .full_name{
1989 1989 color: #FFFFFF;
1990 1990 font-weight: bold;
1991 1991 padding: 3px;
1992 1992 }
1993 1993 #quick_login .big_gravatar{
1994 1994 padding:4px 0px 0px 6px;
1995 1995 }
1996 1996 #quick_login .inbox{
1997 1997 padding:4px 0px 0px 6px;
1998 1998 color: #FFFFFF;
1999 1999 font-weight: bold;
2000 2000 }
2001 2001 #quick_login .inbox a{
2002 2002 color: #FFFFFF;
2003 2003 }
2004 2004 #quick_login .email,#quick_login .email a{
2005 2005 color: #FFFFFF;
2006 2006 padding: 3px;
2007 2007
2008 2008 }
2009 2009 #quick_login .links .logout{
2010 2010
2011 2011 }
2012 2012
2013 2013 #quick_login div.form div.fields {
2014 2014 padding-top: 2px;
2015 2015 padding-left: 10px;
2016 2016 }
2017 2017
2018 2018 #quick_login div.form div.fields div.field {
2019 2019 padding: 5px;
2020 2020 }
2021 2021
2022 2022 #quick_login div.form div.fields div.field div.label label {
2023 2023 color: #fff;
2024 2024 padding-bottom: 3px;
2025 2025 }
2026 2026
2027 2027 #quick_login div.form div.fields div.field div.input input {
2028 2028 width: 236px;
2029 2029 background: #FFF;
2030 2030 border-top: 1px solid #b3b3b3;
2031 2031 border-left: 1px solid #b3b3b3;
2032 2032 border-right: 1px solid #eaeaea;
2033 2033 border-bottom: 1px solid #eaeaea;
2034 2034 color: #000;
2035 2035 font-size: 11px;
2036 2036 margin: 0;
2037 2037 padding: 5px 7px 4px;
2038 2038 }
2039 2039
2040 2040 #quick_login div.form div.fields div.buttons {
2041 2041 clear: both;
2042 2042 overflow: hidden;
2043 2043 text-align: right;
2044 2044 margin: 0;
2045 2045 padding: 5px 14px 0px 5px;
2046 2046 }
2047 2047
2048 2048 #quick_login div.form div.links {
2049 2049 clear: both;
2050 2050 overflow: hidden;
2051 2051 margin: 10px 0 0;
2052 2052 padding: 0 0 2px;
2053 2053 }
2054 2054
2055 2055 #quick_login ol.links{
2056 2056 display: block;
2057 2057 font-weight: bold;
2058 2058 list-style: none outside none;
2059 2059 text-align: right;
2060 2060 }
2061 2061 #quick_login ol.links li{
2062 2062 line-height: 27px;
2063 2063 margin: 0;
2064 2064 padding: 0;
2065 2065 color: #fff;
2066 2066 display: block;
2067 2067 float:none !important;
2068 2068 }
2069 2069
2070 2070 #quick_login ol.links li a{
2071 2071 color: #fff;
2072 2072 display: block;
2073 2073 padding: 2px;
2074 2074 }
2075 2075 #quick_login ol.links li a:HOVER{
2076 2076 background-color: inherit !important;
2077 2077 }
2078 2078
2079 2079 #register div.title {
2080 2080 clear: both;
2081 2081 overflow: hidden;
2082 2082 position: relative;
2083 2083 background-color: #003B76;
2084 2084 background-repeat: repeat-x;
2085 2085 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
2086 2086 background-image: -moz-linear-gradient(top, #003b76, #00376e);
2087 2087 background-image: -ms-linear-gradient(top, #003b76, #00376e);
2088 2088 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
2089 2089 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
2090 2090 background-image: -o-linear-gradient(top, #003b76, #00376e);
2091 2091 background-image: linear-gradient(top, #003b76, #00376e);
2092 2092 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
2093 2093 endColorstr='#00376e', GradientType=0 );
2094 2094 margin: 0 auto;
2095 2095 padding: 0;
2096 2096 }
2097 2097
2098 2098 #register div.inner {
2099 2099 background: #FFF;
2100 2100 border-top: none;
2101 2101 border-bottom: none;
2102 2102 margin: 0 auto;
2103 2103 padding: 20px;
2104 2104 }
2105 2105
2106 2106 #register div.form div.fields div.field div.label {
2107 2107 width: 135px;
2108 2108 float: left;
2109 2109 text-align: right;
2110 2110 margin: 2px 10px 0 0;
2111 2111 padding: 5px 0 0 5px;
2112 2112 }
2113 2113
2114 2114 #register div.form div.fields div.field div.input input {
2115 2115 width: 300px;
2116 2116 background: #FFF;
2117 2117 border-top: 1px solid #b3b3b3;
2118 2118 border-left: 1px solid #b3b3b3;
2119 2119 border-right: 1px solid #eaeaea;
2120 2120 border-bottom: 1px solid #eaeaea;
2121 2121 color: #000;
2122 2122 font-size: 11px;
2123 2123 margin: 0;
2124 2124 padding: 7px 7px 6px;
2125 2125 }
2126 2126
2127 2127 #register div.form div.fields div.buttons {
2128 2128 clear: both;
2129 2129 overflow: hidden;
2130 2130 border-top: 1px solid #DDD;
2131 2131 text-align: left;
2132 2132 margin: 0;
2133 2133 padding: 10px 0 0 150px;
2134 2134 }
2135 2135
2136 2136 #register div.form div.activation_msg {
2137 2137 padding-top: 4px;
2138 2138 padding-bottom: 4px;
2139 2139 }
2140 2140
2141 2141 #journal .journal_day {
2142 2142 font-size: 20px;
2143 2143 padding: 10px 0px;
2144 2144 border-bottom: 2px solid #DDD;
2145 2145 margin-left: 10px;
2146 2146 margin-right: 10px;
2147 2147 }
2148 2148
2149 2149 #journal .journal_container {
2150 2150 padding: 5px;
2151 2151 clear: both;
2152 2152 margin: 0px 5px 0px 10px;
2153 2153 }
2154 2154
2155 2155 #journal .journal_action_container {
2156 2156 padding-left: 38px;
2157 2157 }
2158 2158
2159 2159 #journal .journal_user {
2160 2160 color: #747474;
2161 2161 font-size: 14px;
2162 2162 font-weight: bold;
2163 2163 height: 30px;
2164 2164 }
2165 2165
2166 2166 #journal .journal_icon {
2167 2167 clear: both;
2168 2168 float: left;
2169 2169 padding-right: 4px;
2170 2170 padding-top: 3px;
2171 2171 }
2172 2172
2173 2173 #journal .journal_action {
2174 2174 padding-top: 4px;
2175 2175 min-height: 2px;
2176 2176 float: left
2177 2177 }
2178 2178
2179 2179 #journal .journal_action_params {
2180 2180 clear: left;
2181 2181 padding-left: 22px;
2182 2182 }
2183 2183
2184 2184 #journal .journal_repo {
2185 2185 float: left;
2186 2186 margin-left: 6px;
2187 2187 padding-top: 3px;
2188 2188 }
2189 2189
2190 2190 #journal .date {
2191 2191 clear: both;
2192 2192 color: #777777;
2193 2193 font-size: 11px;
2194 2194 padding-left: 22px;
2195 2195 }
2196 2196
2197 2197 #journal .journal_repo .journal_repo_name {
2198 2198 font-weight: bold;
2199 2199 font-size: 1.1em;
2200 2200 }
2201 2201
2202 2202 #journal .compare_view {
2203 2203 padding: 5px 0px 5px 0px;
2204 2204 width: 95px;
2205 2205 }
2206 2206
2207 2207 .journal_highlight {
2208 2208 font-weight: bold;
2209 2209 padding: 0 2px;
2210 2210 vertical-align: bottom;
2211 2211 }
2212 2212
2213 2213 .trending_language_tbl,.trending_language_tbl td {
2214 2214 border: 0 !important;
2215 2215 margin: 0 !important;
2216 2216 padding: 0 !important;
2217 2217 }
2218 2218
2219 2219 .trending_language_tbl,.trending_language_tbl tr {
2220 2220 border-spacing: 1px;
2221 2221 }
2222 2222
2223 2223 .trending_language {
2224 2224 background-color: #003367;
2225 2225 color: #FFF;
2226 2226 display: block;
2227 2227 min-width: 20px;
2228 2228 text-decoration: none;
2229 2229 height: 12px;
2230 2230 margin-bottom: 0px;
2231 2231 margin-left: 5px;
2232 2232 white-space: pre;
2233 2233 padding: 3px;
2234 2234 }
2235 2235
2236 2236 h3.files_location {
2237 2237 font-size: 1.8em;
2238 2238 font-weight: 700;
2239 2239 border-bottom: none !important;
2240 2240 margin: 10px 0 !important;
2241 2241 }
2242 2242
2243 2243 #files_data dl dt {
2244 2244 float: left;
2245 2245 width: 60px;
2246 2246 margin: 0 !important;
2247 2247 padding: 5px;
2248 2248 }
2249 2249
2250 2250 #files_data dl dd {
2251 2251 margin: 0 !important;
2252 2252 padding: 5px !important;
2253 2253 }
2254 2254
2255 2255 .tablerow0 {
2256 2256 background-color: #F8F8F8;
2257 2257 }
2258 2258
2259 2259 .tablerow1 {
2260 2260 background-color: #FFFFFF;
2261 2261 }
2262 2262
2263 2263 .changeset_id {
2264 2264 font-family: monospace;
2265 2265 color: #666666;
2266 2266 }
2267 2267
2268 2268 .changeset_hash {
2269 2269 color: #000000;
2270 2270 }
2271 2271
2272 2272 #changeset_content {
2273 2273 border-left: 1px solid #CCC;
2274 2274 border-right: 1px solid #CCC;
2275 2275 border-bottom: 1px solid #CCC;
2276 2276 padding: 5px;
2277 2277 }
2278 2278
2279 2279 #changeset_compare_view_content {
2280 2280 border: 1px solid #CCC;
2281 2281 padding: 5px;
2282 2282 }
2283 2283
2284 2284 #changeset_content .container {
2285 2285 min-height: 100px;
2286 2286 font-size: 1.2em;
2287 2287 overflow: hidden;
2288 2288 }
2289 2289
2290 2290 #changeset_compare_view_content .compare_view_commits {
2291 2291 width: auto !important;
2292 2292 }
2293 2293
2294 2294 #changeset_compare_view_content .compare_view_commits td {
2295 2295 padding: 0px 0px 0px 12px !important;
2296 2296 }
2297 2297
2298 2298 #changeset_content .container .right {
2299 2299 float: right;
2300 2300 width: 20%;
2301 2301 text-align: right;
2302 2302 }
2303 2303
2304 2304 #changeset_content .container .left .message {
2305 2305 white-space: pre-wrap;
2306 2306 }
2307 2307 #changeset_content .container .left .message a:hover {
2308 2308 text-decoration: none;
2309 2309 }
2310 2310 .cs_files .cur_cs {
2311 2311 margin: 10px 2px;
2312 2312 font-weight: bold;
2313 2313 }
2314 2314
2315 2315 .cs_files .node {
2316 2316 float: left;
2317 2317 }
2318 2318
2319 2319 .cs_files .changes {
2320 2320 float: right;
2321 2321 color:#003367;
2322 2322
2323 2323 }
2324 2324
2325 2325 .cs_files .changes .added {
2326 2326 background-color: #BBFFBB;
2327 2327 float: left;
2328 2328 text-align: center;
2329 2329 font-size: 9px;
2330 2330 padding: 2px 0px 2px 0px;
2331 2331 }
2332 2332
2333 2333 .cs_files .changes .deleted {
2334 2334 background-color: #FF8888;
2335 2335 float: left;
2336 2336 text-align: center;
2337 2337 font-size: 9px;
2338 2338 padding: 2px 0px 2px 0px;
2339 2339 }
2340 2340
2341 2341 .cs_files .cs_added {
2342 2342 background: url("../images/icons/page_white_add.png") no-repeat scroll
2343 2343 3px;
2344 2344 height: 16px;
2345 2345 padding-left: 20px;
2346 2346 margin-top: 7px;
2347 2347 text-align: left;
2348 2348 }
2349 2349
2350 2350 .cs_files .cs_changed {
2351 2351 background: url("../images/icons/page_white_edit.png") no-repeat scroll
2352 2352 3px;
2353 2353 height: 16px;
2354 2354 padding-left: 20px;
2355 2355 margin-top: 7px;
2356 2356 text-align: left;
2357 2357 }
2358 2358
2359 2359 .cs_files .cs_removed {
2360 2360 background: url("../images/icons/page_white_delete.png") no-repeat
2361 2361 scroll 3px;
2362 2362 height: 16px;
2363 2363 padding-left: 20px;
2364 2364 margin-top: 7px;
2365 2365 text-align: left;
2366 2366 }
2367 2367
2368 2368 #graph {
2369 2369 overflow: hidden;
2370 2370 }
2371 2371
2372 2372 #graph_nodes {
2373 2373 float: left;
2374 2374 margin-right: -6px;
2375 2375 margin-top: 0px;
2376 2376 }
2377 2377
2378 2378 #graph_content {
2379 2379 width: 80%;
2380 2380 float: left;
2381 2381 }
2382 2382
2383 2383 #graph_content .container_header {
2384 2384 border-bottom: 1px solid #DDD;
2385 2385 padding: 10px;
2386 2386 height: 25px;
2387 2387 }
2388 2388
2389 2389 #graph_content #rev_range_container {
2390 2390 padding: 7px 20px;
2391 2391 float: left;
2392 2392 }
2393 2393
2394 2394 #graph_content .container {
2395 2395 border-bottom: 1px solid #DDD;
2396 2396 height: 56px;
2397 2397 overflow: hidden;
2398 2398 }
2399 2399
2400 2400 #graph_content .container .right {
2401 2401 float: right;
2402 2402 width: 23%;
2403 2403 text-align: right;
2404 2404 }
2405 2405
2406 2406 #graph_content .container .left {
2407 2407 float: left;
2408 2408 width: 25%;
2409 2409 padding-left: 5px;
2410 2410 }
2411 2411
2412 2412 #graph_content .container .mid {
2413 2413 float: left;
2414 2414 width: 49%;
2415 2415 }
2416 2416
2417 2417
2418 2418 #graph_content .container .left .date {
2419 2419 color: #666;
2420 2420 padding-left: 22px;
2421 2421 font-size: 10px;
2422 2422 }
2423 2423
2424 2424 #graph_content .container .left .author {
2425 2425 height: 22px;
2426 2426 }
2427 2427
2428 2428 #graph_content .container .left .author .user {
2429 2429 color: #444444;
2430 2430 float: left;
2431 2431 margin-left: -4px;
2432 2432 margin-top: 4px;
2433 2433 }
2434 2434
2435 2435 #graph_content .container .mid .message {
2436 2436 white-space: pre-wrap;
2437 2437 }
2438 2438
2439 2439 #graph_content .container .mid .message a:hover{
2440 2440 text-decoration: none;
2441 2441 }
2442 2442 #content #graph_content .message .revision-link,
2443 2443 #changeset_content .container .message .revision-link
2444 2444 {
2445 2445 color:#3F6F9F;
2446 2446 font-weight: bold !important;
2447 2447 }
2448 2448
2449 2449 #content #graph_content .message .issue-tracker-link,
2450 2450 #changeset_content .container .message .issue-tracker-link{
2451 2451 color:#3F6F9F;
2452 2452 font-weight: bold !important;
2453 2453 }
2454 2454
2455 2455 .right .comments-container{
2456 2456 padding-right: 5px;
2457 2457 margin-top:1px;
2458 2458 float:right;
2459 2459 height:14px;
2460 2460 }
2461 2461
2462 2462 .right .comments-cnt{
2463 2463 float: left;
2464 2464 color: rgb(136, 136, 136);
2465 2465 padding-right: 2px;
2466 2466 }
2467 2467
2468 2468 .right .changes{
2469 2469 clear: both;
2470 2470 }
2471 2471
2472 2472 .right .changes .changed_total {
2473 2473 display: block;
2474 2474 float: right;
2475 2475 text-align: center;
2476 2476 min-width: 45px;
2477 2477 cursor: pointer;
2478 2478 color: #444444;
2479 2479 background: #FEA;
2480 2480 -webkit-border-radius: 0px 0px 0px 6px;
2481 2481 -moz-border-radius: 0px 0px 0px 6px;
2482 2482 border-radius: 0px 0px 0px 6px;
2483 2483 padding: 1px;
2484 2484 }
2485 2485
2486 2486 .right .changes .added,.changed,.removed {
2487 2487 display: block;
2488 2488 padding: 1px;
2489 2489 color: #444444;
2490 2490 float: right;
2491 2491 text-align: center;
2492 2492 min-width: 15px;
2493 2493 }
2494 2494
2495 2495 .right .changes .added {
2496 2496 background: #CFC;
2497 2497 }
2498 2498
2499 2499 .right .changes .changed {
2500 2500 background: #FEA;
2501 2501 }
2502 2502
2503 2503 .right .changes .removed {
2504 2504 background: #FAA;
2505 2505 }
2506 2506
2507 2507 .right .merge {
2508 2508 padding: 1px 3px 1px 3px;
2509 2509 background-color: #fca062;
2510 2510 font-size: 10px;
2511 2511 font-weight: bold;
2512 2512 color: #ffffff;
2513 2513 text-transform: uppercase;
2514 2514 white-space: nowrap;
2515 2515 -webkit-border-radius: 3px;
2516 2516 -moz-border-radius: 3px;
2517 2517 border-radius: 3px;
2518 2518 margin-right: 2px;
2519 2519 }
2520 2520
2521 2521 .right .parent {
2522 2522 color: #666666;
2523 2523 clear:both;
2524 2524 }
2525 2525 .right .logtags{
2526 2526 padding: 2px 2px 2px 2px;
2527 2527 }
2528 2528 .right .logtags .branchtag,.right .logtags .tagtag,.right .logtags .booktag{
2529 2529 margin: 0px 2px;
2530 2530 }
2531 2531
2532 2532 .right .logtags .branchtag,.logtags .branchtag {
2533 2533 padding: 1px 3px 1px 3px;
2534 2534 background-color: #bfbfbf;
2535 2535 font-size: 10px;
2536 2536 font-weight: bold;
2537 2537 color: #ffffff;
2538 2538 text-transform: uppercase;
2539 2539 white-space: nowrap;
2540 2540 -webkit-border-radius: 3px;
2541 2541 -moz-border-radius: 3px;
2542 2542 border-radius: 3px;
2543 2543 }
2544 2544 .right .logtags .branchtag a:hover,.logtags .branchtag a{
2545 2545 color: #ffffff;
2546 2546 }
2547 2547 .right .logtags .branchtag a:hover,.logtags .branchtag a:hover{
2548 2548 text-decoration: none;
2549 2549 color: #ffffff;
2550 2550 }
2551 2551 .right .logtags .tagtag,.logtags .tagtag {
2552 2552 padding: 1px 3px 1px 3px;
2553 2553 background-color: #62cffc;
2554 2554 font-size: 10px;
2555 2555 font-weight: bold;
2556 2556 color: #ffffff;
2557 2557 text-transform: uppercase;
2558 2558 white-space: nowrap;
2559 2559 -webkit-border-radius: 3px;
2560 2560 -moz-border-radius: 3px;
2561 2561 border-radius: 3px;
2562 2562 }
2563 2563 .right .logtags .tagtag a:hover,.logtags .tagtag a{
2564 2564 color: #ffffff;
2565 2565 }
2566 2566 .right .logtags .tagtag a:hover,.logtags .tagtag a:hover{
2567 2567 text-decoration: none;
2568 2568 color: #ffffff;
2569 2569 }
2570 2570 .right .logbooks .bookbook,.logbooks .bookbook,.right .logtags .bookbook,.logtags .bookbook {
2571 2571 padding: 1px 3px 1px 3px;
2572 2572 background-color: #46A546;
2573 2573 font-size: 10px;
2574 2574 font-weight: bold;
2575 2575 color: #ffffff;
2576 2576 text-transform: uppercase;
2577 2577 white-space: nowrap;
2578 2578 -webkit-border-radius: 3px;
2579 2579 -moz-border-radius: 3px;
2580 2580 border-radius: 3px;
2581 2581 }
2582 2582 .right .logbooks .bookbook,.logbooks .bookbook a,.right .logtags .bookbook,.logtags .bookbook a{
2583 2583 color: #ffffff;
2584 2584 }
2585 2585 .right .logbooks .bookbook,.logbooks .bookbook a:hover,.right .logtags .bookbook,.logtags .bookbook a:hover{
2586 2586 text-decoration: none;
2587 2587 color: #ffffff;
2588 2588 }
2589 2589 div.browserblock {
2590 2590 overflow: hidden;
2591 2591 border: 1px solid #ccc;
2592 2592 background: #f8f8f8;
2593 2593 font-size: 100%;
2594 2594 line-height: 125%;
2595 2595 padding: 0;
2596 2596 -webkit-border-radius: 6px 6px 0px 0px;
2597 2597 -moz-border-radius: 6px 6px 0px 0px;
2598 2598 border-radius: 6px 6px 0px 0px;
2599 2599 }
2600 2600
2601 2601 div.browserblock .browser-header {
2602 2602 background: #FFF;
2603 2603 padding: 10px 0px 15px 0px;
2604 2604 width: 100%;
2605 2605 }
2606 2606
2607 2607 div.browserblock .browser-nav {
2608 2608 float: left
2609 2609 }
2610 2610
2611 2611 div.browserblock .browser-branch {
2612 2612 float: left;
2613 2613 }
2614 2614
2615 2615 div.browserblock .browser-branch label {
2616 2616 color: #4A4A4A;
2617 2617 vertical-align: text-top;
2618 2618 }
2619 2619
2620 2620 div.browserblock .browser-header span {
2621 2621 margin-left: 5px;
2622 2622 font-weight: 700;
2623 2623 }
2624 2624
2625 2625 div.browserblock .browser-search {
2626 2626 clear: both;
2627 2627 padding: 8px 8px 0px 5px;
2628 2628 height: 20px;
2629 2629 }
2630 2630
2631 2631 div.browserblock #node_filter_box {
2632 2632
2633 2633 }
2634 2634
2635 2635 div.browserblock .search_activate {
2636 2636 float: left
2637 2637 }
2638 2638
2639 2639 div.browserblock .add_node {
2640 2640 float: left;
2641 2641 padding-left: 5px;
2642 2642 }
2643 2643
2644 2644 div.browserblock .search_activate a:hover,div.browserblock .add_node a:hover
2645 2645 {
2646 2646 text-decoration: none !important;
2647 2647 }
2648 2648
2649 2649 div.browserblock .browser-body {
2650 2650 background: #EEE;
2651 2651 border-top: 1px solid #CCC;
2652 2652 }
2653 2653
2654 2654 table.code-browser {
2655 2655 border-collapse: collapse;
2656 2656 width: 100%;
2657 2657 }
2658 2658
2659 2659 table.code-browser tr {
2660 2660 margin: 3px;
2661 2661 }
2662 2662
2663 2663 table.code-browser thead th {
2664 2664 background-color: #EEE;
2665 2665 height: 20px;
2666 2666 font-size: 1.1em;
2667 2667 font-weight: 700;
2668 2668 text-align: left;
2669 2669 padding-left: 10px;
2670 2670 }
2671 2671
2672 2672 table.code-browser tbody td {
2673 2673 padding-left: 10px;
2674 2674 height: 20px;
2675 2675 }
2676 2676
2677 2677 table.code-browser .browser-file {
2678 2678 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2679 2679 height: 16px;
2680 2680 padding-left: 20px;
2681 2681 text-align: left;
2682 2682 }
2683 2683 .diffblock .changeset_header {
2684 2684 height: 16px;
2685 2685 }
2686 2686 .diffblock .changeset_file {
2687 2687 background: url("../images/icons/file.png") no-repeat scroll 3px;
2688 2688 text-align: left;
2689 2689 float: left;
2690 2690 padding: 2px 0px 2px 22px;
2691 2691 }
2692 2692 .diffblock .diff-menu-wrapper{
2693 2693 float: left;
2694 2694 }
2695 2695
2696 2696 .diffblock .diff-menu{
2697 2697 position: absolute;
2698 2698 background: none repeat scroll 0 0 #FFFFFF;
2699 2699 border-color: #003367 #666666 #666666;
2700 2700 border-right: 1px solid #666666;
2701 2701 border-style: solid solid solid;
2702 2702 border-width: 1px;
2703 2703 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
2704 2704 margin-top:5px;
2705 2705 margin-left:1px;
2706 2706
2707 2707 }
2708 2708 .diffblock .diff-actions {
2709 2709 padding: 2px 0px 0px 2px;
2710 2710 float: left;
2711 2711 }
2712 2712 .diffblock .diff-menu ul li {
2713 2713 padding: 0px 0px 0px 0px !important;
2714 2714 }
2715 2715 .diffblock .diff-menu ul li a{
2716 2716 display: block;
2717 2717 padding: 3px 8px 3px 8px !important;
2718 2718 }
2719 2719 .diffblock .diff-menu ul li a:hover{
2720 2720 text-decoration: none;
2721 2721 background-color: #EEEEEE;
2722 2722 }
2723 2723 table.code-browser .browser-dir {
2724 2724 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
2725 2725 height: 16px;
2726 2726 padding-left: 20px;
2727 2727 text-align: left;
2728 2728 }
2729 2729
2730 2730 table.code-browser .submodule-dir {
2731 2731 background: url("../images/icons/disconnect.png") no-repeat scroll 3px;
2732 2732 height: 16px;
2733 2733 padding-left: 20px;
2734 2734 text-align: left;
2735 2735 }
2736 2736
2737 2737
2738 2738 .box .search {
2739 2739 clear: both;
2740 2740 overflow: hidden;
2741 2741 margin: 0;
2742 2742 padding: 0 20px 10px;
2743 2743 }
2744 2744
2745 2745 .box .search div.search_path {
2746 2746 background: none repeat scroll 0 0 #EEE;
2747 2747 border: 1px solid #CCC;
2748 2748 color: blue;
2749 2749 margin-bottom: 10px;
2750 2750 padding: 10px 0;
2751 2751 }
2752 2752
2753 2753 .box .search div.search_path div.link {
2754 2754 font-weight: 700;
2755 2755 margin-left: 25px;
2756 2756 }
2757 2757
2758 2758 .box .search div.search_path div.link a {
2759 2759 color: #003367;
2760 2760 cursor: pointer;
2761 2761 text-decoration: none;
2762 2762 }
2763 2763
2764 2764 #path_unlock {
2765 2765 color: red;
2766 2766 font-size: 1.2em;
2767 2767 padding-left: 4px;
2768 2768 }
2769 2769
2770 2770 .info_box span {
2771 2771 margin-left: 3px;
2772 2772 margin-right: 3px;
2773 2773 }
2774 2774
2775 2775 .info_box .rev {
2776 2776 color: #003367;
2777 2777 font-size: 1.6em;
2778 2778 font-weight: bold;
2779 2779 vertical-align: sub;
2780 2780 }
2781 2781
2782 2782 .info_box input#at_rev,.info_box input#size {
2783 2783 background: #FFF;
2784 2784 border-top: 1px solid #b3b3b3;
2785 2785 border-left: 1px solid #b3b3b3;
2786 2786 border-right: 1px solid #eaeaea;
2787 2787 border-bottom: 1px solid #eaeaea;
2788 2788 color: #000;
2789 2789 font-size: 12px;
2790 2790 margin: 0;
2791 2791 padding: 1px 5px 1px;
2792 2792 }
2793 2793
2794 2794 .info_box input#view {
2795 2795 text-align: center;
2796 2796 padding: 4px 3px 2px 2px;
2797 2797 }
2798 2798
2799 2799 .yui-overlay,.yui-panel-container {
2800 2800 visibility: hidden;
2801 2801 position: absolute;
2802 2802 z-index: 2;
2803 2803 }
2804 2804
2805 2805 .yui-tt {
2806 2806 visibility: hidden;
2807 2807 position: absolute;
2808 2808 color: #666;
2809 2809 background-color: #FFF;
2810 2810 border: 2px solid #003367;
2811 2811 font: 100% sans-serif;
2812 2812 width: auto;
2813 2813 opacity: 1px;
2814 2814 padding: 8px;
2815 2815 white-space: pre-wrap;
2816 2816 -webkit-border-radius: 8px 8px 8px 8px;
2817 2817 -khtml-border-radius: 8px 8px 8px 8px;
2818 2818 -moz-border-radius: 8px 8px 8px 8px;
2819 2819 border-radius: 8px 8px 8px 8px;
2820 2820 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
2821 2821 }
2822 2822
2823 .mentions-container{
2824 width: 100% !important;
2825 }
2826 .mentions-container .yui-ac-content{
2827 width: 90% !important;
2828 }
2829
2823 2830 .ac {
2824 2831 vertical-align: top;
2825 2832 }
2826 2833
2827 2834 .ac .yui-ac {
2828 2835 position: inherit;
2829 2836 font-size: 100%;
2830 2837 }
2831 2838
2832 2839 .ac .perm_ac {
2833 2840 width: 20em;
2834 2841 }
2835 2842
2836 2843 .ac .yui-ac-input {
2837 2844 width: 100%;
2838 2845 }
2839 2846
2840 2847 .ac .yui-ac-container {
2841 2848 position: absolute;
2842 2849 top: 1.6em;
2843 2850 width: auto;
2844 2851 }
2845 2852
2846 2853 .ac .yui-ac-content {
2847 2854 position: absolute;
2848 2855 border: 1px solid gray;
2849 2856 background: #fff;
2850 2857 z-index: 9050;
2851 2858
2852 2859 }
2853 2860
2854 2861 .ac .yui-ac-shadow {
2855 2862 position: absolute;
2856 2863 width: 100%;
2857 2864 background: #000;
2858 2865 -moz-opacity: 0.1px;
2859 2866 opacity: .10;
2860 2867 filter: alpha(opacity = 10);
2861 2868 z-index: 9049;
2862 2869 margin: .3em;
2863 2870 }
2864 2871
2865 2872 .ac .yui-ac-content ul {
2866 2873 width: 100%;
2867 2874 margin: 0;
2868 2875 padding: 0;
2869 2876 z-index: 9050;
2870 2877 }
2871 2878
2872 2879 .ac .yui-ac-content li {
2873 2880 cursor: default;
2874 2881 white-space: nowrap;
2875 2882 margin: 0;
2876 2883 padding: 2px 5px;
2877 2884 height: 18px;
2878 2885 z-index: 9050;
2879 2886 display: block;
2880 2887 width: auto !important;
2881 2888 }
2882 2889
2883 2890 .ac .yui-ac-content li .ac-container-wrap{
2884 2891 width: auto;
2885 2892 }
2886 2893
2887 2894 .ac .yui-ac-content li.yui-ac-prehighlight {
2888 2895 background: #B3D4FF;
2889 2896 z-index: 9050;
2890 2897 }
2891 2898
2892 2899 .ac .yui-ac-content li.yui-ac-highlight {
2893 2900 background: #556CB5;
2894 2901 color: #FFF;
2895 2902 z-index: 9050;
2896 2903 }
2897 2904 .ac .yui-ac-bd{
2898 2905 z-index: 9050;
2899 2906 }
2900 2907
2901 2908 .follow {
2902 2909 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2903 2910 height: 16px;
2904 2911 width: 20px;
2905 2912 cursor: pointer;
2906 2913 display: block;
2907 2914 float: right;
2908 2915 margin-top: 2px;
2909 2916 }
2910 2917
2911 2918 .following {
2912 2919 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2913 2920 height: 16px;
2914 2921 width: 20px;
2915 2922 cursor: pointer;
2916 2923 display: block;
2917 2924 float: right;
2918 2925 margin-top: 2px;
2919 2926 }
2920 2927
2921 2928 .currently_following {
2922 2929 padding-left: 10px;
2923 2930 padding-bottom: 5px;
2924 2931 }
2925 2932
2926 2933 .add_icon {
2927 2934 background: url("../images/icons/add.png") no-repeat scroll 3px;
2928 2935 padding-left: 20px;
2929 2936 padding-top: 0px;
2930 2937 text-align: left;
2931 2938 }
2932 2939
2933 2940 .edit_icon {
2934 2941 background: url("../images/icons/folder_edit.png") no-repeat scroll 3px;
2935 2942 padding-left: 20px;
2936 2943 padding-top: 0px;
2937 2944 text-align: left;
2938 2945 }
2939 2946
2940 2947 .delete_icon {
2941 2948 background: url("../images/icons/delete.png") no-repeat scroll 3px;
2942 2949 padding-left: 20px;
2943 2950 padding-top: 0px;
2944 2951 text-align: left;
2945 2952 }
2946 2953
2947 2954 .refresh_icon {
2948 2955 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
2949 2956 3px;
2950 2957 padding-left: 20px;
2951 2958 padding-top: 0px;
2952 2959 text-align: left;
2953 2960 }
2954 2961
2955 2962 .pull_icon {
2956 2963 background: url("../images/icons/connect.png") no-repeat scroll 3px;
2957 2964 padding-left: 20px;
2958 2965 padding-top: 0px;
2959 2966 text-align: left;
2960 2967 }
2961 2968
2962 2969 .rss_icon {
2963 2970 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
2964 2971 padding-left: 20px;
2965 2972 padding-top: 4px;
2966 2973 text-align: left;
2967 2974 font-size: 8px
2968 2975 }
2969 2976
2970 2977 .atom_icon {
2971 2978 background: url("../images/icons/atom.png") no-repeat scroll 3px;
2972 2979 padding-left: 20px;
2973 2980 padding-top: 4px;
2974 2981 text-align: left;
2975 2982 font-size: 8px
2976 2983 }
2977 2984
2978 2985 .archive_icon {
2979 2986 background: url("../images/icons/compress.png") no-repeat scroll 3px;
2980 2987 padding-left: 20px;
2981 2988 text-align: left;
2982 2989 padding-top: 1px;
2983 2990 }
2984 2991
2985 2992 .start_following_icon {
2986 2993 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
2987 2994 padding-left: 20px;
2988 2995 text-align: left;
2989 2996 padding-top: 0px;
2990 2997 }
2991 2998
2992 2999 .stop_following_icon {
2993 3000 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
2994 3001 padding-left: 20px;
2995 3002 text-align: left;
2996 3003 padding-top: 0px;
2997 3004 }
2998 3005
2999 3006 .action_button {
3000 3007 border: 0;
3001 3008 display: inline;
3002 3009 }
3003 3010
3004 3011 .action_button:hover {
3005 3012 border: 0;
3006 3013 text-decoration: underline;
3007 3014 cursor: pointer;
3008 3015 }
3009 3016
3010 3017 #switch_repos {
3011 3018 position: absolute;
3012 3019 height: 25px;
3013 3020 z-index: 1;
3014 3021 }
3015 3022
3016 3023 #switch_repos select {
3017 3024 min-width: 150px;
3018 3025 max-height: 250px;
3019 3026 z-index: 1;
3020 3027 }
3021 3028
3022 3029 .breadcrumbs {
3023 3030 border: medium none;
3024 3031 color: #FFF;
3025 3032 float: left;
3026 3033 text-transform: uppercase;
3027 3034 font-weight: 700;
3028 3035 font-size: 14px;
3029 3036 margin: 0;
3030 3037 padding: 11px 0 11px 10px;
3031 3038 }
3032 3039
3033 3040 .breadcrumbs .hash {
3034 3041 text-transform: none;
3035 3042 color: #fff;
3036 3043 }
3037 3044
3038 3045 .breadcrumbs a {
3039 3046 color: #FFF;
3040 3047 }
3041 3048
3042 3049 .flash_msg {
3043 3050
3044 3051 }
3045 3052
3046 3053 .flash_msg ul {
3047 3054
3048 3055 }
3049 3056
3050 3057 .error_msg {
3051 3058 background-color: #c43c35;
3052 3059 background-repeat: repeat-x;
3053 3060 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35) );
3054 3061 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3055 3062 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3056 3063 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35) );
3057 3064 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3058 3065 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3059 3066 background-image: linear-gradient(top, #ee5f5b, #c43c35);
3060 3067 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35', GradientType=0 );
3061 3068 border-color: #c43c35 #c43c35 #882a25;
3062 3069 }
3063 3070
3064 3071 .warning_msg {
3065 3072 color: #404040 !important;
3066 3073 background-color: #eedc94;
3067 3074 background-repeat: repeat-x;
3068 3075 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94) );
3069 3076 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
3070 3077 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
3071 3078 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94) );
3072 3079 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
3073 3080 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
3074 3081 background-image: linear-gradient(top, #fceec1, #eedc94);
3075 3082 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0 );
3076 3083 border-color: #eedc94 #eedc94 #e4c652;
3077 3084 }
3078 3085
3079 3086 .success_msg {
3080 3087 background-color: #57a957;
3081 3088 background-repeat: repeat-x !important;
3082 3089 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957) );
3083 3090 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3084 3091 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3085 3092 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957) );
3086 3093 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3087 3094 background-image: -o-linear-gradient(top, #62c462, #57a957);
3088 3095 background-image: linear-gradient(top, #62c462, #57a957);
3089 3096 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0 );
3090 3097 border-color: #57a957 #57a957 #3d773d;
3091 3098 }
3092 3099
3093 3100 .notice_msg {
3094 3101 background-color: #339bb9;
3095 3102 background-repeat: repeat-x;
3096 3103 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9) );
3097 3104 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3098 3105 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3099 3106 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9) );
3100 3107 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3101 3108 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3102 3109 background-image: linear-gradient(top, #5bc0de, #339bb9);
3103 3110 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0 );
3104 3111 border-color: #339bb9 #339bb9 #22697d;
3105 3112 }
3106 3113
3107 3114 .success_msg,.error_msg,.notice_msg,.warning_msg {
3108 3115 font-size: 12px;
3109 3116 font-weight: 700;
3110 3117 min-height: 14px;
3111 3118 line-height: 14px;
3112 3119 margin-bottom: 10px;
3113 3120 margin-top: 0;
3114 3121 display: block;
3115 3122 overflow: auto;
3116 3123 padding: 6px 10px 6px 10px;
3117 3124 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3118 3125 position: relative;
3119 3126 color: #FFF;
3120 3127 border-width: 1px;
3121 3128 border-style: solid;
3122 3129 -webkit-border-radius: 4px;
3123 3130 -moz-border-radius: 4px;
3124 3131 border-radius: 4px;
3125 3132 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3126 3133 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3127 3134 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3128 3135 }
3129 3136
3130 3137 #msg_close {
3131 3138 background: transparent url("../icons/cross_grey_small.png") no-repeat scroll 0 0;
3132 3139 cursor: pointer;
3133 3140 height: 16px;
3134 3141 position: absolute;
3135 3142 right: 5px;
3136 3143 top: 5px;
3137 3144 width: 16px;
3138 3145 }
3139 3146 div#legend_data{
3140 3147 padding-left:10px;
3141 3148 }
3142 3149 div#legend_container table{
3143 3150 border: none !important;
3144 3151 }
3145 3152 div#legend_container table,div#legend_choices table {
3146 3153 width: auto !important;
3147 3154 }
3148 3155
3149 3156 table#permissions_manage {
3150 3157 width: 0 !important;
3151 3158 }
3152 3159
3153 3160 table#permissions_manage span.private_repo_msg {
3154 3161 font-size: 0.8em;
3155 3162 opacity: 0.6px;
3156 3163 }
3157 3164
3158 3165 table#permissions_manage td.private_repo_msg {
3159 3166 font-size: 0.8em;
3160 3167 }
3161 3168
3162 3169 table#permissions_manage tr#add_perm_input td {
3163 3170 vertical-align: middle;
3164 3171 }
3165 3172
3166 3173 div.gravatar {
3167 3174 background-color: #FFF;
3168 3175 float: left;
3169 3176 margin-right: 0.7em;
3170 3177 padding: 1px 1px 1px 1px;
3171 3178 line-height:0;
3172 3179 -webkit-border-radius: 3px;
3173 3180 -khtml-border-radius: 3px;
3174 3181 -moz-border-radius: 3px;
3175 3182 border-radius: 3px;
3176 3183 }
3177 3184
3178 3185 div.gravatar img {
3179 3186 -webkit-border-radius: 2px;
3180 3187 -khtml-border-radius: 2px;
3181 3188 -moz-border-radius: 2px;
3182 3189 border-radius: 2px;
3183 3190 }
3184 3191
3185 3192 #header,#content,#footer {
3186 3193 min-width: 978px;
3187 3194 }
3188 3195
3189 3196 #content {
3190 3197 clear: both;
3191 3198 overflow: hidden;
3192 3199 padding: 54px 10px 14px 10px;
3193 3200 }
3194 3201
3195 3202 #content div.box div.title div.search {
3196 3203
3197 3204 border-left: 1px solid #316293;
3198 3205 }
3199 3206
3200 3207 #content div.box div.title div.search div.input input {
3201 3208 border: 1px solid #316293;
3202 3209 }
3203 3210
3204 3211 .ui-btn{
3205 3212 color: #515151;
3206 3213 background-color: #DADADA;
3207 3214 background-repeat: repeat-x;
3208 3215 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
3209 3216 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
3210 3217 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
3211 3218 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
3212 3219 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
3213 3220 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
3214 3221 background-image: linear-gradient(top, #F4F4F4, #DADADA);
3215 3222 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
3216 3223
3217 3224 border-top: 1px solid #DDD;
3218 3225 border-left: 1px solid #c6c6c6;
3219 3226 border-right: 1px solid #DDD;
3220 3227 border-bottom: 1px solid #c6c6c6;
3221 3228 color: #515151;
3222 3229 outline: none;
3223 3230 margin: 0px 3px 3px 0px;
3224 3231 -webkit-border-radius: 4px 4px 4px 4px !important;
3225 3232 -khtml-border-radius: 4px 4px 4px 4px !important;
3226 3233 -moz-border-radius: 4px 4px 4px 4px !important;
3227 3234 border-radius: 4px 4px 4px 4px !important;
3228 3235 cursor: pointer !important;
3229 3236 padding: 3px 3px 3px 3px;
3230 3237 background-position: 0 -15px;
3231 3238
3232 3239 }
3233 3240 .ui-btn.xsmall{
3234 3241 padding: 1px 2px 1px 1px;
3235 3242 }
3236 3243 .ui-btn.clone{
3237 3244 padding: 5px 2px 6px 1px;
3238 3245 margin: 0px -4px 3px 0px;
3239 3246 -webkit-border-radius: 4px 0px 0px 4px !important;
3240 3247 -khtml-border-radius: 4px 0px 0px 4px !important;
3241 3248 -moz-border-radius: 4px 0px 0px 4px !important;
3242 3249 border-radius: 4px 0px 0px 4px !important;
3243 3250 width: 100px;
3244 3251 text-align: center;
3245 3252 float: left;
3246 3253 position: absolute;
3247 3254 }
3248 3255 .ui-btn:focus {
3249 3256 outline: none;
3250 3257 }
3251 3258 .ui-btn:hover{
3252 3259 background-position: 0 0px;
3253 3260 text-decoration: none;
3254 3261 color: #515151;
3255 3262 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
3256 3263 }
3257 3264
3258 3265 .ui-btn.red{
3259 3266 color:#fff;
3260 3267 background-color: #c43c35;
3261 3268 background-repeat: repeat-x;
3262 3269 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
3263 3270 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3264 3271 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3265 3272 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
3266 3273 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3267 3274 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3268 3275 background-image: linear-gradient(top, #ee5f5b, #c43c35);
3269 3276 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
3270 3277 border-color: #c43c35 #c43c35 #882a25;
3271 3278 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3272 3279 }
3273 3280
3274 3281
3275 3282 .ui-btn.blue{
3276 3283 background-color: #339bb9;
3277 3284 background-repeat: repeat-x;
3278 3285 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
3279 3286 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3280 3287 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3281 3288 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
3282 3289 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3283 3290 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3284 3291 background-image: linear-gradient(top, #5bc0de, #339bb9);
3285 3292 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
3286 3293 border-color: #339bb9 #339bb9 #22697d;
3287 3294 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3288 3295 }
3289 3296
3290 3297 .ui-btn.green{
3291 3298 background-color: #57a957;
3292 3299 background-repeat: repeat-x;
3293 3300 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
3294 3301 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3295 3302 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3296 3303 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
3297 3304 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3298 3305 background-image: -o-linear-gradient(top, #62c462, #57a957);
3299 3306 background-image: linear-gradient(top, #62c462, #57a957);
3300 3307 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
3301 3308 border-color: #57a957 #57a957 #3d773d;
3302 3309 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3303 3310 }
3304 3311
3305 3312 ins,div.options a:hover {
3306 3313 text-decoration: none;
3307 3314 }
3308 3315
3309 3316 img,
3310 3317 #header #header-inner #quick li a:hover span.normal,
3311 3318 #header #header-inner #quick li ul li.last,
3312 3319 #content div.box div.form div.fields div.field div.textarea table td table td a,
3313 3320 #clone_url,
3314 3321 #clone_url_id
3315 3322 {
3316 3323 border: none;
3317 3324 }
3318 3325
3319 3326 img.icon,.right .merge img {
3320 3327 vertical-align: bottom;
3321 3328 }
3322 3329
3323 3330 #header ul#logged-user,#content div.box div.title ul.links,
3324 3331 #content div.box div.message div.dismiss,
3325 3332 #content div.box div.traffic div.legend ul
3326 3333 {
3327 3334 float: right;
3328 3335 margin: 0;
3329 3336 padding: 0;
3330 3337 }
3331 3338
3332 3339 #header #header-inner #home,#header #header-inner #logo,
3333 3340 #content div.box ul.left,#content div.box ol.left,
3334 3341 #content div.box div.pagination-left,div#commit_history,
3335 3342 div#legend_data,div#legend_container,div#legend_choices
3336 3343 {
3337 3344 float: left;
3338 3345 }
3339 3346
3340 3347 #header #header-inner #quick li:hover ul ul,
3341 3348 #header #header-inner #quick li:hover ul ul ul,
3342 3349 #header #header-inner #quick li:hover ul ul ul ul,
3343 3350 #content #left #menu ul.closed,#content #left #menu li ul.collapsed,.yui-tt-shadow
3344 3351 {
3345 3352 display: none;
3346 3353 }
3347 3354
3348 3355 #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
3349 3356 {
3350 3357 display: block;
3351 3358 }
3352 3359
3353 3360 #content div.graph {
3354 3361 padding: 0 10px 10px;
3355 3362 }
3356 3363
3357 3364 #content div.box div.title ul.links li a:hover,#content div.box div.title ul.links li.ui-tabs-selected a
3358 3365 {
3359 3366 color: #bfe3ff;
3360 3367 }
3361 3368
3362 3369 #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
3363 3370 {
3364 3371 margin: 10px 24px 10px 44px;
3365 3372 }
3366 3373
3367 3374 #content div.box div.form,#content div.box div.table,#content div.box div.traffic
3368 3375 {
3369 3376 clear: both;
3370 3377 overflow: hidden;
3371 3378 margin: 0;
3372 3379 padding: 0 20px 10px;
3373 3380 }
3374 3381
3375 3382 #content div.box div.form div.fields,#login div.form,#login div.form div.fields,#register div.form,#register div.form div.fields
3376 3383 {
3377 3384 clear: both;
3378 3385 overflow: hidden;
3379 3386 margin: 0;
3380 3387 padding: 0;
3381 3388 }
3382 3389
3383 3390 #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
3384 3391 {
3385 3392 height: 1%;
3386 3393 display: block;
3387 3394 color: #363636;
3388 3395 margin: 0;
3389 3396 padding: 2px 0 0;
3390 3397 }
3391 3398
3392 3399 #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
3393 3400 {
3394 3401 background: #FBE3E4;
3395 3402 border-top: 1px solid #e1b2b3;
3396 3403 border-left: 1px solid #e1b2b3;
3397 3404 border-right: 1px solid #FBC2C4;
3398 3405 border-bottom: 1px solid #FBC2C4;
3399 3406 }
3400 3407
3401 3408 #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
3402 3409 {
3403 3410 background: #E6EFC2;
3404 3411 border-top: 1px solid #cebb98;
3405 3412 border-left: 1px solid #cebb98;
3406 3413 border-right: 1px solid #c6d880;
3407 3414 border-bottom: 1px solid #c6d880;
3408 3415 }
3409 3416
3410 3417 #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
3411 3418 {
3412 3419 margin: 0;
3413 3420 }
3414 3421
3415 3422 #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
3416 3423 {
3417 3424 margin: 0 0 0 0px !important;
3418 3425 padding: 0;
3419 3426 }
3420 3427
3421 3428 #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
3422 3429 {
3423 3430 margin: 0 0 0 200px;
3424 3431 padding: 0;
3425 3432 }
3426 3433
3427 3434 #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
3428 3435 {
3429 3436 color: #000;
3430 3437 text-decoration: none;
3431 3438 }
3432 3439
3433 3440 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,#content div.box div.action a.ui-selectmenu-focus
3434 3441 {
3435 3442 border: 1px solid #666;
3436 3443 }
3437 3444
3438 3445 #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
3439 3446 {
3440 3447 clear: both;
3441 3448 overflow: hidden;
3442 3449 margin: 0;
3443 3450 padding: 8px 0 2px;
3444 3451 }
3445 3452
3446 3453 #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
3447 3454 {
3448 3455 float: left;
3449 3456 margin: 0;
3450 3457 }
3451 3458
3452 3459 #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
3453 3460 {
3454 3461 height: 1%;
3455 3462 display: block;
3456 3463 float: left;
3457 3464 margin: 2px 0 0 4px;
3458 3465 }
3459 3466
3460 3467 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
3461 3468 {
3462 3469 color: #000;
3463 3470 font-size: 11px;
3464 3471 font-weight: 700;
3465 3472 margin: 0;
3466 3473 }
3467 3474
3468 3475 input.ui-button {
3469 3476 background: #e5e3e3 url("../images/button.png") repeat-x;
3470 3477 border-top: 1px solid #DDD;
3471 3478 border-left: 1px solid #c6c6c6;
3472 3479 border-right: 1px solid #DDD;
3473 3480 border-bottom: 1px solid #c6c6c6;
3474 3481 color: #515151 !important;
3475 3482 outline: none;
3476 3483 margin: 0;
3477 3484 padding: 6px 12px;
3478 3485 -webkit-border-radius: 4px 4px 4px 4px;
3479 3486 -khtml-border-radius: 4px 4px 4px 4px;
3480 3487 -moz-border-radius: 4px 4px 4px 4px;
3481 3488 border-radius: 4px 4px 4px 4px;
3482 3489 box-shadow: 0 1px 0 #ececec;
3483 3490 cursor: pointer;
3484 3491 }
3485 3492
3486 3493 input.ui-button:hover {
3487 3494 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3488 3495 border-top: 1px solid #ccc;
3489 3496 border-left: 1px solid #bebebe;
3490 3497 border-right: 1px solid #b1b1b1;
3491 3498 border-bottom: 1px solid #afafaf;
3492 3499 }
3493 3500
3494 3501 div.form div.fields div.field div.highlight,#content div.box div.form div.fields div.buttons div.highlight
3495 3502 {
3496 3503 display: inline;
3497 3504 }
3498 3505
3499 3506 #content div.box div.form div.fields div.buttons,div.form div.fields div.buttons
3500 3507 {
3501 3508 margin: 10px 0 0 200px;
3502 3509 padding: 0;
3503 3510 }
3504 3511
3505 3512 #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
3506 3513 {
3507 3514 margin: 10px 0 0;
3508 3515 }
3509 3516
3510 3517 #content div.box table td.user,#content div.box table td.address {
3511 3518 width: 10%;
3512 3519 text-align: center;
3513 3520 }
3514 3521
3515 3522 #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
3516 3523 {
3517 3524 text-align: right;
3518 3525 margin: 6px 0 0;
3519 3526 padding: 0;
3520 3527 }
3521 3528
3522 3529 #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
3523 3530 {
3524 3531 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3525 3532 border-top: 1px solid #ccc;
3526 3533 border-left: 1px solid #bebebe;
3527 3534 border-right: 1px solid #b1b1b1;
3528 3535 border-bottom: 1px solid #afafaf;
3529 3536 color: #515151;
3530 3537 margin: 0;
3531 3538 padding: 6px 12px;
3532 3539 }
3533 3540
3534 3541 #content div.box div.pagination div.results,#content div.box div.pagination-wh div.results
3535 3542 {
3536 3543 text-align: left;
3537 3544 float: left;
3538 3545 margin: 0;
3539 3546 padding: 0;
3540 3547 }
3541 3548
3542 3549 #content div.box div.pagination div.results span,#content div.box div.pagination-wh div.results span
3543 3550 {
3544 3551 height: 1%;
3545 3552 display: block;
3546 3553 float: left;
3547 3554 background: #ebebeb url("../images/pager.png") repeat-x;
3548 3555 border-top: 1px solid #dedede;
3549 3556 border-left: 1px solid #cfcfcf;
3550 3557 border-right: 1px solid #c4c4c4;
3551 3558 border-bottom: 1px solid #c4c4c4;
3552 3559 color: #4A4A4A;
3553 3560 font-weight: 700;
3554 3561 margin: 0;
3555 3562 padding: 6px 8px;
3556 3563 }
3557 3564
3558 3565 #content div.box div.pagination ul.pager li.disabled,#content div.box div.pagination-wh a.disabled
3559 3566 {
3560 3567 color: #B4B4B4;
3561 3568 padding: 6px;
3562 3569 }
3563 3570
3564 3571 #login,#register {
3565 3572 width: 520px;
3566 3573 margin: 10% auto 0;
3567 3574 padding: 0;
3568 3575 }
3569 3576
3570 3577 #login div.color,#register div.color {
3571 3578 clear: both;
3572 3579 overflow: hidden;
3573 3580 background: #FFF;
3574 3581 margin: 10px auto 0;
3575 3582 padding: 3px 3px 3px 0;
3576 3583 }
3577 3584
3578 3585 #login div.color a,#register div.color a {
3579 3586 width: 20px;
3580 3587 height: 20px;
3581 3588 display: block;
3582 3589 float: left;
3583 3590 margin: 0 0 0 3px;
3584 3591 padding: 0;
3585 3592 }
3586 3593
3587 3594 #login div.title h5,#register div.title h5 {
3588 3595 color: #fff;
3589 3596 margin: 10px;
3590 3597 padding: 0;
3591 3598 }
3592 3599
3593 3600 #login div.form div.fields div.field,#register div.form div.fields div.field
3594 3601 {
3595 3602 clear: both;
3596 3603 overflow: hidden;
3597 3604 margin: 0;
3598 3605 padding: 0 0 10px;
3599 3606 }
3600 3607
3601 3608 #login div.form div.fields div.field span.error-message,#register div.form div.fields div.field span.error-message
3602 3609 {
3603 3610 height: 1%;
3604 3611 display: block;
3605 3612 color: red;
3606 3613 margin: 8px 0 0;
3607 3614 padding: 0;
3608 3615 max-width: 320px;
3609 3616 }
3610 3617
3611 3618 #login div.form div.fields div.field div.label label,#register div.form div.fields div.field div.label label
3612 3619 {
3613 3620 color: #000;
3614 3621 font-weight: 700;
3615 3622 }
3616 3623
3617 3624 #login div.form div.fields div.field div.input,#register div.form div.fields div.field div.input
3618 3625 {
3619 3626 float: left;
3620 3627 margin: 0;
3621 3628 padding: 0;
3622 3629 }
3623 3630
3624 3631 #login div.form div.fields div.field div.checkbox,#register div.form div.fields div.field div.checkbox
3625 3632 {
3626 3633 margin: 0 0 0 184px;
3627 3634 padding: 0;
3628 3635 }
3629 3636
3630 3637 #login div.form div.fields div.field div.checkbox label,#register div.form div.fields div.field div.checkbox label
3631 3638 {
3632 3639 color: #565656;
3633 3640 font-weight: 700;
3634 3641 }
3635 3642
3636 3643 #login div.form div.fields div.buttons input,#register div.form div.fields div.buttons input
3637 3644 {
3638 3645 color: #000;
3639 3646 font-size: 1em;
3640 3647 font-weight: 700;
3641 3648 margin: 0;
3642 3649 }
3643 3650
3644 3651 #changeset_content .container .wrapper,#graph_content .container .wrapper
3645 3652 {
3646 3653 width: 600px;
3647 3654 }
3648 3655
3649 3656 #changeset_content .container .left {
3650 3657 float: left;
3651 3658 width: 75%;
3652 3659 padding-left: 5px;
3653 3660 }
3654 3661
3655 3662 #changeset_content .container .left .date,.ac .match {
3656 3663 font-weight: 700;
3657 3664 padding-top: 5px;
3658 3665 padding-bottom: 5px;
3659 3666 }
3660 3667
3661 3668 div#legend_container table td,div#legend_choices table td {
3662 3669 border: none !important;
3663 3670 height: 20px !important;
3664 3671 padding: 0 !important;
3665 3672 }
3666 3673
3667 3674 .q_filter_box {
3668 3675 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3669 3676 -webkit-border-radius: 4px;
3670 3677 -moz-border-radius: 4px;
3671 3678 border-radius: 4px;
3672 3679 border: 0 none;
3673 3680 color: #AAAAAA;
3674 3681 margin-bottom: -4px;
3675 3682 margin-top: -4px;
3676 3683 padding-left: 3px;
3677 3684 }
3678 3685
3679 3686 #node_filter {
3680 3687 border: 0px solid #545454;
3681 3688 color: #AAAAAA;
3682 3689 padding-left: 3px;
3683 3690 }
3684 3691
3685 3692
3686 3693 .group_members_wrap{
3687 3694
3688 3695 }
3689 3696
3690 3697 .group_members .group_member{
3691 3698 height: 30px;
3692 3699 padding:0px 0px 0px 10px;
3693 3700 }
3694 3701
3695 3702 /*README STYLE*/
3696 3703
3697 3704 div.readme {
3698 3705 padding:0px;
3699 3706 }
3700 3707
3701 3708 div.readme h2 {
3702 3709 font-weight: normal;
3703 3710 }
3704 3711
3705 3712 div.readme .readme_box {
3706 3713 background-color: #fafafa;
3707 3714 }
3708 3715
3709 3716 div.readme .readme_box {
3710 3717 clear:both;
3711 3718 overflow:hidden;
3712 3719 margin:0;
3713 3720 padding:0 20px 10px;
3714 3721 }
3715 3722
3716 3723 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 {
3717 3724 border-bottom: 0 !important;
3718 3725 margin: 0 !important;
3719 3726 padding: 0 !important;
3720 3727 line-height: 1.5em !important;
3721 3728 }
3722 3729
3723 3730
3724 3731 div.readme .readme_box h1:first-child {
3725 3732 padding-top: .25em !important;
3726 3733 }
3727 3734
3728 3735 div.readme .readme_box h2, div.readme .readme_box h3 {
3729 3736 margin: 1em 0 !important;
3730 3737 }
3731 3738
3732 3739 div.readme .readme_box h2 {
3733 3740 margin-top: 1.5em !important;
3734 3741 border-top: 4px solid #e0e0e0 !important;
3735 3742 padding-top: .5em !important;
3736 3743 }
3737 3744
3738 3745 div.readme .readme_box p {
3739 3746 color: black !important;
3740 3747 margin: 1em 0 !important;
3741 3748 line-height: 1.5em !important;
3742 3749 }
3743 3750
3744 3751 div.readme .readme_box ul {
3745 3752 list-style: disc !important;
3746 3753 margin: 1em 0 1em 2em !important;
3747 3754 }
3748 3755
3749 3756 div.readme .readme_box ol {
3750 3757 list-style: decimal;
3751 3758 margin: 1em 0 1em 2em !important;
3752 3759 }
3753 3760
3754 3761 div.readme .readme_box pre, code {
3755 3762 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3756 3763 }
3757 3764
3758 3765 div.readme .readme_box code {
3759 3766 font-size: 12px !important;
3760 3767 background-color: ghostWhite !important;
3761 3768 color: #444 !important;
3762 3769 padding: 0 .2em !important;
3763 3770 border: 1px solid #dedede !important;
3764 3771 }
3765 3772
3766 3773 div.readme .readme_box pre code {
3767 3774 padding: 0 !important;
3768 3775 font-size: 12px !important;
3769 3776 background-color: #eee !important;
3770 3777 border: none !important;
3771 3778 }
3772 3779
3773 3780 div.readme .readme_box pre {
3774 3781 margin: 1em 0;
3775 3782 font-size: 12px;
3776 3783 background-color: #eee;
3777 3784 border: 1px solid #ddd;
3778 3785 padding: 5px;
3779 3786 color: #444;
3780 3787 overflow: auto;
3781 3788 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3782 3789 -webkit-border-radius: 3px;
3783 3790 -moz-border-radius: 3px;
3784 3791 border-radius: 3px;
3785 3792 }
3786 3793
3787 3794
3788 3795 /** RST STYLE **/
3789 3796
3790 3797
3791 3798 div.rst-block {
3792 3799 padding:0px;
3793 3800 }
3794 3801
3795 3802 div.rst-block h2 {
3796 3803 font-weight: normal;
3797 3804 }
3798 3805
3799 3806 div.rst-block {
3800 3807 background-color: #fafafa;
3801 3808 }
3802 3809
3803 3810 div.rst-block {
3804 3811 clear:both;
3805 3812 overflow:hidden;
3806 3813 margin:0;
3807 3814 padding:0 20px 10px;
3808 3815 }
3809 3816
3810 3817 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
3811 3818 border-bottom: 0 !important;
3812 3819 margin: 0 !important;
3813 3820 padding: 0 !important;
3814 3821 line-height: 1.5em !important;
3815 3822 }
3816 3823
3817 3824
3818 3825 div.rst-block h1:first-child {
3819 3826 padding-top: .25em !important;
3820 3827 }
3821 3828
3822 3829 div.rst-block h2, div.rst-block h3 {
3823 3830 margin: 1em 0 !important;
3824 3831 }
3825 3832
3826 3833 div.rst-block h2 {
3827 3834 margin-top: 1.5em !important;
3828 3835 border-top: 4px solid #e0e0e0 !important;
3829 3836 padding-top: .5em !important;
3830 3837 }
3831 3838
3832 3839 div.rst-block p {
3833 3840 color: black !important;
3834 3841 margin: 1em 0 !important;
3835 3842 line-height: 1.5em !important;
3836 3843 }
3837 3844
3838 3845 div.rst-block ul {
3839 3846 list-style: disc !important;
3840 3847 margin: 1em 0 1em 2em !important;
3841 3848 }
3842 3849
3843 3850 div.rst-block ol {
3844 3851 list-style: decimal;
3845 3852 margin: 1em 0 1em 2em !important;
3846 3853 }
3847 3854
3848 3855 div.rst-block pre, code {
3849 3856 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
3850 3857 }
3851 3858
3852 3859 div.rst-block code {
3853 3860 font-size: 12px !important;
3854 3861 background-color: ghostWhite !important;
3855 3862 color: #444 !important;
3856 3863 padding: 0 .2em !important;
3857 3864 border: 1px solid #dedede !important;
3858 3865 }
3859 3866
3860 3867 div.rst-block pre code {
3861 3868 padding: 0 !important;
3862 3869 font-size: 12px !important;
3863 3870 background-color: #eee !important;
3864 3871 border: none !important;
3865 3872 }
3866 3873
3867 3874 div.rst-block pre {
3868 3875 margin: 1em 0;
3869 3876 font-size: 12px;
3870 3877 background-color: #eee;
3871 3878 border: 1px solid #ddd;
3872 3879 padding: 5px;
3873 3880 color: #444;
3874 3881 overflow: auto;
3875 3882 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
3876 3883 -webkit-border-radius: 3px;
3877 3884 -moz-border-radius: 3px;
3878 3885 border-radius: 3px;
3879 3886 }
3880 3887
3881 3888
3882 3889 /** comment main **/
3883 3890 .comments {
3884 3891 padding:10px 20px;
3885 3892 }
3886 3893
3887 3894 .comments .comment {
3888 3895 border: 1px solid #ddd;
3889 3896 margin-top: 10px;
3890 3897 -webkit-border-radius: 4px;
3891 3898 -moz-border-radius: 4px;
3892 3899 border-radius: 4px;
3893 3900 }
3894 3901
3895 3902 .comments .comment .meta {
3896 3903 background: #f8f8f8;
3897 3904 padding: 4px;
3898 3905 border-bottom: 1px solid #ddd;
3899 3906 }
3900 3907
3901 3908 .comments .comment .meta img {
3902 3909 vertical-align: middle;
3903 3910 }
3904 3911
3905 3912 .comments .comment .meta .user {
3906 3913 font-weight: bold;
3907 3914 }
3908 3915
3909 3916 .comments .comment .meta .date {
3910 3917 }
3911 3918
3912 3919 .comments .comment .text {
3913 3920 background-color: #FAFAFA;
3914 3921 }
3915 3922 .comment .text div.rst-block p {
3916 3923 margin: 0.5em 0px !important;
3917 3924 }
3918 3925
3919 3926 .comments .comments-number{
3920 3927 padding:0px 0px 10px 0px;
3921 3928 font-weight: bold;
3922 3929 color: #666;
3923 3930 font-size: 16px;
3924 3931 }
3925 3932
3926 3933 /** comment form **/
3927 3934
3928 3935 .comment-form .clearfix{
3929 3936 background: #EEE;
3930 3937 -webkit-border-radius: 4px;
3931 3938 -moz-border-radius: 4px;
3932 3939 border-radius: 4px;
3933 3940 padding: 10px;
3934 3941 }
3935 3942
3936 3943 div.comment-form {
3937 3944 margin-top: 20px;
3938 3945 }
3939 3946
3940 3947 .comment-form strong {
3941 3948 display: block;
3942 3949 margin-bottom: 15px;
3943 3950 }
3944 3951
3945 3952 .comment-form textarea {
3946 3953 width: 100%;
3947 3954 height: 100px;
3948 3955 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
3949 3956 }
3950 3957
3951 3958 form.comment-form {
3952 3959 margin-top: 10px;
3953 3960 margin-left: 10px;
3954 3961 }
3955 3962
3956 3963 .comment-form-submit {
3957 3964 margin-top: 5px;
3958 3965 margin-left: 525px;
3959 3966 }
3960 3967
3961 3968 .file-comments {
3962 3969 display: none;
3963 3970 }
3964 3971
3965 3972 .comment-form .comment {
3966 3973 margin-left: 10px;
3967 3974 }
3968 3975
3969 3976 .comment-form .comment-help{
3970 3977 padding: 0px 0px 5px 0px;
3971 3978 color: #666;
3972 3979 }
3973 3980
3974 3981 .comment-form .comment-button{
3975 3982 padding-top:5px;
3976 3983 }
3977 3984
3978 3985 .add-another-button {
3979 3986 margin-left: 10px;
3980 3987 margin-top: 10px;
3981 3988 margin-bottom: 10px;
3982 3989 }
3983 3990
3984 3991 .comment .buttons {
3985 3992 float: right;
3986 3993 padding:2px 2px 0px 0px;
3987 3994 }
3988 3995
3989 3996
3990 3997 .show-inline-comments{
3991 3998 position: relative;
3992 3999 top:1px
3993 4000 }
3994 4001
3995 4002 /** comment inline form **/
3996 4003 .comment-inline-form .overlay{
3997 4004 display: none;
3998 4005 }
3999 4006 .comment-inline-form .overlay.submitting{
4000 4007 display:block;
4001 4008 background: none repeat scroll 0 0 white;
4002 4009 font-size: 16px;
4003 4010 opacity: 0.5;
4004 4011 position: absolute;
4005 4012 text-align: center;
4006 4013 vertical-align: top;
4007 4014
4008 4015 }
4009 4016 .comment-inline-form .overlay.submitting .overlay-text{
4010 4017 width:100%;
4011 4018 margin-top:5%;
4012 4019 }
4013 4020
4014 4021 .comment-inline-form .clearfix{
4015 4022 background: #EEE;
4016 4023 -webkit-border-radius: 4px;
4017 4024 -moz-border-radius: 4px;
4018 4025 border-radius: 4px;
4019 4026 padding: 5px;
4020 4027 }
4021 4028
4022 4029 div.comment-inline-form {
4023 4030 margin-top: 5px;
4024 4031 padding:2px 6px 8px 6px;
4025 4032
4026 4033 }
4027 4034
4028 4035 .comment-inline-form strong {
4029 4036 display: block;
4030 4037 margin-bottom: 15px;
4031 4038 }
4032 4039
4033 4040 .comment-inline-form textarea {
4034 4041 width: 100%;
4035 4042 height: 100px;
4036 4043 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
4037 4044 }
4038 4045
4039 4046 form.comment-inline-form {
4040 4047 margin-top: 10px;
4041 4048 margin-left: 10px;
4042 4049 }
4043 4050
4044 4051 .comment-inline-form-submit {
4045 4052 margin-top: 5px;
4046 4053 margin-left: 525px;
4047 4054 }
4048 4055
4049 4056 .file-comments {
4050 4057 display: none;
4051 4058 }
4052 4059
4053 4060 .comment-inline-form .comment {
4054 4061 margin-left: 10px;
4055 4062 }
4056 4063
4057 4064 .comment-inline-form .comment-help{
4058 4065 padding: 0px 0px 2px 0px;
4059 4066 color: #666666;
4060 4067 font-size: 10px;
4061 4068 }
4062 4069
4063 4070 .comment-inline-form .comment-button{
4064 4071 padding-top:5px;
4065 4072 }
4066 4073
4067 4074 /** comment inline **/
4068 4075 .inline-comments {
4069 4076 padding:10px 20px;
4070 4077 }
4071 4078
4072 4079 .inline-comments div.rst-block {
4073 4080 clear:both;
4074 4081 overflow:hidden;
4075 4082 margin:0;
4076 4083 padding:0 20px 0px;
4077 4084 }
4078 4085 .inline-comments .comment {
4079 4086 border: 1px solid #ddd;
4080 4087 -webkit-border-radius: 4px;
4081 4088 -moz-border-radius: 4px;
4082 4089 border-radius: 4px;
4083 4090 margin: 3px 3px 5px 5px;
4084 4091 background-color: #FAFAFA;
4085 4092 }
4086 4093 .inline-comments .add-comment {
4087 4094 padding: 2px 4px 8px 5px;
4088 4095 }
4089 4096
4090 4097 .inline-comments .comment-wrapp{
4091 4098 padding:1px;
4092 4099 }
4093 4100 .inline-comments .comment .meta {
4094 4101 background: #f8f8f8;
4095 4102 padding: 4px;
4096 4103 border-bottom: 1px solid #ddd;
4097 4104 }
4098 4105
4099 4106 .inline-comments .comment .meta img {
4100 4107 vertical-align: middle;
4101 4108 }
4102 4109
4103 4110 .inline-comments .comment .meta .user {
4104 4111 font-weight: bold;
4105 4112 }
4106 4113
4107 4114 .inline-comments .comment .meta .date {
4108 4115 }
4109 4116
4110 4117 .inline-comments .comment .text {
4111 4118 background-color: #FAFAFA;
4112 4119 }
4113 4120
4114 4121 .inline-comments .comments-number{
4115 4122 padding:0px 0px 10px 0px;
4116 4123 font-weight: bold;
4117 4124 color: #666;
4118 4125 font-size: 16px;
4119 4126 }
4120 4127 .inline-comments-button .add-comment{
4121 4128 margin:2px 0px 8px 5px !important
4122 4129 }
4123 4130
4124 4131
4125 4132 .notification-paginator{
4126 4133 padding: 0px 0px 4px 16px;
4127 4134 float: left;
4128 4135 }
4129 4136
4130 4137 .notifications{
4131 4138 border-radius: 4px 4px 4px 4px;
4132 4139 -webkit-border-radius: 4px;
4133 4140 -moz-border-radius: 4px;
4134 4141 float: right;
4135 4142 margin: 20px 0px 0px 0px;
4136 4143 position: absolute;
4137 4144 text-align: center;
4138 4145 width: 26px;
4139 4146 z-index: 1000;
4140 4147 }
4141 4148 .notifications a{
4142 4149 color:#888 !important;
4143 4150 display: block;
4144 4151 font-size: 10px;
4145 4152 background-color: #DEDEDE !important;
4146 4153 border-radius: 2px !important;
4147 4154 -webkit-border-radius: 2px !important;
4148 4155 -moz-border-radius: 2px !important;
4149 4156 }
4150 4157 .notifications a:hover{
4151 4158 text-decoration: none !important;
4152 4159 background-color: #EEEFFF !important;
4153 4160 }
4154 4161 .notification-header{
4155 4162 padding-top:6px;
4156 4163 }
4157 4164 .notification-header .desc{
4158 4165 font-size: 16px;
4159 4166 height: 24px;
4160 4167 float: left
4161 4168 }
4162 4169 .notification-list .container.unread{
4163 4170 background: none repeat scroll 0 0 rgba(255, 255, 180, 0.6);
4164 4171 }
4165 4172 .notification-header .gravatar{
4166 4173 background: none repeat scroll 0 0 transparent;
4167 4174 padding: 0px 0px 0px 8px;
4168 4175 }
4169 4176 .notification-header .desc.unread{
4170 4177 font-weight: bold;
4171 4178 font-size: 17px;
4172 4179 }
4173 4180 .notification-table{
4174 4181 border: 1px solid #ccc;
4175 4182 -webkit-border-radius: 6px 6px 6px 6px;
4176 4183 -moz-border-radius: 6px 6px 6px 6px;
4177 4184 border-radius: 6px 6px 6px 6px;
4178 4185 clear: both;
4179 4186 margin: 0px 20px 0px 20px;
4180 4187 }
4181 4188 .notification-header .delete-notifications{
4182 4189 float: right;
4183 4190 padding-top: 8px;
4184 4191 cursor: pointer;
4185 4192 }
4186 4193 .notification-subject{
4187 4194 clear:both;
4188 4195 border-bottom: 1px solid #eee;
4189 4196 padding:5px 0px 5px 38px;
4190 4197 }
4191 4198
4192 4199 .notification-body{
4193 4200 clear:both;
4194 4201 margin: 34px 2px 2px 8px
4195 4202 }
4196 4203
4197 4204 /****
4198 4205 PERMS
4199 4206 *****/
4200 4207 #perms .perms_section_head {
4201 4208 padding:10px 10px 10px 0px;
4202 4209 font-size:16px;
4203 4210 font-weight: bold;
4204 4211 }
4205 4212
4206 4213 #perms .perm_tag{
4207 4214 padding: 1px 3px 1px 3px;
4208 4215 font-size: 10px;
4209 4216 font-weight: bold;
4210 4217 text-transform: uppercase;
4211 4218 white-space: nowrap;
4212 4219 -webkit-border-radius: 3px;
4213 4220 -moz-border-radius: 3px;
4214 4221 border-radius: 3px;
4215 4222 }
4216 4223
4217 4224 #perms .perm_tag.admin{
4218 4225 background-color: #B94A48;
4219 4226 color: #ffffff;
4220 4227 }
4221 4228
4222 4229 #perms .perm_tag.write{
4223 4230 background-color: #B94A48;
4224 4231 color: #ffffff;
4225 4232 }
4226 4233
4227 4234 #perms .perm_tag.read{
4228 4235 background-color: #468847;
4229 4236 color: #ffffff;
4230 4237 }
4231 4238
4232 4239 #perms .perm_tag.none{
4233 4240 background-color: #bfbfbf;
4234 4241 color: #ffffff;
4235 4242 }
4236 4243
4237 4244 .perm-gravatar{
4238 4245 vertical-align:middle;
4239 4246 padding:2px;
4240 4247 }
4241 4248 .perm-gravatar-ac{
4242 4249 vertical-align:middle;
4243 4250 padding:2px;
4244 4251 width: 14px;
4245 4252 height: 14px;
4246 4253 }
4247 4254
4248 4255 /*****************************************************************************
4249 4256 DIFFS CSS
4250 4257 ******************************************************************************/
4251 4258
4252 4259 div.diffblock {
4253 4260 overflow: auto;
4254 4261 padding: 0px;
4255 4262 border: 1px solid #ccc;
4256 4263 background: #f8f8f8;
4257 4264 font-size: 100%;
4258 4265 line-height: 100%;
4259 4266 /* new */
4260 4267 line-height: 125%;
4261 4268 -webkit-border-radius: 6px 6px 0px 0px;
4262 4269 -moz-border-radius: 6px 6px 0px 0px;
4263 4270 border-radius: 6px 6px 0px 0px;
4264 4271 }
4265 4272 div.diffblock.margined{
4266 4273 margin: 0px 20px 0px 20px;
4267 4274 }
4268 4275 div.diffblock .code-header{
4269 4276 border-bottom: 1px solid #CCCCCC;
4270 4277 background: #EEEEEE;
4271 4278 padding:10px 0 10px 0;
4272 4279 height: 14px;
4273 4280 }
4274 4281 div.diffblock .code-header.cv{
4275 4282 height: 34px;
4276 4283 }
4277 4284 div.diffblock .code-header-title{
4278 4285 padding: 0px 0px 10px 5px !important;
4279 4286 margin: 0 !important;
4280 4287 }
4281 4288 div.diffblock .code-header .hash{
4282 4289 float: left;
4283 4290 padding: 2px 0 0 2px;
4284 4291 }
4285 4292 div.diffblock .code-header .date{
4286 4293 float:left;
4287 4294 text-transform: uppercase;
4288 4295 padding: 2px 0px 0px 2px;
4289 4296 }
4290 4297 div.diffblock .code-header div{
4291 4298 margin-left:4px;
4292 4299 font-weight: bold;
4293 4300 font-size: 14px;
4294 4301 }
4295 4302 div.diffblock .code-body{
4296 4303 background: #FFFFFF;
4297 4304 }
4298 4305 div.diffblock pre.raw{
4299 4306 background: #FFFFFF;
4300 4307 color:#000000;
4301 4308 }
4302 4309 table.code-difftable{
4303 4310 border-collapse: collapse;
4304 4311 width: 99%;
4305 4312 }
4306 4313 table.code-difftable td {
4307 4314 padding: 0 !important;
4308 4315 background: none !important;
4309 4316 border:0 !important;
4310 4317 vertical-align: none !important;
4311 4318 }
4312 4319 table.code-difftable .context{
4313 4320 background:none repeat scroll 0 0 #DDE7EF;
4314 4321 }
4315 4322 table.code-difftable .add{
4316 4323 background:none repeat scroll 0 0 #DDFFDD;
4317 4324 }
4318 4325 table.code-difftable .add ins{
4319 4326 background:none repeat scroll 0 0 #AAFFAA;
4320 4327 text-decoration:none;
4321 4328 }
4322 4329 table.code-difftable .del{
4323 4330 background:none repeat scroll 0 0 #FFDDDD;
4324 4331 }
4325 4332 table.code-difftable .del del{
4326 4333 background:none repeat scroll 0 0 #FFAAAA;
4327 4334 text-decoration:none;
4328 4335 }
4329 4336
4330 4337 /** LINE NUMBERS **/
4331 4338 table.code-difftable .lineno{
4332 4339
4333 4340 padding-left:2px;
4334 4341 padding-right:2px;
4335 4342 text-align:right;
4336 4343 width:32px;
4337 4344 -moz-user-select:none;
4338 4345 -webkit-user-select: none;
4339 4346 border-right: 1px solid #CCC !important;
4340 4347 border-left: 0px solid #CCC !important;
4341 4348 border-top: 0px solid #CCC !important;
4342 4349 border-bottom: none !important;
4343 4350 vertical-align: middle !important;
4344 4351
4345 4352 }
4346 4353 table.code-difftable .lineno.new {
4347 4354 }
4348 4355 table.code-difftable .lineno.old {
4349 4356 }
4350 4357 table.code-difftable .lineno a{
4351 4358 color:#747474 !important;
4352 4359 font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
4353 4360 letter-spacing:-1px;
4354 4361 text-align:right;
4355 4362 padding-right: 2px;
4356 4363 cursor: pointer;
4357 4364 display: block;
4358 4365 width: 32px;
4359 4366 }
4360 4367
4361 4368 table.code-difftable .lineno-inline{
4362 4369 background:none repeat scroll 0 0 #FFF !important;
4363 4370 padding-left:2px;
4364 4371 padding-right:2px;
4365 4372 text-align:right;
4366 4373 width:30px;
4367 4374 -moz-user-select:none;
4368 4375 -webkit-user-select: none;
4369 4376 }
4370 4377
4371 4378 /** CODE **/
4372 4379 table.code-difftable .code {
4373 4380 display: block;
4374 4381 width: 100%;
4375 4382 }
4376 4383 table.code-difftable .code td{
4377 4384 margin:0;
4378 4385 padding:0;
4379 4386 }
4380 4387 table.code-difftable .code pre{
4381 4388 margin:0;
4382 4389 padding:0;
4383 4390 height: 17px;
4384 4391 line-height: 17px;
4385 4392 }
4386 4393
4387 4394
4388 4395 .diffblock.margined.comm .line .code:hover{
4389 4396 background-color:#FFFFCC !important;
4390 4397 cursor: pointer !important;
4391 4398 background-image:url("../images/icons/comment_add.png") !important;
4392 4399 background-repeat:no-repeat !important;
4393 4400 background-position: right !important;
4394 4401 background-position: 0% 50% !important;
4395 4402 }
4396 4403 .diffblock.margined.comm .line .code.no-comment:hover{
4397 4404 background-image: none !important;
4398 4405 cursor: auto !important;
4399 4406 background-color: inherit !important;
4400 4407
4401 4408 }
@@ -1,1119 +1,1302 b''
1 1 /**
2 2 RhodeCode JS Files
3 3 **/
4 4
5 5 if (typeof console == "undefined" || typeof console.log == "undefined"){
6 6 console = { log: function() {} }
7 7 }
8 8
9 9
10 10 var str_repeat = function(i, m) {
11 11 for (var o = []; m > 0; o[--m] = i);
12 12 return o.join('');
13 13 };
14 14
15 15 /**
16 16 * INJECT .format function into String
17 17 * Usage: "My name is {0} {1}".format("Johny","Bravo")
18 18 * Return "My name is Johny Bravo"
19 19 * Inspired by https://gist.github.com/1049426
20 20 */
21 21 String.prototype.format = function() {
22 22
23 23 function format() {
24 24 var str = this;
25 25 var len = arguments.length+1;
26 26 var safe = undefined;
27 27 var arg = undefined;
28 28
29 29 // For each {0} {1} {n...} replace with the argument in that position. If
30 30 // the argument is an object or an array it will be stringified to JSON.
31 31 for (var i=0; i < len; arg = arguments[i++]) {
32 32 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
33 33 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
34 34 }
35 35 return str;
36 36 }
37 37
38 38 // Save a reference of what may already exist under the property native.
39 39 // Allows for doing something like: if("".format.native) { /* use native */ }
40 40 format.native = String.prototype.format;
41 41
42 42 // Replace the prototype property
43 43 return format;
44 44
45 45 }();
46 46
47 47
48 48 /**
49 49 * SmartColorGenerator
50 50 *
51 51 *usage::
52 52 * var CG = new ColorGenerator();
53 53 * var col = CG.getColor(key); //returns array of RGB
54 54 * 'rgb({0})'.format(col.join(',')
55 55 *
56 56 * @returns {ColorGenerator}
57 57 */
58 58 var ColorGenerator = function(){
59 59 this.GOLDEN_RATIO = 0.618033988749895;
60 60 this.CURRENT_RATIO = 0.22717784590367374 // this can be random
61 61 this.HSV_1 = 0.75;//saturation
62 62 this.HSV_2 = 0.95;
63 63 this.color;
64 64 this.cacheColorMap = {};
65 65 };
66 66
67 67 ColorGenerator.prototype = {
68 68 getColor:function(key){
69 69 if(this.cacheColorMap[key] !== undefined){
70 70 return this.cacheColorMap[key];
71 71 }
72 72 else{
73 73 this.cacheColorMap[key] = this.generateColor();
74 74 return this.cacheColorMap[key];
75 75 }
76 76 },
77 77 _hsvToRgb:function(h,s,v){
78 78 if (s == 0.0)
79 79 return [v, v, v];
80 80 i = parseInt(h * 6.0)
81 81 f = (h * 6.0) - i
82 82 p = v * (1.0 - s)
83 83 q = v * (1.0 - s * f)
84 84 t = v * (1.0 - s * (1.0 - f))
85 85 i = i % 6
86 86 if (i == 0)
87 87 return [v, t, p]
88 88 if (i == 1)
89 89 return [q, v, p]
90 90 if (i == 2)
91 91 return [p, v, t]
92 92 if (i == 3)
93 93 return [p, q, v]
94 94 if (i == 4)
95 95 return [t, p, v]
96 96 if (i == 5)
97 97 return [v, p, q]
98 98 },
99 99 generateColor:function(){
100 100 this.CURRENT_RATIO = this.CURRENT_RATIO+this.GOLDEN_RATIO;
101 101 this.CURRENT_RATIO = this.CURRENT_RATIO %= 1;
102 102 HSV_tuple = [this.CURRENT_RATIO, this.HSV_1, this.HSV_2]
103 103 RGB_tuple = this._hsvToRgb(HSV_tuple[0],HSV_tuple[1],HSV_tuple[2]);
104 104 function toRgb(v){
105 105 return ""+parseInt(v*256)
106 106 }
107 107 return [toRgb(RGB_tuple[0]),toRgb(RGB_tuple[1]),toRgb(RGB_tuple[2])];
108 108
109 109 }
110 110 }
111 111
112 112
113 113
114 114
115 115
116 116 /**
117 117 * GLOBAL YUI Shortcuts
118 118 */
119 119 var YUC = YAHOO.util.Connect;
120 120 var YUD = YAHOO.util.Dom;
121 121 var YUE = YAHOO.util.Event;
122 122 var YUQ = YAHOO.util.Selector.query;
123 123
124 124 // defines if push state is enabled for this browser ?
125 125 var push_state_enabled = Boolean(
126 126 window.history && window.history.pushState && window.history.replaceState
127 127 && !( /* disable for versions of iOS before version 4.3 (8F190) */
128 128 (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent)
129 129 /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
130 130 || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent)
131 131 )
132 132 );
133 133
134 134 var _run_callbacks = function(callbacks){
135 135 if (callbacks !== undefined){
136 136 var _l = callbacks.length;
137 137 for (var i=0;i<_l;i++){
138 138 var func = callbacks[i];
139 139 if(typeof(func)=='function'){
140 140 try{
141 141 func();
142 142 }catch (err){};
143 143 }
144 144 }
145 145 }
146 146 }
147 147
148 148 /**
149 149 * Partial Ajax Implementation
150 150 *
151 151 * @param url: defines url to make partial request
152 152 * @param container: defines id of container to input partial result
153 153 * @param s_call: success callback function that takes o as arg
154 154 * o.tId
155 155 * o.status
156 156 * o.statusText
157 157 * o.getResponseHeader[ ]
158 158 * o.getAllResponseHeaders
159 159 * o.responseText
160 160 * o.responseXML
161 161 * o.argument
162 162 * @param f_call: failure callback
163 163 * @param args arguments
164 164 */
165 165 function ypjax(url,container,s_call,f_call,args){
166 166 var method='GET';
167 167 if(args===undefined){
168 168 args=null;
169 169 }
170 170
171 171 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
172 172 YUC.initHeader('X-PARTIAL-XHR',true);
173 173
174 174 // wrapper of passed callback
175 175 var s_wrapper = (function(o){
176 176 return function(o){
177 177 YUD.get(container).innerHTML=o.responseText;
178 178 YUD.setStyle(container,'opacity','1.0');
179 179 //execute the given original callback
180 180 if (s_call !== undefined){
181 181 s_call(o);
182 182 }
183 183 }
184 184 })()
185 185 YUD.setStyle(container,'opacity','0.3');
186 186 YUC.asyncRequest(method,url,{
187 187 success:s_wrapper,
188 188 failure:function(o){
189 189 console.log(o);
190 190 YUD.get(container).innerHTML='ERROR';
191 191 YUD.setStyle(container,'opacity','1.0');
192 192 YUD.setStyle(container,'color','red');
193 193 }
194 194 },args);
195 195
196 196 };
197 197
198 198 var ajaxPOST = function(url,postData,success) {
199 199 // Set special header for ajax == HTTP_X_PARTIAL_XHR
200 200 YUC.initHeader('X-PARTIAL-XHR',true);
201 201
202 202 var toQueryString = function(o) {
203 203 if(typeof o !== 'object') {
204 204 return false;
205 205 }
206 206 var _p, _qs = [];
207 207 for(_p in o) {
208 208 _qs.push(encodeURIComponent(_p) + '=' + encodeURIComponent(o[_p]));
209 209 }
210 210 return _qs.join('&');
211 211 };
212 212
213 213 var sUrl = url;
214 214 var callback = {
215 215 success: success,
216 216 failure: function (o) {
217 217 alert("error");
218 218 },
219 219 };
220 220 var postData = toQueryString(postData);
221 221 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
222 222 return request;
223 223 };
224 224
225 225
226 226 /**
227 227 * tooltip activate
228 228 */
229 229 var tooltip_activate = function(){
230 230 function toolTipsId(){
231 231 var ids = [];
232 232 var tts = YUQ('.tooltip');
233 233 for (var i = 0; i < tts.length; i++) {
234 234 // if element doesn't not have and id
235 235 // autogenerate one for tooltip
236 236 if (!tts[i].id){
237 237 tts[i].id='tt'+((i*100)+tts.length);
238 238 }
239 239 ids.push(tts[i].id);
240 240 }
241 241 return ids
242 242 };
243 243 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
244 244 context: [[toolTipsId()],"tl","bl",null,[0,5]],
245 245 monitorresize:false,
246 246 xyoffset :[0,0],
247 247 autodismissdelay:300000,
248 248 hidedelay:5,
249 249 showdelay:20,
250 250 });
251 251 };
252 252
253 253 /**
254 254 * show more
255 255 */
256 256 var show_more_event = function(){
257 257 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
258 258 var el = e.target;
259 259 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
260 260 YUD.setStyle(el.parentNode,'display','none');
261 261 });
262 262 };
263 263
264 264
265 265 /**
266 266 * Quick filter widget
267 267 *
268 268 * @param target: filter input target
269 269 * @param nodes: list of nodes in html we want to filter.
270 270 * @param display_element function that takes current node from nodes and
271 271 * does hide or show based on the node
272 272 *
273 273 */
274 274 var q_filter = function(target,nodes,display_element){
275 275
276 276 var nodes = nodes;
277 277 var q_filter_field = YUD.get(target);
278 278 var F = YAHOO.namespace(target);
279 279
280 280 YUE.on(q_filter_field,'click',function(){
281 281 q_filter_field.value = '';
282 282 });
283 283
284 284 YUE.on(q_filter_field,'keyup',function(e){
285 285 clearTimeout(F.filterTimeout);
286 286 F.filterTimeout = setTimeout(F.updateFilter,600);
287 287 });
288 288
289 289 F.filterTimeout = null;
290 290
291 291 var show_node = function(node){
292 292 YUD.setStyle(node,'display','')
293 293 }
294 294 var hide_node = function(node){
295 295 YUD.setStyle(node,'display','none');
296 296 }
297 297
298 298 F.updateFilter = function() {
299 299 // Reset timeout
300 300 F.filterTimeout = null;
301 301
302 302 var obsolete = [];
303 303
304 304 var req = q_filter_field.value.toLowerCase();
305 305
306 306 var l = nodes.length;
307 307 var i;
308 308 var showing = 0;
309 309
310 310 for (i=0;i<l;i++ ){
311 311 var n = nodes[i];
312 312 var target_element = display_element(n)
313 313 if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
314 314 hide_node(target_element);
315 315 }
316 316 else{
317 317 show_node(target_element);
318 318 showing+=1;
319 319 }
320 320 }
321 321
322 322 // if repo_count is set update the number
323 323 var cnt = YUD.get('repo_count');
324 324 if(cnt){
325 325 YUD.get('repo_count').innerHTML = showing;
326 326 }
327 327
328 328 }
329 329 };
330 330
331 331 var tableTr = function(cls,body){
332 332 var tr = document.createElement('tr');
333 333 YUD.addClass(tr, cls);
334 334
335 335
336 336 var cont = new YAHOO.util.Element(body);
337 337 var comment_id = fromHTML(body).children[0].id.split('comment-')[1];
338 338 tr.id = 'comment-tr-{0}'.format(comment_id);
339 339 tr.innerHTML = '<td class="lineno-inline new-inline"></td>'+
340 340 '<td class="lineno-inline old-inline"></td>'+
341 341 '<td>{0}</td>'.format(body);
342 342 return tr;
343 343 };
344 344
345 345 /** comments **/
346 346 var removeInlineForm = function(form) {
347 347 form.parentNode.removeChild(form);
348 348 };
349 349
350 350 var createInlineForm = function(parent_tr, f_path, line) {
351 351 var tmpl = YUD.get('comment-inline-form-template').innerHTML;
352 352 tmpl = tmpl.format(f_path, line);
353 353 var form = tableTr('comment-form-inline',tmpl)
354 354
355 355 // create event for hide button
356 356 form = new YAHOO.util.Element(form);
357 357 var form_hide_button = new YAHOO.util.Element(form.getElementsByClassName('hide-inline-form')[0]);
358 358 form_hide_button.on('click', function(e) {
359 359 var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode;
360 360 if(YUD.hasClass(newtr.nextElementSibling,'inline-comments-button')){
361 361 YUD.setStyle(newtr.nextElementSibling,'display','');
362 362 }
363 363 removeInlineForm(newtr);
364 364 YUD.removeClass(parent_tr, 'form-open');
365 365
366 366 });
367 367
368 368 return form
369 369 };
370 370
371 371 /**
372 372 * Inject inline comment for on given TR this tr should be always an .line
373 373 * tr containing the line. Code will detect comment, and always put the comment
374 374 * block at the very bottom
375 375 */
376 376 var injectInlineForm = function(tr){
377 377 if(!YUD.hasClass(tr, 'line')){
378 378 return
379 379 }
380 380 var submit_url = AJAX_COMMENT_URL;
381 381 if(YUD.hasClass(tr,'form-open') || YUD.hasClass(tr,'context') || YUD.hasClass(tr,'no-comment')){
382 382 return
383 383 }
384 384 YUD.addClass(tr,'form-open');
385 385 var node = tr.parentNode.parentNode.parentNode.getElementsByClassName('full_f_path')[0];
386 386 var f_path = YUD.getAttribute(node,'path');
387 387 var lineno = getLineNo(tr);
388 388 var form = createInlineForm(tr, f_path, lineno, submit_url);
389 389
390 390 var parent = tr;
391 391 while (1){
392 392 var n = parent.nextElementSibling;
393 393 // next element are comments !
394 394 if(YUD.hasClass(n,'inline-comments')){
395 395 parent = n;
396 396 }
397 397 else{
398 398 break;
399 399 }
400 400 }
401 401 YUD.insertAfter(form,parent);
402 402
403 403 YUD.get('text_'+lineno).focus();
404 404 var f = YUD.get(form);
405 405
406 406 var overlay = f.getElementsByClassName('overlay')[0];
407 407 var _form = f.getElementsByClassName('inline-form')[0];
408 408
409 409 form.on('submit',function(e){
410 410 YUE.preventDefault(e);
411 411
412 412 //ajax submit
413 413 var text = YUD.get('text_'+lineno).value;
414 414 var postData = {
415 415 'text':text,
416 416 'f_path':f_path,
417 417 'line':lineno
418 418 };
419 419
420 420 if(lineno === undefined){
421 421 alert('missing line !');
422 422 return
423 423 }
424 424 if(f_path === undefined){
425 425 alert('missing file path !');
426 426 return
427 427 }
428 428
429 429 if(text == ""){
430 430 return
431 431 }
432 432
433 433 var success = function(o){
434 434 YUD.removeClass(tr, 'form-open');
435 435 removeInlineForm(f);
436 436 var json_data = JSON.parse(o.responseText);
437 437 renderInlineComment(json_data);
438 438 };
439 439
440 440 if (YUD.hasClass(overlay,'overlay')){
441 441 var w = _form.offsetWidth;
442 442 var h = _form.offsetHeight;
443 443 YUD.setStyle(overlay,'width',w+'px');
444 444 YUD.setStyle(overlay,'height',h+'px');
445 445 }
446 446 YUD.addClass(overlay, 'submitting');
447 447
448 448 ajaxPOST(submit_url, postData, success);
449 449 });
450 450
451 451 tooltip_activate();
452 452 };
453 453
454 454 var deleteComment = function(comment_id){
455 455 var url = AJAX_COMMENT_DELETE_URL.replace('__COMMENT_ID__',comment_id);
456 456 var postData = {'_method':'delete'};
457 457 var success = function(o){
458 458 var n = YUD.get('comment-tr-'+comment_id);
459 459 var root = n.previousElementSibling.previousElementSibling;
460 460 n.parentNode.removeChild(n);
461 461
462 462 // scann nodes, and attach add button to last one
463 463 placeAddButton(root);
464 464 }
465 465 ajaxPOST(url,postData,success);
466 466 }
467 467
468 468
469 469 var createInlineAddButton = function(tr){
470 470
471 471 var label = TRANSLATION_MAP['add another comment'];
472 472
473 473 var html_el = document.createElement('div');
474 474 YUD.addClass(html_el, 'add-comment');
475 475 html_el.innerHTML = '<span class="ui-btn">{0}</span>'.format(label);
476 476
477 477 var add = new YAHOO.util.Element(html_el);
478 478 add.on('click', function(e) {
479 479 injectInlineForm(tr);
480 480 });
481 481 return add;
482 482 };
483 483
484 484 var getLineNo = function(tr) {
485 485 var line;
486 486 var o = tr.children[0].id.split('_');
487 487 var n = tr.children[1].id.split('_');
488 488
489 489 if (n.length >= 2) {
490 490 line = n[n.length-1];
491 491 } else if (o.length >= 2) {
492 492 line = o[o.length-1];
493 493 }
494 494
495 495 return line
496 496 };
497 497
498 498 var placeAddButton = function(target_tr){
499 499 if(!target_tr){
500 500 return
501 501 }
502 502 var last_node = target_tr;
503 503 //scann
504 504 while (1){
505 505 var n = last_node.nextElementSibling;
506 506 // next element are comments !
507 507 if(YUD.hasClass(n,'inline-comments')){
508 508 last_node = n;
509 509 //also remove the comment button from previos
510 510 var comment_add_buttons = last_node.getElementsByClassName('add-comment');
511 511 for(var i=0;i<comment_add_buttons.length;i++){
512 512 var b = comment_add_buttons[i];
513 513 b.parentNode.removeChild(b);
514 514 }
515 515 }
516 516 else{
517 517 break;
518 518 }
519 519 }
520 520
521 521 var add = createInlineAddButton(target_tr);
522 522 // get the comment div
523 523 var comment_block = last_node.getElementsByClassName('comment')[0];
524 524 // attach add button
525 525 YUD.insertAfter(add,comment_block);
526 526 }
527 527
528 528 /**
529 529 * Places the inline comment into the changeset block in proper line position
530 530 */
531 531 var placeInline = function(target_container,lineno,html){
532 532 var lineid = "{0}_{1}".format(target_container,lineno);
533 533 var target_line = YUD.get(lineid);
534 534 var comment = new YAHOO.util.Element(tableTr('inline-comments',html))
535 535
536 536 // check if there are comments already !
537 537 var parent = target_line.parentNode;
538 538 var root_parent = parent;
539 539 while (1){
540 540 var n = parent.nextElementSibling;
541 541 // next element are comments !
542 542 if(YUD.hasClass(n,'inline-comments')){
543 543 parent = n;
544 544 }
545 545 else{
546 546 break;
547 547 }
548 548 }
549 549 // put in the comment at the bottom
550 550 YUD.insertAfter(comment,parent);
551 551
552 552 // scann nodes, and attach add button to last one
553 553 placeAddButton(root_parent);
554 554
555 555 return target_line;
556 556 }
557 557
558 558 /**
559 559 * make a single inline comment and place it inside
560 560 */
561 561 var renderInlineComment = function(json_data){
562 562 try{
563 563 var html = json_data['rendered_text'];
564 564 var lineno = json_data['line_no'];
565 565 var target_id = json_data['target_id'];
566 566 placeInline(target_id, lineno, html);
567 567
568 568 }catch(e){
569 569 console.log(e);
570 570 }
571 571 }
572 572
573 573 /**
574 574 * Iterates over all the inlines, and places them inside proper blocks of data
575 575 */
576 576 var renderInlineComments = function(file_comments){
577 577 for (f in file_comments){
578 578 // holding all comments for a FILE
579 579 var box = file_comments[f];
580 580
581 581 var target_id = YUD.getAttribute(box,'target_id');
582 582 // actually comments with line numbers
583 583 var comments = box.children;
584 584 for(var i=0; i<comments.length; i++){
585 585 var data = {
586 586 'rendered_text': comments[i].outerHTML,
587 587 'line_no': YUD.getAttribute(comments[i],'line'),
588 588 'target_id': target_id
589 589 }
590 590 renderInlineComment(data);
591 591 }
592 592 }
593 593 }
594 594
595 595
596 596 var fileBrowserListeners = function(current_url, node_list_url, url_base,
597 597 truncated_lbl, nomatch_lbl){
598 598 var current_url_branch = +"?branch=__BRANCH__";
599 599 var url = url_base;
600 600 var node_url = node_list_url;
601 601
602 602 YUE.on('stay_at_branch','click',function(e){
603 603 if(e.target.checked){
604 604 var uri = current_url_branch;
605 605 uri = uri.replace('__BRANCH__',e.target.value);
606 606 window.location = uri;
607 607 }
608 608 else{
609 609 window.location = current_url;
610 610 }
611 611 })
612 612
613 613 var n_filter = YUD.get('node_filter');
614 614 var F = YAHOO.namespace('node_filter');
615 615
616 616 F.filterTimeout = null;
617 617 var nodes = null;
618 618
619 619 F.initFilter = function(){
620 620 YUD.setStyle('node_filter_box_loading','display','');
621 621 YUD.setStyle('search_activate_id','display','none');
622 622 YUD.setStyle('add_node_id','display','none');
623 623 YUC.initHeader('X-PARTIAL-XHR',true);
624 624 YUC.asyncRequest('GET',url,{
625 625 success:function(o){
626 626 nodes = JSON.parse(o.responseText);
627 627 YUD.setStyle('node_filter_box_loading','display','none');
628 628 YUD.setStyle('node_filter_box','display','');
629 629 n_filter.focus();
630 630 if(YUD.hasClass(n_filter,'init')){
631 631 n_filter.value = '';
632 632 YUD.removeClass(n_filter,'init');
633 633 }
634 634 },
635 635 failure:function(o){
636 636 console.log('failed to load');
637 637 }
638 638 },null);
639 639 }
640 640
641 641 F.updateFilter = function(e) {
642 642
643 643 return function(){
644 644 // Reset timeout
645 645 F.filterTimeout = null;
646 646 var query = e.target.value.toLowerCase();
647 647 var match = [];
648 648 var matches = 0;
649 649 var matches_max = 20;
650 650 if (query != ""){
651 651 for(var i=0;i<nodes.length;i++){
652 652
653 653 var pos = nodes[i].name.toLowerCase().indexOf(query)
654 654 if(query && pos != -1){
655 655
656 656 matches++
657 657 //show only certain amount to not kill browser
658 658 if (matches > matches_max){
659 659 break;
660 660 }
661 661
662 662 var n = nodes[i].name;
663 663 var t = nodes[i].type;
664 664 var n_hl = n.substring(0,pos)
665 665 +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
666 666 +n.substring(pos+query.length)
667 667 match.push('<tr><td><a class="browser-{0}" href="{1}">{2}</a></td><td colspan="5"></td></tr>'.format(t,node_url.replace('__FPATH__',n),n_hl));
668 668 }
669 669 if(match.length >= matches_max){
670 670 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(truncated_lbl));
671 671 }
672 672
673 673 }
674 674 }
675 675 if(query != ""){
676 676 YUD.setStyle('tbody','display','none');
677 677 YUD.setStyle('tbody_filtered','display','');
678 678
679 679 if (match.length==0){
680 680 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(nomatch_lbl));
681 681 }
682 682
683 683 YUD.get('tbody_filtered').innerHTML = match.join("");
684 684 }
685 685 else{
686 686 YUD.setStyle('tbody','display','');
687 687 YUD.setStyle('tbody_filtered','display','none');
688 688 }
689 689
690 690 }
691 691 };
692 692
693 693 YUE.on(YUD.get('filter_activate'),'click',function(){
694 694 F.initFilter();
695 695 })
696 696 YUE.on(n_filter,'click',function(){
697 697 if(YUD.hasClass(n_filter,'init')){
698 698 n_filter.value = '';
699 699 YUD.removeClass(n_filter,'init');
700 700 }
701 701 });
702 702 YUE.on(n_filter,'keyup',function(e){
703 703 clearTimeout(F.filterTimeout);
704 704 F.filterTimeout = setTimeout(F.updateFilter(e),600);
705 705 });
706 706 };
707 707
708 708
709 709 var initCodeMirror = function(textAreadId,resetUrl){
710 710 var myCodeMirror = CodeMirror.fromTextArea(YUD.get(textAreadId),{
711 711 mode: "null",
712 712 lineNumbers:true
713 713 });
714 714 YUE.on('reset','click',function(e){
715 715 window.location=resetUrl
716 716 });
717 717
718 718 YUE.on('file_enable','click',function(){
719 719 YUD.setStyle('editor_container','display','');
720 720 YUD.setStyle('upload_file_container','display','none');
721 721 YUD.setStyle('filename_container','display','');
722 722 });
723 723
724 724 YUE.on('upload_file_enable','click',function(){
725 725 YUD.setStyle('editor_container','display','none');
726 726 YUD.setStyle('upload_file_container','display','');
727 727 YUD.setStyle('filename_container','display','none');
728 728 });
729 729 };
730 730
731 731
732 732
733 733 var getIdentNode = function(n){
734 734 //iterate thru nodes untill matched interesting node !
735 735
736 736 if (typeof n == 'undefined'){
737 737 return -1
738 738 }
739 739
740 740 if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
741 741 return n
742 742 }
743 743 else{
744 744 return getIdentNode(n.parentNode);
745 745 }
746 746 };
747 747
748 748 var getSelectionLink = function(selection_link_label) {
749 749 return function(){
750 750 //get selection from start/to nodes
751 751 if (typeof window.getSelection != "undefined") {
752 752 s = window.getSelection();
753 753
754 754 from = getIdentNode(s.anchorNode);
755 755 till = getIdentNode(s.focusNode);
756 756
757 757 f_int = parseInt(from.id.replace('L',''));
758 758 t_int = parseInt(till.id.replace('L',''));
759 759
760 760 if (f_int > t_int){
761 761 //highlight from bottom
762 762 offset = -35;
763 763 ranges = [t_int,f_int];
764 764
765 765 }
766 766 else{
767 767 //highligth from top
768 768 offset = 35;
769 769 ranges = [f_int,t_int];
770 770 }
771 771
772 772 if (ranges[0] != ranges[1]){
773 773 if(YUD.get('linktt') == null){
774 774 hl_div = document.createElement('div');
775 775 hl_div.id = 'linktt';
776 776 }
777 777 anchor = '#L'+ranges[0]+'-'+ranges[1];
778 778 hl_div.innerHTML = '';
779 779 l = document.createElement('a');
780 780 l.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
781 781 l.innerHTML = selection_link_label;
782 782 hl_div.appendChild(l);
783 783
784 784 YUD.get('body').appendChild(hl_div);
785 785
786 786 xy = YUD.getXY(till.id);
787 787
788 788 YUD.addClass('linktt','yui-tt');
789 789 YUD.setStyle('linktt','top',xy[1]+offset+'px');
790 790 YUD.setStyle('linktt','left',xy[0]+'px');
791 791 YUD.setStyle('linktt','visibility','visible');
792 792 }
793 793 else{
794 794 YUD.setStyle('linktt','visibility','hidden');
795 795 }
796 796 }
797 797 }
798 798 };
799 799
800 800 var deleteNotification = function(url, notification_id,callbacks){
801 801 var callback = {
802 802 success:function(o){
803 803 var obj = YUD.get(String("notification_"+notification_id));
804 804 if(obj.parentNode !== undefined){
805 805 obj.parentNode.removeChild(obj);
806 806 }
807 807 _run_callbacks(callbacks);
808 808 },
809 809 failure:function(o){
810 810 alert("error");
811 811 },
812 812 };
813 813 var postData = '_method=delete';
814 814 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
815 815 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
816 816 callback, postData);
817 817 };
818 818
819 819
820 820 /** MEMBERS AUTOCOMPLETE WIDGET **/
821 821
822 822 var MembersAutoComplete = function (users_list, groups_list, group_lbl, members_lbl) {
823 823 var myUsers = users_list;
824 824 var myGroups = groups_list;
825 825
826 826 // Define a custom search function for the DataSource of users
827 827 var matchUsers = function (sQuery) {
828 828 // Case insensitive matching
829 829 var query = sQuery.toLowerCase();
830 830 var i = 0;
831 831 var l = myUsers.length;
832 832 var matches = [];
833 833
834 834 // Match against each name of each contact
835 835 for (; i < l; i++) {
836 836 contact = myUsers[i];
837 837 if ((contact.fname.toLowerCase().indexOf(query) > -1) || (contact.lname.toLowerCase().indexOf(query) > -1) || (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
838 838 matches[matches.length] = contact;
839 839 }
840 840 }
841 841 return matches;
842 842 };
843 843
844 844 // Define a custom search function for the DataSource of usersGroups
845 845 var matchGroups = function (sQuery) {
846 846 // Case insensitive matching
847 847 var query = sQuery.toLowerCase();
848 848 var i = 0;
849 849 var l = myGroups.length;
850 850 var matches = [];
851 851
852 852 // Match against each name of each contact
853 853 for (; i < l; i++) {
854 854 matched_group = myGroups[i];
855 855 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
856 856 matches[matches.length] = matched_group;
857 857 }
858 858 }
859 859 return matches;
860 860 };
861 861
862 862 //match all
863 863 var matchAll = function (sQuery) {
864 864 u = matchUsers(sQuery);
865 865 g = matchGroups(sQuery);
866 866 return u.concat(g);
867 867 };
868 868
869 869 // DataScheme for members
870 870 var memberDS = new YAHOO.util.FunctionDataSource(matchAll);
871 871 memberDS.responseSchema = {
872 872 fields: ["id", "fname", "lname", "nname", "grname", "grmembers", "gravatar_lnk"]
873 873 };
874 874
875 875 // DataScheme for owner
876 876 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
877 877 ownerDS.responseSchema = {
878 878 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
879 879 };
880 880
881 881 // Instantiate AutoComplete for perms
882 882 var membersAC = new YAHOO.widget.AutoComplete("perm_new_member_name", "perm_container", memberDS);
883 883 membersAC.useShadow = false;
884 884 membersAC.resultTypeList = false;
885 885
886 886 // Instantiate AutoComplete for owner
887 887 var ownerAC = new YAHOO.widget.AutoComplete("user", "owner_container", ownerDS);
888 888 ownerAC.useShadow = false;
889 889 ownerAC.resultTypeList = false;
890 890
891 891
892 892 // Helper highlight function for the formatter
893 893 var highlightMatch = function (full, snippet, matchindex) {
894 894 return full.substring(0, matchindex)
895 895 + "<span class='match'>"
896 896 + full.substr(matchindex, snippet.length)
897 897 + "</span>" + full.substring(matchindex + snippet.length);
898 898 };
899 899
900 900 // Custom formatter to highlight the matching letters
901 901 var custom_formatter = function (oResultData, sQuery, sResultMatch) {
902 902 var query = sQuery.toLowerCase();
903 903 var _gravatar = function(res, em, group){
904 904 if (group !== undefined){
905 905 em = '/images/icons/group.png'
906 906 }
907 907 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
908 908 return tmpl.format(em,res)
909 909 }
910 910 // group
911 911 if (oResultData.grname != undefined) {
912 912 var grname = oResultData.grname;
913 913 var grmembers = oResultData.grmembers;
914 914 var grnameMatchIndex = grname.toLowerCase().indexOf(query);
915 915 var grprefix = "{0}: ".format(group_lbl);
916 916 var grsuffix = " (" + grmembers + " )";
917 917 var grsuffix = " ({0} {1})".format(grmembers, members_lbl);
918 918
919 919 if (grnameMatchIndex > -1) {
920 920 return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true);
921 921 }
922 922 return _gravatar(grprefix + oResultData.grname + grsuffix, null,true);
923 923 // Users
924 924 } else if (oResultData.fname != undefined) {
925 925 var fname = oResultData.fname,
926 926 lname = oResultData.lname,
927 927 nname = oResultData.nname || "",
928 928 // Guard against null value
929 929 fnameMatchIndex = fname.toLowerCase().indexOf(query),
930 930 lnameMatchIndex = lname.toLowerCase().indexOf(query),
931 931 nnameMatchIndex = nname.toLowerCase().indexOf(query),
932 932 displayfname, displaylname, displaynname;
933 933
934 934 if (fnameMatchIndex > -1) {
935 935 displayfname = highlightMatch(fname, query, fnameMatchIndex);
936 936 } else {
937 937 displayfname = fname;
938 938 }
939 939
940 940 if (lnameMatchIndex > -1) {
941 941 displaylname = highlightMatch(lname, query, lnameMatchIndex);
942 942 } else {
943 943 displaylname = lname;
944 944 }
945 945
946 946 if (nnameMatchIndex > -1) {
947 947 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
948 948 } else {
949 949 displaynname = nname ? "(" + nname + ")" : "";
950 950 }
951 951
952 952 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
953 953 } else {
954 954 return '';
955 955 }
956 956 };
957 957 membersAC.formatResult = custom_formatter;
958 958 ownerAC.formatResult = custom_formatter;
959 959
960 960 var myHandler = function (sType, aArgs) {
961 961
962 962 var myAC = aArgs[0]; // reference back to the AC instance
963 963 var elLI = aArgs[1]; // reference to the selected LI element
964 964 var oData = aArgs[2]; // object literal of selected item's result data
965 965 //fill the autocomplete with value
966 966 if (oData.nname != undefined) {
967 967 //users
968 968 myAC.getInputEl().value = oData.nname;
969 969 YUD.get('perm_new_member_type').value = 'user';
970 970 } else {
971 971 //groups
972 972 myAC.getInputEl().value = oData.grname;
973 973 YUD.get('perm_new_member_type').value = 'users_group';
974 974 }
975 975 };
976 976
977 977 membersAC.itemSelectEvent.subscribe(myHandler);
978 978 if(ownerAC.itemSelectEvent){
979 979 ownerAC.itemSelectEvent.subscribe(myHandler);
980 980 }
981 981
982 982 return {
983 983 memberDS: memberDS,
984 984 ownerDS: ownerDS,
985 985 membersAC: membersAC,
986 986 ownerAC: ownerAC,
987 987 };
988 988 }
989 989
990 990
991 var MentionsAutoComplete = function (divid, cont, users_list, groups_list, group_lbl, members_lbl) {
992 var myUsers = users_list;
993 var myGroups = groups_list;
994
995 // Define a custom search function for the DataSource of users
996 var matchUsers = function (sQuery) {
997 var org_sQuery = sQuery;
998 if(this.mentionQuery == null){
999 return []
1000 }
1001 sQuery = this.mentionQuery;
1002 // Case insensitive matching
1003 var query = sQuery.toLowerCase();
1004 var i = 0;
1005 var l = myUsers.length;
1006 var matches = [];
1007
1008 // Match against each name of each contact
1009 for (; i < l; i++) {
1010 contact = myUsers[i];
1011 if ((contact.fname.toLowerCase().indexOf(query) > -1) || (contact.lname.toLowerCase().indexOf(query) > -1) || (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
1012 matches[matches.length] = contact;
1013 }
1014 }
1015 return matches
1016 };
1017
1018 //match all
1019 var matchAll = function (sQuery) {
1020 u = matchUsers(sQuery);
1021 return u
1022 };
1023
1024 // DataScheme for owner
1025 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1026 ownerDS.responseSchema = {
1027 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1028 };
1029
1030 // Instantiate AutoComplete for mentions
1031 var ownerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1032 ownerAC.useShadow = false;
1033 ownerAC.resultTypeList = false;
1034 ownerAC.suppressInputUpdate = true;
1035
1036 // Helper highlight function for the formatter
1037 var highlightMatch = function (full, snippet, matchindex) {
1038 return full.substring(0, matchindex)
1039 + "<span class='match'>"
1040 + full.substr(matchindex, snippet.length)
1041 + "</span>" + full.substring(matchindex + snippet.length);
1042 };
1043
1044 // Custom formatter to highlight the matching letters
1045 ownerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1046 var org_sQuery = sQuery;
1047 if(this.dataSource.mentionQuery != null){
1048 sQuery = this.dataSource.mentionQuery;
1049 }
1050
1051 var query = sQuery.toLowerCase();
1052 var _gravatar = function(res, em, group){
1053 if (group !== undefined){
1054 em = '/images/icons/group.png'
1055 }
1056 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1057 return tmpl.format(em,res)
1058 }
1059 if (oResultData.fname != undefined) {
1060 var fname = oResultData.fname,
1061 lname = oResultData.lname,
1062 nname = oResultData.nname || "",
1063 // Guard against null value
1064 fnameMatchIndex = fname.toLowerCase().indexOf(query),
1065 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1066 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1067 displayfname, displaylname, displaynname;
1068
1069 if (fnameMatchIndex > -1) {
1070 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1071 } else {
1072 displayfname = fname;
1073 }
1074
1075 if (lnameMatchIndex > -1) {
1076 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1077 } else {
1078 displaylname = lname;
1079 }
1080
1081 if (nnameMatchIndex > -1) {
1082 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1083 } else {
1084 displaynname = nname ? "(" + nname + ")" : "";
1085 }
1086
1087 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1088 } else {
1089 return '';
1090 }
1091 };
1092
1093 if(ownerAC.itemSelectEvent){
1094 ownerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1095
1096 var myAC = aArgs[0]; // reference back to the AC instance
1097 var elLI = aArgs[1]; // reference to the selected LI element
1098 var oData = aArgs[2]; // object literal of selected item's result data
1099 //fill the autocomplete with value
1100 if (oData.nname != undefined) {
1101 //users
1102 //Replace the mention name with replaced
1103 var re = new RegExp();
1104 var org = myAC.getInputEl().value;
1105 var chunks = myAC.dataSource.chunks
1106 // replace middle chunk(the search term) with actuall match
1107 chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery,
1108 '@'+oData.nname+' ');
1109 myAC.getInputEl().value = chunks.join('')
1110 YUD.get(myAC.getInputEl()).focus(); // Y U NO WORK !?
1111 } else {
1112 //groups
1113 myAC.getInputEl().value = oData.grname;
1114 YUD.get('perm_new_member_type').value = 'users_group';
1115 }
1116 });
1117 }
1118
1119 // in this keybuffer we will gather current value of search !
1120 // since we need to get this just when someone does `@` then we do the
1121 // search
1122 ownerAC.dataSource.chunks = [];
1123 ownerAC.dataSource.mentionQuery = null;
1124
1125 ownerAC.get_mention = function(msg, max_pos) {
1126 var org = msg;
1127 var re = new RegExp('(?:^@|\s@)([a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+)$')
1128 var chunks = [];
1129
1130
1131 // cut first chunk until curret pos
1132 var to_max = msg.substr(0, max_pos);
1133 var at_pos = Math.max(0,to_max.lastIndexOf('@')-1);
1134 var msg2 = to_max.substr(at_pos);
1135
1136 chunks.push(org.substr(0,at_pos))// prefix chunk
1137 chunks.push(msg2) // search chunk
1138 chunks.push(org.substr(max_pos)) // postfix chunk
1139
1140 // clean up msg2 for filtering and regex match
1141 var msg2 = msg2.replace(' ','').replace('\n','');
1142
1143 if(re.test(msg2)){
1144 var unam = re.exec(msg2)[1];
1145 return [unam, chunks];
1146 }
1147 return [null, null];
1148 };
1149 ownerAC.textboxKeyUpEvent.subscribe(function(type, args){
1150
1151 var ac_obj = args[0];
1152 var currentMessage = args[1];
1153 var currentCaretPosition = args[0]._elTextbox.selectionStart;
1154
1155 var unam = ownerAC.get_mention(currentMessage, currentCaretPosition);
1156 var curr_search = null;
1157 if(unam[0]){
1158 curr_search = unam[0];
1159 }
1160
1161 ownerAC.dataSource.chunks = unam[1];
1162 ownerAC.dataSource.mentionQuery = curr_search;
1163
1164 })
1165
1166 return {
1167 ownerDS: ownerDS,
1168 ownerAC: ownerAC,
1169 };
1170 }
1171
1172
1173
991 1174
992 1175 /**
993 1176 * QUICK REPO MENU
994 1177 */
995 1178 var quick_repo_menu = function(){
996 1179 YUE.on(YUQ('.quick_repo_menu'),'mouseenter',function(e){
997 1180 var menu = e.currentTarget.firstElementChild.firstElementChild;
998 1181 if(YUD.hasClass(menu,'hidden')){
999 1182 YUD.replaceClass(e.currentTarget,'hidden', 'active');
1000 1183 YUD.replaceClass(menu, 'hidden', 'active');
1001 1184 }
1002 1185 })
1003 1186 YUE.on(YUQ('.quick_repo_menu'),'mouseleave',function(e){
1004 1187 var menu = e.currentTarget.firstElementChild.firstElementChild;
1005 1188 if(YUD.hasClass(menu,'active')){
1006 1189 YUD.replaceClass(e.currentTarget, 'active', 'hidden');
1007 1190 YUD.replaceClass(menu, 'active', 'hidden');
1008 1191 }
1009 1192 })
1010 1193 };
1011 1194
1012 1195
1013 1196 /**
1014 1197 * TABLE SORTING
1015 1198 */
1016 1199
1017 1200 // returns a node from given html;
1018 1201 var fromHTML = function(html){
1019 1202 var _html = document.createElement('element');
1020 1203 _html.innerHTML = html;
1021 1204 return _html;
1022 1205 }
1023 1206 var get_rev = function(node){
1024 1207 var n = node.firstElementChild.firstElementChild;
1025 1208
1026 1209 if (n===null){
1027 1210 return -1
1028 1211 }
1029 1212 else{
1030 1213 out = n.firstElementChild.innerHTML.split(':')[0].replace('r','');
1031 1214 return parseInt(out);
1032 1215 }
1033 1216 }
1034 1217
1035 1218 var get_name = function(node){
1036 1219 var name = node.firstElementChild.children[2].innerHTML;
1037 1220 return name
1038 1221 }
1039 1222 var get_group_name = function(node){
1040 1223 var name = node.firstElementChild.children[1].innerHTML;
1041 1224 return name
1042 1225 }
1043 1226 var get_date = function(node){
1044 1227 var date_ = node.firstElementChild.innerHTML;
1045 1228 return date_
1046 1229 }
1047 1230
1048 1231 var revisionSort = function(a, b, desc, field) {
1049 1232
1050 1233 var a_ = fromHTML(a.getData(field));
1051 1234 var b_ = fromHTML(b.getData(field));
1052 1235
1053 1236 // extract revisions from string nodes
1054 1237 a_ = get_rev(a_)
1055 1238 b_ = get_rev(b_)
1056 1239
1057 1240 var comp = YAHOO.util.Sort.compare;
1058 1241 var compState = comp(a_, b_, desc);
1059 1242 return compState;
1060 1243 };
1061 1244 var ageSort = function(a, b, desc, field) {
1062 1245 var a_ = a.getData(field);
1063 1246 var b_ = b.getData(field);
1064 1247
1065 1248 var comp = YAHOO.util.Sort.compare;
1066 1249 var compState = comp(a_, b_, desc);
1067 1250 return compState;
1068 1251 };
1069 1252
1070 1253 var nameSort = function(a, b, desc, field) {
1071 1254 var a_ = fromHTML(a.getData(field));
1072 1255 var b_ = fromHTML(b.getData(field));
1073 1256
1074 1257 // extract name from table
1075 1258 a_ = get_name(a_)
1076 1259 b_ = get_name(b_)
1077 1260
1078 1261 var comp = YAHOO.util.Sort.compare;
1079 1262 var compState = comp(a_, b_, desc);
1080 1263 return compState;
1081 1264 };
1082 1265
1083 1266 var permNameSort = function(a, b, desc, field) {
1084 1267 var a_ = fromHTML(a.getData(field));
1085 1268 var b_ = fromHTML(b.getData(field));
1086 1269 // extract name from table
1087 1270
1088 1271 a_ = a_.children[0].innerHTML;
1089 1272 b_ = b_.children[0].innerHTML;
1090 1273
1091 1274 var comp = YAHOO.util.Sort.compare;
1092 1275 var compState = comp(a_, b_, desc);
1093 1276 return compState;
1094 1277 };
1095 1278
1096 1279 var groupNameSort = function(a, b, desc, field) {
1097 1280 var a_ = fromHTML(a.getData(field));
1098 1281 var b_ = fromHTML(b.getData(field));
1099 1282
1100 1283 // extract name from table
1101 1284 a_ = get_group_name(a_)
1102 1285 b_ = get_group_name(b_)
1103 1286
1104 1287 var comp = YAHOO.util.Sort.compare;
1105 1288 var compState = comp(a_, b_, desc);
1106 1289 return compState;
1107 1290 };
1108 1291 var dateSort = function(a, b, desc, field) {
1109 1292 var a_ = fromHTML(a.getData(field));
1110 1293 var b_ = fromHTML(b.getData(field));
1111 1294
1112 1295 // extract name from table
1113 1296 a_ = get_date(a_)
1114 1297 b_ = get_date(b_)
1115 1298
1116 1299 var comp = YAHOO.util.Sort.compare;
1117 1300 var compState = comp(a_, b_, desc);
1118 1301 return compState;
1119 1302 }; No newline at end of file
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
General Comments 0
You need to be logged in to leave comments. Login now