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